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';
|
|
@@ -13,8 +13,8 @@ import * as JSZip from 'jszip';
|
|
|
13
13
|
import * as i1$1 from '@angular/platform-browser';
|
|
14
14
|
import { HammerGestureConfig, HAMMER_GESTURE_CONFIG, ɵgetDOM } from '@angular/platform-browser';
|
|
15
15
|
import * as i2 from '@angular/common/http';
|
|
16
|
-
import { __decorate, __param } from 'tslib';
|
|
17
16
|
import { addRow, addChild, pinLeft, unpinLeft, jumpDown, jumpUp, caseSensitive, editor } from '@igniteui/material-icons-extended';
|
|
17
|
+
import { __decorate, __param } from 'tslib';
|
|
18
18
|
import 'igniteui-trial-watermark';
|
|
19
19
|
import { v4 } from 'uuid';
|
|
20
20
|
|
|
@@ -1423,6 +1423,15 @@ function clearImmediate(id) {
|
|
|
1423
1423
|
delete queue[id];
|
|
1424
1424
|
}
|
|
1425
1425
|
|
|
1426
|
+
/**
|
|
1427
|
+
* @hidden
|
|
1428
|
+
*/
|
|
1429
|
+
const showMessage = (message, isMessageShown) => {
|
|
1430
|
+
if (!isMessageShown && isDevMode()) {
|
|
1431
|
+
console.warn(message);
|
|
1432
|
+
}
|
|
1433
|
+
return true;
|
|
1434
|
+
};
|
|
1426
1435
|
const mkenum = (x) => x;
|
|
1427
1436
|
/**
|
|
1428
1437
|
*
|
|
@@ -7993,104 +8002,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
7993
8002
|
}]
|
|
7994
8003
|
}] });
|
|
7995
8004
|
|
|
7996
|
-
/**
|
|
7997
|
-
* @hidden
|
|
7998
|
-
*/
|
|
7999
|
-
const DeprecateClass = (message) => {
|
|
8000
|
-
let isMessageShown = false;
|
|
8001
|
-
return (originalClass) => class extends originalClass {
|
|
8002
|
-
constructor(...args) {
|
|
8003
|
-
const target = originalClass;
|
|
8004
|
-
const targetName = typeof target === 'function' ? target.name : target.constructor.name;
|
|
8005
|
-
isMessageShown = showMessage(`${targetName}: ${message}`, isMessageShown);
|
|
8006
|
-
super(...args);
|
|
8007
|
-
}
|
|
8008
|
-
};
|
|
8009
|
-
};
|
|
8010
|
-
/**
|
|
8011
|
-
* @hidden
|
|
8012
|
-
*/
|
|
8013
|
-
function DeprecateMethod(message) {
|
|
8014
|
-
let isMessageShown = false;
|
|
8015
|
-
return function (target, key, descriptor) {
|
|
8016
|
-
if (descriptor && descriptor.value) {
|
|
8017
|
-
const originalMethod = descriptor.value;
|
|
8018
|
-
descriptor.value = function () {
|
|
8019
|
-
const targetName = typeof target === 'function' ? target.name : target.constructor.name;
|
|
8020
|
-
isMessageShown = showMessage(`${targetName}.${key}: ${message}`, isMessageShown);
|
|
8021
|
-
const args = [];
|
|
8022
|
-
for (const x of arguments) {
|
|
8023
|
-
args.push(x);
|
|
8024
|
-
}
|
|
8025
|
-
return originalMethod.call(this, ...args);
|
|
8026
|
-
};
|
|
8027
|
-
return descriptor;
|
|
8028
|
-
}
|
|
8029
|
-
};
|
|
8030
|
-
}
|
|
8031
|
-
/**
|
|
8032
|
-
* @hidden
|
|
8033
|
-
*/
|
|
8034
|
-
function DeprecateProperty(message) {
|
|
8035
|
-
return function (target, key) {
|
|
8036
|
-
let isMessageShown = false;
|
|
8037
|
-
const messageToDisplay = `${target.constructor.name}.${key}: ${message}`;
|
|
8038
|
-
// if the target already has the property defined
|
|
8039
|
-
const originalDescriptor = Object.getOwnPropertyDescriptor(target, key);
|
|
8040
|
-
if (originalDescriptor) {
|
|
8041
|
-
const getter = originalDescriptor.get;
|
|
8042
|
-
const setter = originalDescriptor.set;
|
|
8043
|
-
if (getter) {
|
|
8044
|
-
originalDescriptor.get = function () {
|
|
8045
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
8046
|
-
return getter.call(this);
|
|
8047
|
-
};
|
|
8048
|
-
}
|
|
8049
|
-
if (setter) {
|
|
8050
|
-
originalDescriptor.set = function (value) {
|
|
8051
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
8052
|
-
setter.call(this, value);
|
|
8053
|
-
};
|
|
8054
|
-
}
|
|
8055
|
-
return originalDescriptor;
|
|
8056
|
-
}
|
|
8057
|
-
// the target doesn't contain a descriptor for that property, so create one
|
|
8058
|
-
// use backing field to set/get the value of the property to ensure there won't be infinite recursive calls
|
|
8059
|
-
const newKey = generateUniqueKey(target, key);
|
|
8060
|
-
Object.defineProperty(target, key, {
|
|
8061
|
-
configurable: true,
|
|
8062
|
-
enumerable: true,
|
|
8063
|
-
set(value) {
|
|
8064
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
8065
|
-
this[newKey] = value;
|
|
8066
|
-
},
|
|
8067
|
-
get() {
|
|
8068
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
8069
|
-
return this[newKey];
|
|
8070
|
-
}
|
|
8071
|
-
});
|
|
8072
|
-
};
|
|
8073
|
-
}
|
|
8074
|
-
/**
|
|
8075
|
-
* @hidden
|
|
8076
|
-
*/
|
|
8077
|
-
const generateUniqueKey = (target, key) => {
|
|
8078
|
-
let newKey = '_' + key;
|
|
8079
|
-
while (target.hasOwnProperty(newKey)) {
|
|
8080
|
-
newKey = '_' + newKey;
|
|
8081
|
-
}
|
|
8082
|
-
return newKey;
|
|
8083
|
-
};
|
|
8084
|
-
/**
|
|
8085
|
-
* @hidden
|
|
8086
|
-
*/
|
|
8087
|
-
const showMessage = (message, isMessageShown) => {
|
|
8088
|
-
if (!isMessageShown && isDevMode()) {
|
|
8089
|
-
console.warn(message);
|
|
8090
|
-
}
|
|
8091
|
-
return true;
|
|
8092
|
-
};
|
|
8093
|
-
|
|
8094
8005
|
let NEXT_ID$u = 0;
|
|
8095
8006
|
/**
|
|
8096
8007
|
* The `<igx-drop-down-item>` is a container intended for row items in
|
|
@@ -8178,7 +8089,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
8178
8089
|
}] } });
|
|
8179
8090
|
|
|
8180
8091
|
let NEXT_ID$t = 0;
|
|
8181
|
-
let warningShown = false;
|
|
8182
8092
|
/**
|
|
8183
8093
|
* An abstract class defining a drop-down item:
|
|
8184
8094
|
* With properties / styles for selection, highlight, height
|
|
@@ -8243,8 +8153,6 @@ class IgxDropDownItemBaseDirective {
|
|
|
8243
8153
|
*/
|
|
8244
8154
|
get index() {
|
|
8245
8155
|
if (this._index === null) {
|
|
8246
|
-
warningShown = showMessage('IgxDropDownItemBaseDirective: Automatic index is deprecated.' +
|
|
8247
|
-
'Bind in the template instead using `<igx-drop-down-item [index]="i"` instead.`', warningShown);
|
|
8248
8156
|
return this.itemIndex;
|
|
8249
8157
|
}
|
|
8250
8158
|
return this._index;
|
|
@@ -9877,7 +9785,7 @@ class IgxForOfDirective {
|
|
|
9877
9785
|
this.dc.instance.scrollContainer = this.scrollComponent.nativeElement;
|
|
9878
9786
|
});
|
|
9879
9787
|
const destructor = takeUntil(this.destroy$);
|
|
9880
|
-
this.contentResizeNotify.pipe(
|
|
9788
|
+
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()));
|
|
9881
9789
|
}
|
|
9882
9790
|
if (this.igxForScrollOrientation === 'horizontal') {
|
|
9883
9791
|
this.func = (evt) => this.onHScroll(evt);
|
|
@@ -16333,6 +16241,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
16333
16241
|
}]
|
|
16334
16242
|
}] });
|
|
16335
16243
|
|
|
16244
|
+
class IgxFocusTrapDirective {
|
|
16245
|
+
/** @hidden */
|
|
16246
|
+
constructor(elementRef, platformUtil) {
|
|
16247
|
+
this.elementRef = elementRef;
|
|
16248
|
+
this.platformUtil = platformUtil;
|
|
16249
|
+
this.destroy$ = new Subject();
|
|
16250
|
+
this._focusTrap = true;
|
|
16251
|
+
}
|
|
16252
|
+
/** @hidden */
|
|
16253
|
+
get element() {
|
|
16254
|
+
return this.elementRef.nativeElement;
|
|
16255
|
+
}
|
|
16256
|
+
/**
|
|
16257
|
+
* Sets whether the Tab key focus is trapped within the element.
|
|
16258
|
+
*
|
|
16259
|
+
* @example
|
|
16260
|
+
* ```html
|
|
16261
|
+
* <div igxFocusTrap="true"></div>
|
|
16262
|
+
* ```
|
|
16263
|
+
*/
|
|
16264
|
+
set focusTrap(focusTrap) {
|
|
16265
|
+
this._focusTrap = focusTrap;
|
|
16266
|
+
}
|
|
16267
|
+
/** @hidden */
|
|
16268
|
+
get focusTrap() {
|
|
16269
|
+
return this._focusTrap;
|
|
16270
|
+
}
|
|
16271
|
+
/** @hidden */
|
|
16272
|
+
ngAfterViewInit() {
|
|
16273
|
+
fromEvent(this.element, 'keydown')
|
|
16274
|
+
.pipe(takeUntil(this.destroy$))
|
|
16275
|
+
.subscribe((event) => {
|
|
16276
|
+
if (this._focusTrap && event.key === this.platformUtil.KEYMAP.TAB) {
|
|
16277
|
+
this.handleTab(event);
|
|
16278
|
+
}
|
|
16279
|
+
});
|
|
16280
|
+
}
|
|
16281
|
+
/** @hidden */
|
|
16282
|
+
ngOnDestroy() {
|
|
16283
|
+
this.destroy$.complete();
|
|
16284
|
+
}
|
|
16285
|
+
handleTab(event) {
|
|
16286
|
+
const elements = this.getFocusableElements(this.element);
|
|
16287
|
+
if (elements.length > 0) {
|
|
16288
|
+
const focusedElement = this.getFocusedElement();
|
|
16289
|
+
const focusedElementIndex = elements.findIndex((element) => element === focusedElement);
|
|
16290
|
+
const direction = event.shiftKey ? -1 : 1;
|
|
16291
|
+
let nextFocusableElementIndex = focusedElementIndex + direction;
|
|
16292
|
+
if (nextFocusableElementIndex < 0) {
|
|
16293
|
+
nextFocusableElementIndex = elements.length - 1;
|
|
16294
|
+
}
|
|
16295
|
+
if (nextFocusableElementIndex >= elements.length) {
|
|
16296
|
+
nextFocusableElementIndex = 0;
|
|
16297
|
+
}
|
|
16298
|
+
elements[nextFocusableElementIndex].focus();
|
|
16299
|
+
}
|
|
16300
|
+
else {
|
|
16301
|
+
this.element.focus();
|
|
16302
|
+
}
|
|
16303
|
+
event.preventDefault();
|
|
16304
|
+
}
|
|
16305
|
+
getFocusableElements(element) {
|
|
16306
|
+
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'));
|
|
16307
|
+
}
|
|
16308
|
+
getFocusedElement() {
|
|
16309
|
+
let activeElement = typeof document !== 'undefined' && document
|
|
16310
|
+
? document.activeElement
|
|
16311
|
+
: null;
|
|
16312
|
+
while (activeElement && activeElement.shadowRoot) {
|
|
16313
|
+
const newActiveElement = activeElement.shadowRoot.activeElement;
|
|
16314
|
+
if (newActiveElement === activeElement) {
|
|
16315
|
+
break;
|
|
16316
|
+
}
|
|
16317
|
+
else {
|
|
16318
|
+
activeElement = newActiveElement;
|
|
16319
|
+
}
|
|
16320
|
+
}
|
|
16321
|
+
return activeElement;
|
|
16322
|
+
}
|
|
16323
|
+
}
|
|
16324
|
+
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 });
|
|
16325
|
+
IgxFocusTrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxFocusTrapDirective, selector: "[igxFocusTrap]", inputs: { focusTrap: ["igxFocusTrap", "focusTrap"] }, ngImport: i0 });
|
|
16326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapDirective, decorators: [{
|
|
16327
|
+
type: Directive,
|
|
16328
|
+
args: [{
|
|
16329
|
+
selector: '[igxFocusTrap]'
|
|
16330
|
+
}]
|
|
16331
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: PlatformUtil }]; }, propDecorators: { focusTrap: [{
|
|
16332
|
+
type: Input,
|
|
16333
|
+
args: ['igxFocusTrap']
|
|
16334
|
+
}] } });
|
|
16335
|
+
/**
|
|
16336
|
+
* @hidden
|
|
16337
|
+
*/
|
|
16338
|
+
class IgxFocusTrapModule {
|
|
16339
|
+
}
|
|
16340
|
+
IgxFocusTrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16341
|
+
IgxFocusTrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule, declarations: [IgxFocusTrapDirective], exports: [IgxFocusTrapDirective] });
|
|
16342
|
+
IgxFocusTrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule });
|
|
16343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule, decorators: [{
|
|
16344
|
+
type: NgModule,
|
|
16345
|
+
args: [{
|
|
16346
|
+
declarations: [IgxFocusTrapDirective],
|
|
16347
|
+
exports: [IgxFocusTrapDirective]
|
|
16348
|
+
}]
|
|
16349
|
+
}] });
|
|
16350
|
+
|
|
16336
16351
|
class IgxLayoutDirective {
|
|
16337
16352
|
constructor() {
|
|
16338
16353
|
/**
|
|
@@ -17903,10 +17918,10 @@ class IgxRadioGroupDirective {
|
|
|
17903
17918
|
this._setRadioButtonsRequired();
|
|
17904
17919
|
}
|
|
17905
17920
|
/**
|
|
17906
|
-
* An @Input property that allows you to disable the radio group. By default it's false.
|
|
17907
|
-
*
|
|
17908
17921
|
* @deprecated in version 12.2.0
|
|
17909
17922
|
*
|
|
17923
|
+
* An input property that allows you to disable the radio group. By default it's false.
|
|
17924
|
+
*
|
|
17910
17925
|
* @example
|
|
17911
17926
|
* ```html
|
|
17912
17927
|
* <igx-radio-group disabled></igx-radio-group>
|
|
@@ -17920,10 +17935,10 @@ class IgxRadioGroupDirective {
|
|
|
17920
17935
|
this.setDisabledState(value);
|
|
17921
17936
|
}
|
|
17922
17937
|
/**
|
|
17923
|
-
* Sets/gets the position of the `label` in the child radio buttons.
|
|
17924
|
-
*
|
|
17925
17938
|
* @deprecated in version 12.2.0
|
|
17926
17939
|
*
|
|
17940
|
+
* Sets/gets the position of the `label` in the child radio buttons.
|
|
17941
|
+
*
|
|
17927
17942
|
* @remarks
|
|
17928
17943
|
* If not set, `labelPosition` will have value `"after"`.
|
|
17929
17944
|
*
|
|
@@ -18155,12 +18170,6 @@ class IgxRadioGroupDirective {
|
|
|
18155
18170
|
}
|
|
18156
18171
|
IgxRadioGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18157
18172
|
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 });
|
|
18158
|
-
__decorate([
|
|
18159
|
-
DeprecateProperty('`disabled` is deprecated.')
|
|
18160
|
-
], IgxRadioGroupDirective.prototype, "disabled", null);
|
|
18161
|
-
__decorate([
|
|
18162
|
-
DeprecateProperty('`labelPosition` is deprecated.')
|
|
18163
|
-
], IgxRadioGroupDirective.prototype, "labelPosition", null);
|
|
18164
18173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRadioGroupDirective, decorators: [{
|
|
18165
18174
|
type: Directive,
|
|
18166
18175
|
args: [{
|
|
@@ -22202,7 +22211,7 @@ class IgxRowAddCrudState extends IgxRowCrudState {
|
|
|
22202
22211
|
* @hidden @internal
|
|
22203
22212
|
*/
|
|
22204
22213
|
createAddRowParent(row, newRowAsChild) {
|
|
22205
|
-
const rowIndex = row ? row.index :
|
|
22214
|
+
const rowIndex = row ? row.index : -1;
|
|
22206
22215
|
const rowId = row ? row.rowID : (rowIndex >= 0 ? this.grid.rowList.last.rowID : null);
|
|
22207
22216
|
const isInPinnedArea = this.grid.isRecordPinnedByViewIndex(rowIndex);
|
|
22208
22217
|
const pinIndex = this.grid.pinnedRecords.findIndex(x => x[this.primaryKey] === rowId);
|
|
@@ -33372,9 +33381,7 @@ IgxComboHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
33372
33381
|
IgxComboHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboHeaderDirective, selector: "[igxComboHeader]", ngImport: i0 });
|
|
33373
33382
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboHeaderDirective, decorators: [{
|
|
33374
33383
|
type: Directive,
|
|
33375
|
-
args: [{
|
|
33376
|
-
selector: '[igxComboHeader]'
|
|
33377
|
-
}]
|
|
33384
|
+
args: [{ selector: '[igxComboHeader]' }]
|
|
33378
33385
|
}] });
|
|
33379
33386
|
/**
|
|
33380
33387
|
* @hidden
|
|
@@ -33385,9 +33392,7 @@ IgxComboFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
33385
33392
|
IgxComboFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboFooterDirective, selector: "[igxComboFooter]", ngImport: i0 });
|
|
33386
33393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFooterDirective, decorators: [{
|
|
33387
33394
|
type: Directive,
|
|
33388
|
-
args: [{
|
|
33389
|
-
selector: '[igxComboFooter]'
|
|
33390
|
-
}]
|
|
33395
|
+
args: [{ selector: '[igxComboFooter]' }]
|
|
33391
33396
|
}] });
|
|
33392
33397
|
/**
|
|
33393
33398
|
* @hidden
|
|
@@ -33398,9 +33403,7 @@ IgxComboItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
|
|
|
33398
33403
|
IgxComboItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboItemDirective, selector: "[igxComboItem]", ngImport: i0 });
|
|
33399
33404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboItemDirective, decorators: [{
|
|
33400
33405
|
type: Directive,
|
|
33401
|
-
args: [{
|
|
33402
|
-
selector: '[igxComboItem]'
|
|
33403
|
-
}]
|
|
33406
|
+
args: [{ selector: '[igxComboItem]' }]
|
|
33404
33407
|
}] });
|
|
33405
33408
|
/**
|
|
33406
33409
|
* @hidden
|
|
@@ -33411,9 +33414,7 @@ IgxComboEmptyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
|
|
|
33411
33414
|
IgxComboEmptyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboEmptyDirective, selector: "[igxComboEmpty]", ngImport: i0 });
|
|
33412
33415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboEmptyDirective, decorators: [{
|
|
33413
33416
|
type: Directive,
|
|
33414
|
-
args: [{
|
|
33415
|
-
selector: '[igxComboEmpty]'
|
|
33416
|
-
}]
|
|
33417
|
+
args: [{ selector: '[igxComboEmpty]' }]
|
|
33417
33418
|
}] });
|
|
33418
33419
|
/**
|
|
33419
33420
|
* @hidden
|
|
@@ -33424,9 +33425,7 @@ IgxComboHeaderItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.
|
|
|
33424
33425
|
IgxComboHeaderItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboHeaderItemDirective, selector: "[igxComboHeaderItem]", ngImport: i0 });
|
|
33425
33426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboHeaderItemDirective, decorators: [{
|
|
33426
33427
|
type: Directive,
|
|
33427
|
-
args: [{
|
|
33428
|
-
selector: '[igxComboHeaderItem]'
|
|
33429
|
-
}]
|
|
33428
|
+
args: [{ selector: '[igxComboHeaderItem]' }]
|
|
33430
33429
|
}] });
|
|
33431
33430
|
/**
|
|
33432
33431
|
* @hidden
|
|
@@ -33437,9 +33436,7 @@ IgxComboAddItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
33437
33436
|
IgxComboAddItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboAddItemDirective, selector: "[igxComboAddItem]", ngImport: i0 });
|
|
33438
33437
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemDirective, decorators: [{
|
|
33439
33438
|
type: Directive,
|
|
33440
|
-
args: [{
|
|
33441
|
-
selector: '[igxComboAddItem]'
|
|
33442
|
-
}]
|
|
33439
|
+
args: [{ selector: '[igxComboAddItem]' }]
|
|
33443
33440
|
}] });
|
|
33444
33441
|
/**
|
|
33445
33442
|
* @hidden
|
|
@@ -33450,9 +33447,7 @@ IgxComboToggleIconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.
|
|
|
33450
33447
|
IgxComboToggleIconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboToggleIconDirective, selector: "[igxComboToggleIcon]", ngImport: i0 });
|
|
33451
33448
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboToggleIconDirective, decorators: [{
|
|
33452
33449
|
type: Directive,
|
|
33453
|
-
args: [{
|
|
33454
|
-
selector: '[igxComboToggleIcon]'
|
|
33455
|
-
}]
|
|
33450
|
+
args: [{ selector: '[igxComboToggleIcon]' }]
|
|
33456
33451
|
}] });
|
|
33457
33452
|
/**
|
|
33458
33453
|
* @hidden
|
|
@@ -33463,9 +33458,7 @@ IgxComboClearIconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0
|
|
|
33463
33458
|
IgxComboClearIconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboClearIconDirective, selector: "[igxComboClearIcon]", ngImport: i0 });
|
|
33464
33459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboClearIconDirective, decorators: [{
|
|
33465
33460
|
type: Directive,
|
|
33466
|
-
args: [{
|
|
33467
|
-
selector: '[igxComboClearIcon]'
|
|
33468
|
-
}]
|
|
33461
|
+
args: [{ selector: '[igxComboClearIcon]' }]
|
|
33469
33462
|
}] });
|
|
33470
33463
|
|
|
33471
33464
|
/**
|
|
@@ -33505,10 +33498,10 @@ class IgxComboAPIService {
|
|
|
33505
33498
|
return;
|
|
33506
33499
|
}
|
|
33507
33500
|
if (!selected) {
|
|
33508
|
-
this.combo.
|
|
33501
|
+
this.combo.select([itemID], false, event);
|
|
33509
33502
|
}
|
|
33510
33503
|
else {
|
|
33511
|
-
this.combo.
|
|
33504
|
+
this.combo.deselect([itemID], event);
|
|
33512
33505
|
}
|
|
33513
33506
|
}
|
|
33514
33507
|
is_item_selected(itemID) {
|
|
@@ -33604,10 +33597,10 @@ class IgxComboItemComponent extends IgxDropDownItemComponent {
|
|
|
33604
33597
|
}
|
|
33605
33598
|
}
|
|
33606
33599
|
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 });
|
|
33607
|
-
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"] }] });
|
|
33600
|
+
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"] }] });
|
|
33608
33601
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboItemComponent, decorators: [{
|
|
33609
33602
|
type: Component,
|
|
33610
|
-
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" }]
|
|
33603
|
+
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" }]
|
|
33611
33604
|
}], ctorParameters: function () { return [{ type: IgxComboAPIService }, { type: undefined, decorators: [{
|
|
33612
33605
|
type: Inject,
|
|
33613
33606
|
args: [IGX_DROPDOWN_BASE]
|
|
@@ -33619,316 +33612,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
33619
33612
|
}, {
|
|
33620
33613
|
type: HostBinding,
|
|
33621
33614
|
args: ['style.height.px']
|
|
33615
|
+
}], singleMode: [{
|
|
33616
|
+
type: Input
|
|
33622
33617
|
}] } });
|
|
33623
33618
|
|
|
33624
33619
|
const IGX_COMBO_COMPONENT = new InjectionToken('IgxComboComponentToken');
|
|
33625
|
-
|
|
33626
|
-
/**
|
|
33627
|
-
* @hidden
|
|
33628
|
-
*/
|
|
33629
|
-
class IgxComboAddItemComponent extends IgxComboItemComponent {
|
|
33630
|
-
get selected() {
|
|
33631
|
-
return false;
|
|
33632
|
-
}
|
|
33633
|
-
set selected(value) {
|
|
33634
|
-
}
|
|
33635
|
-
/**
|
|
33636
|
-
* @inheritdoc
|
|
33637
|
-
*/
|
|
33638
|
-
clicked(event) {
|
|
33639
|
-
this.comboAPI.disableTransitions = false;
|
|
33640
|
-
this.comboAPI.add_custom_item();
|
|
33641
|
-
}
|
|
33642
|
-
}
|
|
33643
|
-
IgxComboAddItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33644
|
-
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 });
|
|
33645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, decorators: [{
|
|
33646
|
-
type: Component,
|
|
33647
|
-
args: [{
|
|
33648
|
-
selector: 'igx-combo-add-item',
|
|
33649
|
-
template: '<ng-content></ng-content>',
|
|
33650
|
-
providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }]
|
|
33651
|
-
}]
|
|
33652
|
-
}] });
|
|
33653
|
-
|
|
33654
|
-
/** @hidden */
|
|
33655
|
-
class IgxComboDropDownComponent extends IgxDropDownComponent {
|
|
33656
|
-
constructor(elementRef, cdr, selection, combo, comboAPI, _displayDensityOptions) {
|
|
33657
|
-
super(elementRef, cdr, selection, _displayDensityOptions);
|
|
33658
|
-
this.elementRef = elementRef;
|
|
33659
|
-
this.cdr = cdr;
|
|
33660
|
-
this.selection = selection;
|
|
33661
|
-
this.combo = combo;
|
|
33662
|
-
this.comboAPI = comboAPI;
|
|
33663
|
-
this._displayDensityOptions = _displayDensityOptions;
|
|
33664
|
-
/**
|
|
33665
|
-
* @hidden
|
|
33666
|
-
* @internal
|
|
33667
|
-
*/
|
|
33668
|
-
this.children = null;
|
|
33669
|
-
this.scrollHandler = () => {
|
|
33670
|
-
this.comboAPI.disableTransitions = true;
|
|
33671
|
-
};
|
|
33672
|
-
}
|
|
33673
|
-
/** @hidden @internal */
|
|
33674
|
-
get scrollContainer() {
|
|
33675
|
-
return this.virtDir.dc.location.nativeElement;
|
|
33676
|
-
}
|
|
33677
|
-
get isScrolledToLast() {
|
|
33678
|
-
const scrollTop = this.virtDir.scrollPosition;
|
|
33679
|
-
const scrollHeight = this.virtDir.getScroll().scrollHeight;
|
|
33680
|
-
return Math.floor(scrollTop + this.virtDir.igxForContainerSize) === scrollHeight;
|
|
33681
|
-
}
|
|
33682
|
-
get lastVisibleIndex() {
|
|
33683
|
-
return this.combo.totalItemCount ?
|
|
33684
|
-
Math.floor(this.combo.itemsMaxHeight / this.combo.itemHeight) :
|
|
33685
|
-
this.items.length - 1;
|
|
33686
|
-
}
|
|
33687
|
-
get sortedChildren() {
|
|
33688
|
-
if (this.children !== undefined) {
|
|
33689
|
-
return this.children.toArray()
|
|
33690
|
-
.sort((a, b) => a.index - b.index);
|
|
33691
|
-
}
|
|
33692
|
-
return null;
|
|
33693
|
-
}
|
|
33694
|
-
/**
|
|
33695
|
-
* Get all non-header items
|
|
33696
|
-
*
|
|
33697
|
-
* ```typescript
|
|
33698
|
-
* let myDropDownItems = this.dropdown.items;
|
|
33699
|
-
* ```
|
|
33700
|
-
*/
|
|
33701
|
-
get items() {
|
|
33702
|
-
const items = [];
|
|
33703
|
-
if (this.children !== undefined) {
|
|
33704
|
-
const sortedChildren = this.sortedChildren;
|
|
33705
|
-
for (const child of sortedChildren) {
|
|
33706
|
-
if (!child.isHeader) {
|
|
33707
|
-
items.push(child);
|
|
33708
|
-
}
|
|
33709
|
-
}
|
|
33710
|
-
}
|
|
33711
|
-
return items;
|
|
33712
|
-
}
|
|
33713
|
-
/**
|
|
33714
|
-
* @hidden @internal
|
|
33715
|
-
*/
|
|
33716
|
-
onFocus() {
|
|
33717
|
-
this.focusedItem = this._focusedItem || this.items[0];
|
|
33718
|
-
}
|
|
33719
|
-
/**
|
|
33720
|
-
* @hidden @internal
|
|
33721
|
-
*/
|
|
33722
|
-
onBlur(_evt) {
|
|
33723
|
-
this.focusedItem = null;
|
|
33724
|
-
}
|
|
33725
|
-
/**
|
|
33726
|
-
* @hidden @internal
|
|
33727
|
-
*/
|
|
33728
|
-
onToggleOpened() {
|
|
33729
|
-
this.opened.emit();
|
|
33730
|
-
}
|
|
33731
|
-
/**
|
|
33732
|
-
* @hidden
|
|
33733
|
-
*/
|
|
33734
|
-
navigateFirst() {
|
|
33735
|
-
this.navigateItem(this.virtDir.igxForOf.findIndex(e => !e.isHeader));
|
|
33736
|
-
}
|
|
33737
|
-
/**
|
|
33738
|
-
* @hidden
|
|
33739
|
-
*/
|
|
33740
|
-
navigatePrev() {
|
|
33741
|
-
if (this._focusedItem && this._focusedItem.index === 0 && this.virtDir.state.startIndex === 0) {
|
|
33742
|
-
this.combo.focusSearchInput(false);
|
|
33743
|
-
}
|
|
33744
|
-
else {
|
|
33745
|
-
super.navigatePrev();
|
|
33746
|
-
}
|
|
33747
|
-
}
|
|
33748
|
-
/**
|
|
33749
|
-
* @hidden
|
|
33750
|
-
*/
|
|
33751
|
-
navigateNext() {
|
|
33752
|
-
const lastIndex = this.combo.totalItemCount ? this.combo.totalItemCount - 1 : this.virtDir.igxForOf.length - 1;
|
|
33753
|
-
if (this._focusedItem && this._focusedItem.index === lastIndex) {
|
|
33754
|
-
this.focusAddItemButton();
|
|
33755
|
-
}
|
|
33756
|
-
else {
|
|
33757
|
-
super.navigateNext();
|
|
33758
|
-
}
|
|
33759
|
-
}
|
|
33760
|
-
/**
|
|
33761
|
-
* @hidden @internal
|
|
33762
|
-
*/
|
|
33763
|
-
selectItem(item) {
|
|
33764
|
-
if (item === null || item === undefined) {
|
|
33765
|
-
return;
|
|
33766
|
-
}
|
|
33767
|
-
this.comboAPI.set_selected_item(item.itemID);
|
|
33768
|
-
this._focusedItem = item;
|
|
33769
|
-
}
|
|
33770
|
-
/**
|
|
33771
|
-
* @hidden @internal
|
|
33772
|
-
*/
|
|
33773
|
-
updateScrollPosition() {
|
|
33774
|
-
this.virtDir.getScroll().scrollTop = this._scrollPosition;
|
|
33775
|
-
}
|
|
33776
|
-
/**
|
|
33777
|
-
* @hidden @internal
|
|
33778
|
-
*/
|
|
33779
|
-
onItemActionKey(key) {
|
|
33780
|
-
switch (key) {
|
|
33781
|
-
case DropDownActionKey.ENTER:
|
|
33782
|
-
this.handleEnter();
|
|
33783
|
-
break;
|
|
33784
|
-
case DropDownActionKey.SPACE:
|
|
33785
|
-
this.handleSpace();
|
|
33786
|
-
break;
|
|
33787
|
-
case DropDownActionKey.ESCAPE:
|
|
33788
|
-
this.close();
|
|
33789
|
-
}
|
|
33790
|
-
}
|
|
33791
|
-
ngAfterViewInit() {
|
|
33792
|
-
this.virtDir.getScroll().addEventListener('scroll', this.scrollHandler);
|
|
33793
|
-
}
|
|
33794
|
-
/**
|
|
33795
|
-
* @hidden @internal
|
|
33796
|
-
*/
|
|
33797
|
-
ngOnDestroy() {
|
|
33798
|
-
this.virtDir.getScroll().removeEventListener('scroll', this.scrollHandler);
|
|
33799
|
-
this.destroy$.next(true);
|
|
33800
|
-
this.destroy$.complete();
|
|
33801
|
-
}
|
|
33802
|
-
scrollToHiddenItem(_newItem) { }
|
|
33803
|
-
handleEnter() {
|
|
33804
|
-
if (this.isAddItemFocused()) {
|
|
33805
|
-
this.combo.addItemToCollection();
|
|
33806
|
-
}
|
|
33807
|
-
else {
|
|
33808
|
-
this.close();
|
|
33809
|
-
}
|
|
33810
|
-
}
|
|
33811
|
-
handleSpace() {
|
|
33812
|
-
if (this.isAddItemFocused()) {
|
|
33813
|
-
return;
|
|
33814
|
-
}
|
|
33815
|
-
else {
|
|
33816
|
-
this.selectItem(this.focusedItem);
|
|
33817
|
-
}
|
|
33818
|
-
}
|
|
33819
|
-
isAddItemFocused() {
|
|
33820
|
-
return this.focusedItem instanceof IgxComboAddItemComponent;
|
|
33821
|
-
}
|
|
33822
|
-
focusAddItemButton() {
|
|
33823
|
-
if (this.combo.isAddButtonVisible()) {
|
|
33824
|
-
this.focusedItem = this.items[this.items.length - 1];
|
|
33825
|
-
}
|
|
33826
|
-
}
|
|
33827
|
-
}
|
|
33828
|
-
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 });
|
|
33829
|
-
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"] }] });
|
|
33830
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboDropDownComponent, decorators: [{
|
|
33831
|
-
type: Component,
|
|
33832
|
-
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" }]
|
|
33833
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: undefined, decorators: [{
|
|
33834
|
-
type: Inject,
|
|
33835
|
-
args: [IGX_COMBO_COMPONENT]
|
|
33836
|
-
}] }, { type: IgxComboAPIService }, { type: undefined, decorators: [{
|
|
33837
|
-
type: Optional
|
|
33838
|
-
}, {
|
|
33839
|
-
type: Inject,
|
|
33840
|
-
args: [DisplayDensityToken]
|
|
33841
|
-
}] }]; }, propDecorators: { children: [{
|
|
33842
|
-
type: ContentChildren,
|
|
33843
|
-
args: [IgxComboItemComponent, { descendants: true }]
|
|
33844
|
-
}] } });
|
|
33845
|
-
|
|
33846
|
-
/**
|
|
33847
|
-
* @hidden
|
|
33848
|
-
*/
|
|
33849
|
-
class IgxComboFilteringPipe {
|
|
33850
|
-
transform(collection, searchValue, displayKey, shouldFilter, filteringOptions) {
|
|
33851
|
-
if (!collection) {
|
|
33852
|
-
return [];
|
|
33853
|
-
}
|
|
33854
|
-
if (!searchValue || !shouldFilter) {
|
|
33855
|
-
return collection;
|
|
33856
|
-
}
|
|
33857
|
-
else {
|
|
33858
|
-
const searchTerm = filteringOptions.caseSensitive ? searchValue.trim() : searchValue.toLowerCase().trim();
|
|
33859
|
-
if (displayKey != null) {
|
|
33860
|
-
return collection.filter(e => filteringOptions.caseSensitive ? e[displayKey].includes(searchTerm) :
|
|
33861
|
-
e[displayKey].toString().toLowerCase().includes(searchTerm));
|
|
33862
|
-
}
|
|
33863
|
-
else {
|
|
33864
|
-
return collection.filter(e => filteringOptions.caseSensitive ? e.includes(searchTerm) :
|
|
33865
|
-
e.toLowerCase().includes(searchTerm));
|
|
33866
|
-
}
|
|
33867
|
-
}
|
|
33868
|
-
}
|
|
33869
|
-
}
|
|
33870
|
-
IgxComboFilteringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
33871
|
-
IgxComboFilteringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, name: "comboFiltering" });
|
|
33872
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, decorators: [{
|
|
33873
|
-
type: Pipe,
|
|
33874
|
-
args: [{
|
|
33875
|
-
name: 'comboFiltering'
|
|
33876
|
-
}]
|
|
33877
|
-
}] });
|
|
33878
|
-
/**
|
|
33879
|
-
* @hidden
|
|
33880
|
-
*/
|
|
33881
|
-
class IgxComboGroupingPipe {
|
|
33882
|
-
constructor(combo) {
|
|
33883
|
-
this.combo = combo;
|
|
33884
|
-
}
|
|
33885
|
-
transform(collection, groupKey, valueKey, sortingDirection) {
|
|
33886
|
-
this.combo.filteredData = collection;
|
|
33887
|
-
if ((!groupKey && groupKey !== 0) || !collection.length) {
|
|
33888
|
-
return collection;
|
|
33889
|
-
}
|
|
33890
|
-
const sorted = DataUtil.sort(cloneArray(collection), [{
|
|
33891
|
-
fieldName: groupKey,
|
|
33892
|
-
dir: sortingDirection,
|
|
33893
|
-
ignoreCase: true,
|
|
33894
|
-
strategy: DefaultSortingStrategy.instance()
|
|
33895
|
-
}]);
|
|
33896
|
-
const data = cloneArray(sorted);
|
|
33897
|
-
let inserts = 0;
|
|
33898
|
-
let currentHeader = null;
|
|
33899
|
-
for (let i = 0; i < sorted.length; i++) {
|
|
33900
|
-
let insertFlag = 0;
|
|
33901
|
-
if (currentHeader !== sorted[i][groupKey]) {
|
|
33902
|
-
currentHeader = sorted[i][groupKey];
|
|
33903
|
-
insertFlag = 1;
|
|
33904
|
-
}
|
|
33905
|
-
if (insertFlag) {
|
|
33906
|
-
data.splice(i + inserts, 0, {
|
|
33907
|
-
[valueKey]: currentHeader,
|
|
33908
|
-
[groupKey]: currentHeader,
|
|
33909
|
-
isHeader: true
|
|
33910
|
-
});
|
|
33911
|
-
inserts++;
|
|
33912
|
-
}
|
|
33913
|
-
}
|
|
33914
|
-
return data;
|
|
33915
|
-
}
|
|
33916
|
-
}
|
|
33917
|
-
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 });
|
|
33918
|
-
IgxComboGroupingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, name: "comboGrouping" });
|
|
33919
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, decorators: [{
|
|
33920
|
-
type: Pipe,
|
|
33921
|
-
args: [{
|
|
33922
|
-
name: 'comboGrouping'
|
|
33923
|
-
}]
|
|
33924
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
33925
|
-
type: Inject,
|
|
33926
|
-
args: [IGX_COMBO_COMPONENT]
|
|
33927
|
-
}] }]; } });
|
|
33928
|
-
|
|
33620
|
+
let NEXT_ID$d = 0;
|
|
33929
33621
|
/**
|
|
33930
33622
|
* @hidden
|
|
33623
|
+
* The default number of items that should be in the combo's
|
|
33624
|
+
* drop-down list if no `[itemsMaxHeight]` is specified
|
|
33931
33625
|
*/
|
|
33626
|
+
const itemsInContainer = 10; // TODO: make private readonly
|
|
33627
|
+
/** @hidden @internal */
|
|
33628
|
+
const ItemHeights = {
|
|
33629
|
+
comfortable: 40,
|
|
33630
|
+
cosy: 32,
|
|
33631
|
+
compact: 28,
|
|
33632
|
+
};
|
|
33633
|
+
/** @hidden @internal */
|
|
33932
33634
|
var DataTypes;
|
|
33933
33635
|
(function (DataTypes) {
|
|
33934
33636
|
DataTypes["EMPTY"] = "empty";
|
|
@@ -33936,20 +33638,6 @@ var DataTypes;
|
|
|
33936
33638
|
DataTypes["COMPLEX"] = "complex";
|
|
33937
33639
|
DataTypes["PRIMARYKEY"] = "valueKey";
|
|
33938
33640
|
})(DataTypes || (DataTypes = {}));
|
|
33939
|
-
/**
|
|
33940
|
-
* @hidden
|
|
33941
|
-
*/
|
|
33942
|
-
const ItemHeights = {
|
|
33943
|
-
comfortable: 40,
|
|
33944
|
-
cosy: 32,
|
|
33945
|
-
compact: 28,
|
|
33946
|
-
};
|
|
33947
|
-
/**
|
|
33948
|
-
* @hidden
|
|
33949
|
-
* The default number of items that should be in the combo's
|
|
33950
|
-
* drop-down list if no `[itemsMaxHeight]` is specified
|
|
33951
|
-
*/
|
|
33952
|
-
const itemsInContainer = 10;
|
|
33953
33641
|
var IgxComboState;
|
|
33954
33642
|
(function (IgxComboState) {
|
|
33955
33643
|
/**
|
|
@@ -33965,46 +33653,12 @@ var IgxComboState;
|
|
|
33965
33653
|
*/
|
|
33966
33654
|
IgxComboState[IgxComboState["INVALID"] = 2] = "INVALID";
|
|
33967
33655
|
})(IgxComboState || (IgxComboState = {}));
|
|
33968
|
-
|
|
33969
|
-
|
|
33970
|
-
*
|
|
33971
|
-
* @hidden
|
|
33972
|
-
*/
|
|
33973
|
-
const diffInSets = (set1, set2) => {
|
|
33974
|
-
const results = [];
|
|
33975
|
-
set1.forEach(entry => {
|
|
33976
|
-
if (!set2.has(entry)) {
|
|
33977
|
-
results.push(entry);
|
|
33978
|
-
}
|
|
33979
|
-
});
|
|
33980
|
-
return results;
|
|
33981
|
-
};
|
|
33982
|
-
let NEXT_ID$d = 0;
|
|
33983
|
-
/**
|
|
33984
|
-
* Represents a drop-down list that provides editable functionalities, allowing users to choose an option from a predefined list.
|
|
33985
|
-
*
|
|
33986
|
-
* @igxModule IgxComboModule
|
|
33987
|
-
* @igxTheme igx-combo-theme
|
|
33988
|
-
* @igxKeywords combobox, combo selection
|
|
33989
|
-
* @igxGroup Grids & Lists
|
|
33990
|
-
*
|
|
33991
|
-
* @remarks
|
|
33992
|
-
* It provides the ability to filter items as well as perform single or multiple seleciton with the provided data.
|
|
33993
|
-
* Additionally, it exposes keyboard navigation and custom styling capabilities.
|
|
33994
|
-
* @example
|
|
33995
|
-
* ```html
|
|
33996
|
-
* <igx-combo [itemsMaxHeight]="250" [data]="locationData"
|
|
33997
|
-
* [displayKey]="'field'" [valueKey]="'field'"
|
|
33998
|
-
* placeholder="Location(s)" searchPlaceholder="Search...">
|
|
33999
|
-
* </igx-combo>
|
|
34000
|
-
* ```
|
|
34001
|
-
*/
|
|
34002
|
-
class IgxComboComponent extends DisplayDensityBase {
|
|
34003
|
-
constructor(elementRef, cdr, selection, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector) {
|
|
33656
|
+
class IgxComboBaseDirective extends DisplayDensityBase {
|
|
33657
|
+
constructor(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector) {
|
|
34004
33658
|
super(_displayDensityOptions);
|
|
34005
33659
|
this.elementRef = elementRef;
|
|
34006
33660
|
this.cdr = cdr;
|
|
34007
|
-
this.
|
|
33661
|
+
this.selectionService = selectionService;
|
|
34008
33662
|
this.comboAPI = comboAPI;
|
|
34009
33663
|
this._iconService = _iconService;
|
|
34010
33664
|
this._displayDensityOptions = _displayDensityOptions;
|
|
@@ -34028,9 +33682,123 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34028
33682
|
*/
|
|
34029
33683
|
this.overlaySettings = null;
|
|
34030
33684
|
/**
|
|
34031
|
-
*
|
|
33685
|
+
* Gets/gets combo id.
|
|
33686
|
+
*
|
|
33687
|
+
* ```typescript
|
|
33688
|
+
* // get
|
|
33689
|
+
* let id = this.combo.id;
|
|
33690
|
+
* ```
|
|
33691
|
+
*
|
|
33692
|
+
* ```html
|
|
33693
|
+
* <!--set-->
|
|
33694
|
+
* <igx-combo [id]='combo1'></igx-combo>
|
|
33695
|
+
* ```
|
|
34032
33696
|
*/
|
|
34033
|
-
this.
|
|
33697
|
+
this.id = `igx-combo-${NEXT_ID$d++}`;
|
|
33698
|
+
/**
|
|
33699
|
+
* Controls whether custom values can be added to the collection
|
|
33700
|
+
*
|
|
33701
|
+
* ```typescript
|
|
33702
|
+
* // get
|
|
33703
|
+
* let comboAllowsCustomValues = this.combo.allowCustomValues;
|
|
33704
|
+
* ```
|
|
33705
|
+
*
|
|
33706
|
+
* ```html
|
|
33707
|
+
* <!--set-->
|
|
33708
|
+
* <igx-combo [allowCustomValues]='true'></igx-combo>
|
|
33709
|
+
* ```
|
|
33710
|
+
*/
|
|
33711
|
+
this.allowCustomValues = false;
|
|
33712
|
+
/**
|
|
33713
|
+
* Determines which column in the data source is used to determine the value.
|
|
33714
|
+
*
|
|
33715
|
+
* ```typescript
|
|
33716
|
+
* // get
|
|
33717
|
+
* let myComboValueKey = this.combo.valueKey;
|
|
33718
|
+
* ```
|
|
33719
|
+
*
|
|
33720
|
+
* ```html
|
|
33721
|
+
* <!--set-->
|
|
33722
|
+
* <igx-combo [valueKey]='myKey'></igx-combo>
|
|
33723
|
+
* ```
|
|
33724
|
+
*/
|
|
33725
|
+
this.valueKey = null;
|
|
33726
|
+
/** @hidden @internal */
|
|
33727
|
+
this.cssClass = 'igx-combo'; // Independent of display density for the time being
|
|
33728
|
+
/** @hidden @internal */
|
|
33729
|
+
this.role = 'combobox';
|
|
33730
|
+
/**
|
|
33731
|
+
* An @Input property that enabled/disables combo. The default is `false`.
|
|
33732
|
+
* ```html
|
|
33733
|
+
* <igx-combo [disabled]="'true'">
|
|
33734
|
+
* ```
|
|
33735
|
+
*/
|
|
33736
|
+
this.disabled = false;
|
|
33737
|
+
/**
|
|
33738
|
+
* Emitted when item selection is changing, before the selection completes
|
|
33739
|
+
*
|
|
33740
|
+
* ```html
|
|
33741
|
+
* <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
|
|
33742
|
+
* ```
|
|
33743
|
+
*/
|
|
33744
|
+
// TODO: any for old/new selection?
|
|
33745
|
+
this.selectionChanging = new EventEmitter();
|
|
33746
|
+
/**
|
|
33747
|
+
* Emitted before the dropdown is opened
|
|
33748
|
+
*
|
|
33749
|
+
* ```html
|
|
33750
|
+
* <igx-combo opening='handleOpening($event)'></igx-combo>
|
|
33751
|
+
* ```
|
|
33752
|
+
*/
|
|
33753
|
+
this.opening = new EventEmitter();
|
|
33754
|
+
/**
|
|
33755
|
+
* Emitted after the dropdown is opened
|
|
33756
|
+
*
|
|
33757
|
+
* ```html
|
|
33758
|
+
* <igx-combo (opened)='handleOpened($event)'></igx-combo>
|
|
33759
|
+
* ```
|
|
33760
|
+
*/
|
|
33761
|
+
this.opened = new EventEmitter();
|
|
33762
|
+
/**
|
|
33763
|
+
* Emitted before the dropdown is closed
|
|
33764
|
+
*
|
|
33765
|
+
* ```html
|
|
33766
|
+
* <igx-combo (closing)='handleClosing($event)'></igx-combo>
|
|
33767
|
+
* ```
|
|
33768
|
+
*/
|
|
33769
|
+
this.closing = new EventEmitter();
|
|
33770
|
+
/**
|
|
33771
|
+
* Emitted after the dropdown is closed
|
|
33772
|
+
*
|
|
33773
|
+
* ```html
|
|
33774
|
+
* <igx-combo (closed)='handleClosed($event)'></igx-combo>
|
|
33775
|
+
* ```
|
|
33776
|
+
*/
|
|
33777
|
+
this.closed = new EventEmitter();
|
|
33778
|
+
/**
|
|
33779
|
+
* Emitted when an item is being added to the data collection
|
|
33780
|
+
*
|
|
33781
|
+
* ```html
|
|
33782
|
+
* <igx-combo (addition)='handleAdditionEvent($event)'></igx-combo>
|
|
33783
|
+
* ```
|
|
33784
|
+
*/
|
|
33785
|
+
this.addition = new EventEmitter();
|
|
33786
|
+
/**
|
|
33787
|
+
* Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)
|
|
33788
|
+
*
|
|
33789
|
+
* ```html
|
|
33790
|
+
* <igx-combo (searchInputUpdate)='handleSearchInputEvent($event)'></igx-combo>
|
|
33791
|
+
* ```
|
|
33792
|
+
*/
|
|
33793
|
+
this.searchInputUpdate = new EventEmitter();
|
|
33794
|
+
/**
|
|
33795
|
+
* Emitted when new chunk of data is loaded from the virtualization
|
|
33796
|
+
*
|
|
33797
|
+
* ```html
|
|
33798
|
+
* <igx-combo (dataPreLoad)='handleDataPreloadEvent($event)'></igx-combo>
|
|
33799
|
+
* ```
|
|
33800
|
+
*/
|
|
33801
|
+
this.dataPreLoad = new EventEmitter();
|
|
34034
33802
|
/**
|
|
34035
33803
|
* The custom template, if any, that should be used when rendering ITEMS in the combo list
|
|
34036
33804
|
*
|
|
@@ -34194,207 +33962,34 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34194
33962
|
* ```
|
|
34195
33963
|
*/
|
|
34196
33964
|
this.clearIconTemplate = null;
|
|
34197
|
-
/**
|
|
34198
|
-
|
|
34199
|
-
*
|
|
34200
|
-
* ```html
|
|
34201
|
-
* <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
|
|
34202
|
-
* ```
|
|
34203
|
-
*/
|
|
34204
|
-
this.selectionChanging = new EventEmitter();
|
|
34205
|
-
/**
|
|
34206
|
-
* Emitted before the dropdown is opened
|
|
34207
|
-
*
|
|
34208
|
-
* ```html
|
|
34209
|
-
* <igx-combo opening='handleOpening($event)'></igx-combo>
|
|
34210
|
-
* ```
|
|
34211
|
-
*/
|
|
34212
|
-
this.opening = new EventEmitter();
|
|
34213
|
-
/**
|
|
34214
|
-
* Emitted after the dropdown is opened
|
|
34215
|
-
*
|
|
34216
|
-
* ```html
|
|
34217
|
-
* <igx-combo (opened)='handleOpened($event)'></igx-combo>
|
|
34218
|
-
* ```
|
|
34219
|
-
*/
|
|
34220
|
-
this.opened = new EventEmitter();
|
|
34221
|
-
/**
|
|
34222
|
-
* Emitted before the dropdown is closed
|
|
34223
|
-
*
|
|
34224
|
-
* ```html
|
|
34225
|
-
* <igx-combo (closing)='handleClosing($event)'></igx-combo>
|
|
34226
|
-
* ```
|
|
34227
|
-
*/
|
|
34228
|
-
this.closing = new EventEmitter();
|
|
34229
|
-
/**
|
|
34230
|
-
* Emitted after the dropdown is closed
|
|
34231
|
-
*
|
|
34232
|
-
* ```html
|
|
34233
|
-
* <igx-combo (closed)='handleClosed($event)'></igx-combo>
|
|
34234
|
-
* ```
|
|
34235
|
-
*/
|
|
34236
|
-
this.closed = new EventEmitter();
|
|
34237
|
-
/**
|
|
34238
|
-
* Emitted when an item is being added to the data collection
|
|
34239
|
-
*
|
|
34240
|
-
* ```html
|
|
34241
|
-
* <igx-combo (addition)='handleAdditionEvent($event)'></igx-combo>
|
|
34242
|
-
* ```
|
|
34243
|
-
*/
|
|
34244
|
-
this.addition = new EventEmitter();
|
|
34245
|
-
/**
|
|
34246
|
-
* Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)
|
|
34247
|
-
*
|
|
34248
|
-
* ```html
|
|
34249
|
-
* <igx-combo (searchInputUpdate)='handleSearchInputEvent($event)'></igx-combo>
|
|
34250
|
-
* ```
|
|
34251
|
-
*/
|
|
34252
|
-
this.searchInputUpdate = new EventEmitter();
|
|
34253
|
-
/**
|
|
34254
|
-
* Emitted when new chunk of data is loaded from the virtualization
|
|
34255
|
-
*
|
|
34256
|
-
* ```html
|
|
34257
|
-
* <igx-combo (dataPreLoad)='handleDataPreloadEvent($event)'></igx-combo>
|
|
34258
|
-
* ```
|
|
34259
|
-
*/
|
|
34260
|
-
this.dataPreLoad = new EventEmitter();
|
|
34261
|
-
/**
|
|
34262
|
-
* Gets/gets combo id.
|
|
34263
|
-
*
|
|
34264
|
-
* ```typescript
|
|
34265
|
-
* // get
|
|
34266
|
-
* let id = this.combo.id;
|
|
34267
|
-
* ```
|
|
34268
|
-
*
|
|
34269
|
-
* ```html
|
|
34270
|
-
* <!--set-->
|
|
34271
|
-
* <igx-combo [id]='combo1'></igx-combo>
|
|
34272
|
-
* ```
|
|
34273
|
-
*/
|
|
34274
|
-
this.id = `igx-combo-${NEXT_ID$d++}`;
|
|
34275
|
-
/**
|
|
34276
|
-
* @hidden @internal
|
|
34277
|
-
*/
|
|
34278
|
-
this.cssClass = 'igx-combo'; // Independent of display density, at the time being
|
|
34279
|
-
/**
|
|
34280
|
-
* @hidden @internal
|
|
34281
|
-
*/
|
|
34282
|
-
this.role = 'combobox';
|
|
34283
|
-
/**
|
|
34284
|
-
* Controls whether custom values can be added to the collection
|
|
34285
|
-
*
|
|
34286
|
-
* ```typescript
|
|
34287
|
-
* // get
|
|
34288
|
-
* let comboAllowsCustomValues = this.combo.allowCustomValues;
|
|
34289
|
-
* ```
|
|
34290
|
-
*
|
|
34291
|
-
* ```html
|
|
34292
|
-
* <!--set-->
|
|
34293
|
-
* <igx-combo [allowCustomValues]='true'></igx-combo>
|
|
34294
|
-
* ```
|
|
34295
|
-
*/
|
|
34296
|
-
this.allowCustomValues = false;
|
|
34297
|
-
/**
|
|
34298
|
-
* Defines the placeholder value for the combo dropdown search field
|
|
34299
|
-
*
|
|
34300
|
-
* ```typescript
|
|
34301
|
-
* // get
|
|
34302
|
-
* let myComboSearchPlaceholder = this.combo.searchPlaceholder;
|
|
34303
|
-
* ```
|
|
34304
|
-
*
|
|
34305
|
-
* ```html
|
|
34306
|
-
* <!--set-->
|
|
34307
|
-
* <igx-combo [searchPlaceholder]='newPlaceHolder'></igx-combo>
|
|
34308
|
-
* ```
|
|
34309
|
-
*/
|
|
34310
|
-
this.searchPlaceholder = 'Enter a Search Term';
|
|
34311
|
-
/**
|
|
34312
|
-
* Defines whether the caseSensitive icon should be shown in the search input
|
|
34313
|
-
*
|
|
34314
|
-
* ```typescript
|
|
34315
|
-
* // get
|
|
34316
|
-
* let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
|
|
34317
|
-
* ```
|
|
34318
|
-
*
|
|
34319
|
-
* ```html
|
|
34320
|
-
* <!--set-->
|
|
34321
|
-
* <igx-combo [showSearchCaseIcon]='true'></igx-combo>
|
|
34322
|
-
* ```
|
|
34323
|
-
*/
|
|
34324
|
-
this.showSearchCaseIcon = false;
|
|
34325
|
-
/**
|
|
34326
|
-
* Combo value data source property.
|
|
34327
|
-
*
|
|
34328
|
-
* ```typescript
|
|
34329
|
-
* // get
|
|
34330
|
-
* let myComboValueKey = this.combo.valueKey;
|
|
34331
|
-
* ```
|
|
34332
|
-
*
|
|
34333
|
-
* ```html
|
|
34334
|
-
* <!--set-->
|
|
34335
|
-
* <igx-combo [valueKey]='myKey'></igx-combo>
|
|
34336
|
-
* ```
|
|
34337
|
-
*/
|
|
34338
|
-
this.valueKey = null;
|
|
34339
|
-
/**
|
|
34340
|
-
* An @Input property that enabled/disables filtering in the list. The default is `true`.
|
|
34341
|
-
* ```html
|
|
34342
|
-
* <igx-combo [filterable]="false">
|
|
34343
|
-
* ```
|
|
34344
|
-
*/
|
|
34345
|
-
this.filterable = true;
|
|
34346
|
-
/**
|
|
34347
|
-
* An @Input property that enabled/disables combo. The default is `false`.
|
|
34348
|
-
* ```html
|
|
34349
|
-
* <igx-combo [disabled]="'true'">
|
|
34350
|
-
* ```
|
|
34351
|
-
*/
|
|
34352
|
-
this.disabled = false;
|
|
34353
|
-
/**
|
|
34354
|
-
* An @Input property that controls whether the combo's search box
|
|
34355
|
-
* should be focused after the `opened` event is called
|
|
34356
|
-
* When `false`, the combo's list item container will be focused instead
|
|
34357
|
-
*/
|
|
34358
|
-
this.autoFocusSearch = true;
|
|
33965
|
+
/** @hidden @internal */
|
|
33966
|
+
this.searchInput = null;
|
|
34359
33967
|
this.dropdownContainer = null;
|
|
34360
|
-
/**
|
|
34361
|
-
* @hidden @internal
|
|
34362
|
-
*/
|
|
33968
|
+
/** @hidden @internal */
|
|
34363
33969
|
this.customValueFlag = true;
|
|
34364
|
-
/**
|
|
34365
|
-
|
|
34366
|
-
|
|
33970
|
+
/** @hidden @internal */
|
|
33971
|
+
this.filterValue = '';
|
|
33972
|
+
/** @hidden @internal */
|
|
34367
33973
|
this.defaultFallbackGroup = 'Other';
|
|
34368
|
-
/**
|
|
34369
|
-
* @hidden @internal
|
|
34370
|
-
*/
|
|
33974
|
+
/** @hidden @internal */
|
|
34371
33975
|
this.filteringOptions = {
|
|
34372
33976
|
caseSensitive: false
|
|
34373
33977
|
};
|
|
34374
|
-
|
|
34375
|
-
|
|
34376
|
-
*/
|
|
34377
|
-
this.filteringLogic = FilteringLogic.Or;
|
|
34378
|
-
/** @hidden @internal */
|
|
34379
|
-
this.filterValue = '';
|
|
34380
|
-
this.stringFilters = IgxStringFilteringOperand;
|
|
34381
|
-
this.booleanFilters = IgxBooleanFilteringOperand;
|
|
33978
|
+
this._data = [];
|
|
33979
|
+
this._value = '';
|
|
34382
33980
|
this._groupKey = '';
|
|
34383
|
-
this.
|
|
34384
|
-
this.
|
|
34385
|
-
this.
|
|
34386
|
-
this._type = null;
|
|
33981
|
+
this._filteredData = [];
|
|
33982
|
+
this._remoteSelection = {};
|
|
33983
|
+
this._valid = IgxComboState.INITIAL;
|
|
34387
33984
|
this.ngControl = null;
|
|
34388
33985
|
this.destroy$ = new Subject();
|
|
34389
|
-
this.
|
|
34390
|
-
this.
|
|
33986
|
+
this._onTouchedCallback = noop;
|
|
33987
|
+
this._onChangeCallback = noop;
|
|
33988
|
+
this._type = null;
|
|
33989
|
+
this._dataType = '';
|
|
33990
|
+
this._searchValue = '';
|
|
34391
33991
|
this._itemHeight = null;
|
|
34392
33992
|
this._itemsMaxHeight = null;
|
|
34393
|
-
this._remoteSelection = {};
|
|
34394
|
-
this._onChangeCallback = noop;
|
|
34395
|
-
this._onTouchedCallback = noop;
|
|
34396
|
-
this._value = '';
|
|
34397
|
-
this._valid = IgxComboState.INITIAL;
|
|
34398
33993
|
this._groupSortingDirection = SortingDirection.Asc;
|
|
34399
33994
|
this.onStatusChanged = () => {
|
|
34400
33995
|
if ((this.ngControl.control.touched || this.ngControl.control.dirty) &&
|
|
@@ -34412,31 +34007,10 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34412
34007
|
}
|
|
34413
34008
|
this.manageRequiredAsterisk();
|
|
34414
34009
|
};
|
|
34415
|
-
this.
|
|
34416
|
-
|
|
34417
|
-
|
|
34418
|
-
|
|
34419
|
-
*/
|
|
34420
|
-
get displaySearchInput() {
|
|
34421
|
-
return this.filterable || this.allowCustomValues;
|
|
34422
|
-
}
|
|
34423
|
-
/**
|
|
34424
|
-
* @hidden @internal
|
|
34425
|
-
*/
|
|
34426
|
-
get ariaExpanded() {
|
|
34427
|
-
return !this.dropdown.collapsed;
|
|
34428
|
-
}
|
|
34429
|
-
/**
|
|
34430
|
-
* @hidden @internal
|
|
34431
|
-
*/
|
|
34432
|
-
get hasPopUp() {
|
|
34433
|
-
return 'listbox';
|
|
34434
|
-
}
|
|
34435
|
-
/**
|
|
34436
|
-
* @hidden @internal
|
|
34437
|
-
*/
|
|
34438
|
-
get ariaOwns() {
|
|
34439
|
-
return this.dropdown.id;
|
|
34010
|
+
this.findMatch = (element) => {
|
|
34011
|
+
const value = this.displayKey ? element[this.displayKey] : element;
|
|
34012
|
+
return value.toString().toLowerCase() === this.searchValue.trim().toLowerCase();
|
|
34013
|
+
};
|
|
34440
34014
|
}
|
|
34441
34015
|
/**
|
|
34442
34016
|
* Configures the drop down list height
|
|
@@ -34482,12 +34056,6 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34482
34056
|
set itemHeight(val) {
|
|
34483
34057
|
this._itemHeight = val;
|
|
34484
34058
|
}
|
|
34485
|
-
/**
|
|
34486
|
-
* @hidden @internal
|
|
34487
|
-
*/
|
|
34488
|
-
get inputEmpty() {
|
|
34489
|
-
return !this.value && !this.placeholder;
|
|
34490
|
-
}
|
|
34491
34059
|
/**
|
|
34492
34060
|
* Combo data source.
|
|
34493
34061
|
*
|
|
@@ -34506,7 +34074,7 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34506
34074
|
this._displayKey = val;
|
|
34507
34075
|
}
|
|
34508
34076
|
/**
|
|
34509
|
-
*
|
|
34077
|
+
* Determines which column in the data source is used to determine the display value.
|
|
34510
34078
|
*
|
|
34511
34079
|
* ```typescript
|
|
34512
34080
|
* // get
|
|
@@ -34564,6 +34132,18 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34564
34132
|
set groupSortingDirection(val) {
|
|
34565
34133
|
this._groupSortingDirection = val;
|
|
34566
34134
|
}
|
|
34135
|
+
/** @hidden @internal */
|
|
34136
|
+
get ariaExpanded() {
|
|
34137
|
+
return !this.dropdown.collapsed;
|
|
34138
|
+
}
|
|
34139
|
+
/** @hidden @internal */
|
|
34140
|
+
get hasPopUp() {
|
|
34141
|
+
return 'listbox';
|
|
34142
|
+
}
|
|
34143
|
+
/** @hidden @internal */
|
|
34144
|
+
get ariaOwns() {
|
|
34145
|
+
return this.dropdown.id;
|
|
34146
|
+
}
|
|
34567
34147
|
/**
|
|
34568
34148
|
* An @Input property that sets how the combo will be styled.
|
|
34569
34149
|
* The allowed values are `line`, `box`, `border` and `search`. The default is `box`.
|
|
@@ -34577,6 +34157,27 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34577
34157
|
set type(val) {
|
|
34578
34158
|
this._type = val;
|
|
34579
34159
|
}
|
|
34160
|
+
/** @hidden @internal */
|
|
34161
|
+
get searchValue() {
|
|
34162
|
+
return this._searchValue;
|
|
34163
|
+
}
|
|
34164
|
+
set searchValue(val) {
|
|
34165
|
+
this.filterValue = val;
|
|
34166
|
+
this._searchValue = val;
|
|
34167
|
+
}
|
|
34168
|
+
/** @hidden @internal */
|
|
34169
|
+
get isRemote() {
|
|
34170
|
+
return this.totalItemCount > 0 &&
|
|
34171
|
+
this.valueKey &&
|
|
34172
|
+
this.dataType === DataTypes.COMPLEX;
|
|
34173
|
+
}
|
|
34174
|
+
/** @hidden @internal */
|
|
34175
|
+
get dataType() {
|
|
34176
|
+
if (this.displayKey) {
|
|
34177
|
+
return DataTypes.COMPLEX;
|
|
34178
|
+
}
|
|
34179
|
+
return DataTypes.PRIMITIVE;
|
|
34180
|
+
}
|
|
34580
34181
|
/**
|
|
34581
34182
|
* Gets if control is valid, when used in a form
|
|
34582
34183
|
*
|
|
@@ -34601,32 +34202,15 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34601
34202
|
this.comboInput.valid = IgxInputState[IgxComboState[valid]];
|
|
34602
34203
|
}
|
|
34603
34204
|
/**
|
|
34604
|
-
*
|
|
34605
|
-
|
|
34606
|
-
|
|
34607
|
-
|
|
34608
|
-
|
|
34609
|
-
|
|
34610
|
-
this.filterValue = val;
|
|
34611
|
-
this._searchValue = val;
|
|
34612
|
-
}
|
|
34613
|
-
/**
|
|
34614
|
-
* @hidden @internal
|
|
34615
|
-
*/
|
|
34616
|
-
onArrowDown(event) {
|
|
34617
|
-
event.preventDefault();
|
|
34618
|
-
event.stopPropagation();
|
|
34619
|
-
this.open();
|
|
34620
|
-
}
|
|
34621
|
-
/**
|
|
34622
|
-
* @hidden @internal
|
|
34205
|
+
* The text displayed in the combo input
|
|
34206
|
+
*
|
|
34207
|
+
* ```typescript
|
|
34208
|
+
* // get
|
|
34209
|
+
* let comboValue = this.combo.value;
|
|
34210
|
+
* ```
|
|
34623
34211
|
*/
|
|
34624
|
-
|
|
34625
|
-
|
|
34626
|
-
event.preventDefault();
|
|
34627
|
-
if (!this.disabled) {
|
|
34628
|
-
this.toggle();
|
|
34629
|
-
}
|
|
34212
|
+
get value() {
|
|
34213
|
+
return this._value;
|
|
34630
34214
|
}
|
|
34631
34215
|
/**
|
|
34632
34216
|
* Defines the current state of the virtualized data. It contains `startIndex` and `chunkSize`
|
|
@@ -34650,6 +34234,16 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34650
34234
|
set virtualizationState(state) {
|
|
34651
34235
|
this.virtDir.state = state;
|
|
34652
34236
|
}
|
|
34237
|
+
/**
|
|
34238
|
+
* Gets drop down state.
|
|
34239
|
+
*
|
|
34240
|
+
* ```typescript
|
|
34241
|
+
* let state = this.combo.collapsed;
|
|
34242
|
+
* ```
|
|
34243
|
+
*/
|
|
34244
|
+
get collapsed() {
|
|
34245
|
+
return this.dropdown.collapsed;
|
|
34246
|
+
}
|
|
34653
34247
|
/**
|
|
34654
34248
|
* Gets total count of the virtual data items, when using remote service.
|
|
34655
34249
|
*
|
|
@@ -34672,34 +34266,865 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34672
34266
|
set totalItemCount(count) {
|
|
34673
34267
|
this.virtDir.totalItemCount = count;
|
|
34674
34268
|
}
|
|
34269
|
+
/** @hidden @internal */
|
|
34270
|
+
get template() {
|
|
34271
|
+
this._dataType = this.dataType;
|
|
34272
|
+
if (this.itemTemplate) {
|
|
34273
|
+
return this.itemTemplate;
|
|
34274
|
+
}
|
|
34275
|
+
if (this._dataType === DataTypes.COMPLEX) {
|
|
34276
|
+
return this.complexTemplate;
|
|
34277
|
+
}
|
|
34278
|
+
return this.primitiveTemplate;
|
|
34279
|
+
}
|
|
34280
|
+
/** @hidden @internal */
|
|
34281
|
+
onArrowDown(event) {
|
|
34282
|
+
event.preventDefault();
|
|
34283
|
+
event.stopPropagation();
|
|
34284
|
+
this.open();
|
|
34285
|
+
}
|
|
34286
|
+
/** @hidden @internal */
|
|
34287
|
+
ngOnInit() {
|
|
34288
|
+
this.ngControl = this._injector.get(NgControl, null);
|
|
34289
|
+
const targetElement = this.elementRef.nativeElement;
|
|
34290
|
+
this._overlaySettings = {
|
|
34291
|
+
target: targetElement,
|
|
34292
|
+
scrollStrategy: new AbsoluteScrollStrategy(),
|
|
34293
|
+
positionStrategy: new AutoPositionStrategy(),
|
|
34294
|
+
modal: false,
|
|
34295
|
+
closeOnOutsideClick: true,
|
|
34296
|
+
excludeFromOutsideClick: [targetElement]
|
|
34297
|
+
};
|
|
34298
|
+
this.selectionService.set(this.id, new Set());
|
|
34299
|
+
this._iconService.addSvgIconFromText(caseSensitive.name, caseSensitive.value, 'imx-icons');
|
|
34300
|
+
}
|
|
34301
|
+
/** @hidden @internal */
|
|
34302
|
+
ngAfterViewInit() {
|
|
34303
|
+
this.filteredData = [...this.data];
|
|
34304
|
+
if (this.ngControl) {
|
|
34305
|
+
this.ngControl.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(this.onStatusChanged);
|
|
34306
|
+
this.manageRequiredAsterisk();
|
|
34307
|
+
this.cdr.detectChanges();
|
|
34308
|
+
}
|
|
34309
|
+
this.virtDir.chunkPreload.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
34310
|
+
const eventArgs = Object.assign({}, e, { owner: this });
|
|
34311
|
+
this.dataPreLoad.emit(eventArgs);
|
|
34312
|
+
});
|
|
34313
|
+
}
|
|
34314
|
+
/** @hidden @internal */
|
|
34315
|
+
ngOnDestroy() {
|
|
34316
|
+
this.destroy$.next();
|
|
34317
|
+
this.destroy$.complete();
|
|
34318
|
+
this.comboAPI.clear();
|
|
34319
|
+
this.selectionService.clear(this.id);
|
|
34320
|
+
}
|
|
34675
34321
|
/**
|
|
34676
|
-
*
|
|
34322
|
+
* A method that opens/closes the combo.
|
|
34677
34323
|
*
|
|
34678
|
-
* ```
|
|
34679
|
-
*
|
|
34680
|
-
*
|
|
34324
|
+
* ```html
|
|
34325
|
+
* <button (click)="combo.toggle()">Toggle Combo</button>
|
|
34326
|
+
* <igx-combo #combo></igx-combo>
|
|
34681
34327
|
* ```
|
|
34682
34328
|
*/
|
|
34683
|
-
|
|
34684
|
-
|
|
34329
|
+
toggle() {
|
|
34330
|
+
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
34331
|
+
this.dropdown.toggle(overlaySettings);
|
|
34685
34332
|
}
|
|
34686
34333
|
/**
|
|
34687
|
-
*
|
|
34334
|
+
* A method that opens the combo.
|
|
34335
|
+
*
|
|
34336
|
+
* ```html
|
|
34337
|
+
* <button (click)="combo.open()">Open Combo</button>
|
|
34338
|
+
* <igx-combo #combo></igx-combo>
|
|
34339
|
+
* ```
|
|
34688
34340
|
*/
|
|
34689
|
-
|
|
34690
|
-
|
|
34341
|
+
open() {
|
|
34342
|
+
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
34343
|
+
this.dropdown.open(overlaySettings);
|
|
34691
34344
|
}
|
|
34692
34345
|
/**
|
|
34693
|
-
*
|
|
34346
|
+
* A method that closes the combo.
|
|
34347
|
+
*
|
|
34348
|
+
* ```html
|
|
34349
|
+
* <button (click)="combo.close()">Close Combo</button>
|
|
34350
|
+
* <igx-combo #combo></igx-combo>
|
|
34351
|
+
* ```
|
|
34694
34352
|
*/
|
|
34695
|
-
|
|
34696
|
-
this.
|
|
34353
|
+
close() {
|
|
34354
|
+
this.dropdown.close();
|
|
34355
|
+
}
|
|
34356
|
+
/**
|
|
34357
|
+
* Triggers change detection on the combo view
|
|
34358
|
+
*/
|
|
34359
|
+
triggerCheck() {
|
|
34360
|
+
this.cdr.detectChanges();
|
|
34361
|
+
}
|
|
34362
|
+
/**
|
|
34363
|
+
* Get current selection state
|
|
34364
|
+
*
|
|
34365
|
+
* @returns Array of selected items
|
|
34366
|
+
* ```typescript
|
|
34367
|
+
* let selectedItems = this.combo.selectedItems();
|
|
34368
|
+
* ```
|
|
34369
|
+
*/
|
|
34370
|
+
get selection() {
|
|
34371
|
+
const items = Array.from(this.selectionService.get(this.id));
|
|
34372
|
+
return items;
|
|
34373
|
+
}
|
|
34374
|
+
/**
|
|
34375
|
+
* Returns if the specified itemID is selected
|
|
34376
|
+
*
|
|
34377
|
+
* @hidden
|
|
34378
|
+
* @internal
|
|
34379
|
+
*/
|
|
34380
|
+
isItemSelected(item) {
|
|
34381
|
+
return this.selectionService.is_item_selected(this.id, item);
|
|
34382
|
+
}
|
|
34383
|
+
/** @hidden @internal */
|
|
34384
|
+
addItemToCollection() {
|
|
34385
|
+
if (!this.searchValue) {
|
|
34386
|
+
return;
|
|
34387
|
+
}
|
|
34388
|
+
const newValue = this.searchValue.trim();
|
|
34389
|
+
const addedItem = this.displayKey ? {
|
|
34390
|
+
[this.valueKey]: newValue,
|
|
34391
|
+
[this.displayKey]: newValue
|
|
34392
|
+
} : newValue;
|
|
34393
|
+
if (this.groupKey) {
|
|
34394
|
+
Object.assign(addedItem, { [this.groupKey]: this.defaultFallbackGroup });
|
|
34395
|
+
}
|
|
34396
|
+
// expose shallow copy instead of this.data in event args so this.data can't be mutated
|
|
34397
|
+
const oldCollection = [...this.data];
|
|
34398
|
+
const newCollection = [...this.data, addedItem];
|
|
34399
|
+
const args = {
|
|
34400
|
+
oldCollection, addedItem, newCollection, owner: this, cancel: false
|
|
34401
|
+
};
|
|
34402
|
+
this.addition.emit(args);
|
|
34403
|
+
if (args.cancel) {
|
|
34404
|
+
return;
|
|
34405
|
+
}
|
|
34406
|
+
this.data.push(args.addedItem);
|
|
34407
|
+
// trigger re-render
|
|
34408
|
+
this.data = cloneArray(this.data);
|
|
34409
|
+
this.select(this.valueKey !== null && this.valueKey !== undefined ?
|
|
34410
|
+
[args.addedItem[this.valueKey]] : [args.addedItem], false);
|
|
34411
|
+
this.customValueFlag = false;
|
|
34412
|
+
this.searchInput?.nativeElement.focus();
|
|
34413
|
+
this.dropdown.focusedItem = null;
|
|
34414
|
+
this.virtDir.scrollTo(0);
|
|
34415
|
+
}
|
|
34416
|
+
/** @hidden @internal */
|
|
34417
|
+
isAddButtonVisible() {
|
|
34418
|
+
// This should always return a boolean value. If this.searchValue was '', it returns '' instead of false;
|
|
34419
|
+
return this.searchValue !== '' && this.customValueFlag;
|
|
34420
|
+
}
|
|
34421
|
+
/** @hidden @internal */
|
|
34422
|
+
handleInputChange(event) {
|
|
34423
|
+
if (event !== undefined) {
|
|
34424
|
+
const args = {
|
|
34425
|
+
searchText: typeof event === 'string' ? event : event.target.value,
|
|
34426
|
+
owner: this,
|
|
34427
|
+
cancel: false
|
|
34428
|
+
};
|
|
34429
|
+
this.searchInputUpdate.emit(args);
|
|
34430
|
+
if (args.cancel) {
|
|
34431
|
+
this.filterValue = null;
|
|
34432
|
+
}
|
|
34433
|
+
}
|
|
34434
|
+
this.checkMatch();
|
|
34435
|
+
}
|
|
34436
|
+
/**
|
|
34437
|
+
* Event handlers
|
|
34438
|
+
*
|
|
34439
|
+
* @hidden
|
|
34440
|
+
* @internal
|
|
34441
|
+
*/
|
|
34442
|
+
handleOpening(e) {
|
|
34443
|
+
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
34444
|
+
this.opening.emit(args);
|
|
34445
|
+
e.cancel = args.cancel;
|
|
34446
|
+
}
|
|
34447
|
+
/** @hidden @internal */
|
|
34448
|
+
handleClosing(e) {
|
|
34449
|
+
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
34450
|
+
this.closing.emit(args);
|
|
34451
|
+
e.cancel = args.cancel;
|
|
34452
|
+
if (e.cancel) {
|
|
34453
|
+
return;
|
|
34454
|
+
}
|
|
34455
|
+
this.searchValue = '';
|
|
34456
|
+
if (!e.event) {
|
|
34457
|
+
this.comboInput?.nativeElement.focus();
|
|
34458
|
+
}
|
|
34459
|
+
}
|
|
34460
|
+
/** @hidden @internal */
|
|
34461
|
+
handleClosed() {
|
|
34462
|
+
this.closed.emit({ owner: this });
|
|
34463
|
+
}
|
|
34464
|
+
/** @hidden @internal */
|
|
34465
|
+
handleKeyDown(event) {
|
|
34466
|
+
if (event.key === 'ArrowUp' || event.key === 'Up') {
|
|
34467
|
+
event.preventDefault();
|
|
34468
|
+
event.stopPropagation();
|
|
34469
|
+
this.close();
|
|
34470
|
+
}
|
|
34471
|
+
}
|
|
34472
|
+
/** @hidden @internal */
|
|
34473
|
+
registerOnChange(fn) {
|
|
34474
|
+
this._onChangeCallback = fn;
|
|
34475
|
+
}
|
|
34476
|
+
/** @hidden @internal */
|
|
34477
|
+
registerOnTouched(fn) {
|
|
34478
|
+
this._onTouchedCallback = fn;
|
|
34479
|
+
}
|
|
34480
|
+
/** @hidden @internal */
|
|
34481
|
+
setDisabledState(isDisabled) {
|
|
34482
|
+
this.disabled = isDisabled;
|
|
34483
|
+
}
|
|
34484
|
+
/** @hidden @internal */
|
|
34485
|
+
onClick(event) {
|
|
34486
|
+
event.stopPropagation();
|
|
34487
|
+
event.preventDefault();
|
|
34488
|
+
if (!this.disabled) {
|
|
34489
|
+
this.toggle();
|
|
34490
|
+
}
|
|
34491
|
+
}
|
|
34492
|
+
/** @hidden @internal */
|
|
34493
|
+
onBlur() {
|
|
34494
|
+
if (this.collapsed) {
|
|
34495
|
+
this._onTouchedCallback();
|
|
34496
|
+
if (this.ngControl && this.ngControl.invalid) {
|
|
34497
|
+
this.valid = IgxComboState.INVALID;
|
|
34498
|
+
}
|
|
34499
|
+
else {
|
|
34500
|
+
this.valid = IgxComboState.INITIAL;
|
|
34501
|
+
}
|
|
34502
|
+
}
|
|
34503
|
+
}
|
|
34504
|
+
/** if there is a valueKey - map the keys to data items, else - just return the keys */
|
|
34505
|
+
convertKeysToItems(keys) {
|
|
34506
|
+
if (this.comboAPI.valueKey === null) {
|
|
34507
|
+
return keys;
|
|
34508
|
+
}
|
|
34509
|
+
// map keys vs. filter data to retain the order of the selected items
|
|
34510
|
+
return keys.map(key => this.data.find(entry => entry[this.valueKey] === key)).filter(e => e !== undefined);
|
|
34511
|
+
}
|
|
34512
|
+
checkMatch() {
|
|
34513
|
+
const itemMatch = this.filteredData.some(this.findMatch);
|
|
34514
|
+
this.customValueFlag = this.allowCustomValues && !itemMatch;
|
|
34515
|
+
}
|
|
34516
|
+
manageRequiredAsterisk() {
|
|
34517
|
+
if (this.ngControl && this.ngControl.control.validator) {
|
|
34518
|
+
// Run the validation with empty object to check if required is enabled.
|
|
34519
|
+
const error = this.ngControl.control.validator({});
|
|
34520
|
+
this.inputGroup.isRequired = error && error.required;
|
|
34521
|
+
}
|
|
34522
|
+
}
|
|
34523
|
+
/** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */
|
|
34524
|
+
registerRemoteEntries(ids, add = true) {
|
|
34525
|
+
if (add) {
|
|
34526
|
+
const selection = this.getValueDisplayPairs(ids);
|
|
34527
|
+
for (const entry of selection) {
|
|
34528
|
+
this._remoteSelection[entry[this.valueKey]] = entry[this.displayKey];
|
|
34529
|
+
}
|
|
34530
|
+
}
|
|
34531
|
+
else {
|
|
34532
|
+
for (const entry of ids) {
|
|
34533
|
+
delete this._remoteSelection[entry];
|
|
34534
|
+
}
|
|
34535
|
+
}
|
|
34536
|
+
}
|
|
34537
|
+
/**
|
|
34538
|
+
* For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`
|
|
34539
|
+
*/
|
|
34540
|
+
getValueDisplayPairs(ids) {
|
|
34541
|
+
return this.data.filter(entry => ids.indexOf(entry[this.valueKey]) > -1).map(e => ({
|
|
34542
|
+
[this.valueKey]: e[this.valueKey],
|
|
34543
|
+
[this.displayKey]: e[this.displayKey]
|
|
34544
|
+
}));
|
|
34545
|
+
}
|
|
34546
|
+
getRemoteSelection(newSelection, oldSelection) {
|
|
34547
|
+
if (!newSelection.length) {
|
|
34548
|
+
// If new selection is empty, clear all items
|
|
34549
|
+
this.registerRemoteEntries(oldSelection, false);
|
|
34550
|
+
return '';
|
|
34551
|
+
}
|
|
34552
|
+
const removedItems = oldSelection.filter(e => newSelection.indexOf(e) < 0);
|
|
34553
|
+
const addedItems = newSelection.filter(e => oldSelection.indexOf(e) < 0);
|
|
34554
|
+
this.registerRemoteEntries(addedItems);
|
|
34555
|
+
this.registerRemoteEntries(removedItems, false);
|
|
34556
|
+
return Object.keys(this._remoteSelection).map(e => this._remoteSelection[e]).join(', ');
|
|
34557
|
+
}
|
|
34558
|
+
}
|
|
34559
|
+
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 });
|
|
34560
|
+
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 });
|
|
34561
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboBaseDirective, decorators: [{
|
|
34562
|
+
type: Directive
|
|
34563
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: IgxComboAPIService }, { type: IgxIconService }, { type: undefined, decorators: [{
|
|
34564
|
+
type: Optional
|
|
34565
|
+
}, {
|
|
34566
|
+
type: Inject,
|
|
34567
|
+
args: [DisplayDensityToken]
|
|
34568
|
+
}] }, { type: undefined, decorators: [{
|
|
34569
|
+
type: Optional
|
|
34570
|
+
}, {
|
|
34571
|
+
type: Inject,
|
|
34572
|
+
args: [IGX_INPUT_GROUP_TYPE]
|
|
34573
|
+
}] }, { type: i0.Injector, decorators: [{
|
|
34574
|
+
type: Optional
|
|
34575
|
+
}] }]; }, propDecorators: { overlaySettings: [{
|
|
34576
|
+
type: Input
|
|
34577
|
+
}], id: [{
|
|
34578
|
+
type: HostBinding,
|
|
34579
|
+
args: ['attr.id']
|
|
34580
|
+
}, {
|
|
34581
|
+
type: Input
|
|
34582
|
+
}], width: [{
|
|
34583
|
+
type: HostBinding,
|
|
34584
|
+
args: ['style.width']
|
|
34585
|
+
}, {
|
|
34586
|
+
type: Input
|
|
34587
|
+
}], allowCustomValues: [{
|
|
34588
|
+
type: Input
|
|
34589
|
+
}], itemsMaxHeight: [{
|
|
34590
|
+
type: Input
|
|
34591
|
+
}], itemHeight: [{
|
|
34592
|
+
type: Input
|
|
34593
|
+
}], itemsWidth: [{
|
|
34594
|
+
type: Input
|
|
34595
|
+
}], placeholder: [{
|
|
34596
|
+
type: Input
|
|
34597
|
+
}], data: [{
|
|
34598
|
+
type: Input
|
|
34599
|
+
}], valueKey: [{
|
|
34600
|
+
type: Input
|
|
34601
|
+
}], displayKey: [{
|
|
34602
|
+
type: Input
|
|
34603
|
+
}], groupKey: [{
|
|
34604
|
+
type: Input
|
|
34605
|
+
}], groupSortingDirection: [{
|
|
34606
|
+
type: Input
|
|
34607
|
+
}], ariaLabelledBy: [{
|
|
34608
|
+
type: Input
|
|
34609
|
+
}, {
|
|
34610
|
+
type: HostBinding,
|
|
34611
|
+
args: ['attr.aria-labelledby']
|
|
34612
|
+
}], cssClass: [{
|
|
34613
|
+
type: HostBinding,
|
|
34614
|
+
args: ['class.igx-combo']
|
|
34615
|
+
}], role: [{
|
|
34616
|
+
type: HostBinding,
|
|
34617
|
+
args: [`attr.role`]
|
|
34618
|
+
}], ariaExpanded: [{
|
|
34619
|
+
type: HostBinding,
|
|
34620
|
+
args: ['attr.aria-expanded']
|
|
34621
|
+
}], hasPopUp: [{
|
|
34622
|
+
type: HostBinding,
|
|
34623
|
+
args: ['attr.aria-haspopup']
|
|
34624
|
+
}], ariaOwns: [{
|
|
34625
|
+
type: HostBinding,
|
|
34626
|
+
args: ['attr.aria-owns']
|
|
34627
|
+
}], disabled: [{
|
|
34628
|
+
type: Input
|
|
34629
|
+
}], type: [{
|
|
34630
|
+
type: Input
|
|
34631
|
+
}], selectionChanging: [{
|
|
34632
|
+
type: Output
|
|
34633
|
+
}], opening: [{
|
|
34634
|
+
type: Output
|
|
34635
|
+
}], opened: [{
|
|
34636
|
+
type: Output
|
|
34637
|
+
}], closing: [{
|
|
34638
|
+
type: Output
|
|
34639
|
+
}], closed: [{
|
|
34640
|
+
type: Output
|
|
34641
|
+
}], addition: [{
|
|
34642
|
+
type: Output
|
|
34643
|
+
}], searchInputUpdate: [{
|
|
34644
|
+
type: Output
|
|
34645
|
+
}], dataPreLoad: [{
|
|
34646
|
+
type: Output
|
|
34647
|
+
}], itemTemplate: [{
|
|
34648
|
+
type: ContentChild,
|
|
34649
|
+
args: [IgxComboItemDirective, { read: TemplateRef }]
|
|
34650
|
+
}], headerTemplate: [{
|
|
34651
|
+
type: ContentChild,
|
|
34652
|
+
args: [IgxComboHeaderDirective, { read: TemplateRef }]
|
|
34653
|
+
}], footerTemplate: [{
|
|
34654
|
+
type: ContentChild,
|
|
34655
|
+
args: [IgxComboFooterDirective, { read: TemplateRef }]
|
|
34656
|
+
}], headerItemTemplate: [{
|
|
34657
|
+
type: ContentChild,
|
|
34658
|
+
args: [IgxComboHeaderItemDirective, { read: TemplateRef }]
|
|
34659
|
+
}], addItemTemplate: [{
|
|
34660
|
+
type: ContentChild,
|
|
34661
|
+
args: [IgxComboAddItemDirective, { read: TemplateRef }]
|
|
34662
|
+
}], emptyTemplate: [{
|
|
34663
|
+
type: ContentChild,
|
|
34664
|
+
args: [IgxComboEmptyDirective, { read: TemplateRef }]
|
|
34665
|
+
}], toggleIconTemplate: [{
|
|
34666
|
+
type: ContentChild,
|
|
34667
|
+
args: [IgxComboToggleIconDirective, { read: TemplateRef }]
|
|
34668
|
+
}], clearIconTemplate: [{
|
|
34669
|
+
type: ContentChild,
|
|
34670
|
+
args: [IgxComboClearIconDirective, { read: TemplateRef }]
|
|
34671
|
+
}], inputGroup: [{
|
|
34672
|
+
type: ViewChild,
|
|
34673
|
+
args: ['inputGroup', { read: IgxInputGroupComponent, static: true }]
|
|
34674
|
+
}], comboInput: [{
|
|
34675
|
+
type: ViewChild,
|
|
34676
|
+
args: ['comboInput', { read: IgxInputDirective, static: true }]
|
|
34677
|
+
}], searchInput: [{
|
|
34678
|
+
type: ViewChild,
|
|
34679
|
+
args: ['searchInput']
|
|
34680
|
+
}], virtualScrollContainer: [{
|
|
34681
|
+
type: ViewChild,
|
|
34682
|
+
args: [IgxForOfDirective, { static: true }]
|
|
34683
|
+
}], virtDir: [{
|
|
34684
|
+
type: ViewChild,
|
|
34685
|
+
args: [IgxForOfDirective, { read: IgxForOfDirective, static: true }]
|
|
34686
|
+
}], dropdownContainer: [{
|
|
34687
|
+
type: ViewChild,
|
|
34688
|
+
args: ['dropdownItemContainer', { static: true }]
|
|
34689
|
+
}], primitiveTemplate: [{
|
|
34690
|
+
type: ViewChild,
|
|
34691
|
+
args: ['primitive', { read: TemplateRef, static: true }]
|
|
34692
|
+
}], complexTemplate: [{
|
|
34693
|
+
type: ViewChild,
|
|
34694
|
+
args: ['complex', { read: TemplateRef, static: true }]
|
|
34695
|
+
}], onArrowDown: [{
|
|
34696
|
+
type: HostListener,
|
|
34697
|
+
args: ['keydown.ArrowDown', ['$event']]
|
|
34698
|
+
}, {
|
|
34699
|
+
type: HostListener,
|
|
34700
|
+
args: ['keydown.Alt.ArrowDown', ['$event']]
|
|
34701
|
+
}] } });
|
|
34702
|
+
|
|
34703
|
+
/**
|
|
34704
|
+
* @hidden
|
|
34705
|
+
*/
|
|
34706
|
+
class IgxComboAddItemComponent extends IgxComboItemComponent {
|
|
34707
|
+
get selected() {
|
|
34708
|
+
return false;
|
|
34709
|
+
}
|
|
34710
|
+
set selected(value) {
|
|
34711
|
+
}
|
|
34712
|
+
/**
|
|
34713
|
+
* @inheritdoc
|
|
34714
|
+
*/
|
|
34715
|
+
clicked(event) {
|
|
34716
|
+
this.comboAPI.disableTransitions = false;
|
|
34717
|
+
this.comboAPI.add_custom_item();
|
|
34718
|
+
}
|
|
34719
|
+
}
|
|
34720
|
+
IgxComboAddItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
34721
|
+
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 });
|
|
34722
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, decorators: [{
|
|
34723
|
+
type: Component,
|
|
34724
|
+
args: [{
|
|
34725
|
+
selector: 'igx-combo-add-item',
|
|
34726
|
+
template: '<ng-content></ng-content>',
|
|
34727
|
+
providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }]
|
|
34728
|
+
}]
|
|
34729
|
+
}] });
|
|
34730
|
+
|
|
34731
|
+
/** @hidden */
|
|
34732
|
+
class IgxComboDropDownComponent extends IgxDropDownComponent {
|
|
34733
|
+
constructor(elementRef, cdr, selection, combo, comboAPI, _displayDensityOptions) {
|
|
34734
|
+
super(elementRef, cdr, selection, _displayDensityOptions);
|
|
34735
|
+
this.elementRef = elementRef;
|
|
34736
|
+
this.cdr = cdr;
|
|
34737
|
+
this.selection = selection;
|
|
34738
|
+
this.combo = combo;
|
|
34739
|
+
this.comboAPI = comboAPI;
|
|
34740
|
+
this._displayDensityOptions = _displayDensityOptions;
|
|
34741
|
+
/** @hidden @internal */
|
|
34742
|
+
this.singleMode = false;
|
|
34743
|
+
/**
|
|
34744
|
+
* @hidden
|
|
34745
|
+
* @internal
|
|
34746
|
+
*/
|
|
34747
|
+
this.children = null;
|
|
34748
|
+
this.scrollHandler = () => {
|
|
34749
|
+
this.comboAPI.disableTransitions = true;
|
|
34750
|
+
};
|
|
34751
|
+
}
|
|
34752
|
+
/** @hidden @internal */
|
|
34753
|
+
get scrollContainer() {
|
|
34754
|
+
return this.virtDir.dc.location.nativeElement;
|
|
34755
|
+
}
|
|
34756
|
+
get isScrolledToLast() {
|
|
34757
|
+
const scrollTop = this.virtDir.scrollPosition;
|
|
34758
|
+
const scrollHeight = this.virtDir.getScroll().scrollHeight;
|
|
34759
|
+
return Math.floor(scrollTop + this.virtDir.igxForContainerSize) === scrollHeight;
|
|
34760
|
+
}
|
|
34761
|
+
get lastVisibleIndex() {
|
|
34762
|
+
return this.combo.totalItemCount ?
|
|
34763
|
+
Math.floor(this.combo.itemsMaxHeight / this.combo.itemHeight) :
|
|
34764
|
+
this.items.length - 1;
|
|
34765
|
+
}
|
|
34766
|
+
get sortedChildren() {
|
|
34767
|
+
if (this.children !== undefined) {
|
|
34768
|
+
return this.children.toArray()
|
|
34769
|
+
.sort((a, b) => a.index - b.index);
|
|
34770
|
+
}
|
|
34771
|
+
return null;
|
|
34772
|
+
}
|
|
34773
|
+
/**
|
|
34774
|
+
* Get all non-header items
|
|
34775
|
+
*
|
|
34776
|
+
* ```typescript
|
|
34777
|
+
* let myDropDownItems = this.dropdown.items;
|
|
34778
|
+
* ```
|
|
34779
|
+
*/
|
|
34780
|
+
get items() {
|
|
34781
|
+
const items = [];
|
|
34782
|
+
if (this.children !== undefined) {
|
|
34783
|
+
const sortedChildren = this.sortedChildren;
|
|
34784
|
+
for (const child of sortedChildren) {
|
|
34785
|
+
if (!child.isHeader) {
|
|
34786
|
+
items.push(child);
|
|
34787
|
+
}
|
|
34788
|
+
}
|
|
34789
|
+
}
|
|
34790
|
+
return items;
|
|
34791
|
+
}
|
|
34792
|
+
/**
|
|
34793
|
+
* @hidden @internal
|
|
34794
|
+
*/
|
|
34795
|
+
onFocus() {
|
|
34796
|
+
this.focusedItem = this._focusedItem || this.items[0];
|
|
34797
|
+
}
|
|
34798
|
+
/**
|
|
34799
|
+
* @hidden @internal
|
|
34800
|
+
*/
|
|
34801
|
+
onBlur(_evt) {
|
|
34802
|
+
this.focusedItem = null;
|
|
34803
|
+
}
|
|
34804
|
+
/**
|
|
34805
|
+
* @hidden @internal
|
|
34806
|
+
*/
|
|
34807
|
+
onToggleOpened() {
|
|
34808
|
+
this.opened.emit();
|
|
34809
|
+
}
|
|
34810
|
+
/**
|
|
34811
|
+
* @hidden
|
|
34812
|
+
*/
|
|
34813
|
+
navigateFirst() {
|
|
34814
|
+
this.navigateItem(this.virtDir.igxForOf.findIndex(e => !e.isHeader));
|
|
34815
|
+
}
|
|
34816
|
+
/**
|
|
34817
|
+
* @hidden
|
|
34818
|
+
*/
|
|
34819
|
+
navigatePrev() {
|
|
34820
|
+
if (this._focusedItem && this._focusedItem.index === 0 && this.virtDir.state.startIndex === 0) {
|
|
34821
|
+
this.combo.focusSearchInput(false);
|
|
34822
|
+
}
|
|
34823
|
+
else {
|
|
34824
|
+
super.navigatePrev();
|
|
34825
|
+
}
|
|
34826
|
+
}
|
|
34827
|
+
/**
|
|
34828
|
+
* @hidden
|
|
34829
|
+
*/
|
|
34830
|
+
navigateNext() {
|
|
34831
|
+
const lastIndex = this.combo.totalItemCount ? this.combo.totalItemCount - 1 : this.virtDir.igxForOf.length - 1;
|
|
34832
|
+
if (this._focusedItem && this._focusedItem.index === lastIndex) {
|
|
34833
|
+
this.focusAddItemButton();
|
|
34834
|
+
}
|
|
34835
|
+
else {
|
|
34836
|
+
super.navigateNext();
|
|
34837
|
+
}
|
|
34838
|
+
}
|
|
34839
|
+
/**
|
|
34840
|
+
* @hidden @internal
|
|
34841
|
+
*/
|
|
34842
|
+
selectItem(item) {
|
|
34843
|
+
if (item === null || item === undefined) {
|
|
34844
|
+
return;
|
|
34845
|
+
}
|
|
34846
|
+
this.comboAPI.set_selected_item(item.itemID);
|
|
34847
|
+
this._focusedItem = item;
|
|
34848
|
+
}
|
|
34849
|
+
/**
|
|
34850
|
+
* @hidden @internal
|
|
34851
|
+
*/
|
|
34852
|
+
updateScrollPosition() {
|
|
34853
|
+
this.virtDir.getScroll().scrollTop = this._scrollPosition;
|
|
34854
|
+
}
|
|
34855
|
+
/**
|
|
34856
|
+
* @hidden @internal
|
|
34857
|
+
*/
|
|
34858
|
+
onItemActionKey(key) {
|
|
34859
|
+
switch (key) {
|
|
34860
|
+
case DropDownActionKey.ENTER:
|
|
34861
|
+
this.handleEnter();
|
|
34862
|
+
break;
|
|
34863
|
+
case DropDownActionKey.SPACE:
|
|
34864
|
+
this.handleSpace();
|
|
34865
|
+
break;
|
|
34866
|
+
case DropDownActionKey.ESCAPE:
|
|
34867
|
+
this.close();
|
|
34868
|
+
}
|
|
34869
|
+
}
|
|
34870
|
+
ngAfterViewInit() {
|
|
34871
|
+
this.virtDir.getScroll().addEventListener('scroll', this.scrollHandler);
|
|
34872
|
+
}
|
|
34873
|
+
/**
|
|
34874
|
+
* @hidden @internal
|
|
34875
|
+
*/
|
|
34876
|
+
ngOnDestroy() {
|
|
34877
|
+
this.virtDir.getScroll().removeEventListener('scroll', this.scrollHandler);
|
|
34878
|
+
this.destroy$.next(true);
|
|
34879
|
+
this.destroy$.complete();
|
|
34880
|
+
}
|
|
34881
|
+
scrollToHiddenItem(_newItem) { }
|
|
34882
|
+
handleEnter() {
|
|
34883
|
+
if (this.isAddItemFocused()) {
|
|
34884
|
+
this.combo.addItemToCollection();
|
|
34885
|
+
return;
|
|
34886
|
+
}
|
|
34887
|
+
if (this.singleMode && this.focusedItem) {
|
|
34888
|
+
this.combo.select(this.focusedItem.itemID);
|
|
34889
|
+
}
|
|
34890
|
+
this.close();
|
|
34891
|
+
}
|
|
34892
|
+
handleSpace() {
|
|
34893
|
+
if (this.isAddItemFocused()) {
|
|
34894
|
+
return;
|
|
34895
|
+
}
|
|
34896
|
+
else {
|
|
34897
|
+
this.selectItem(this.focusedItem);
|
|
34898
|
+
}
|
|
34899
|
+
}
|
|
34900
|
+
isAddItemFocused() {
|
|
34901
|
+
return this.focusedItem instanceof IgxComboAddItemComponent;
|
|
34902
|
+
}
|
|
34903
|
+
focusAddItemButton() {
|
|
34904
|
+
if (this.combo.isAddButtonVisible()) {
|
|
34905
|
+
this.focusedItem = this.items[this.items.length - 1];
|
|
34906
|
+
}
|
|
34907
|
+
}
|
|
34908
|
+
}
|
|
34909
|
+
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 });
|
|
34910
|
+
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"] }] });
|
|
34911
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboDropDownComponent, decorators: [{
|
|
34912
|
+
type: Component,
|
|
34913
|
+
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" }]
|
|
34914
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: undefined, decorators: [{
|
|
34915
|
+
type: Inject,
|
|
34916
|
+
args: [IGX_COMBO_COMPONENT]
|
|
34917
|
+
}] }, { type: IgxComboAPIService }, { type: undefined, decorators: [{
|
|
34918
|
+
type: Optional
|
|
34919
|
+
}, {
|
|
34920
|
+
type: Inject,
|
|
34921
|
+
args: [DisplayDensityToken]
|
|
34922
|
+
}] }]; }, propDecorators: { singleMode: [{
|
|
34923
|
+
type: Input
|
|
34924
|
+
}], children: [{
|
|
34925
|
+
type: ContentChildren,
|
|
34926
|
+
args: [IgxComboItemComponent, { descendants: true }]
|
|
34927
|
+
}] } });
|
|
34928
|
+
|
|
34929
|
+
/**
|
|
34930
|
+
* @hidden
|
|
34931
|
+
*/
|
|
34932
|
+
class IgxComboFilteringPipe {
|
|
34933
|
+
transform(collection, searchValue, displayKey, filteringOptions, shouldFilter = false) {
|
|
34934
|
+
if (!collection) {
|
|
34935
|
+
return [];
|
|
34936
|
+
}
|
|
34937
|
+
if (!searchValue || !shouldFilter) {
|
|
34938
|
+
return collection;
|
|
34939
|
+
}
|
|
34940
|
+
else {
|
|
34941
|
+
const searchTerm = filteringOptions.caseSensitive ? searchValue.trim() : searchValue.toLowerCase().trim();
|
|
34942
|
+
if (displayKey != null) {
|
|
34943
|
+
return collection.filter(e => filteringOptions.caseSensitive ? e[displayKey].includes(searchTerm) :
|
|
34944
|
+
e[displayKey].toString().toLowerCase().includes(searchTerm));
|
|
34945
|
+
}
|
|
34946
|
+
else {
|
|
34947
|
+
return collection.filter(e => filteringOptions.caseSensitive ? e.includes(searchTerm) :
|
|
34948
|
+
e.toString().toLowerCase().includes(searchTerm));
|
|
34949
|
+
}
|
|
34950
|
+
}
|
|
34951
|
+
}
|
|
34952
|
+
}
|
|
34953
|
+
IgxComboFilteringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
34954
|
+
IgxComboFilteringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, name: "comboFiltering" });
|
|
34955
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, decorators: [{
|
|
34956
|
+
type: Pipe,
|
|
34957
|
+
args: [{
|
|
34958
|
+
name: 'comboFiltering'
|
|
34959
|
+
}]
|
|
34960
|
+
}] });
|
|
34961
|
+
/**
|
|
34962
|
+
* @hidden
|
|
34963
|
+
*/
|
|
34964
|
+
class IgxComboGroupingPipe {
|
|
34965
|
+
constructor(combo) {
|
|
34966
|
+
this.combo = combo;
|
|
34967
|
+
}
|
|
34968
|
+
transform(collection, groupKey, valueKey, sortingDirection) {
|
|
34969
|
+
this.combo.filteredData = collection;
|
|
34970
|
+
if ((!groupKey && groupKey !== 0) || !collection.length) {
|
|
34971
|
+
return collection;
|
|
34972
|
+
}
|
|
34973
|
+
const sorted = DataUtil.sort(cloneArray(collection), [{
|
|
34974
|
+
fieldName: groupKey,
|
|
34975
|
+
dir: sortingDirection,
|
|
34976
|
+
ignoreCase: true,
|
|
34977
|
+
strategy: DefaultSortingStrategy.instance()
|
|
34978
|
+
}]);
|
|
34979
|
+
const data = cloneArray(sorted);
|
|
34980
|
+
let inserts = 0;
|
|
34981
|
+
let currentHeader = null;
|
|
34982
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
34983
|
+
let insertFlag = 0;
|
|
34984
|
+
if (currentHeader !== sorted[i][groupKey]) {
|
|
34985
|
+
currentHeader = sorted[i][groupKey];
|
|
34986
|
+
insertFlag = 1;
|
|
34987
|
+
}
|
|
34988
|
+
if (insertFlag) {
|
|
34989
|
+
data.splice(i + inserts, 0, {
|
|
34990
|
+
[valueKey]: currentHeader,
|
|
34991
|
+
[groupKey]: currentHeader,
|
|
34992
|
+
isHeader: true
|
|
34993
|
+
});
|
|
34994
|
+
inserts++;
|
|
34995
|
+
}
|
|
34996
|
+
}
|
|
34997
|
+
return data;
|
|
34998
|
+
}
|
|
34999
|
+
}
|
|
35000
|
+
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 });
|
|
35001
|
+
IgxComboGroupingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, name: "comboGrouping" });
|
|
35002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, decorators: [{
|
|
35003
|
+
type: Pipe,
|
|
35004
|
+
args: [{ name: 'comboGrouping' }]
|
|
35005
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
35006
|
+
type: Inject,
|
|
35007
|
+
args: [IGX_COMBO_COMPONENT]
|
|
35008
|
+
}] }]; } });
|
|
35009
|
+
|
|
35010
|
+
/**
|
|
35011
|
+
* When called with sets A & B, returns A - B (as array);
|
|
35012
|
+
*
|
|
35013
|
+
* @hidden
|
|
35014
|
+
*/
|
|
35015
|
+
const diffInSets = (set1, set2) => {
|
|
35016
|
+
const results = [];
|
|
35017
|
+
set1.forEach(entry => {
|
|
35018
|
+
if (!set2.has(entry)) {
|
|
35019
|
+
results.push(entry);
|
|
35020
|
+
}
|
|
35021
|
+
});
|
|
35022
|
+
return results;
|
|
35023
|
+
};
|
|
35024
|
+
/**
|
|
35025
|
+
* Represents a drop-down list that provides editable functionalities, allowing users to choose an option from a predefined list.
|
|
35026
|
+
*
|
|
35027
|
+
* @igxModule IgxComboModule
|
|
35028
|
+
* @igxTheme igx-combo-theme
|
|
35029
|
+
* @igxKeywords combobox, combo selection
|
|
35030
|
+
* @igxGroup Grids & Lists
|
|
35031
|
+
*
|
|
35032
|
+
* @remarks
|
|
35033
|
+
* It provides the ability to filter items as well as perform selection with the provided data.
|
|
35034
|
+
* Additionally, it exposes keyboard navigation and custom styling capabilities.
|
|
35035
|
+
* @example
|
|
35036
|
+
* ```html
|
|
35037
|
+
* <igx-combo [itemsMaxHeight]="250" [data]="locationData"
|
|
35038
|
+
* [displayKey]="'field'" [valueKey]="'field'"
|
|
35039
|
+
* placeholder="Location(s)" searchPlaceholder="Search...">
|
|
35040
|
+
* </igx-combo>
|
|
35041
|
+
* ```
|
|
35042
|
+
*/
|
|
35043
|
+
class IgxComboComponent extends IgxComboBaseDirective {
|
|
35044
|
+
constructor(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector) {
|
|
35045
|
+
super(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector);
|
|
35046
|
+
this.elementRef = elementRef;
|
|
35047
|
+
this.cdr = cdr;
|
|
35048
|
+
this.selectionService = selectionService;
|
|
35049
|
+
this.comboAPI = comboAPI;
|
|
35050
|
+
this._iconService = _iconService;
|
|
35051
|
+
this._displayDensityOptions = _displayDensityOptions;
|
|
35052
|
+
this._inputGroupType = _inputGroupType;
|
|
35053
|
+
this._injector = _injector;
|
|
35054
|
+
/**
|
|
35055
|
+
* Defines whether the caseSensitive icon should be shown in the search input
|
|
35056
|
+
*
|
|
35057
|
+
* ```typescript
|
|
35058
|
+
* // get
|
|
35059
|
+
* let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
|
|
35060
|
+
* ```
|
|
35061
|
+
*
|
|
35062
|
+
* ```html
|
|
35063
|
+
* <!--set-->
|
|
35064
|
+
* <igx-combo [showSearchCaseIcon]='true'></igx-combo>
|
|
35065
|
+
* ```
|
|
35066
|
+
*/
|
|
35067
|
+
this.showSearchCaseIcon = false;
|
|
35068
|
+
/**
|
|
35069
|
+
* An @Input property that controls whether the combo's search box
|
|
35070
|
+
* should be focused after the `opened` event is called
|
|
35071
|
+
* When `false`, the combo's list item container will be focused instead
|
|
35072
|
+
*/
|
|
35073
|
+
this.autoFocusSearch = true;
|
|
35074
|
+
/**
|
|
35075
|
+
* An @Input property that enabled/disables filtering in the list. The default is `true`.
|
|
35076
|
+
* ```html
|
|
35077
|
+
* <igx-combo [filterable]="false">
|
|
35078
|
+
* ```
|
|
35079
|
+
*/
|
|
35080
|
+
this.filterable = true;
|
|
35081
|
+
/**
|
|
35082
|
+
* Defines the placeholder value for the combo dropdown search field
|
|
35083
|
+
*
|
|
35084
|
+
* ```typescript
|
|
35085
|
+
* // get
|
|
35086
|
+
* let myComboSearchPlaceholder = this.combo.searchPlaceholder;
|
|
35087
|
+
* ```
|
|
35088
|
+
*
|
|
35089
|
+
* ```html
|
|
35090
|
+
* <!--set-->
|
|
35091
|
+
* <igx-combo [searchPlaceholder]='newPlaceHolder'></igx-combo>
|
|
35092
|
+
* ```
|
|
35093
|
+
*/
|
|
35094
|
+
this.searchPlaceholder = 'Enter a Search Term';
|
|
35095
|
+
/**
|
|
35096
|
+
* @hidden @internal
|
|
35097
|
+
*/
|
|
35098
|
+
this.filteringLogic = FilteringLogic.Or;
|
|
35099
|
+
this.stringFilters = IgxStringFilteringOperand;
|
|
35100
|
+
this.booleanFilters = IgxBooleanFilteringOperand;
|
|
35101
|
+
this._prevInputValue = '';
|
|
35102
|
+
this.comboAPI.register(this);
|
|
35103
|
+
}
|
|
35104
|
+
/**
|
|
35105
|
+
* @hidden @internal
|
|
35106
|
+
*/
|
|
35107
|
+
get inputEmpty() {
|
|
35108
|
+
return !this.value && !this.placeholder;
|
|
35109
|
+
}
|
|
35110
|
+
/** @hidden @internal */
|
|
35111
|
+
get filteredData() {
|
|
35112
|
+
return this.filterable ? this._filteredData : this.data;
|
|
35113
|
+
}
|
|
35114
|
+
/** @hidden @internal */
|
|
35115
|
+
set filteredData(val) {
|
|
35116
|
+
this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val;
|
|
34697
35117
|
this.checkMatch();
|
|
34698
35118
|
}
|
|
35119
|
+
/** @hidden @internal */
|
|
35120
|
+
get displaySearchInput() {
|
|
35121
|
+
return this.filterable || this.allowCustomValues;
|
|
35122
|
+
}
|
|
34699
35123
|
/**
|
|
34700
35124
|
* @hidden @internal
|
|
34701
35125
|
*/
|
|
34702
35126
|
handleKeyUp(event) {
|
|
35127
|
+
// TODO: use PlatformUtil for keyboard navigation
|
|
34703
35128
|
if (event.key === 'ArrowDown' || event.key === 'Down') {
|
|
34704
35129
|
this.dropdown.focusedItem = this.dropdown.items[0];
|
|
34705
35130
|
this.dropdownContainer.nativeElement.focus();
|
|
@@ -34708,72 +35133,6 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34708
35133
|
this.toggle();
|
|
34709
35134
|
}
|
|
34710
35135
|
}
|
|
34711
|
-
/**
|
|
34712
|
-
* @hidden @internal
|
|
34713
|
-
*/
|
|
34714
|
-
handleKeyDown(event) {
|
|
34715
|
-
if (event.key === 'ArrowUp' || event.key === 'Up') {
|
|
34716
|
-
event.preventDefault();
|
|
34717
|
-
event.stopPropagation();
|
|
34718
|
-
this.close();
|
|
34719
|
-
}
|
|
34720
|
-
}
|
|
34721
|
-
/**
|
|
34722
|
-
* @hidden @internal
|
|
34723
|
-
*/
|
|
34724
|
-
handleInputChange(event) {
|
|
34725
|
-
if (event !== undefined) {
|
|
34726
|
-
const args = {
|
|
34727
|
-
searchText: event,
|
|
34728
|
-
owner: this,
|
|
34729
|
-
cancel: false
|
|
34730
|
-
};
|
|
34731
|
-
this.searchInputUpdate.emit(args);
|
|
34732
|
-
if (args.cancel) {
|
|
34733
|
-
this.filterValue = null;
|
|
34734
|
-
}
|
|
34735
|
-
}
|
|
34736
|
-
this.checkMatch();
|
|
34737
|
-
}
|
|
34738
|
-
/**
|
|
34739
|
-
* @hidden @internal
|
|
34740
|
-
*/
|
|
34741
|
-
get dataType() {
|
|
34742
|
-
if (this.displayKey) {
|
|
34743
|
-
return DataTypes.COMPLEX;
|
|
34744
|
-
}
|
|
34745
|
-
return DataTypes.PRIMITIVE;
|
|
34746
|
-
}
|
|
34747
|
-
/**
|
|
34748
|
-
* @hidden @internal
|
|
34749
|
-
*/
|
|
34750
|
-
get isRemote() {
|
|
34751
|
-
return this.totalItemCount > 0 &&
|
|
34752
|
-
this.valueKey &&
|
|
34753
|
-
this.dataType === DataTypes.COMPLEX;
|
|
34754
|
-
}
|
|
34755
|
-
/**
|
|
34756
|
-
* Returns if the specified itemID is selected
|
|
34757
|
-
*
|
|
34758
|
-
* @hidden
|
|
34759
|
-
* @internal
|
|
34760
|
-
*/
|
|
34761
|
-
isItemSelected(item) {
|
|
34762
|
-
return this.selection.is_item_selected(this.id, item);
|
|
34763
|
-
}
|
|
34764
|
-
/**
|
|
34765
|
-
* Triggers change detection on the combo view
|
|
34766
|
-
*/
|
|
34767
|
-
triggerCheck() {
|
|
34768
|
-
this.cdr.detectChanges();
|
|
34769
|
-
}
|
|
34770
|
-
/**
|
|
34771
|
-
* @hidden @internal
|
|
34772
|
-
*/
|
|
34773
|
-
isAddButtonVisible() {
|
|
34774
|
-
// This should always return a boolean value. If this.searchValue was '', it returns '' instead of false;
|
|
34775
|
-
return this.searchValue !== '' && this.customValueFlag;
|
|
34776
|
-
}
|
|
34777
35136
|
/**
|
|
34778
35137
|
* @hidden @internal
|
|
34779
35138
|
*/
|
|
@@ -34785,140 +35144,15 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34785
35144
|
this.deselectAllItems();
|
|
34786
35145
|
}
|
|
34787
35146
|
}
|
|
34788
|
-
/**
|
|
34789
|
-
* @hidden @internal
|
|
34790
|
-
*/
|
|
34791
|
-
addItemToCollection() {
|
|
34792
|
-
if (!this.searchValue) {
|
|
34793
|
-
return;
|
|
34794
|
-
}
|
|
34795
|
-
const newValue = this.searchValue.trim();
|
|
34796
|
-
const addedItem = this.displayKey ? {
|
|
34797
|
-
[this.valueKey]: newValue,
|
|
34798
|
-
[this.displayKey]: newValue
|
|
34799
|
-
} : newValue;
|
|
34800
|
-
if (this.groupKey) {
|
|
34801
|
-
Object.assign(addedItem, { [this.groupKey]: this.defaultFallbackGroup });
|
|
34802
|
-
}
|
|
34803
|
-
// expose shallow copy instead of this.data in event args so this.data can't be mutated
|
|
34804
|
-
const oldCollection = [...this.data];
|
|
34805
|
-
const newCollection = [...this.data, addedItem];
|
|
34806
|
-
const args = {
|
|
34807
|
-
oldCollection, addedItem, newCollection, owner: this, cancel: false
|
|
34808
|
-
};
|
|
34809
|
-
this.addition.emit(args);
|
|
34810
|
-
if (args.cancel) {
|
|
34811
|
-
return;
|
|
34812
|
-
}
|
|
34813
|
-
this.data.push(args.addedItem);
|
|
34814
|
-
// trigger re-render
|
|
34815
|
-
this.data = cloneArray(this.data);
|
|
34816
|
-
this.selectItems(this.valueKey !== null && this.valueKey !== undefined ?
|
|
34817
|
-
[args.addedItem[this.valueKey]] : [args.addedItem], false);
|
|
34818
|
-
this.customValueFlag = false;
|
|
34819
|
-
this.searchInput.nativeElement.focus();
|
|
34820
|
-
this.dropdown.focusedItem = null;
|
|
34821
|
-
this.virtDir.scrollTo(0);
|
|
34822
|
-
}
|
|
34823
|
-
/**
|
|
34824
|
-
* @hidden @internal
|
|
34825
|
-
*/
|
|
34826
|
-
focusSearchInput(opening) {
|
|
34827
|
-
if (this.displaySearchInput && this.searchInput) {
|
|
34828
|
-
this.searchInput.nativeElement.focus();
|
|
34829
|
-
}
|
|
34830
|
-
else {
|
|
34831
|
-
if (opening) {
|
|
34832
|
-
this.dropdownContainer.nativeElement.focus();
|
|
34833
|
-
}
|
|
34834
|
-
else {
|
|
34835
|
-
this.comboInput.nativeElement.focus();
|
|
34836
|
-
this.toggle();
|
|
34837
|
-
}
|
|
34838
|
-
}
|
|
34839
|
-
}
|
|
34840
|
-
/**
|
|
34841
|
-
* @hidden @internal
|
|
34842
|
-
*/
|
|
34843
|
-
onBlur() {
|
|
34844
|
-
if (this.collapsed) {
|
|
34845
|
-
this._onTouchedCallback();
|
|
34846
|
-
if (this.ngControl && this.ngControl.invalid) {
|
|
34847
|
-
this.valid = IgxComboState.INVALID;
|
|
34848
|
-
}
|
|
34849
|
-
else {
|
|
34850
|
-
this.valid = IgxComboState.INITIAL;
|
|
34851
|
-
}
|
|
34852
|
-
}
|
|
34853
|
-
}
|
|
34854
|
-
/**
|
|
34855
|
-
* @hidden @internal
|
|
34856
|
-
*/
|
|
34857
|
-
ngOnInit() {
|
|
34858
|
-
this.ngControl = this._injector.get(NgControl, null);
|
|
34859
|
-
const targetElement = this.elementRef.nativeElement;
|
|
34860
|
-
this._overlaySettings = {
|
|
34861
|
-
target: targetElement,
|
|
34862
|
-
scrollStrategy: new AbsoluteScrollStrategy(),
|
|
34863
|
-
positionStrategy: new AutoPositionStrategy(),
|
|
34864
|
-
modal: false,
|
|
34865
|
-
closeOnOutsideClick: true,
|
|
34866
|
-
excludeFromOutsideClick: [targetElement]
|
|
34867
|
-
};
|
|
34868
|
-
this.selection.set(this.id, new Set());
|
|
34869
|
-
this._iconService.addSvgIconFromText(caseSensitive.name, caseSensitive.value, 'imx-icons');
|
|
34870
|
-
}
|
|
34871
|
-
/**
|
|
34872
|
-
* @hidden @internal
|
|
34873
|
-
*/
|
|
34874
|
-
ngAfterViewInit() {
|
|
34875
|
-
this.filteredData = [...this.data];
|
|
34876
|
-
if (this.ngControl) {
|
|
34877
|
-
this.ngControl.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(this.onStatusChanged);
|
|
34878
|
-
this.manageRequiredAsterisk();
|
|
34879
|
-
this.cdr.detectChanges();
|
|
34880
|
-
}
|
|
34881
|
-
this.virtDir.chunkPreload.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
34882
|
-
const eventArgs = Object.assign({}, e, { owner: this });
|
|
34883
|
-
this.dataPreLoad.emit(eventArgs);
|
|
34884
|
-
});
|
|
34885
|
-
}
|
|
34886
|
-
/**
|
|
34887
|
-
* @hidden @internal
|
|
34888
|
-
*/
|
|
34889
|
-
ngOnDestroy() {
|
|
34890
|
-
this.destroy$.next();
|
|
34891
|
-
this.destroy$.complete();
|
|
34892
|
-
this.comboAPI.clear();
|
|
34893
|
-
this.selection.clear(this.id);
|
|
34894
|
-
}
|
|
34895
35147
|
/**
|
|
34896
35148
|
* @hidden @internal
|
|
34897
35149
|
*/
|
|
34898
35150
|
writeValue(value) {
|
|
34899
35151
|
const selection = Array.isArray(value) ? value : [];
|
|
34900
|
-
const oldSelection = this.
|
|
34901
|
-
this.
|
|
35152
|
+
const oldSelection = this.selection;
|
|
35153
|
+
this.selectionService.select_items(this.id, selection, true);
|
|
34902
35154
|
this.cdr.markForCheck();
|
|
34903
|
-
this._value = this.createDisplayText(this.
|
|
34904
|
-
}
|
|
34905
|
-
/**
|
|
34906
|
-
* @hidden @internal
|
|
34907
|
-
*/
|
|
34908
|
-
registerOnChange(fn) {
|
|
34909
|
-
this._onChangeCallback = fn;
|
|
34910
|
-
}
|
|
34911
|
-
/**
|
|
34912
|
-
* @hidden @internal
|
|
34913
|
-
*/
|
|
34914
|
-
registerOnTouched(fn) {
|
|
34915
|
-
this._onTouchedCallback = fn;
|
|
34916
|
-
}
|
|
34917
|
-
/**
|
|
34918
|
-
* @hidden @internal
|
|
34919
|
-
*/
|
|
34920
|
-
setDisabledState(isDisabled) {
|
|
34921
|
-
this.disabled = isDisabled;
|
|
35155
|
+
this._value = this.createDisplayText(this.selection, oldSelection);
|
|
34922
35156
|
}
|
|
34923
35157
|
/**
|
|
34924
35158
|
* @hidden
|
|
@@ -34926,19 +35160,6 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34926
35160
|
getEditElement() {
|
|
34927
35161
|
return this.comboInput.nativeElement;
|
|
34928
35162
|
}
|
|
34929
|
-
/**
|
|
34930
|
-
* @hidden @internal
|
|
34931
|
-
*/
|
|
34932
|
-
get template() {
|
|
34933
|
-
this._dataType = this.dataType;
|
|
34934
|
-
if (this.itemTemplate) {
|
|
34935
|
-
return this.itemTemplate;
|
|
34936
|
-
}
|
|
34937
|
-
if (this._dataType === DataTypes.COMPLEX) {
|
|
34938
|
-
return this.complexTemplate;
|
|
34939
|
-
}
|
|
34940
|
-
return this.primitiveTemplate;
|
|
34941
|
-
}
|
|
34942
35163
|
/**
|
|
34943
35164
|
* @hidden @internal
|
|
34944
35165
|
*/
|
|
@@ -34963,75 +35184,18 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34963
35184
|
}
|
|
34964
35185
|
event.stopPropagation();
|
|
34965
35186
|
}
|
|
34966
|
-
/**
|
|
34967
|
-
* A method that opens/closes the combo.
|
|
34968
|
-
*
|
|
34969
|
-
* ```html
|
|
34970
|
-
* <button (click)="combo.toggle()">Toggle Combo</button>
|
|
34971
|
-
* <igx-combo #combo></igx-combo>
|
|
34972
|
-
* ```
|
|
34973
|
-
*/
|
|
34974
|
-
toggle() {
|
|
34975
|
-
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
34976
|
-
this.dropdown.toggle(overlaySettings);
|
|
34977
|
-
}
|
|
34978
|
-
/**
|
|
34979
|
-
* A method that opens the combo.
|
|
34980
|
-
*
|
|
34981
|
-
* ```html
|
|
34982
|
-
* <button (click)="combo.open()">Open Combo</button>
|
|
34983
|
-
* <igx-combo #combo></igx-combo>
|
|
34984
|
-
* ```
|
|
34985
|
-
*/
|
|
34986
|
-
open() {
|
|
34987
|
-
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
34988
|
-
this.dropdown.open(overlaySettings);
|
|
34989
|
-
}
|
|
34990
|
-
/**
|
|
34991
|
-
* A method that closes the combo.
|
|
34992
|
-
*
|
|
34993
|
-
* ```html
|
|
34994
|
-
* <button (click)="combo.close()">Close Combo</button>
|
|
34995
|
-
* <igx-combo #combo></igx-combo>
|
|
34996
|
-
* ```
|
|
34997
|
-
*/
|
|
34998
|
-
close() {
|
|
34999
|
-
this.dropdown.close();
|
|
35000
|
-
}
|
|
35001
|
-
/**
|
|
35002
|
-
* Gets drop down state.
|
|
35003
|
-
*
|
|
35004
|
-
* ```typescript
|
|
35005
|
-
* let state = this.combo.collapsed;
|
|
35006
|
-
* ```
|
|
35007
|
-
*/
|
|
35008
|
-
get collapsed() {
|
|
35009
|
-
return this.dropdown.collapsed;
|
|
35010
|
-
}
|
|
35011
|
-
/**
|
|
35012
|
-
* Get current selection state
|
|
35013
|
-
*
|
|
35014
|
-
* @returns Array of selected items
|
|
35015
|
-
* ```typescript
|
|
35016
|
-
* let selectedItems = this.combo.selectedItems();
|
|
35017
|
-
* ```
|
|
35018
|
-
*/
|
|
35019
|
-
selectedItems() {
|
|
35020
|
-
const items = Array.from(this.selection.get(this.id));
|
|
35021
|
-
return items;
|
|
35022
|
-
}
|
|
35023
35187
|
/**
|
|
35024
35188
|
* Select defined items
|
|
35025
35189
|
*
|
|
35026
35190
|
* @param newItems new items to be selected
|
|
35027
35191
|
* @param clearCurrentSelection if true clear previous selected items
|
|
35028
35192
|
* ```typescript
|
|
35029
|
-
* this.combo.
|
|
35193
|
+
* this.combo.select(["New York", "New Jersey"]);
|
|
35030
35194
|
* ```
|
|
35031
35195
|
*/
|
|
35032
|
-
|
|
35196
|
+
select(newItems, clearCurrentSelection, event) {
|
|
35033
35197
|
if (newItems) {
|
|
35034
|
-
const newSelection = this.
|
|
35198
|
+
const newSelection = this.selectionService.add_items(this.id, newItems, clearCurrentSelection);
|
|
35035
35199
|
this.setSelection(newSelection, event);
|
|
35036
35200
|
}
|
|
35037
35201
|
}
|
|
@@ -35040,12 +35204,12 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35040
35204
|
*
|
|
35041
35205
|
* @param items items to deselected
|
|
35042
35206
|
* ```typescript
|
|
35043
|
-
* this.combo.
|
|
35207
|
+
* this.combo.deselect(["New York", "New Jersey"]);
|
|
35044
35208
|
* ```
|
|
35045
35209
|
*/
|
|
35046
|
-
|
|
35210
|
+
deselect(items, event) {
|
|
35047
35211
|
if (items) {
|
|
35048
|
-
const newSelection = this.
|
|
35212
|
+
const newSelection = this.selectionService.delete_items(this.id, items);
|
|
35049
35213
|
this.setSelection(newSelection, event);
|
|
35050
35214
|
}
|
|
35051
35215
|
}
|
|
@@ -35058,8 +35222,8 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35058
35222
|
* ```
|
|
35059
35223
|
*/
|
|
35060
35224
|
selectAllItems(ignoreFilter, event) {
|
|
35061
|
-
const allVisible = this.
|
|
35062
|
-
const newSelection = this.
|
|
35225
|
+
const allVisible = this.selectionService.get_all_ids(ignoreFilter ? this.data : this.filteredData, this.valueKey);
|
|
35226
|
+
const newSelection = this.selectionService.add_items(this.id, allVisible);
|
|
35063
35227
|
this.setSelection(newSelection, event);
|
|
35064
35228
|
}
|
|
35065
35229
|
/**
|
|
@@ -35071,9 +35235,9 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35071
35235
|
* ```
|
|
35072
35236
|
*/
|
|
35073
35237
|
deselectAllItems(ignoreFilter, event) {
|
|
35074
|
-
let newSelection = this.
|
|
35238
|
+
let newSelection = this.selectionService.get_empty();
|
|
35075
35239
|
if (this.filteredData.length !== this.data.length && !ignoreFilter) {
|
|
35076
|
-
newSelection = this.
|
|
35240
|
+
newSelection = this.selectionService.delete_items(this.id, this.selectionService.get_all_ids(this.filteredData, this.valueKey));
|
|
35077
35241
|
}
|
|
35078
35242
|
this.setSelection(newSelection, event);
|
|
35079
35243
|
}
|
|
@@ -35101,26 +35265,19 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35101
35265
|
return;
|
|
35102
35266
|
}
|
|
35103
35267
|
if (select) {
|
|
35104
|
-
this.
|
|
35268
|
+
this.select([itemID], false, event);
|
|
35105
35269
|
}
|
|
35106
35270
|
else {
|
|
35107
|
-
this.
|
|
35271
|
+
this.deselect([itemID], event);
|
|
35108
35272
|
}
|
|
35109
35273
|
}
|
|
35110
|
-
/**
|
|
35111
|
-
* Event handlers
|
|
35112
|
-
*
|
|
35113
|
-
* @hidden
|
|
35114
|
-
* @internal
|
|
35115
|
-
*/
|
|
35116
|
-
handleOpening(e) {
|
|
35117
|
-
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
35118
|
-
this.opening.emit(args);
|
|
35119
|
-
e.cancel = args.cancel;
|
|
35120
|
-
}
|
|
35121
35274
|
/**
|
|
35122
35275
|
* @hidden @internal
|
|
35123
35276
|
*/
|
|
35277
|
+
toggleCaseSensitive() {
|
|
35278
|
+
this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
|
|
35279
|
+
}
|
|
35280
|
+
/** @hidden @internal */
|
|
35124
35281
|
handleOpened() {
|
|
35125
35282
|
this.triggerCheck();
|
|
35126
35283
|
// Disabling focus of the search input should happen only when drop down opens.
|
|
@@ -35134,36 +35291,26 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35134
35291
|
}
|
|
35135
35292
|
this.opened.emit({ owner: this });
|
|
35136
35293
|
}
|
|
35137
|
-
/**
|
|
35138
|
-
|
|
35139
|
-
|
|
35140
|
-
|
|
35141
|
-
|
|
35142
|
-
|
|
35143
|
-
|
|
35144
|
-
|
|
35145
|
-
|
|
35294
|
+
/** @hidden @internal */
|
|
35295
|
+
focusSearchInput(opening) {
|
|
35296
|
+
if (this.displaySearchInput && this.searchInput) {
|
|
35297
|
+
this.searchInput.nativeElement.focus();
|
|
35298
|
+
}
|
|
35299
|
+
else {
|
|
35300
|
+
if (opening) {
|
|
35301
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35302
|
+
}
|
|
35303
|
+
else {
|
|
35304
|
+
this.comboInput.nativeElement.focus();
|
|
35305
|
+
this.toggle();
|
|
35306
|
+
}
|
|
35146
35307
|
}
|
|
35147
|
-
this.searchValue = '';
|
|
35148
|
-
this.comboInput.nativeElement.focus();
|
|
35149
|
-
}
|
|
35150
|
-
/**
|
|
35151
|
-
* @hidden @internal
|
|
35152
|
-
*/
|
|
35153
|
-
handleClosed() {
|
|
35154
|
-
this.closed.emit({ owner: this });
|
|
35155
|
-
}
|
|
35156
|
-
/**
|
|
35157
|
-
* @hidden @internal
|
|
35158
|
-
*/
|
|
35159
|
-
toggleCaseSensitive() {
|
|
35160
|
-
this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
|
|
35161
35308
|
}
|
|
35162
35309
|
setSelection(newSelection, event) {
|
|
35163
|
-
const removed = diffInSets(this.
|
|
35164
|
-
const added = diffInSets(newSelection, this.
|
|
35310
|
+
const removed = diffInSets(this.selectionService.get(this.id), newSelection);
|
|
35311
|
+
const added = diffInSets(newSelection, this.selectionService.get(this.id));
|
|
35165
35312
|
const newSelectionAsArray = Array.from(newSelection);
|
|
35166
|
-
const oldSelectionAsArray = Array.from(this.
|
|
35313
|
+
const oldSelectionAsArray = Array.from(this.selectionService.get(this.id) || []);
|
|
35167
35314
|
const displayText = this.createDisplayText(newSelectionAsArray, oldSelectionAsArray);
|
|
35168
35315
|
const args = {
|
|
35169
35316
|
newSelection: newSelectionAsArray,
|
|
@@ -35177,7 +35324,7 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35177
35324
|
};
|
|
35178
35325
|
this.selectionChanging.emit(args);
|
|
35179
35326
|
if (!args.cancel) {
|
|
35180
|
-
this.
|
|
35327
|
+
this.selectionService.select_items(this.id, args.newSelection, true);
|
|
35181
35328
|
if (displayText !== args.displayText) {
|
|
35182
35329
|
this._value = args.displayText;
|
|
35183
35330
|
}
|
|
@@ -35187,44 +35334,10 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35187
35334
|
this._onChangeCallback(args.newSelection);
|
|
35188
35335
|
}
|
|
35189
35336
|
}
|
|
35190
|
-
|
|
35191
|
-
|
|
35192
|
-
|
|
35193
|
-
|
|
35194
|
-
this.inputGroup.isRequired = error && error.required;
|
|
35195
|
-
}
|
|
35196
|
-
}
|
|
35197
|
-
/** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */
|
|
35198
|
-
registerRemoteEntries(ids, add = true) {
|
|
35199
|
-
if (add) {
|
|
35200
|
-
const selection = this.getValueDisplayPairs(ids);
|
|
35201
|
-
for (const entry of selection) {
|
|
35202
|
-
this._remoteSelection[entry[this.valueKey]] = entry[this.displayKey];
|
|
35203
|
-
}
|
|
35204
|
-
}
|
|
35205
|
-
else {
|
|
35206
|
-
for (const entry of ids) {
|
|
35207
|
-
delete this._remoteSelection[entry];
|
|
35208
|
-
}
|
|
35209
|
-
}
|
|
35210
|
-
}
|
|
35211
|
-
/**
|
|
35212
|
-
* For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`
|
|
35213
|
-
*/
|
|
35214
|
-
getValueDisplayPairs(ids) {
|
|
35215
|
-
return this.data.filter(entry => ids.indexOf(entry[this.valueKey]) > -1).map(e => ({
|
|
35216
|
-
[this.valueKey]: e[this.valueKey],
|
|
35217
|
-
[this.displayKey]: e[this.displayKey]
|
|
35218
|
-
}));
|
|
35219
|
-
}
|
|
35220
|
-
checkMatch() {
|
|
35221
|
-
const displayKey = this.displayKey;
|
|
35222
|
-
const matchFn = (e) => {
|
|
35223
|
-
const value = displayKey ? e[displayKey] : e;
|
|
35224
|
-
return value.toString().toLowerCase() === this.searchValue.trim().toLowerCase();
|
|
35225
|
-
};
|
|
35226
|
-
const itemMatch = this.filteredData.some(matchFn);
|
|
35227
|
-
this.customValueFlag = this.allowCustomValues && !itemMatch;
|
|
35337
|
+
createDisplayText(newSelection, oldSelection) {
|
|
35338
|
+
return this.isRemote
|
|
35339
|
+
? this.getRemoteSelection(newSelection, oldSelection)
|
|
35340
|
+
: this.concatDisplayText(newSelection);
|
|
35228
35341
|
}
|
|
35229
35342
|
/** Returns a string that should be populated in the combo's text box */
|
|
35230
35343
|
concatDisplayText(selection) {
|
|
@@ -35233,53 +35346,20 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
35233
35346
|
selection.join(', ');
|
|
35234
35347
|
return value;
|
|
35235
35348
|
}
|
|
35236
|
-
/**
|
|
35237
|
-
* Constructs the combo display value
|
|
35238
|
-
* If remote, caches the key displayText
|
|
35239
|
-
* If not, just combine the object.displayKeys
|
|
35240
|
-
*/
|
|
35241
|
-
createDisplayText(newSelection, oldSelection) {
|
|
35242
|
-
let value = '';
|
|
35243
|
-
if (this.isRemote) {
|
|
35244
|
-
if (newSelection.length) {
|
|
35245
|
-
const removedItems = oldSelection.filter(e => newSelection.indexOf(e) < 0);
|
|
35246
|
-
const addedItems = newSelection.filter(e => oldSelection.indexOf(e) < 0);
|
|
35247
|
-
this.registerRemoteEntries(addedItems);
|
|
35248
|
-
this.registerRemoteEntries(removedItems, false);
|
|
35249
|
-
value = Object.keys(this._remoteSelection).map(e => this._remoteSelection[e]).join(', ');
|
|
35250
|
-
}
|
|
35251
|
-
else {
|
|
35252
|
-
// If new selection is empty, clear all items
|
|
35253
|
-
this.registerRemoteEntries(oldSelection, false);
|
|
35254
|
-
}
|
|
35255
|
-
}
|
|
35256
|
-
else {
|
|
35257
|
-
value = this.concatDisplayText(newSelection);
|
|
35258
|
-
}
|
|
35259
|
-
return value;
|
|
35260
|
-
}
|
|
35261
|
-
/** if there is a valueKey - map the keys to data items, else - just return the keys */
|
|
35262
|
-
convertKeysToItems(keys) {
|
|
35263
|
-
if (this.comboAPI.valueKey === null) {
|
|
35264
|
-
return keys;
|
|
35265
|
-
}
|
|
35266
|
-
// map keys vs. filter data to retain the order of the selected items
|
|
35267
|
-
return keys.map(key => this.data.find(entry => entry[this.valueKey] === key)).filter(e => e !== undefined);
|
|
35268
|
-
}
|
|
35269
35349
|
}
|
|
35270
35350
|
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 });
|
|
35271
|
-
IgxComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboComponent, selector: "igx-combo", inputs: {
|
|
35351
|
+
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: [
|
|
35272
35352
|
IgxComboAPIService,
|
|
35273
35353
|
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
|
|
35274
35354
|
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxComboComponent, multi: true }
|
|
35275
|
-
], 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; }) } });
|
|
35355
|
+
], 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; }) } });
|
|
35276
35356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboComponent, decorators: [{
|
|
35277
35357
|
type: Component,
|
|
35278
35358
|
args: [{ selector: 'igx-combo', providers: [
|
|
35279
35359
|
IgxComboAPIService,
|
|
35280
35360
|
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
|
|
35281
35361
|
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxComboComponent, multi: true }
|
|
35282
|
-
], template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"
|
|
35362
|
+
], 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" }]
|
|
35283
35363
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: IgxComboAPIService }, { type: IgxIconService }, { type: undefined, decorators: [{
|
|
35284
35364
|
type: Optional
|
|
35285
35365
|
}, {
|
|
@@ -35292,143 +35372,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
35292
35372
|
args: [IGX_INPUT_GROUP_TYPE]
|
|
35293
35373
|
}] }, { type: i0.Injector, decorators: [{
|
|
35294
35374
|
type: Optional
|
|
35295
|
-
}] }]; }, propDecorators: {
|
|
35296
|
-
type: Input
|
|
35297
|
-
}], inputGroup: [{
|
|
35298
|
-
type: ViewChild,
|
|
35299
|
-
args: ['inputGroup', { read: IgxInputGroupComponent, static: true }]
|
|
35300
|
-
}], comboInput: [{
|
|
35301
|
-
type: ViewChild,
|
|
35302
|
-
args: ['comboInput', { read: IgxInputDirective, static: true }]
|
|
35303
|
-
}], dropdown: [{
|
|
35304
|
-
type: ViewChild,
|
|
35305
|
-
args: [IgxComboDropDownComponent, { read: IgxComboDropDownComponent, static: true }]
|
|
35306
|
-
}], searchInput: [{
|
|
35307
|
-
type: ViewChild,
|
|
35308
|
-
args: ['searchInput']
|
|
35309
|
-
}], itemTemplate: [{
|
|
35310
|
-
type: ContentChild,
|
|
35311
|
-
args: [IgxComboItemDirective, { read: TemplateRef }]
|
|
35312
|
-
}], headerTemplate: [{
|
|
35313
|
-
type: ContentChild,
|
|
35314
|
-
args: [IgxComboHeaderDirective, { read: TemplateRef }]
|
|
35315
|
-
}], footerTemplate: [{
|
|
35316
|
-
type: ContentChild,
|
|
35317
|
-
args: [IgxComboFooterDirective, { read: TemplateRef }]
|
|
35318
|
-
}], headerItemTemplate: [{
|
|
35319
|
-
type: ContentChild,
|
|
35320
|
-
args: [IgxComboHeaderItemDirective, { read: TemplateRef }]
|
|
35321
|
-
}], addItemTemplate: [{
|
|
35322
|
-
type: ContentChild,
|
|
35323
|
-
args: [IgxComboAddItemDirective, { read: TemplateRef }]
|
|
35324
|
-
}], emptyTemplate: [{
|
|
35325
|
-
type: ContentChild,
|
|
35326
|
-
args: [IgxComboEmptyDirective, { read: TemplateRef }]
|
|
35327
|
-
}], toggleIconTemplate: [{
|
|
35328
|
-
type: ContentChild,
|
|
35329
|
-
args: [IgxComboToggleIconDirective, { read: TemplateRef }]
|
|
35330
|
-
}], clearIconTemplate: [{
|
|
35331
|
-
type: ContentChild,
|
|
35332
|
-
args: [IgxComboClearIconDirective, { read: TemplateRef }]
|
|
35333
|
-
}], virtualScrollContainer: [{
|
|
35334
|
-
type: ViewChild,
|
|
35335
|
-
args: [IgxForOfDirective, { static: true }]
|
|
35336
|
-
}], selectionChanging: [{
|
|
35337
|
-
type: Output
|
|
35338
|
-
}], opening: [{
|
|
35339
|
-
type: Output
|
|
35340
|
-
}], opened: [{
|
|
35341
|
-
type: Output
|
|
35342
|
-
}], closing: [{
|
|
35343
|
-
type: Output
|
|
35344
|
-
}], closed: [{
|
|
35345
|
-
type: Output
|
|
35346
|
-
}], addition: [{
|
|
35347
|
-
type: Output
|
|
35348
|
-
}], searchInputUpdate: [{
|
|
35349
|
-
type: Output
|
|
35350
|
-
}], dataPreLoad: [{
|
|
35351
|
-
type: Output
|
|
35352
|
-
}], id: [{
|
|
35353
|
-
type: HostBinding,
|
|
35354
|
-
args: ['attr.id']
|
|
35355
|
-
}, {
|
|
35356
|
-
type: Input
|
|
35357
|
-
}], width: [{
|
|
35358
|
-
type: HostBinding,
|
|
35359
|
-
args: ['style.width']
|
|
35360
|
-
}, {
|
|
35361
|
-
type: Input
|
|
35362
|
-
}], cssClass: [{
|
|
35363
|
-
type: HostBinding,
|
|
35364
|
-
args: ['class.igx-combo']
|
|
35365
|
-
}], role: [{
|
|
35366
|
-
type: HostBinding,
|
|
35367
|
-
args: [`attr.role`]
|
|
35368
|
-
}], ariaExpanded: [{
|
|
35369
|
-
type: HostBinding,
|
|
35370
|
-
args: ['attr.aria-expanded']
|
|
35371
|
-
}], hasPopUp: [{
|
|
35372
|
-
type: HostBinding,
|
|
35373
|
-
args: ['attr.aria-haspopup']
|
|
35374
|
-
}], ariaOwns: [{
|
|
35375
|
-
type: HostBinding,
|
|
35376
|
-
args: ['attr.aria-owns']
|
|
35377
|
-
}], allowCustomValues: [{
|
|
35378
|
-
type: Input
|
|
35379
|
-
}], itemsMaxHeight: [{
|
|
35380
|
-
type: Input
|
|
35381
|
-
}], itemsWidth: [{
|
|
35382
|
-
type: Input
|
|
35383
|
-
}], itemHeight: [{
|
|
35384
|
-
type: Input
|
|
35385
|
-
}], placeholder: [{
|
|
35375
|
+
}] }]; }, propDecorators: { showSearchCaseIcon: [{
|
|
35386
35376
|
type: Input
|
|
35387
|
-
}],
|
|
35388
|
-
type: Input
|
|
35389
|
-
}], showSearchCaseIcon: [{
|
|
35390
|
-
type: Input
|
|
35391
|
-
}], data: [{
|
|
35392
|
-
type: Input
|
|
35393
|
-
}], valueKey: [{
|
|
35394
|
-
type: Input
|
|
35395
|
-
}], displayKey: [{
|
|
35396
|
-
type: Input
|
|
35397
|
-
}], groupKey: [{
|
|
35377
|
+
}], autoFocusSearch: [{
|
|
35398
35378
|
type: Input
|
|
35399
35379
|
}], filterable: [{
|
|
35400
35380
|
type: Input
|
|
35401
|
-
}],
|
|
35402
|
-
type: Input
|
|
35403
|
-
}], ariaLabelledBy: [{
|
|
35404
|
-
type: Input
|
|
35405
|
-
}, {
|
|
35406
|
-
type: HostBinding,
|
|
35407
|
-
args: ['attr.aria-labelledby']
|
|
35408
|
-
}], disabled: [{
|
|
35409
|
-
type: Input
|
|
35410
|
-
}], type: [{
|
|
35411
|
-
type: Input
|
|
35412
|
-
}], autoFocusSearch: [{
|
|
35381
|
+
}], searchPlaceholder: [{
|
|
35413
35382
|
type: Input
|
|
35414
|
-
}],
|
|
35415
|
-
type: ViewChild,
|
|
35416
|
-
args: ['dropdownItemContainer', { static: true }]
|
|
35417
|
-
}], primitiveTemplate: [{
|
|
35418
|
-
type: ViewChild,
|
|
35419
|
-
args: ['primitive', { read: TemplateRef, static: true }]
|
|
35420
|
-
}], complexTemplate: [{
|
|
35421
|
-
type: ViewChild,
|
|
35422
|
-
args: ['complex', { read: TemplateRef, static: true }]
|
|
35423
|
-
}], virtDir: [{
|
|
35383
|
+
}], dropdown: [{
|
|
35424
35384
|
type: ViewChild,
|
|
35425
|
-
args: [
|
|
35426
|
-
}], onArrowDown: [{
|
|
35427
|
-
type: HostListener,
|
|
35428
|
-
args: ['keydown.ArrowDown', ['$event']]
|
|
35429
|
-
}, {
|
|
35430
|
-
type: HostListener,
|
|
35431
|
-
args: ['keydown.Alt.ArrowDown', ['$event']]
|
|
35385
|
+
args: [IgxComboDropDownComponent, { static: true }]
|
|
35432
35386
|
}] } });
|
|
35433
35387
|
/**
|
|
35434
35388
|
* @hidden
|
|
@@ -35457,11 +35411,16 @@ IgxComboModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
35457
35411
|
IgxInputGroupModule,
|
|
35458
35412
|
IgxRippleModule,
|
|
35459
35413
|
IgxToggleModule,
|
|
35460
|
-
ReactiveFormsModule], exports: [
|
|
35461
|
-
|
|
35414
|
+
ReactiveFormsModule], exports: [IgxComboAddItemComponent,
|
|
35415
|
+
IgxComboAddItemDirective,
|
|
35416
|
+
IgxComboClearIconDirective, IgxComboComponent, IgxComboDropDownComponent,
|
|
35417
|
+
IgxComboEmptyDirective,
|
|
35418
|
+
IgxComboFilteringPipe,
|
|
35462
35419
|
IgxComboFooterDirective,
|
|
35420
|
+
IgxComboGroupingPipe,
|
|
35463
35421
|
IgxComboHeaderDirective,
|
|
35464
35422
|
IgxComboHeaderItemDirective,
|
|
35423
|
+
IgxComboItemComponent,
|
|
35465
35424
|
IgxComboItemDirective,
|
|
35466
35425
|
IgxComboToggleIconDirective,
|
|
35467
35426
|
IgxInputGroupModule] });
|
|
@@ -35498,13 +35457,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
35498
35457
|
IgxComboToggleIconDirective
|
|
35499
35458
|
],
|
|
35500
35459
|
exports: [
|
|
35460
|
+
IgxComboAddItemComponent,
|
|
35501
35461
|
IgxComboAddItemDirective,
|
|
35502
35462
|
IgxComboClearIconDirective,
|
|
35503
35463
|
IgxComboComponent,
|
|
35464
|
+
IgxComboDropDownComponent,
|
|
35504
35465
|
IgxComboEmptyDirective,
|
|
35466
|
+
IgxComboFilteringPipe,
|
|
35505
35467
|
IgxComboFooterDirective,
|
|
35468
|
+
IgxComboGroupingPipe,
|
|
35506
35469
|
IgxComboHeaderDirective,
|
|
35507
35470
|
IgxComboHeaderItemDirective,
|
|
35471
|
+
IgxComboItemComponent,
|
|
35508
35472
|
IgxComboItemDirective,
|
|
35509
35473
|
IgxComboToggleIconDirective,
|
|
35510
35474
|
IgxInputGroupModule
|
|
@@ -35525,6 +35489,344 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
35525
35489
|
}]
|
|
35526
35490
|
}] });
|
|
35527
35491
|
|
|
35492
|
+
/**
|
|
35493
|
+
* Represents a drop-down list that provides filtering functionality, allowing users to choose a single option from a predefined list.
|
|
35494
|
+
*
|
|
35495
|
+
* @igxModule IgxSimpleComboModule
|
|
35496
|
+
* @igxTheme igx-combo-theme
|
|
35497
|
+
* @igxKeywords combobox, single combo selection
|
|
35498
|
+
* @igxGroup Grids & Lists
|
|
35499
|
+
*
|
|
35500
|
+
* @remarks
|
|
35501
|
+
* It provides the ability to filter items as well as perform single selection on the provided data.
|
|
35502
|
+
* Additionally, it exposes keyboard navigation and custom styling capabilities.
|
|
35503
|
+
* @example
|
|
35504
|
+
* ```html
|
|
35505
|
+
* <igx-simple-combo [itemsMaxHeight]="250" [data]="locationData"
|
|
35506
|
+
* [displayKey]="'field'" [valueKey]="'field'"
|
|
35507
|
+
* placeholder="Location" searchPlaceholder="Search...">
|
|
35508
|
+
* </igx-simple-combo>
|
|
35509
|
+
* ```
|
|
35510
|
+
*/
|
|
35511
|
+
class IgxSimpleComboComponent extends IgxComboBaseDirective {
|
|
35512
|
+
constructor(elementRef, cdr, selectionService, comboAPI, _iconService, platformUtil, _displayDensityOptions, _inputGroupType, _injector) {
|
|
35513
|
+
super(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector);
|
|
35514
|
+
this.elementRef = elementRef;
|
|
35515
|
+
this.cdr = cdr;
|
|
35516
|
+
this.selectionService = selectionService;
|
|
35517
|
+
this.comboAPI = comboAPI;
|
|
35518
|
+
this._iconService = _iconService;
|
|
35519
|
+
this.platformUtil = platformUtil;
|
|
35520
|
+
this._displayDensityOptions = _displayDensityOptions;
|
|
35521
|
+
this._inputGroupType = _inputGroupType;
|
|
35522
|
+
this._injector = _injector;
|
|
35523
|
+
/**
|
|
35524
|
+
* Emitted when item selection is changing, before the selection completes
|
|
35525
|
+
*
|
|
35526
|
+
* ```html
|
|
35527
|
+
* <igx-simple-combo (selectionChanging)='handleSelection()'></igx-simple-combo>
|
|
35528
|
+
* ```
|
|
35529
|
+
*/
|
|
35530
|
+
this.selectionChanging = new EventEmitter();
|
|
35531
|
+
/** @hidden @internal */
|
|
35532
|
+
this.composing = false;
|
|
35533
|
+
this._updateInput = true;
|
|
35534
|
+
this.findMatch = (element) => {
|
|
35535
|
+
const value = this.displayKey ? element[this.displayKey] : element;
|
|
35536
|
+
return value.toString().toLowerCase().includes(this.searchValue.trim().toLowerCase());
|
|
35537
|
+
};
|
|
35538
|
+
this.comboAPI.register(this);
|
|
35539
|
+
}
|
|
35540
|
+
/** @hidden @internal */
|
|
35541
|
+
get filteredData() {
|
|
35542
|
+
return this._filteredData;
|
|
35543
|
+
}
|
|
35544
|
+
/** @hidden @internal */
|
|
35545
|
+
set filteredData(val) {
|
|
35546
|
+
this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val;
|
|
35547
|
+
this.checkMatch();
|
|
35548
|
+
}
|
|
35549
|
+
/**
|
|
35550
|
+
* Select a defined item
|
|
35551
|
+
*
|
|
35552
|
+
* @param item the item to be selected
|
|
35553
|
+
* ```typescript
|
|
35554
|
+
* this.combo.select("New York");
|
|
35555
|
+
* ```
|
|
35556
|
+
*/
|
|
35557
|
+
select(item) {
|
|
35558
|
+
if (item !== null && item !== undefined) {
|
|
35559
|
+
const newSelection = this.selectionService.add_items(this.id, item instanceof Array ? item : [item], true);
|
|
35560
|
+
this.setSelection(newSelection);
|
|
35561
|
+
}
|
|
35562
|
+
}
|
|
35563
|
+
/**
|
|
35564
|
+
* Deselect the currently selected item
|
|
35565
|
+
*
|
|
35566
|
+
* @param item the items to be deselected
|
|
35567
|
+
* ```typescript
|
|
35568
|
+
* this.combo.deselect("New York");
|
|
35569
|
+
* ```
|
|
35570
|
+
*/
|
|
35571
|
+
deselect() {
|
|
35572
|
+
this.clearSelection();
|
|
35573
|
+
}
|
|
35574
|
+
/** @hidden @internal */
|
|
35575
|
+
writeValue(value) {
|
|
35576
|
+
const oldSelection = this.selection;
|
|
35577
|
+
this.selectionService.select_items(this.id, value ? [value] : [], true);
|
|
35578
|
+
this.cdr.markForCheck();
|
|
35579
|
+
this._value = this.createDisplayText(this.selection, oldSelection);
|
|
35580
|
+
}
|
|
35581
|
+
/** @hidden @internal */
|
|
35582
|
+
ngAfterViewInit() {
|
|
35583
|
+
this.virtDir.contentSizeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
35584
|
+
if (this.selection.length > 0) {
|
|
35585
|
+
const index = this.virtDir.igxForOf.findIndex(e => {
|
|
35586
|
+
let current = e[this.valueKey];
|
|
35587
|
+
if (this.valueKey === null || this.valueKey === undefined) {
|
|
35588
|
+
current = e;
|
|
35589
|
+
}
|
|
35590
|
+
return current === this.selection[0];
|
|
35591
|
+
});
|
|
35592
|
+
this.dropdown.navigateItem(index);
|
|
35593
|
+
}
|
|
35594
|
+
});
|
|
35595
|
+
this.dropdown.opened.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
35596
|
+
if (this.composing) {
|
|
35597
|
+
this.comboInput.focus();
|
|
35598
|
+
}
|
|
35599
|
+
if (this.comboInput.value.length === 0) {
|
|
35600
|
+
this.dropdown.navigateFirst();
|
|
35601
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35602
|
+
}
|
|
35603
|
+
});
|
|
35604
|
+
super.ngAfterViewInit();
|
|
35605
|
+
}
|
|
35606
|
+
/** @hidden @internal */
|
|
35607
|
+
handleInputChange(event) {
|
|
35608
|
+
this.searchValue = event.target.value;
|
|
35609
|
+
this._onChangeCallback(this.searchValue);
|
|
35610
|
+
if (this.collapsed) {
|
|
35611
|
+
this.open();
|
|
35612
|
+
this.dropdown.navigateFirst();
|
|
35613
|
+
}
|
|
35614
|
+
if (!this.comboInput.value.trim()) {
|
|
35615
|
+
// handle clearing of input by space
|
|
35616
|
+
this.clearSelection();
|
|
35617
|
+
this._onChangeCallback(null);
|
|
35618
|
+
}
|
|
35619
|
+
super.handleInputChange(event);
|
|
35620
|
+
this.composing = true;
|
|
35621
|
+
}
|
|
35622
|
+
/** @hidden @internal */
|
|
35623
|
+
handleKeyDown(event) {
|
|
35624
|
+
if (event.key === this.platformUtil.KEYMAP.ENTER) {
|
|
35625
|
+
const filtered = this.filteredData.find(this.findMatch);
|
|
35626
|
+
if (filtered === null || filtered === undefined) {
|
|
35627
|
+
return;
|
|
35628
|
+
}
|
|
35629
|
+
this.select(this.dropdown.items[0].itemID);
|
|
35630
|
+
event.preventDefault();
|
|
35631
|
+
event.stopPropagation();
|
|
35632
|
+
this.close();
|
|
35633
|
+
// manually trigger text selection as it will not be triggered during editing
|
|
35634
|
+
this.textSelection.trigger();
|
|
35635
|
+
return;
|
|
35636
|
+
}
|
|
35637
|
+
if (event.key === this.platformUtil.KEYMAP.BACKSPACE
|
|
35638
|
+
|| event.key === this.platformUtil.KEYMAP.DELETE) {
|
|
35639
|
+
this._updateInput = false;
|
|
35640
|
+
this.clearSelection();
|
|
35641
|
+
}
|
|
35642
|
+
super.handleKeyDown(event);
|
|
35643
|
+
}
|
|
35644
|
+
/** @hidden @internal */
|
|
35645
|
+
handleKeyUp(event) {
|
|
35646
|
+
if (event.key === this.platformUtil.KEYMAP.ARROW_DOWN) {
|
|
35647
|
+
const firstItem = this.selectionService.first_item(this.id);
|
|
35648
|
+
this.dropdown.focusedItem = firstItem && this.filteredData.length > 0
|
|
35649
|
+
? this.dropdown.items.find(i => i.itemID === firstItem)
|
|
35650
|
+
: this.dropdown.items[0];
|
|
35651
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35652
|
+
}
|
|
35653
|
+
}
|
|
35654
|
+
/** @hidden @internal */
|
|
35655
|
+
handleItemKeyDown(event) {
|
|
35656
|
+
if (event.key === this.platformUtil.KEYMAP.ARROW_UP && event.altKey) {
|
|
35657
|
+
this.close();
|
|
35658
|
+
}
|
|
35659
|
+
}
|
|
35660
|
+
/** @hidden @internal */
|
|
35661
|
+
getEditElement() {
|
|
35662
|
+
return this.comboInput.nativeElement;
|
|
35663
|
+
}
|
|
35664
|
+
/** @hidden @internal */
|
|
35665
|
+
handleClear(event) {
|
|
35666
|
+
if (this.disabled) {
|
|
35667
|
+
return;
|
|
35668
|
+
}
|
|
35669
|
+
this.clearSelection(true);
|
|
35670
|
+
if (this.collapsed) {
|
|
35671
|
+
this.open();
|
|
35672
|
+
this.dropdown.navigateFirst();
|
|
35673
|
+
}
|
|
35674
|
+
else {
|
|
35675
|
+
this.focusSearchInput(true);
|
|
35676
|
+
}
|
|
35677
|
+
event.stopPropagation();
|
|
35678
|
+
this.comboInput.value = this.filterValue = this.searchValue = '';
|
|
35679
|
+
this.dropdown.focusedItem = null;
|
|
35680
|
+
this.composing = false;
|
|
35681
|
+
this.comboInput.focus();
|
|
35682
|
+
}
|
|
35683
|
+
/** @hidden @internal */
|
|
35684
|
+
handleOpened() {
|
|
35685
|
+
this.triggerCheck();
|
|
35686
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35687
|
+
this.opened.emit({ owner: this });
|
|
35688
|
+
}
|
|
35689
|
+
/** @hidden @internal */
|
|
35690
|
+
handleClosing(e) {
|
|
35691
|
+
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
35692
|
+
this.closing.emit(args);
|
|
35693
|
+
e.cancel = args.cancel;
|
|
35694
|
+
if (e.cancel) {
|
|
35695
|
+
return;
|
|
35696
|
+
}
|
|
35697
|
+
this.composing = false;
|
|
35698
|
+
// explicitly update selection and trigger text selection so that we don't have to force CD
|
|
35699
|
+
this.textSelection.selected = true;
|
|
35700
|
+
this.textSelection.trigger();
|
|
35701
|
+
const selection = this.selectionService.first_item(this.id);
|
|
35702
|
+
this._value = selection !== undefined && selection !== null ? selection : '';
|
|
35703
|
+
this.comboInput.focus();
|
|
35704
|
+
this._onChangeCallback(selection);
|
|
35705
|
+
}
|
|
35706
|
+
/** @hidden @internal */
|
|
35707
|
+
focusSearchInput(opening) {
|
|
35708
|
+
if (opening) {
|
|
35709
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35710
|
+
}
|
|
35711
|
+
else {
|
|
35712
|
+
this.comboInput.nativeElement.focus();
|
|
35713
|
+
this.toggle();
|
|
35714
|
+
}
|
|
35715
|
+
}
|
|
35716
|
+
/** @hidden @internal */
|
|
35717
|
+
onClick(event) {
|
|
35718
|
+
super.onClick(event);
|
|
35719
|
+
if (this.comboInput.value.length === 0) {
|
|
35720
|
+
this.virtDir.scrollTo(0);
|
|
35721
|
+
}
|
|
35722
|
+
}
|
|
35723
|
+
setSelection(newSelection) {
|
|
35724
|
+
const newSelectionAsArray = newSelection ? Array.from(newSelection) : [];
|
|
35725
|
+
const oldSelectionAsArray = Array.from(this.selectionService.get(this.id) || []);
|
|
35726
|
+
const displayText = this.createDisplayText(newSelectionAsArray, oldSelectionAsArray);
|
|
35727
|
+
const args = {
|
|
35728
|
+
newSelection: newSelectionAsArray[0],
|
|
35729
|
+
oldSelection: oldSelectionAsArray[0],
|
|
35730
|
+
displayText,
|
|
35731
|
+
owner: this,
|
|
35732
|
+
cancel: false
|
|
35733
|
+
};
|
|
35734
|
+
this.selectionChanging.emit(args);
|
|
35735
|
+
if (!args.cancel) {
|
|
35736
|
+
const argsSelection = args.newSelection !== undefined
|
|
35737
|
+
&& args.newSelection !== null
|
|
35738
|
+
? [args.newSelection]
|
|
35739
|
+
: [];
|
|
35740
|
+
this.selectionService.select_items(this.id, argsSelection, true);
|
|
35741
|
+
if (this._updateInput) {
|
|
35742
|
+
this.comboInput.value = this._value = displayText !== args.displayText
|
|
35743
|
+
? args.displayText
|
|
35744
|
+
: this.createDisplayText([args.newSelection], [args.oldSelection]);
|
|
35745
|
+
}
|
|
35746
|
+
this._onChangeCallback(args.newSelection);
|
|
35747
|
+
this._updateInput = true;
|
|
35748
|
+
}
|
|
35749
|
+
}
|
|
35750
|
+
createDisplayText(newSelection, oldSelection) {
|
|
35751
|
+
if (this.isRemote) {
|
|
35752
|
+
return this.getRemoteSelection(newSelection, oldSelection);
|
|
35753
|
+
}
|
|
35754
|
+
return this.displayKey !== null && this.displayKey !== undefined
|
|
35755
|
+
? this.convertKeysToItems(newSelection).map(e => e[this.displayKey])[0]
|
|
35756
|
+
: newSelection[0];
|
|
35757
|
+
}
|
|
35758
|
+
clearSelection(ignoreFilter) {
|
|
35759
|
+
let newSelection = this.selectionService.get_empty();
|
|
35760
|
+
if (this.filteredData.length !== this.data.length && !ignoreFilter) {
|
|
35761
|
+
newSelection = this.selectionService.delete_items(this.id, this.selectionService.get_all_ids(this.filteredData, this.valueKey));
|
|
35762
|
+
}
|
|
35763
|
+
this.setSelection(newSelection);
|
|
35764
|
+
}
|
|
35765
|
+
}
|
|
35766
|
+
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 });
|
|
35767
|
+
IgxSimpleComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxSimpleComboComponent, selector: "igx-simple-combo", outputs: { selectionChanging: "selectionChanging" }, providers: [
|
|
35768
|
+
IgxComboAPIService,
|
|
35769
|
+
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
|
|
35770
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true }
|
|
35771
|
+
], 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 } });
|
|
35772
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboComponent, decorators: [{
|
|
35773
|
+
type: Component,
|
|
35774
|
+
args: [{ selector: 'igx-simple-combo', providers: [
|
|
35775
|
+
IgxComboAPIService,
|
|
35776
|
+
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
|
|
35777
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true }
|
|
35778
|
+
], 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" }]
|
|
35779
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: IgxComboAPIService }, { type: IgxIconService }, { type: PlatformUtil }, { type: undefined, decorators: [{
|
|
35780
|
+
type: Optional
|
|
35781
|
+
}, {
|
|
35782
|
+
type: Inject,
|
|
35783
|
+
args: [DisplayDensityToken]
|
|
35784
|
+
}] }, { type: undefined, decorators: [{
|
|
35785
|
+
type: Optional
|
|
35786
|
+
}, {
|
|
35787
|
+
type: Inject,
|
|
35788
|
+
args: [IGX_INPUT_GROUP_TYPE]
|
|
35789
|
+
}] }, { type: i0.Injector, decorators: [{
|
|
35790
|
+
type: Optional
|
|
35791
|
+
}] }]; }, propDecorators: { dropdown: [{
|
|
35792
|
+
type: ViewChild,
|
|
35793
|
+
args: [IgxComboDropDownComponent, { static: true }]
|
|
35794
|
+
}], selectionChanging: [{
|
|
35795
|
+
type: Output
|
|
35796
|
+
}], textSelection: [{
|
|
35797
|
+
type: ViewChild,
|
|
35798
|
+
args: [IgxTextSelectionDirective, { static: true }]
|
|
35799
|
+
}] } });
|
|
35800
|
+
class IgxSimpleComboModule {
|
|
35801
|
+
}
|
|
35802
|
+
IgxSimpleComboModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
35803
|
+
IgxSimpleComboModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, declarations: [IgxSimpleComboComponent], imports: [IgxComboModule, IgxRippleModule, CommonModule,
|
|
35804
|
+
IgxInputGroupModule, FormsModule, ReactiveFormsModule,
|
|
35805
|
+
IgxForOfModule, IgxToggleModule, IgxCheckboxModule,
|
|
35806
|
+
IgxDropDownModule, IgxButtonModule, IgxIconModule,
|
|
35807
|
+
IgxTextSelectionModule], exports: [IgxSimpleComboComponent, IgxComboModule] });
|
|
35808
|
+
IgxSimpleComboModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, imports: [[
|
|
35809
|
+
IgxComboModule, IgxRippleModule, CommonModule,
|
|
35810
|
+
IgxInputGroupModule, FormsModule, ReactiveFormsModule,
|
|
35811
|
+
IgxForOfModule, IgxToggleModule, IgxCheckboxModule,
|
|
35812
|
+
IgxDropDownModule, IgxButtonModule, IgxIconModule,
|
|
35813
|
+
IgxTextSelectionModule
|
|
35814
|
+
], IgxComboModule] });
|
|
35815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, decorators: [{
|
|
35816
|
+
type: NgModule,
|
|
35817
|
+
args: [{
|
|
35818
|
+
declarations: [IgxSimpleComboComponent],
|
|
35819
|
+
imports: [
|
|
35820
|
+
IgxComboModule, IgxRippleModule, CommonModule,
|
|
35821
|
+
IgxInputGroupModule, FormsModule, ReactiveFormsModule,
|
|
35822
|
+
IgxForOfModule, IgxToggleModule, IgxCheckboxModule,
|
|
35823
|
+
IgxDropDownModule, IgxButtonModule, IgxIconModule,
|
|
35824
|
+
IgxTextSelectionModule
|
|
35825
|
+
],
|
|
35826
|
+
exports: [IgxSimpleComboComponent, IgxComboModule]
|
|
35827
|
+
}]
|
|
35828
|
+
}] });
|
|
35829
|
+
|
|
35528
35830
|
/** Header orientation in `dialog` mode. */
|
|
35529
35831
|
const PickerHeaderOrientation = mkenum({
|
|
35530
35832
|
Horizontal: 'horizontal',
|
|
@@ -36812,6 +37114,14 @@ class IgxDialogComponent {
|
|
|
36812
37114
|
* ```
|
|
36813
37115
|
*/
|
|
36814
37116
|
this.id = `igx-dialog-${DIALOG_ID++}`;
|
|
37117
|
+
/**
|
|
37118
|
+
* An @Input property to set whether the Tab key focus is trapped within the dialog when opened.
|
|
37119
|
+
* Defaults to `true`.
|
|
37120
|
+
* ```html
|
|
37121
|
+
* <igx-dialog focusTrap="false""></igx-dialog>
|
|
37122
|
+
* ```
|
|
37123
|
+
*/
|
|
37124
|
+
this.focusTrap = true;
|
|
36815
37125
|
/**
|
|
36816
37126
|
* An @Input property controlling the `title` of the dialog.
|
|
36817
37127
|
* ```html
|
|
@@ -37259,10 +37569,10 @@ class IgxDialogComponent {
|
|
|
37259
37569
|
IgxDialogComponent.NEXT_ID = 1;
|
|
37260
37570
|
IgxDialogComponent.DIALOG_CLASS = 'igx-dialog';
|
|
37261
37571
|
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 });
|
|
37262
|
-
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"] }] });
|
|
37572
|
+
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"] }] });
|
|
37263
37573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogComponent, decorators: [{
|
|
37264
37574
|
type: Component,
|
|
37265
|
-
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" }]
|
|
37575
|
+
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" }]
|
|
37266
37576
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: IgxNavigationService, decorators: [{
|
|
37267
37577
|
type: Optional
|
|
37268
37578
|
}] }]; }, propDecorators: { toggleRef: [{
|
|
@@ -37277,6 +37587,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
37277
37587
|
type: Input
|
|
37278
37588
|
}], closeOnEscape: [{
|
|
37279
37589
|
type: Input
|
|
37590
|
+
}], focusTrap: [{
|
|
37591
|
+
type: Input
|
|
37280
37592
|
}], title: [{
|
|
37281
37593
|
type: Input
|
|
37282
37594
|
}], message: [{
|
|
@@ -37338,14 +37650,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
37338
37650
|
class IgxDialogModule {
|
|
37339
37651
|
}
|
|
37340
37652
|
IgxDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
37341
|
-
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] });
|
|
37342
|
-
IgxDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, imports: [[CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule]] });
|
|
37653
|
+
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] });
|
|
37654
|
+
IgxDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, imports: [[CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule, IgxFocusTrapModule]] });
|
|
37343
37655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, decorators: [{
|
|
37344
37656
|
type: NgModule,
|
|
37345
37657
|
args: [{
|
|
37346
37658
|
declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],
|
|
37347
37659
|
exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],
|
|
37348
|
-
imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule]
|
|
37660
|
+
imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule, IgxFocusTrapModule]
|
|
37349
37661
|
}]
|
|
37350
37662
|
}] });
|
|
37351
37663
|
|
|
@@ -45646,7 +45958,7 @@ class IgxColumnComponent {
|
|
|
45646
45958
|
* @memberof IgxColumnComponent
|
|
45647
45959
|
*/
|
|
45648
45960
|
get index() {
|
|
45649
|
-
return this.grid.
|
|
45961
|
+
return this.grid.columnsCollection.indexOf(this);
|
|
45650
45962
|
}
|
|
45651
45963
|
/**
|
|
45652
45964
|
* Gets whether the column is `pinned`.
|
|
@@ -45933,7 +46245,7 @@ class IgxColumnComponent {
|
|
|
45933
46245
|
/**
|
|
45934
46246
|
* Gets the cells of the column.
|
|
45935
46247
|
* ```typescript
|
|
45936
|
-
* let columnCells = this.column.
|
|
46248
|
+
* let columnCells = this.column.cells;
|
|
45937
46249
|
* ```
|
|
45938
46250
|
*
|
|
45939
46251
|
*/
|
|
@@ -46479,7 +46791,7 @@ class IgxColumnComponent {
|
|
|
46479
46791
|
grid.resetCaches();
|
|
46480
46792
|
grid.notifyChanges();
|
|
46481
46793
|
if (this.columnLayoutChild) {
|
|
46482
|
-
this.grid.
|
|
46794
|
+
this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
46483
46795
|
}
|
|
46484
46796
|
this.grid.filteringService.refreshExpressions();
|
|
46485
46797
|
const eventArgs = { column: this, insertAtIndex: index, isPinned: true };
|
|
@@ -46546,7 +46858,7 @@ class IgxColumnComponent {
|
|
|
46546
46858
|
grid.resetCaches();
|
|
46547
46859
|
grid.notifyChanges();
|
|
46548
46860
|
if (this.columnLayoutChild) {
|
|
46549
|
-
this.grid.
|
|
46861
|
+
this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
46550
46862
|
}
|
|
46551
46863
|
this.grid.filteringService.refreshExpressions();
|
|
46552
46864
|
this.grid.columnPinned.emit({ column: this, insertAtIndex: index, isPinned: false });
|
|
@@ -48040,7 +48352,7 @@ class IgxColumnActionsComponent {
|
|
|
48040
48352
|
*/
|
|
48041
48353
|
ngDoCheck() {
|
|
48042
48354
|
if (this._differ) {
|
|
48043
|
-
const changes = this._differ.diff(this.grid?.
|
|
48355
|
+
const changes = this._differ.diff(this.grid?.columnList);
|
|
48044
48356
|
if (changes) {
|
|
48045
48357
|
this.pipeTrigger++;
|
|
48046
48358
|
}
|
|
@@ -48077,10 +48389,10 @@ class IgxColumnActionsComponent {
|
|
|
48077
48389
|
}
|
|
48078
48390
|
}
|
|
48079
48391
|
IgxColumnActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnActionsComponent, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
48080
|
-
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?.
|
|
48392
|
+
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; }) } });
|
|
48081
48393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnActionsComponent, decorators: [{
|
|
48082
48394
|
type: Component,
|
|
48083
|
-
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?.
|
|
48395
|
+
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" }]
|
|
48084
48396
|
}], ctorParameters: function () { return [{ type: i0.IterableDiffers }]; }, propDecorators: { grid: [{
|
|
48085
48397
|
type: Input
|
|
48086
48398
|
}], indentation: [{
|
|
@@ -48887,7 +49199,7 @@ class BaseRow {
|
|
|
48887
49199
|
return this._data ?? this.grid.dataView[this.index];
|
|
48888
49200
|
}
|
|
48889
49201
|
/**
|
|
48890
|
-
* @deprecated Use 'data' instead
|
|
49202
|
+
* @deprecated Use 'data' instead
|
|
48891
49203
|
*
|
|
48892
49204
|
* The data record that populates the row
|
|
48893
49205
|
*/
|
|
@@ -48895,8 +49207,7 @@ class BaseRow {
|
|
|
48895
49207
|
return this.data;
|
|
48896
49208
|
}
|
|
48897
49209
|
/**
|
|
48898
|
-
* @deprecated Use 'key' instead
|
|
48899
|
-
*
|
|
49210
|
+
* @deprecated Use 'key' instead
|
|
48900
49211
|
*/
|
|
48901
49212
|
get rowID() {
|
|
48902
49213
|
return this.key;
|
|
@@ -49065,12 +49376,6 @@ class BaseRow {
|
|
|
49065
49376
|
this.grid.deleteRowById(this.key);
|
|
49066
49377
|
}
|
|
49067
49378
|
}
|
|
49068
|
-
__decorate([
|
|
49069
|
-
DeprecateProperty(`'rowData' property is deprecated. Use 'data' instead.`)
|
|
49070
|
-
], BaseRow.prototype, "rowData", null);
|
|
49071
|
-
__decorate([
|
|
49072
|
-
DeprecateProperty(`'rowID' property is deprecated. Use 'key' instead.`)
|
|
49073
|
-
], BaseRow.prototype, "rowID", null);
|
|
49074
49379
|
class IgxGridRow extends BaseRow {
|
|
49075
49380
|
/**
|
|
49076
49381
|
* @hidden
|
|
@@ -50586,7 +50891,7 @@ class IgxGroupByAreaDirective {
|
|
|
50586
50891
|
const drag = event.detail.owner;
|
|
50587
50892
|
if (drag instanceof IgxColumnMovingDragDirective) {
|
|
50588
50893
|
const column = drag.column;
|
|
50589
|
-
if (this.grid.
|
|
50894
|
+
if (!this.grid.columnList.find(c => c === column)) {
|
|
50590
50895
|
return;
|
|
50591
50896
|
}
|
|
50592
50897
|
const isGrouped = this.expressions.findIndex((item) => item.fieldName === column.field) !== -1;
|
|
@@ -51047,7 +51352,7 @@ class IgxAdvancedFilteringDialogComponent {
|
|
|
51047
51352
|
* @hidden @internal
|
|
51048
51353
|
*/
|
|
51049
51354
|
get filterableColumns() {
|
|
51050
|
-
return this.grid.
|
|
51355
|
+
return this.grid.columnList.filter((col) => !col.columnGroup && col.filterable);
|
|
51051
51356
|
}
|
|
51052
51357
|
/**
|
|
51053
51358
|
* @hidden @internal
|
|
@@ -52747,10 +53052,10 @@ class IgxFilteringService {
|
|
|
52747
53052
|
...{ target: filterIconTarget }
|
|
52748
53053
|
});
|
|
52749
53054
|
this._overlayService.opening
|
|
52750
|
-
.pipe(
|
|
53055
|
+
.pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
|
|
52751
53056
|
.subscribe(() => this.lastActiveNode = this.grid.navigation.activeNode);
|
|
52752
53057
|
this._overlayService.closed
|
|
52753
|
-
.pipe(
|
|
53058
|
+
.pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
|
|
52754
53059
|
.subscribe(() => {
|
|
52755
53060
|
this._overlayService.detach(id);
|
|
52756
53061
|
ref?.destroy();
|
|
@@ -52867,7 +53172,7 @@ class IgxFilteringService {
|
|
|
52867
53172
|
grid.paginator.page = 0;
|
|
52868
53173
|
}
|
|
52869
53174
|
filteringTree.filteringOperands = [];
|
|
52870
|
-
for (const column of grid.
|
|
53175
|
+
for (const column of grid.columnList) {
|
|
52871
53176
|
this.prepare_filtering_expression(filteringTree, column.field, term, condition, ignoreCase || column.filteringIgnoreCase);
|
|
52872
53177
|
}
|
|
52873
53178
|
grid.filteringExpressionsTree = filteringTree;
|
|
@@ -52901,7 +53206,7 @@ class IgxFilteringService {
|
|
|
52901
53206
|
expressions.length = 0;
|
|
52902
53207
|
}
|
|
52903
53208
|
else {
|
|
52904
|
-
this.grid.
|
|
53209
|
+
this.grid.columnList.forEach(c => {
|
|
52905
53210
|
const expressions = this.getExpressions(c.field);
|
|
52906
53211
|
expressions.length = 0;
|
|
52907
53212
|
});
|
|
@@ -52931,7 +53236,7 @@ class IgxFilteringService {
|
|
|
52931
53236
|
const grid = this.grid;
|
|
52932
53237
|
const filteringTree = grid.filteringExpressionsTree;
|
|
52933
53238
|
const newFilteringTree = new FilteringExpressionsTree(filteringTree.operator, filteringTree.fieldName);
|
|
52934
|
-
for (const column of grid.
|
|
53239
|
+
for (const column of grid.columnList) {
|
|
52935
53240
|
this.prepare_filtering_expression(newFilteringTree, column.field, value, condition, ignoreCase || column.filteringIgnoreCase);
|
|
52936
53241
|
}
|
|
52937
53242
|
const eventArgs = { owner: grid, filteringExpressions: newFilteringTree, cancel: false };
|
|
@@ -52961,7 +53266,7 @@ class IgxFilteringService {
|
|
|
52961
53266
|
*/
|
|
52962
53267
|
getExpressions(columnId) {
|
|
52963
53268
|
if (!this.columnToExpressionsMap.has(columnId)) {
|
|
52964
|
-
const column = this.grid.
|
|
53269
|
+
const column = this.grid.columnList.find((col) => col.field === columnId);
|
|
52965
53270
|
const expressionUIs = new Array();
|
|
52966
53271
|
if (column) {
|
|
52967
53272
|
this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, expressionUIs);
|
|
@@ -52978,7 +53283,7 @@ class IgxFilteringService {
|
|
|
52978
53283
|
if (!this.isFiltering) {
|
|
52979
53284
|
this.columnsWithComplexFilter.clear();
|
|
52980
53285
|
this.columnToExpressionsMap.forEach((value, key) => {
|
|
52981
|
-
const column = this.grid.
|
|
53286
|
+
const column = this.grid.columnList.find((col) => col.field === key);
|
|
52982
53287
|
if (column) {
|
|
52983
53288
|
value.length = 0;
|
|
52984
53289
|
this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, value);
|
|
@@ -53051,7 +53356,7 @@ class IgxFilteringService {
|
|
|
53051
53356
|
if (this.columnsWithComplexFilter.has(columnId)) {
|
|
53052
53357
|
return true;
|
|
53053
53358
|
}
|
|
53054
|
-
const column = this.grid.
|
|
53359
|
+
const column = this.grid.columnList.find((col) => col.field === columnId);
|
|
53055
53360
|
const isComplex = column && this.isFilteringTreeComplex(column.filteringExpressionsTree);
|
|
53056
53361
|
if (isComplex) {
|
|
53057
53362
|
this.columnsWithComplexFilter.add(columnId);
|
|
@@ -55049,10 +55354,10 @@ class IgxGridHeaderRowComponent {
|
|
|
55049
55354
|
}
|
|
55050
55355
|
}
|
|
55051
55356
|
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 });
|
|
55052
|
-
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 });
|
|
55357
|
+
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 });
|
|
55053
55358
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHeaderRowComponent, decorators: [{
|
|
55054
55359
|
type: Component,
|
|
55055
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-row', template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [
|
|
55360
|
+
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" }]
|
|
55056
55361
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { grid: [{
|
|
55057
55362
|
type: Input
|
|
55058
55363
|
}], pinnedColumnCollection: [{
|
|
@@ -56191,9 +56496,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56191
56496
|
*/
|
|
56192
56497
|
this.gridScroll = new EventEmitter();
|
|
56193
56498
|
/**
|
|
56499
|
+
* @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
|
|
56500
|
+
*
|
|
56194
56501
|
* Emitted after the current page is changed.
|
|
56195
56502
|
*
|
|
56196
56503
|
* @deprecated in version 12.1.0
|
|
56504
|
+
* Use the corresponding output exposed by the `igx-paginator` component instead.
|
|
56505
|
+
*
|
|
56197
56506
|
* @example
|
|
56198
56507
|
* ```html
|
|
56199
56508
|
* <igx-grid (pageChange)="onPageChange($event)"></igx-grid>
|
|
@@ -56206,9 +56515,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56206
56515
|
*/
|
|
56207
56516
|
this.pageChange = new EventEmitter();
|
|
56208
56517
|
/**
|
|
56518
|
+
* @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
|
|
56519
|
+
*
|
|
56209
56520
|
* Emitted when `perPage` property value of the grid is changed.
|
|
56210
56521
|
*
|
|
56211
56522
|
* @deprecated in version 12.1.0
|
|
56523
|
+
* Use the corresponding output exposed by the `igx-paginator` component instead.
|
|
56524
|
+
*
|
|
56212
56525
|
* @example
|
|
56213
56526
|
* ```html
|
|
56214
56527
|
* <igx-grid #grid (perPageChange)="onPerPageChange($event)" [autoGenerate]="true"></igx-grid>
|
|
@@ -56226,8 +56539,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56226
56539
|
*/
|
|
56227
56540
|
this.class = '';
|
|
56228
56541
|
/**
|
|
56542
|
+
* @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
|
|
56543
|
+
*
|
|
56229
56544
|
* Gets/Sets the styling classes applied to all even `IgxGridRowComponent`s in the grid.
|
|
56230
56545
|
*
|
|
56546
|
+
* @deprecated
|
|
56547
|
+
* `evenRowCSS` is deprecated. We suggest using `rowClasses` property instead.
|
|
56548
|
+
*
|
|
56231
56549
|
* @example
|
|
56232
56550
|
* ```html
|
|
56233
56551
|
* <igx-grid #grid [data]="Data" [evenRowCSS]="'igx-grid--my-even-class'" [autoGenerate]="true"></igx-grid>
|
|
@@ -56235,8 +56553,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56235
56553
|
*/
|
|
56236
56554
|
this.evenRowCSS = 'igx-grid__tr--even';
|
|
56237
56555
|
/**
|
|
56556
|
+
* @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
|
|
56557
|
+
*
|
|
56238
56558
|
* Gets/Sets the styling classes applied to all odd `IgxGridRowComponent`s in the grid.
|
|
56239
56559
|
*
|
|
56560
|
+
* @deprecated
|
|
56561
|
+
* `oddRowCSS` is deprecated. We suggest using `rowClasses` property instead.
|
|
56562
|
+
*
|
|
56240
56563
|
* @example
|
|
56241
56564
|
* ```html
|
|
56242
56565
|
* <igx-grid #grid [data]="Data" [evenRowCSS]="'igx-grid--my-odd-class'" [autoGenerate]="true"></igx-grid>
|
|
@@ -56489,9 +56812,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56489
56812
|
*/
|
|
56490
56813
|
this.filteringDone = new EventEmitter();
|
|
56491
56814
|
/**
|
|
56815
|
+
* @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
|
|
56816
|
+
*
|
|
56492
56817
|
* Emitted after paging is performed.
|
|
56493
56818
|
*
|
|
56494
56819
|
* @deprecated in version 12.1.x
|
|
56820
|
+
* `pagingDone` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.
|
|
56821
|
+
*
|
|
56495
56822
|
* @remarks
|
|
56496
56823
|
* Returns an object consisting of the previous and next pages.
|
|
56497
56824
|
* @example
|
|
@@ -56816,7 +57143,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56816
57143
|
* @hidden @internal
|
|
56817
57144
|
*/
|
|
56818
57145
|
this.columnWidthSetByUser = false;
|
|
56819
|
-
this.rendered$ = this.rendered.asObservable().pipe(shareReplay(1));
|
|
57146
|
+
this.rendered$ = this.rendered.asObservable().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
56820
57147
|
/** @hidden @internal */
|
|
56821
57148
|
this.resizeNotify = new Subject();
|
|
56822
57149
|
/** @hidden @internal */
|
|
@@ -57137,9 +57464,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
57137
57464
|
this.notifyChanges(true);
|
|
57138
57465
|
}
|
|
57139
57466
|
/**
|
|
57467
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
57468
|
+
*
|
|
57140
57469
|
* Gets/Sets whether the paging feature is enabled.
|
|
57141
57470
|
*
|
|
57142
57471
|
* @deprecated in version 12.1.x
|
|
57472
|
+
* `paging` is deprecated
|
|
57473
|
+
*
|
|
57143
57474
|
* @remarks
|
|
57144
57475
|
* The default state is disabled (false).
|
|
57145
57476
|
* @example
|
|
@@ -57157,9 +57488,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
57157
57488
|
this.pipeTrigger++;
|
|
57158
57489
|
}
|
|
57159
57490
|
/**
|
|
57491
|
+
* @deprecated in version 12.1.0. Use `page` property form `paginator` component instead
|
|
57492
|
+
*
|
|
57160
57493
|
* Gets/Sets the current page index.
|
|
57161
57494
|
*
|
|
57162
57495
|
* @deprecated in version 12.1.x
|
|
57496
|
+
* `page` is deprecated. Use the `page` property from the `igx-paginator` component instead.
|
|
57497
|
+
*
|
|
57163
57498
|
* @example
|
|
57164
57499
|
* ```html
|
|
57165
57500
|
* <igx-grid #grid [data]="Data" [autoGenerate]="true">
|
|
@@ -57178,9 +57513,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
57178
57513
|
}
|
|
57179
57514
|
}
|
|
57180
57515
|
/**
|
|
57516
|
+
* @deprecated in version 12.1.0. Use `perPage` property from `paginator` component instead
|
|
57517
|
+
*
|
|
57181
57518
|
* Gets/Sets the number of visible items per page.
|
|
57182
57519
|
*
|
|
57183
57520
|
* @deprecated in version 12.1.x
|
|
57521
|
+
* `perPage` is deprecated. Use the `perPage` property from the `igx-paginator` component instead.
|
|
57522
|
+
*
|
|
57184
57523
|
* @remarks
|
|
57185
57524
|
* The default is 15.
|
|
57186
57525
|
* @example
|
|
@@ -58229,7 +58568,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58229
58568
|
this.summaryService.clearSummaryCache(args);
|
|
58230
58569
|
});
|
|
58231
58570
|
this.subscribeToTransactions();
|
|
58232
|
-
this.resizeNotify.pipe(
|
|
58571
|
+
this.resizeNotify.pipe(filter(() => !this._init), throttleTime(0, animationFrameScheduler, { leading: true, trailing: true }), destructor)
|
|
58233
58572
|
.subscribe(() => {
|
|
58234
58573
|
this.zone.run(() => {
|
|
58235
58574
|
this.notifyChanges(true);
|
|
@@ -58264,7 +58603,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58264
58603
|
this.overlayIDs.push(event.id);
|
|
58265
58604
|
}
|
|
58266
58605
|
});
|
|
58267
|
-
this.overlayService.closed.pipe(
|
|
58606
|
+
this.overlayService.closed.pipe(filter(() => !this._init), destructor).subscribe((event) => {
|
|
58268
58607
|
if (this._advancedFilteringOverlayId === event.id) {
|
|
58269
58608
|
this.overlayService.detach(this._advancedFilteringOverlayId);
|
|
58270
58609
|
this._advancedFilteringOverlayId = null;
|
|
@@ -58275,7 +58614,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58275
58614
|
this.overlayIDs.splice(ind, 1);
|
|
58276
58615
|
}
|
|
58277
58616
|
});
|
|
58278
|
-
this.verticalScrollContainer.dataChanging.pipe(
|
|
58617
|
+
this.verticalScrollContainer.dataChanging.pipe(filter(() => !this._init), destructor).subscribe(($event) => {
|
|
58279
58618
|
const shouldRecalcSize = this.isPercentHeight &&
|
|
58280
58619
|
(!this.calcHeight || this.calcHeight === this.getDataBasedBodyHeight() ||
|
|
58281
58620
|
this.calcHeight === this.renderedRowHeight * this._defaultTargetRecordNumber);
|
|
@@ -58285,12 +58624,12 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58285
58624
|
}
|
|
58286
58625
|
this.evaluateLoadingState();
|
|
58287
58626
|
});
|
|
58288
|
-
this.verticalScrollContainer.scrollbarVisibilityChanged.pipe(
|
|
58627
|
+
this.verticalScrollContainer.scrollbarVisibilityChanged.pipe(filter(() => !this._init), destructor).subscribe(() => {
|
|
58289
58628
|
// called to recalc all widths that may have changes as a result of
|
|
58290
58629
|
// the vert. scrollbar showing/hiding
|
|
58291
58630
|
this.notifyChanges(true);
|
|
58292
58631
|
});
|
|
58293
|
-
this.verticalScrollContainer.contentSizeChange.pipe(
|
|
58632
|
+
this.verticalScrollContainer.contentSizeChange.pipe(filter(() => !this._init), destructor).subscribe(() => {
|
|
58294
58633
|
this.calculateGridSizes(false);
|
|
58295
58634
|
});
|
|
58296
58635
|
this.onDensityChanged.pipe(destructor).subscribe(() => {
|
|
@@ -58396,7 +58735,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58396
58735
|
*/
|
|
58397
58736
|
ngAfterContentInit() {
|
|
58398
58737
|
this.setupColumns();
|
|
58399
|
-
this.toolbar.changes.pipe(
|
|
58738
|
+
this.toolbar.changes.pipe(filter(() => !this._init), takeUntil(this.destroy$)).subscribe(() => this.notifyChanges(true));
|
|
58400
58739
|
this.setUpPaginator();
|
|
58401
58740
|
this.paginationComponents.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
58402
58741
|
this.setUpPaginator();
|
|
@@ -58853,24 +59192,24 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58853
59192
|
get summariesMargin() {
|
|
58854
59193
|
return this.featureColumnsWidth();
|
|
58855
59194
|
}
|
|
58856
|
-
/**
|
|
58857
|
-
* @hidden
|
|
58858
|
-
* @internal
|
|
58859
|
-
*/
|
|
58860
|
-
get columns() {
|
|
58861
|
-
return this._columns;
|
|
58862
|
-
}
|
|
58863
59195
|
/**
|
|
58864
59196
|
* Gets an array of `IgxColumnComponent`s.
|
|
58865
59197
|
*
|
|
58866
59198
|
* @example
|
|
58867
59199
|
* ```typescript
|
|
58868
|
-
* const colums = this.grid.
|
|
59200
|
+
* const colums = this.grid.columns.
|
|
58869
59201
|
* ```
|
|
58870
59202
|
*/
|
|
58871
|
-
get
|
|
59203
|
+
get columns() {
|
|
58872
59204
|
return this._rendered ? this._columns : [];
|
|
58873
59205
|
}
|
|
59206
|
+
/**
|
|
59207
|
+
* @hidden
|
|
59208
|
+
* @internal
|
|
59209
|
+
*/
|
|
59210
|
+
get columnsCollection() {
|
|
59211
|
+
return this._columns;
|
|
59212
|
+
}
|
|
58874
59213
|
/**
|
|
58875
59214
|
* Gets an array of the pinned `IgxColumnComponent`s.
|
|
58876
59215
|
*
|
|
@@ -58952,9 +59291,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58952
59291
|
return this._visibleColumns;
|
|
58953
59292
|
}
|
|
58954
59293
|
/**
|
|
59294
|
+
* @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
|
|
59295
|
+
*
|
|
58955
59296
|
* Gets the total number of pages.
|
|
58956
59297
|
*
|
|
58957
59298
|
* @deprecated in version 12.1.0
|
|
59299
|
+
* `totalPages` is deprecated. Use the corresponding property exposed by the `igx-paginator`.
|
|
59300
|
+
*
|
|
58958
59301
|
* @example
|
|
58959
59302
|
* ```typescript
|
|
58960
59303
|
* const totalPages = this.grid.totalPages;
|
|
@@ -58964,9 +59307,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58964
59307
|
return this.paginator?.totalPages;
|
|
58965
59308
|
}
|
|
58966
59309
|
/**
|
|
59310
|
+
* @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
|
|
59311
|
+
*
|
|
58967
59312
|
* Gets if the current page is the first page.
|
|
58968
59313
|
*
|
|
58969
59314
|
* @deprecated in version 12.1.0
|
|
59315
|
+
* `isFirstPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.'
|
|
59316
|
+
*
|
|
58970
59317
|
* @example
|
|
58971
59318
|
* ```typescript
|
|
58972
59319
|
* const firstPage = this.grid.isFirstPage;
|
|
@@ -58976,9 +59323,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58976
59323
|
return this.paginator.isLastPage;
|
|
58977
59324
|
}
|
|
58978
59325
|
/**
|
|
59326
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
59327
|
+
*
|
|
58979
59328
|
* Goes to the next page, if the grid is not already at the last page.
|
|
58980
59329
|
*
|
|
58981
59330
|
* @deprecated in version 12.1.0
|
|
59331
|
+
* 'Use the corresponding method exposed by the `igx-paginator`.'
|
|
59332
|
+
*
|
|
58982
59333
|
* @example
|
|
58983
59334
|
* ```typescript
|
|
58984
59335
|
* this.grid1.nextPage();
|
|
@@ -58989,12 +59340,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58989
59340
|
this.paginator?.nextPage();
|
|
58990
59341
|
}
|
|
58991
59342
|
/**
|
|
59343
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
59344
|
+
*
|
|
58992
59345
|
* Goes to the previous page, if the grid is not already at the first page.
|
|
58993
59346
|
*
|
|
58994
59347
|
* @deprecated in version 12.1.0
|
|
59348
|
+
* 'Use the corresponding method exposed by the `igx-paginator`.'
|
|
58995
59349
|
* @example
|
|
58996
|
-
* ```typescript
|
|
58997
|
-
* this.grid1.previousPage();
|
|
58998
59350
|
* ```
|
|
58999
59351
|
*/
|
|
59000
59352
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
@@ -59025,9 +59377,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
59025
59377
|
}
|
|
59026
59378
|
}
|
|
59027
59379
|
/**
|
|
59380
|
+
* @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
|
|
59381
|
+
*
|
|
59028
59382
|
* Returns if the current page is the last page.
|
|
59029
59383
|
*
|
|
59030
59384
|
* @deprecated in version 12.1.0
|
|
59385
|
+
* `isLastPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.'
|
|
59386
|
+
*
|
|
59031
59387
|
* @example
|
|
59032
59388
|
* ```typescript
|
|
59033
59389
|
* const lastPage = this.grid.isLastPage;
|
|
@@ -59070,14 +59426,14 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
59070
59426
|
* @internal
|
|
59071
59427
|
*/
|
|
59072
59428
|
get showAddButton() {
|
|
59073
|
-
return this.rowEditable && this.dataView.length === 0 && this.
|
|
59429
|
+
return this.rowEditable && this.dataView.length === 0 && this.columnList.length > 0;
|
|
59074
59430
|
}
|
|
59075
59431
|
/**
|
|
59076
59432
|
* @hidden
|
|
59077
59433
|
* @internal
|
|
59078
59434
|
*/
|
|
59079
59435
|
get showDragIcons() {
|
|
59080
|
-
return this.rowDraggable && this.
|
|
59436
|
+
return this.rowDraggable && this.columnList.length > this.hiddenColumnsCount;
|
|
59081
59437
|
}
|
|
59082
59438
|
/**
|
|
59083
59439
|
* Places a column before or after the specified target column.
|
|
@@ -59124,8 +59480,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
59124
59480
|
this._columnsReordered(column);
|
|
59125
59481
|
}
|
|
59126
59482
|
/**
|
|
59483
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
59484
|
+
*
|
|
59127
59485
|
* Goes to the desired page index.
|
|
59128
59486
|
*
|
|
59487
|
+
* @deprecated in version 12.1.x
|
|
59488
|
+
* 'Use the corresponding method exposed by the `igx-paginator`.'
|
|
59489
|
+
*
|
|
59129
59490
|
* @example
|
|
59130
59491
|
* ```typescript
|
|
59131
59492
|
* this.grid1.paginate(1);
|
|
@@ -60304,7 +60665,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
60304
60665
|
if (!this.clipboardOptions.copyHeaders) {
|
|
60305
60666
|
result = result.substring(result.indexOf('\n') + 1);
|
|
60306
60667
|
}
|
|
60307
|
-
if (Object.values(data[0]).length === 1) {
|
|
60668
|
+
if (data && data.length > 0 && Object.values(data[0]).length === 1) {
|
|
60308
60669
|
result = result.slice(0, -2);
|
|
60309
60670
|
}
|
|
60310
60671
|
event.preventDefault();
|
|
@@ -61532,7 +61893,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
61532
61893
|
// Make sure we don't exceed unpinned area min width and get pinned and unpinned col collections.
|
|
61533
61894
|
// We take into account top level columns (top level groups and non groups).
|
|
61534
61895
|
// If top level is unpinned the pinning handles all children to be unpinned as well.
|
|
61535
|
-
for (const column of this.
|
|
61896
|
+
for (const column of this.columnList) {
|
|
61536
61897
|
if (column.pinned && !column.parent) {
|
|
61537
61898
|
pinnedColumns.push(column);
|
|
61538
61899
|
}
|
|
@@ -61625,7 +61986,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
61625
61986
|
_columnsReordered(column) {
|
|
61626
61987
|
this.notifyChanges();
|
|
61627
61988
|
if (this.hasColumnLayouts) {
|
|
61628
|
-
this.
|
|
61989
|
+
this.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
61629
61990
|
}
|
|
61630
61991
|
// after reordering is done reset cached column collections.
|
|
61631
61992
|
this.resetColumnCollections();
|
|
@@ -61920,24 +62281,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
61920
62281
|
}
|
|
61921
62282
|
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 });
|
|
61922
62283
|
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 });
|
|
61923
|
-
__decorate([
|
|
61924
|
-
DeprecateProperty('`pageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
|
|
61925
|
-
], IgxGridBaseDirective.prototype, "pageChange", void 0);
|
|
61926
|
-
__decorate([
|
|
61927
|
-
DeprecateProperty('`perPageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
|
|
61928
|
-
], IgxGridBaseDirective.prototype, "perPageChange", void 0);
|
|
61929
|
-
__decorate([
|
|
61930
|
-
DeprecateProperty('`evenRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
|
|
61931
|
-
], IgxGridBaseDirective.prototype, "evenRowCSS", void 0);
|
|
61932
|
-
__decorate([
|
|
61933
|
-
DeprecateProperty('`oddRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
|
|
61934
|
-
], IgxGridBaseDirective.prototype, "oddRowCSS", void 0);
|
|
61935
62284
|
__decorate([
|
|
61936
62285
|
WatchChanges()
|
|
61937
62286
|
], IgxGridBaseDirective.prototype, "primaryKey", void 0);
|
|
61938
|
-
__decorate([
|
|
61939
|
-
DeprecateProperty('`pagingDone` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
|
|
61940
|
-
], IgxGridBaseDirective.prototype, "pagingDone", void 0);
|
|
61941
62287
|
__decorate([
|
|
61942
62288
|
WatchChanges()
|
|
61943
62289
|
], IgxGridBaseDirective.prototype, "filteringLogic", null);
|
|
@@ -61947,15 +62293,6 @@ __decorate([
|
|
|
61947
62293
|
__decorate([
|
|
61948
62294
|
WatchChanges()
|
|
61949
62295
|
], IgxGridBaseDirective.prototype, "advancedFilteringExpressionsTree", null);
|
|
61950
|
-
__decorate([
|
|
61951
|
-
DeprecateProperty('`paging` is deprecated')
|
|
61952
|
-
], IgxGridBaseDirective.prototype, "paging", null);
|
|
61953
|
-
__decorate([
|
|
61954
|
-
DeprecateProperty('`page` is deprecated. Use `page` property form `paginator` component instead.')
|
|
61955
|
-
], IgxGridBaseDirective.prototype, "page", null);
|
|
61956
|
-
__decorate([
|
|
61957
|
-
DeprecateProperty('`perPage` is deprecated. Use `perPage` property from `paginator` component instead.')
|
|
61958
|
-
], IgxGridBaseDirective.prototype, "perPage", null);
|
|
61959
62296
|
__decorate([
|
|
61960
62297
|
WatchChanges()
|
|
61961
62298
|
], IgxGridBaseDirective.prototype, "hideRowSelectors", null);
|
|
@@ -61989,24 +62326,6 @@ __decorate([
|
|
|
61989
62326
|
__decorate([
|
|
61990
62327
|
WatchChanges()
|
|
61991
62328
|
], IgxGridBaseDirective.prototype, "columnSelection", null);
|
|
61992
|
-
__decorate([
|
|
61993
|
-
DeprecateProperty('`totalPages` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
|
|
61994
|
-
], IgxGridBaseDirective.prototype, "totalPages", null);
|
|
61995
|
-
__decorate([
|
|
61996
|
-
DeprecateProperty('`isFirstPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
|
|
61997
|
-
], IgxGridBaseDirective.prototype, "isFirstPage", null);
|
|
61998
|
-
__decorate([
|
|
61999
|
-
DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
|
|
62000
|
-
], IgxGridBaseDirective.prototype, "nextPage", null);
|
|
62001
|
-
__decorate([
|
|
62002
|
-
DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
|
|
62003
|
-
], IgxGridBaseDirective.prototype, "previousPage", null);
|
|
62004
|
-
__decorate([
|
|
62005
|
-
DeprecateProperty('`isLastPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
|
|
62006
|
-
], IgxGridBaseDirective.prototype, "isLastPage", null);
|
|
62007
|
-
__decorate([
|
|
62008
|
-
DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
|
|
62009
|
-
], IgxGridBaseDirective.prototype, "paginate", null);
|
|
62010
62329
|
__decorate([
|
|
62011
62330
|
WatchChanges()
|
|
62012
62331
|
], IgxGridBaseDirective.prototype, "selectRowOnClick", null);
|
|
@@ -62408,9 +62727,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
62408
62727
|
type: Input
|
|
62409
62728
|
}], outlet: [{
|
|
62410
62729
|
type: Input
|
|
62411
|
-
}],
|
|
62730
|
+
}], totalRecords: [{
|
|
62412
62731
|
type: Input
|
|
62413
|
-
}],
|
|
62732
|
+
}], selectRowOnClick: [{
|
|
62414
62733
|
type: Input
|
|
62415
62734
|
}] } });
|
|
62416
62735
|
|
|
@@ -64880,7 +65199,8 @@ class IgxGridComponent extends IgxGridBaseDirective {
|
|
|
64880
65199
|
return this._dropAreaMessage || this.resourceStrings.igx_grid_groupByArea_message;
|
|
64881
65200
|
}
|
|
64882
65201
|
/**
|
|
64883
|
-
* @deprecated
|
|
65202
|
+
* @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
|
|
65203
|
+
*
|
|
64884
65204
|
* Returns a `CellType` object that matches the conditions.
|
|
64885
65205
|
*
|
|
64886
65206
|
* @example
|
|
@@ -65605,9 +65925,6 @@ IgxGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
65605
65925
|
IgxForOfSyncService,
|
|
65606
65926
|
IgxForOfScrollSyncService
|
|
65607
65927
|
], 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 });
|
|
65608
|
-
__decorate([
|
|
65609
|
-
DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
|
|
65610
|
-
], IgxGridComponent.prototype, "getCellByColumnVisibleIndex", null);
|
|
65611
65928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridComponent, decorators: [{
|
|
65612
65929
|
type: Component,
|
|
65613
65930
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -65685,7 +66002,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
65685
66002
|
type: Input
|
|
65686
66003
|
}], dropAreaMessage: [{
|
|
65687
66004
|
type: Input
|
|
65688
|
-
}],
|
|
66005
|
+
}], showGroupArea: [{
|
|
65689
66006
|
type: Input
|
|
65690
66007
|
}] } });
|
|
65691
66008
|
|
|
@@ -65765,7 +66082,7 @@ class IgxGridStateDirective {
|
|
|
65765
66082
|
},
|
|
65766
66083
|
columns: {
|
|
65767
66084
|
getFeatureState: (context) => {
|
|
65768
|
-
const gridColumns = context.currGrid.
|
|
66085
|
+
const gridColumns = context.currGrid.columnList.map((c) => ({
|
|
65769
66086
|
pinned: c.pinned,
|
|
65770
66087
|
sortable: c.sortable,
|
|
65771
66088
|
filterable: c.filterable,
|
|
@@ -66454,14 +66771,14 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
|
|
|
66454
66771
|
set hidden(value) {
|
|
66455
66772
|
this._hidden = value;
|
|
66456
66773
|
this.children.forEach(child => child.hidden = value);
|
|
66457
|
-
if (this.grid && this.grid.
|
|
66774
|
+
if (this.grid && this.grid.columnList && this.grid.columnList.length > 0) {
|
|
66458
66775
|
// reset indexes in case columns are hidden/shown runtime
|
|
66459
66776
|
const columns = this.grid && this.grid.pinnedColumns && this.grid.unpinnedColumns ?
|
|
66460
66777
|
this.grid.pinnedColumns.concat(this.grid.unpinnedColumns) : [];
|
|
66461
66778
|
if (!this._hidden && !columns.find(c => c.field === this.field)) {
|
|
66462
66779
|
this.grid.resetColumnCollections();
|
|
66463
66780
|
}
|
|
66464
|
-
this.grid.
|
|
66781
|
+
this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
66465
66782
|
}
|
|
66466
66783
|
}
|
|
66467
66784
|
/**
|
|
@@ -68970,7 +69287,8 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
|
|
|
68970
69287
|
this.notifyChanges();
|
|
68971
69288
|
}
|
|
68972
69289
|
/**
|
|
68973
|
-
* @deprecated
|
|
69290
|
+
* @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
|
|
69291
|
+
*
|
|
68974
69292
|
* Returns a `CellType` object that matches the conditions.
|
|
68975
69293
|
*
|
|
68976
69294
|
* @example
|
|
@@ -69586,9 +69904,6 @@ IgxTreeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
69586
69904
|
IgxForOfSyncService,
|
|
69587
69905
|
IgxForOfScrollSyncService
|
|
69588
69906
|
], 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 });
|
|
69589
|
-
__decorate([
|
|
69590
|
-
DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
|
|
69591
|
-
], IgxTreeGridComponent.prototype, "getCellByColumnVisibleIndex", null);
|
|
69592
69907
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxTreeGridComponent, decorators: [{
|
|
69593
69908
|
type: Component,
|
|
69594
69909
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid', providers: [
|
|
@@ -69664,7 +69979,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
69664
69979
|
type: Input
|
|
69665
69980
|
}], rowLoadingIndicatorTemplate: [{
|
|
69666
69981
|
type: Input
|
|
69667
|
-
}]
|
|
69982
|
+
}] } });
|
|
69668
69983
|
|
|
69669
69984
|
const HIDDEN_FIELD_NAME = '_Igx_Hidden_Data_';
|
|
69670
69985
|
/**
|
|
@@ -71539,7 +71854,8 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
|
|
|
71539
71854
|
return this._defaultExpandState;
|
|
71540
71855
|
}
|
|
71541
71856
|
/**
|
|
71542
|
-
* @deprecated
|
|
71857
|
+
* @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
|
|
71858
|
+
*
|
|
71543
71859
|
* Returns a `CellType` object that matches the conditions.
|
|
71544
71860
|
*
|
|
71545
71861
|
* @example
|
|
@@ -72157,9 +72473,6 @@ IgxHierarchicalGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
72157
72473
|
IgxForOfScrollSyncService,
|
|
72158
72474
|
IgxRowIslandAPIService
|
|
72159
72475
|
], 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 });
|
|
72160
|
-
__decorate([
|
|
72161
|
-
DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
|
|
72162
|
-
], IgxHierarchicalGridComponent.prototype, "getCellByColumnVisibleIndex", null);
|
|
72163
72476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridComponent, decorators: [{
|
|
72164
72477
|
type: Component,
|
|
72165
72478
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-hierarchical-grid', providers: [
|
|
@@ -72216,7 +72529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
72216
72529
|
type: Input
|
|
72217
72530
|
}], expandChildren: [{
|
|
72218
72531
|
type: Input
|
|
72219
|
-
}]
|
|
72532
|
+
}] } });
|
|
72220
72533
|
|
|
72221
72534
|
/**
|
|
72222
72535
|
* @hidden
|
|
@@ -76712,6 +77025,8 @@ class IgxToastComponent extends IgxNotificationsDirective {
|
|
|
76712
77025
|
};
|
|
76713
77026
|
}
|
|
76714
77027
|
/**
|
|
77028
|
+
* @deprecated in version 12.2.3. We suggest using `positionSettings` property instead
|
|
77029
|
+
*
|
|
76715
77030
|
* Sets/gets the position of the toast.
|
|
76716
77031
|
* If not set, the `position` attribute will have value `IgxToastPosition.Bottom`.
|
|
76717
77032
|
* ```html
|
|
@@ -76837,9 +77152,6 @@ class IgxToastComponent extends IgxNotificationsDirective {
|
|
|
76837
77152
|
}
|
|
76838
77153
|
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 });
|
|
76839
77154
|
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" });
|
|
76840
|
-
__decorate([
|
|
76841
|
-
DeprecateProperty('`position` is deprecated. We suggest using `positionSettings` property instead.')
|
|
76842
|
-
], IgxToastComponent.prototype, "position", null);
|
|
76843
77155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxToastComponent, decorators: [{
|
|
76844
77156
|
type: Component,
|
|
76845
77157
|
args: [{ selector: 'igx-toast', template: "<ng-content></ng-content>\n<span>{{ textMessage }}</span>\n\n" }]
|
|
@@ -81804,5 +82116,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
81804
82116
|
* Generated bundle index. Do not edit.
|
|
81805
82117
|
*/
|
|
81806
82118
|
|
|
81807
|
-
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 };
|
|
82119
|
+
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 };
|
|
81808
82120
|
//# sourceMappingURL=igniteui-angular.mjs.map
|