igniteui-angular 20.1.5 → 20.2.0-alpha.3
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/fesm2022/igniteui-angular.mjs +723 -407
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/index.d.ts +120 -14
- package/lib/core/styles/components/action-strip/_action-strip-theme.scss +0 -58
- package/lib/core/styles/components/carousel/_carousel-theme.scss +12 -11
- package/lib/core/styles/components/checkbox/_checkbox-theme.scss +4 -10
- package/lib/core/styles/components/combo/_combo-theme.scss +23 -1
- package/lib/core/styles/components/date-range-picker/_date-range-picker-theme.scss +9 -4
- package/lib/core/styles/components/grid/_pivot-data-selector-theme.scss +0 -25
- package/lib/core/styles/components/input/_file-input-theme.scss +0 -82
- package/lib/core/styles/components/input/_input-group-theme.scss +70 -70
- package/lib/core/styles/components/time-picker/_time-picker-theme.scss +15 -1
- package/lib/core/styles/typography/_bootstrap.scss +3 -1
- package/package.json +2 -2
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, HostListener, Input, Directive, EventEmitter, InjectionToken, isDevMode, inject, PLATFORM_ID, Inject, ElementRef, ViewContainerRef, createComponent, DOCUMENT, HostBinding, Output, Self, Optional, booleanAttribute, afterRenderEffect, SecurityContext, DestroyRef, Component, ContentChild, ContentChildren, RendererStyleFlags2, Pipe, ViewChild, Renderer2, NgZone, signal, QueryList, effect, LOCALE_ID, forwardRef, Host, ViewChildren, TemplateRef, ChangeDetectionStrategy, input, SimpleChange, ChangeDetectorRef, SkipSelf, CUSTOM_ELEMENTS_SCHEMA, reflectComponentType, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, HostListener, Input, Directive, EventEmitter, InjectionToken, isDevMode, inject, PLATFORM_ID, Inject, ElementRef, ViewContainerRef, createComponent, DOCUMENT, HostBinding, Output, Self, Optional, booleanAttribute, afterRenderEffect, SecurityContext, DestroyRef, Component, ContentChild, ContentChildren, RendererStyleFlags2, Pipe, ViewChild, Renderer2, NgZone, signal, QueryList, effect, LOCALE_ID, forwardRef, Host, ViewChildren, TemplateRef, ChangeDetectionStrategy, input, SimpleChange, ChangeDetectorRef, SkipSelf, CUSTOM_ELEMENTS_SCHEMA, reflectComponentType, NgModule, output, untracked } from '@angular/core';
|
|
3
3
|
import * as i4 from '@angular/forms';
|
|
4
4
|
import { TouchedChangeEvent, NgModel, NgControl, FormControlName, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS, FormGroup, FormsModule, RequiredValidator, MinValidator, MaxValidator, EmailValidator, MinLengthValidator, MaxLengthValidator, PatternValidator, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import { Observable, NEVER, Subject, fromEvent, BehaviorSubject, filter as filter$1, interval, animationFrameScheduler, noop, takeUntil as takeUntil$1, merge, Subscription, timer, sampleTime, pipe, take as take$1 } from 'rxjs';
|
|
@@ -12,11 +12,16 @@ import { scaleOutVerTop, scaleInVerTop, AnimationUtil, fadeOut, fadeIn, slideOut
|
|
|
12
12
|
import * as i1 from '@angular/animations';
|
|
13
13
|
import { style, animate, useAnimation } from '@angular/animations';
|
|
14
14
|
import * as i1$1 from '@angular/platform-browser';
|
|
15
|
-
import { ɵgetDOM as _getDOM, HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
|
|
15
|
+
import { ɵgetDOM as _getDOM, HammerGestureConfig, HAMMER_GESTURE_CONFIG, DomSanitizer } from '@angular/platform-browser';
|
|
16
16
|
import * as i2 from '@angular/common/http';
|
|
17
17
|
import { addRow, addChild, pinLeft, unpinLeft, jumpDown, jumpUp, caseSensitive, editor } from '@igniteui/material-icons-extended';
|
|
18
18
|
import { __decorate, __param } from 'tslib';
|
|
19
19
|
import { IgcTrialWatermark } from 'igniteui-trial-watermark';
|
|
20
|
+
import { IgcChatComponent } from 'igniteui-webcomponents';
|
|
21
|
+
import DOMPurify from 'dompurify';
|
|
22
|
+
import { Marked } from 'marked';
|
|
23
|
+
import markedShiki from 'marked-shiki';
|
|
24
|
+
import { createHighlighter, bundledThemes } from 'shiki/bundle/web';
|
|
20
25
|
|
|
21
26
|
/**
|
|
22
27
|
* Common service to be injected between components where those implementing common
|
|
@@ -1059,6 +1064,9 @@ class IgxSorting {
|
|
|
1059
1064
|
prepareExpressions(expressions, grid) {
|
|
1060
1065
|
const multipleSortingExpressions = [];
|
|
1061
1066
|
for (const expr of expressions) {
|
|
1067
|
+
if (expr.dir === SortingDirection.None) {
|
|
1068
|
+
continue;
|
|
1069
|
+
}
|
|
1062
1070
|
if (!expr.strategy) {
|
|
1063
1071
|
expr.strategy = DefaultSortingStrategy.instance();
|
|
1064
1072
|
}
|
|
@@ -1398,290 +1406,12 @@ class ByLevelTreeGridMergeStrategy extends DefaultMergeStrategy {
|
|
|
1398
1406
|
}
|
|
1399
1407
|
}
|
|
1400
1408
|
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
Boolean: 'boolean',
|
|
1408
|
-
Date: 'date',
|
|
1409
|
-
DateTime: 'dateTime',
|
|
1410
|
-
Time: 'time',
|
|
1411
|
-
Currency: 'currency',
|
|
1412
|
-
Percent: 'percent',
|
|
1413
|
-
Image: 'image'
|
|
1414
|
-
};
|
|
1415
|
-
/**
|
|
1416
|
-
* @hidden
|
|
1417
|
-
*/
|
|
1418
|
-
const GridColumnDataType = DataType;
|
|
1419
|
-
/**
|
|
1420
|
-
* @hidden
|
|
1421
|
-
*/
|
|
1422
|
-
class DataUtil {
|
|
1423
|
-
static sort(data, expressions, sorting = new IgxSorting(), grid) {
|
|
1424
|
-
return sorting.sort(data, expressions, grid);
|
|
1425
|
-
}
|
|
1426
|
-
static treeGridSort(hierarchicalData, expressions, sorting = new IgxDataRecordSorting(), grid) {
|
|
1427
|
-
const res = [];
|
|
1428
|
-
const stack = [];
|
|
1429
|
-
stack.push({ original: hierarchicalData, parent: null, result: res });
|
|
1430
|
-
while (stack.length > 0) {
|
|
1431
|
-
const { original, parent, result } = stack.pop();
|
|
1432
|
-
const clonedRecords = [];
|
|
1433
|
-
for (const treeRecord of original) {
|
|
1434
|
-
const rec = DataUtil.cloneTreeGridRecord(treeRecord);
|
|
1435
|
-
rec.parent = parent;
|
|
1436
|
-
clonedRecords.push(rec);
|
|
1437
|
-
// If it has children, process them later
|
|
1438
|
-
if (rec.children && rec.children.length > 0) {
|
|
1439
|
-
const childClones = [];
|
|
1440
|
-
rec.children = childClones;
|
|
1441
|
-
stack.push({
|
|
1442
|
-
original: treeRecord.children,
|
|
1443
|
-
parent: rec,
|
|
1444
|
-
result: childClones
|
|
1445
|
-
});
|
|
1446
|
-
}
|
|
1447
|
-
}
|
|
1448
|
-
// Sort the clonedRecords before assigning to the result
|
|
1449
|
-
const sorted = DataUtil.sort(clonedRecords, expressions, sorting, grid);
|
|
1450
|
-
for (const item of sorted) {
|
|
1451
|
-
result.push(item);
|
|
1452
|
-
}
|
|
1453
|
-
}
|
|
1454
|
-
return res;
|
|
1455
|
-
}
|
|
1456
|
-
static cloneTreeGridRecord(hierarchicalRecord) {
|
|
1457
|
-
const rec = {
|
|
1458
|
-
key: hierarchicalRecord.key,
|
|
1459
|
-
data: hierarchicalRecord.data,
|
|
1460
|
-
children: hierarchicalRecord.children,
|
|
1461
|
-
isFilteredOutParent: hierarchicalRecord.isFilteredOutParent,
|
|
1462
|
-
level: hierarchicalRecord.level,
|
|
1463
|
-
expanded: hierarchicalRecord.expanded
|
|
1464
|
-
};
|
|
1465
|
-
return rec;
|
|
1466
|
-
}
|
|
1467
|
-
static group(data, state, grouping = new IgxGrouping(), grid = null, groupsRecords = [], fullResult = { data: [], metadata: [] }) {
|
|
1468
|
-
groupsRecords.splice(0, groupsRecords.length);
|
|
1469
|
-
return grouping.groupBy(data, state, grid, groupsRecords, fullResult);
|
|
1470
|
-
}
|
|
1471
|
-
static merge(data, columns, strategy = new DefaultMergeStrategy(), activeRowIndexes = [], grid = null) {
|
|
1472
|
-
const result = [];
|
|
1473
|
-
for (const col of columns) {
|
|
1474
|
-
const isDate = col?.dataType === 'date' || col?.dataType === 'dateTime';
|
|
1475
|
-
const isTime = col?.dataType === 'time' || col?.dataType === 'dateTime';
|
|
1476
|
-
strategy.merge(data, col.field, col.mergingComparer, result, activeRowIndexes, isDate, isTime, grid);
|
|
1477
|
-
}
|
|
1478
|
-
return result;
|
|
1479
|
-
}
|
|
1480
|
-
static page(data, state, dataLength) {
|
|
1481
|
-
if (!state) {
|
|
1482
|
-
return data;
|
|
1483
|
-
}
|
|
1484
|
-
const len = dataLength !== undefined ? dataLength : data.length;
|
|
1485
|
-
const index = state.index;
|
|
1486
|
-
const res = [];
|
|
1487
|
-
const recordsPerPage = dataLength !== undefined && state.recordsPerPage > dataLength ? dataLength : state.recordsPerPage;
|
|
1488
|
-
state.metadata = {
|
|
1489
|
-
countPages: 0,
|
|
1490
|
-
countRecords: len,
|
|
1491
|
-
error: PagingError.None
|
|
1492
|
-
};
|
|
1493
|
-
if (index < 0 || isNaN(index)) {
|
|
1494
|
-
state.metadata.error = PagingError.IncorrectPageIndex;
|
|
1495
|
-
return res;
|
|
1496
|
-
}
|
|
1497
|
-
if (recordsPerPage <= 0 || isNaN(recordsPerPage)) {
|
|
1498
|
-
state.metadata.error = PagingError.IncorrectRecordsPerPage;
|
|
1499
|
-
return res;
|
|
1500
|
-
}
|
|
1501
|
-
state.metadata.countPages = Math.ceil(len / recordsPerPage);
|
|
1502
|
-
if (!len) {
|
|
1503
|
-
return data;
|
|
1504
|
-
}
|
|
1505
|
-
if (index >= state.metadata.countPages) {
|
|
1506
|
-
state.metadata.error = PagingError.IncorrectPageIndex;
|
|
1507
|
-
return res;
|
|
1508
|
-
}
|
|
1509
|
-
return data.slice(index * recordsPerPage, (index + 1) * recordsPerPage);
|
|
1510
|
-
}
|
|
1511
|
-
static correctPagingState(state, length) {
|
|
1512
|
-
const maxPage = Math.ceil(length / state.recordsPerPage) - 1;
|
|
1513
|
-
if (!isNaN(maxPage) && state.index > maxPage) {
|
|
1514
|
-
state.index = maxPage;
|
|
1515
|
-
}
|
|
1516
|
-
}
|
|
1517
|
-
static getHierarchy(gRow) {
|
|
1518
|
-
return getHierarchy(gRow);
|
|
1519
|
-
}
|
|
1520
|
-
static isHierarchyMatch(h1, h2, expressions) {
|
|
1521
|
-
return isHierarchyMatch(h1, h2, expressions);
|
|
1522
|
-
}
|
|
1523
|
-
/**
|
|
1524
|
-
* Merges all changes from provided transactions into provided data collection
|
|
1525
|
-
*
|
|
1526
|
-
* @param data Collection to merge
|
|
1527
|
-
* @param transactions Transactions to merge into data
|
|
1528
|
-
* @param primaryKey Primary key of the collection, if any
|
|
1529
|
-
* @param deleteRows Should delete rows with DELETE transaction type from data
|
|
1530
|
-
* @returns Provided data collections updated with all provided transactions
|
|
1531
|
-
*/
|
|
1532
|
-
static mergeTransactions(data, transactions, primaryKey, cloneStrategy = new DefaultDataCloneStrategy(), deleteRows = false) {
|
|
1533
|
-
data.forEach((item, index) => {
|
|
1534
|
-
const rowId = primaryKey ? item[primaryKey] : item;
|
|
1535
|
-
const transaction = transactions.find(t => t.id === rowId);
|
|
1536
|
-
if (transaction && transaction.type === TransactionType.UPDATE) {
|
|
1537
|
-
data[index] = mergeObjects(cloneStrategy.clone(data[index]), transaction.newValue);
|
|
1538
|
-
}
|
|
1539
|
-
});
|
|
1540
|
-
if (deleteRows) {
|
|
1541
|
-
transactions
|
|
1542
|
-
.filter(t => t.type === TransactionType.DELETE)
|
|
1543
|
-
.forEach(t => {
|
|
1544
|
-
const index = primaryKey ? data.findIndex(d => d[primaryKey] === t.id) : data.findIndex(d => d === t.id);
|
|
1545
|
-
if (0 <= index && index < data.length) {
|
|
1546
|
-
data.splice(index, 1);
|
|
1547
|
-
}
|
|
1548
|
-
});
|
|
1549
|
-
}
|
|
1550
|
-
data.push(...transactions
|
|
1551
|
-
.filter(t => t.type === TransactionType.ADD)
|
|
1552
|
-
.map(t => t.newValue));
|
|
1553
|
-
return data;
|
|
1554
|
-
}
|
|
1555
|
-
/**
|
|
1556
|
-
* Merges all changes from provided transactions into provided hierarchical data collection
|
|
1557
|
-
*
|
|
1558
|
-
* @param data Collection to merge
|
|
1559
|
-
* @param transactions Transactions to merge into data
|
|
1560
|
-
* @param childDataKey Data key of child collections
|
|
1561
|
-
* @param primaryKey Primary key of the collection, if any
|
|
1562
|
-
* @param deleteRows Should delete rows with DELETE transaction type from data
|
|
1563
|
-
* @returns Provided data collections updated with all provided transactions
|
|
1564
|
-
*/
|
|
1565
|
-
static mergeHierarchicalTransactions(data, transactions, childDataKey, primaryKey, cloneStrategy = new DefaultDataCloneStrategy(), deleteRows = false) {
|
|
1566
|
-
for (const transaction of transactions) {
|
|
1567
|
-
if (transaction.path) {
|
|
1568
|
-
const parent = this.findParentFromPath(data, primaryKey, childDataKey, transaction.path);
|
|
1569
|
-
let collection = parent ? parent[childDataKey] : data;
|
|
1570
|
-
switch (transaction.type) {
|
|
1571
|
-
case TransactionType.ADD:
|
|
1572
|
-
// if there is no parent this is ADD row at root level
|
|
1573
|
-
if (parent && !parent[childDataKey]) {
|
|
1574
|
-
parent[childDataKey] = collection = [];
|
|
1575
|
-
}
|
|
1576
|
-
collection.push(transaction.newValue);
|
|
1577
|
-
break;
|
|
1578
|
-
case TransactionType.UPDATE:
|
|
1579
|
-
const updateIndex = collection.findIndex(x => x[primaryKey] === transaction.id);
|
|
1580
|
-
if (updateIndex !== -1) {
|
|
1581
|
-
collection[updateIndex] = mergeObjects(cloneStrategy.clone(collection[updateIndex]), transaction.newValue);
|
|
1582
|
-
}
|
|
1583
|
-
break;
|
|
1584
|
-
case TransactionType.DELETE:
|
|
1585
|
-
if (deleteRows) {
|
|
1586
|
-
const deleteIndex = collection.findIndex(r => r[primaryKey] === transaction.id);
|
|
1587
|
-
if (deleteIndex !== -1) {
|
|
1588
|
-
collection.splice(deleteIndex, 1);
|
|
1589
|
-
}
|
|
1590
|
-
}
|
|
1591
|
-
break;
|
|
1592
|
-
}
|
|
1593
|
-
}
|
|
1594
|
-
else {
|
|
1595
|
-
// if there is no path this is ADD row in root. Push the newValue to data
|
|
1596
|
-
data.push(transaction.newValue);
|
|
1597
|
-
}
|
|
1598
|
-
}
|
|
1599
|
-
return data;
|
|
1600
|
-
}
|
|
1601
|
-
static parseValue(dataType, value) {
|
|
1602
|
-
if (dataType === GridColumnDataType.Number || dataType === GridColumnDataType.Currency || dataType === GridColumnDataType.Percent) {
|
|
1603
|
-
value = parseFloat(value);
|
|
1604
|
-
}
|
|
1605
|
-
return value;
|
|
1606
|
-
}
|
|
1607
|
-
static findParentFromPath(data, primaryKey, childDataKey, path) {
|
|
1608
|
-
let collection = data;
|
|
1609
|
-
let result;
|
|
1610
|
-
for (const id of path) {
|
|
1611
|
-
result = collection && collection.find(x => x[primaryKey] === id);
|
|
1612
|
-
if (!result) {
|
|
1613
|
-
break;
|
|
1614
|
-
}
|
|
1615
|
-
collection = result[childDataKey];
|
|
1616
|
-
}
|
|
1617
|
-
return result;
|
|
1618
|
-
}
|
|
1619
|
-
}
|
|
1620
|
-
|
|
1621
|
-
/**
|
|
1622
|
-
* @hidden
|
|
1623
|
-
*/
|
|
1624
|
-
class ExportUtilities {
|
|
1625
|
-
static getKeysFromData(data) {
|
|
1626
|
-
const length = data.length;
|
|
1627
|
-
if (length === 0) {
|
|
1628
|
-
return [];
|
|
1629
|
-
}
|
|
1630
|
-
const dataEntry = data[0];
|
|
1631
|
-
const dataEntryMiddle = data[Math.floor(length / 2)];
|
|
1632
|
-
const dataEntryLast = data[length - 1];
|
|
1633
|
-
const keys1 = Object.keys(dataEntry);
|
|
1634
|
-
const keys2 = Object.keys(dataEntryMiddle);
|
|
1635
|
-
const keys3 = Object.keys(dataEntryLast);
|
|
1636
|
-
const keys = new Set(keys1.concat(keys2).concat(keys3));
|
|
1637
|
-
return !ExportUtilities.isSpecialData(dataEntry) ? Array.from(keys) : ['Column 1'];
|
|
1638
|
-
}
|
|
1639
|
-
static saveBlobToFile(blob, fileName) {
|
|
1640
|
-
const doc = globalThis.document;
|
|
1641
|
-
const a = doc.createElement('a');
|
|
1642
|
-
const url = window.URL.createObjectURL(blob);
|
|
1643
|
-
a.download = fileName;
|
|
1644
|
-
a.href = url;
|
|
1645
|
-
doc.body.appendChild(a);
|
|
1646
|
-
a.click();
|
|
1647
|
-
doc.body.removeChild(a);
|
|
1648
|
-
window.URL.revokeObjectURL(url);
|
|
1649
|
-
}
|
|
1650
|
-
static stringToArrayBuffer(s) {
|
|
1651
|
-
const buf = new ArrayBuffer(s.length);
|
|
1652
|
-
const view = new Uint8Array(buf);
|
|
1653
|
-
for (let i = 0; i !== s.length; ++i) {
|
|
1654
|
-
view[i] = s.charCodeAt(i) & 0xFF;
|
|
1655
|
-
}
|
|
1656
|
-
return buf;
|
|
1657
|
-
}
|
|
1658
|
-
static isSpecialData(data) {
|
|
1659
|
-
return (typeof data === 'string' ||
|
|
1660
|
-
typeof data === 'number' ||
|
|
1661
|
-
data instanceof Date);
|
|
1662
|
-
}
|
|
1663
|
-
static hasValue(value) {
|
|
1664
|
-
return value !== undefined && value !== null;
|
|
1665
|
-
}
|
|
1666
|
-
static isNullOrWhitespaces(value) {
|
|
1667
|
-
return value === undefined || value === null || !value.trim();
|
|
1668
|
-
}
|
|
1669
|
-
static sanitizeValue(value) {
|
|
1670
|
-
if (!this.hasValue(value)) {
|
|
1671
|
-
return '';
|
|
1672
|
-
}
|
|
1673
|
-
else {
|
|
1674
|
-
const stringValue = String(value);
|
|
1675
|
-
return stringValue.replace(/&/g, '&')
|
|
1676
|
-
.replace(/</g, '<')
|
|
1677
|
-
.replace(/>/g, '>')
|
|
1678
|
-
.replace(/"/g, '"')
|
|
1679
|
-
.replace(/'/g, ''')
|
|
1680
|
-
// Bug #14944 - Remove the not supported null character (\u0000, \x00)
|
|
1681
|
-
.replace(/\x00/g, '');
|
|
1682
|
-
}
|
|
1683
|
-
}
|
|
1684
|
-
}
|
|
1409
|
+
/* mustCoerceToInt */
|
|
1410
|
+
var FilteringLogic;
|
|
1411
|
+
(function (FilteringLogic) {
|
|
1412
|
+
FilteringLogic[FilteringLogic["And"] = 0] = "And";
|
|
1413
|
+
FilteringLogic[FilteringLogic["Or"] = 1] = "Or";
|
|
1414
|
+
})(FilteringLogic || (FilteringLogic = {}));
|
|
1685
1415
|
|
|
1686
1416
|
/**
|
|
1687
1417
|
* Specify a particular date, time or AmPm part.
|
|
@@ -3537,13 +3267,6 @@ class FilteringExpressionsTree {
|
|
|
3537
3267
|
}
|
|
3538
3268
|
}
|
|
3539
3269
|
|
|
3540
|
-
/* mustCoerceToInt */
|
|
3541
|
-
var FilteringLogic;
|
|
3542
|
-
(function (FilteringLogic) {
|
|
3543
|
-
FilteringLogic[FilteringLogic["And"] = 0] = "And";
|
|
3544
|
-
FilteringLogic[FilteringLogic["Or"] = 1] = "Or";
|
|
3545
|
-
})(FilteringLogic || (FilteringLogic = {}));
|
|
3546
|
-
|
|
3547
3270
|
const DateType = 'date';
|
|
3548
3271
|
const DateTimeType = 'dateTime';
|
|
3549
3272
|
const TimeType = 'time';
|
|
@@ -3637,21 +3360,27 @@ class BaseFilteringStrategy {
|
|
|
3637
3360
|
}
|
|
3638
3361
|
getFilterItems(column, tree) {
|
|
3639
3362
|
const applyFormatter = column.formatter && this.shouldFormatFilterValues(column);
|
|
3640
|
-
|
|
3641
|
-
data = column.grid.gridAPI.sortDataByExpressions(data, [{ fieldName: column.field, dir: SortingDirection.Asc, ignoreCase: column.sortingIgnoreCase }]);
|
|
3363
|
+
const data = this.getFilteredData(column, tree);
|
|
3642
3364
|
const pathParts = columnFieldPath(column.field);
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3365
|
+
const seenFormattedFilterItems = new Map();
|
|
3366
|
+
for (let i = 0; i < data.length; ++i) {
|
|
3367
|
+
const record = data[i];
|
|
3368
|
+
const rawValue = resolveNestedPath(record, pathParts);
|
|
3369
|
+
const formattedValue = applyFormatter ? column.formatter(rawValue, record) : rawValue;
|
|
3370
|
+
const { key, finalValue } = this.getFilterItemKeyValue(formattedValue, column);
|
|
3371
|
+
// Deduplicate by normalized key
|
|
3372
|
+
if (!seenFormattedFilterItems.has(key)) {
|
|
3373
|
+
const label = this.getFilterItemLabel(column, finalValue, !applyFormatter, record);
|
|
3374
|
+
seenFormattedFilterItems.set(key, { value: finalValue, label });
|
|
3375
|
+
}
|
|
3376
|
+
}
|
|
3377
|
+
let filterItems = Array.from(seenFormattedFilterItems.values());
|
|
3378
|
+
filterItems = DataUtil.sort(filterItems, [{ fieldName: 'value', dir: SortingDirection.Asc, ignoreCase: column.sortingIgnoreCase }], new IgxSorting());
|
|
3653
3379
|
return Promise.resolve(filterItems);
|
|
3654
3380
|
}
|
|
3381
|
+
getFilteredData(column, tree) {
|
|
3382
|
+
return column.grid.gridAPI.filterDataByExpressions(tree);
|
|
3383
|
+
}
|
|
3655
3384
|
getFilterItemLabel(column, value, applyFormatter, data) {
|
|
3656
3385
|
if (column.formatter) {
|
|
3657
3386
|
if (applyFormatter) {
|
|
@@ -3676,30 +3405,31 @@ class BaseFilteringStrategy {
|
|
|
3676
3405
|
return value;
|
|
3677
3406
|
}
|
|
3678
3407
|
}
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3408
|
+
getFilterItemKeyValue(value, column) {
|
|
3409
|
+
let key = value;
|
|
3410
|
+
let finalValue = value;
|
|
3411
|
+
if (column.dataType === GridColumnDataType.String && column.filteringIgnoreCase) {
|
|
3412
|
+
key = key?.toString().toLowerCase();
|
|
3413
|
+
}
|
|
3414
|
+
else if (column.dataType === GridColumnDataType.DateTime) {
|
|
3415
|
+
key = value?.toString();
|
|
3416
|
+
finalValue = key ? new Date(key) : key;
|
|
3417
|
+
}
|
|
3418
|
+
else if (column.dataType === GridColumnDataType.Time) {
|
|
3419
|
+
const date = key ? new Date(key) : key;
|
|
3420
|
+
key = date
|
|
3421
|
+
? new Date().setHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())
|
|
3422
|
+
: date;
|
|
3423
|
+
finalValue = key ? new Date(key) : key;
|
|
3424
|
+
}
|
|
3425
|
+
else if (column.dataType === GridColumnDataType.Date) {
|
|
3426
|
+
const date = key ? new Date(key) : key;
|
|
3427
|
+
key = date
|
|
3428
|
+
? new Date(date.getFullYear(), date.getMonth(), date.getDate()).toISOString()
|
|
3429
|
+
: date;
|
|
3430
|
+
finalValue = date;
|
|
3431
|
+
}
|
|
3432
|
+
return { key, finalValue };
|
|
3703
3433
|
}
|
|
3704
3434
|
shouldFormatFilterValues(_column) {
|
|
3705
3435
|
return false;
|
|
@@ -3754,6 +3484,298 @@ class FormattedValuesFilteringStrategy extends FilteringStrategy {
|
|
|
3754
3484
|
}
|
|
3755
3485
|
}
|
|
3756
3486
|
|
|
3487
|
+
/**
|
|
3488
|
+
* @hidden
|
|
3489
|
+
*/
|
|
3490
|
+
const DataType = {
|
|
3491
|
+
String: 'string',
|
|
3492
|
+
Number: 'number',
|
|
3493
|
+
Boolean: 'boolean',
|
|
3494
|
+
Date: 'date',
|
|
3495
|
+
DateTime: 'dateTime',
|
|
3496
|
+
Time: 'time',
|
|
3497
|
+
Currency: 'currency',
|
|
3498
|
+
Percent: 'percent',
|
|
3499
|
+
Image: 'image'
|
|
3500
|
+
};
|
|
3501
|
+
/**
|
|
3502
|
+
* @hidden
|
|
3503
|
+
*/
|
|
3504
|
+
const GridColumnDataType = DataType;
|
|
3505
|
+
/**
|
|
3506
|
+
* @hidden
|
|
3507
|
+
*/
|
|
3508
|
+
class DataUtil {
|
|
3509
|
+
static sort(data, expressions, sorting = new IgxSorting(), grid) {
|
|
3510
|
+
return sorting.sort(data, expressions, grid);
|
|
3511
|
+
}
|
|
3512
|
+
static treeGridSort(hierarchicalData, expressions, sorting = new IgxDataRecordSorting(), grid) {
|
|
3513
|
+
const res = [];
|
|
3514
|
+
const stack = [];
|
|
3515
|
+
stack.push({ original: hierarchicalData, parent: null, result: res });
|
|
3516
|
+
while (stack.length > 0) {
|
|
3517
|
+
const { original, parent, result } = stack.pop();
|
|
3518
|
+
const clonedRecords = [];
|
|
3519
|
+
for (const treeRecord of original) {
|
|
3520
|
+
const rec = DataUtil.cloneTreeGridRecord(treeRecord);
|
|
3521
|
+
rec.parent = parent;
|
|
3522
|
+
clonedRecords.push(rec);
|
|
3523
|
+
// If it has children, process them later
|
|
3524
|
+
if (rec.children && rec.children.length > 0) {
|
|
3525
|
+
const childClones = [];
|
|
3526
|
+
rec.children = childClones;
|
|
3527
|
+
stack.push({
|
|
3528
|
+
original: treeRecord.children,
|
|
3529
|
+
parent: rec,
|
|
3530
|
+
result: childClones
|
|
3531
|
+
});
|
|
3532
|
+
}
|
|
3533
|
+
}
|
|
3534
|
+
// Sort the clonedRecords before assigning to the result
|
|
3535
|
+
const sorted = DataUtil.sort(clonedRecords, expressions, sorting, grid);
|
|
3536
|
+
for (const item of sorted) {
|
|
3537
|
+
result.push(item);
|
|
3538
|
+
}
|
|
3539
|
+
}
|
|
3540
|
+
return res;
|
|
3541
|
+
}
|
|
3542
|
+
static cloneTreeGridRecord(hierarchicalRecord) {
|
|
3543
|
+
const rec = {
|
|
3544
|
+
key: hierarchicalRecord.key,
|
|
3545
|
+
data: hierarchicalRecord.data,
|
|
3546
|
+
children: hierarchicalRecord.children,
|
|
3547
|
+
isFilteredOutParent: hierarchicalRecord.isFilteredOutParent,
|
|
3548
|
+
level: hierarchicalRecord.level,
|
|
3549
|
+
expanded: hierarchicalRecord.expanded
|
|
3550
|
+
};
|
|
3551
|
+
return rec;
|
|
3552
|
+
}
|
|
3553
|
+
static group(data, state, grouping = new IgxGrouping(), grid = null, groupsRecords = [], fullResult = { data: [], metadata: [] }) {
|
|
3554
|
+
groupsRecords.splice(0, groupsRecords.length);
|
|
3555
|
+
return grouping.groupBy(data, state, grid, groupsRecords, fullResult);
|
|
3556
|
+
}
|
|
3557
|
+
static merge(data, columns, strategy = new DefaultMergeStrategy(), activeRowIndexes = [], grid = null) {
|
|
3558
|
+
const result = [];
|
|
3559
|
+
for (const col of columns) {
|
|
3560
|
+
const isDate = col?.dataType === 'date' || col?.dataType === 'dateTime';
|
|
3561
|
+
const isTime = col?.dataType === 'time' || col?.dataType === 'dateTime';
|
|
3562
|
+
strategy.merge(data, col.field, col.mergingComparer, result, activeRowIndexes, isDate, isTime, grid);
|
|
3563
|
+
}
|
|
3564
|
+
return result;
|
|
3565
|
+
}
|
|
3566
|
+
static page(data, state, dataLength) {
|
|
3567
|
+
if (!state) {
|
|
3568
|
+
return data;
|
|
3569
|
+
}
|
|
3570
|
+
const len = dataLength !== undefined ? dataLength : data.length;
|
|
3571
|
+
const index = state.index;
|
|
3572
|
+
const res = [];
|
|
3573
|
+
const recordsPerPage = dataLength !== undefined && state.recordsPerPage > dataLength ? dataLength : state.recordsPerPage;
|
|
3574
|
+
state.metadata = {
|
|
3575
|
+
countPages: 0,
|
|
3576
|
+
countRecords: len,
|
|
3577
|
+
error: PagingError.None
|
|
3578
|
+
};
|
|
3579
|
+
if (index < 0 || isNaN(index)) {
|
|
3580
|
+
state.metadata.error = PagingError.IncorrectPageIndex;
|
|
3581
|
+
return res;
|
|
3582
|
+
}
|
|
3583
|
+
if (recordsPerPage <= 0 || isNaN(recordsPerPage)) {
|
|
3584
|
+
state.metadata.error = PagingError.IncorrectRecordsPerPage;
|
|
3585
|
+
return res;
|
|
3586
|
+
}
|
|
3587
|
+
state.metadata.countPages = Math.ceil(len / recordsPerPage);
|
|
3588
|
+
if (!len) {
|
|
3589
|
+
return data;
|
|
3590
|
+
}
|
|
3591
|
+
if (index >= state.metadata.countPages) {
|
|
3592
|
+
state.metadata.error = PagingError.IncorrectPageIndex;
|
|
3593
|
+
return res;
|
|
3594
|
+
}
|
|
3595
|
+
return data.slice(index * recordsPerPage, (index + 1) * recordsPerPage);
|
|
3596
|
+
}
|
|
3597
|
+
static correctPagingState(state, length) {
|
|
3598
|
+
const maxPage = Math.ceil(length / state.recordsPerPage) - 1;
|
|
3599
|
+
if (!isNaN(maxPage) && state.index > maxPage) {
|
|
3600
|
+
state.index = maxPage;
|
|
3601
|
+
}
|
|
3602
|
+
}
|
|
3603
|
+
static getHierarchy(gRow) {
|
|
3604
|
+
return getHierarchy(gRow);
|
|
3605
|
+
}
|
|
3606
|
+
static isHierarchyMatch(h1, h2, expressions) {
|
|
3607
|
+
return isHierarchyMatch(h1, h2, expressions);
|
|
3608
|
+
}
|
|
3609
|
+
/**
|
|
3610
|
+
* Merges all changes from provided transactions into provided data collection
|
|
3611
|
+
*
|
|
3612
|
+
* @param data Collection to merge
|
|
3613
|
+
* @param transactions Transactions to merge into data
|
|
3614
|
+
* @param primaryKey Primary key of the collection, if any
|
|
3615
|
+
* @param deleteRows Should delete rows with DELETE transaction type from data
|
|
3616
|
+
* @returns Provided data collections updated with all provided transactions
|
|
3617
|
+
*/
|
|
3618
|
+
static mergeTransactions(data, transactions, primaryKey, cloneStrategy = new DefaultDataCloneStrategy(), deleteRows = false) {
|
|
3619
|
+
data.forEach((item, index) => {
|
|
3620
|
+
const rowId = primaryKey ? item[primaryKey] : item;
|
|
3621
|
+
const transaction = transactions.find(t => t.id === rowId);
|
|
3622
|
+
if (transaction && transaction.type === TransactionType.UPDATE) {
|
|
3623
|
+
data[index] = mergeObjects(cloneStrategy.clone(data[index]), transaction.newValue);
|
|
3624
|
+
}
|
|
3625
|
+
});
|
|
3626
|
+
if (deleteRows) {
|
|
3627
|
+
transactions
|
|
3628
|
+
.filter(t => t.type === TransactionType.DELETE)
|
|
3629
|
+
.forEach(t => {
|
|
3630
|
+
const index = primaryKey ? data.findIndex(d => d[primaryKey] === t.id) : data.findIndex(d => d === t.id);
|
|
3631
|
+
if (0 <= index && index < data.length) {
|
|
3632
|
+
data.splice(index, 1);
|
|
3633
|
+
}
|
|
3634
|
+
});
|
|
3635
|
+
}
|
|
3636
|
+
data.push(...transactions
|
|
3637
|
+
.filter(t => t.type === TransactionType.ADD)
|
|
3638
|
+
.map(t => t.newValue));
|
|
3639
|
+
return data;
|
|
3640
|
+
}
|
|
3641
|
+
/**
|
|
3642
|
+
* Merges all changes from provided transactions into provided hierarchical data collection
|
|
3643
|
+
*
|
|
3644
|
+
* @param data Collection to merge
|
|
3645
|
+
* @param transactions Transactions to merge into data
|
|
3646
|
+
* @param childDataKey Data key of child collections
|
|
3647
|
+
* @param primaryKey Primary key of the collection, if any
|
|
3648
|
+
* @param deleteRows Should delete rows with DELETE transaction type from data
|
|
3649
|
+
* @returns Provided data collections updated with all provided transactions
|
|
3650
|
+
*/
|
|
3651
|
+
static mergeHierarchicalTransactions(data, transactions, childDataKey, primaryKey, cloneStrategy = new DefaultDataCloneStrategy(), deleteRows = false) {
|
|
3652
|
+
for (const transaction of transactions) {
|
|
3653
|
+
if (transaction.path) {
|
|
3654
|
+
const parent = this.findParentFromPath(data, primaryKey, childDataKey, transaction.path);
|
|
3655
|
+
let collection = parent ? parent[childDataKey] : data;
|
|
3656
|
+
switch (transaction.type) {
|
|
3657
|
+
case TransactionType.ADD:
|
|
3658
|
+
// if there is no parent this is ADD row at root level
|
|
3659
|
+
if (parent && !parent[childDataKey]) {
|
|
3660
|
+
parent[childDataKey] = collection = [];
|
|
3661
|
+
}
|
|
3662
|
+
collection.push(transaction.newValue);
|
|
3663
|
+
break;
|
|
3664
|
+
case TransactionType.UPDATE:
|
|
3665
|
+
const updateIndex = collection.findIndex(x => x[primaryKey] === transaction.id);
|
|
3666
|
+
if (updateIndex !== -1) {
|
|
3667
|
+
collection[updateIndex] = mergeObjects(cloneStrategy.clone(collection[updateIndex]), transaction.newValue);
|
|
3668
|
+
}
|
|
3669
|
+
break;
|
|
3670
|
+
case TransactionType.DELETE:
|
|
3671
|
+
if (deleteRows) {
|
|
3672
|
+
const deleteIndex = collection.findIndex(r => r[primaryKey] === transaction.id);
|
|
3673
|
+
if (deleteIndex !== -1) {
|
|
3674
|
+
collection.splice(deleteIndex, 1);
|
|
3675
|
+
}
|
|
3676
|
+
}
|
|
3677
|
+
break;
|
|
3678
|
+
}
|
|
3679
|
+
}
|
|
3680
|
+
else {
|
|
3681
|
+
// if there is no path this is ADD row in root. Push the newValue to data
|
|
3682
|
+
data.push(transaction.newValue);
|
|
3683
|
+
}
|
|
3684
|
+
}
|
|
3685
|
+
return data;
|
|
3686
|
+
}
|
|
3687
|
+
static parseValue(dataType, value) {
|
|
3688
|
+
if (dataType === GridColumnDataType.Number || dataType === GridColumnDataType.Currency || dataType === GridColumnDataType.Percent) {
|
|
3689
|
+
value = parseFloat(value);
|
|
3690
|
+
}
|
|
3691
|
+
return value;
|
|
3692
|
+
}
|
|
3693
|
+
static filterDataByExpressions(data, expressionsTree, grid) {
|
|
3694
|
+
if (expressionsTree.filteringOperands.length) {
|
|
3695
|
+
const state = { expressionsTree, strategy: FilteringStrategy.instance() };
|
|
3696
|
+
data = FilterUtil.filter(cloneArray(data), state, grid);
|
|
3697
|
+
}
|
|
3698
|
+
return data;
|
|
3699
|
+
}
|
|
3700
|
+
static findParentFromPath(data, primaryKey, childDataKey, path) {
|
|
3701
|
+
let collection = data;
|
|
3702
|
+
let result;
|
|
3703
|
+
for (const id of path) {
|
|
3704
|
+
result = collection && collection.find(x => x[primaryKey] === id);
|
|
3705
|
+
if (!result) {
|
|
3706
|
+
break;
|
|
3707
|
+
}
|
|
3708
|
+
collection = result[childDataKey];
|
|
3709
|
+
}
|
|
3710
|
+
return result;
|
|
3711
|
+
}
|
|
3712
|
+
}
|
|
3713
|
+
|
|
3714
|
+
/**
|
|
3715
|
+
* @hidden
|
|
3716
|
+
*/
|
|
3717
|
+
class ExportUtilities {
|
|
3718
|
+
static getKeysFromData(data) {
|
|
3719
|
+
const length = data.length;
|
|
3720
|
+
if (length === 0) {
|
|
3721
|
+
return [];
|
|
3722
|
+
}
|
|
3723
|
+
const dataEntry = data[0];
|
|
3724
|
+
const dataEntryMiddle = data[Math.floor(length / 2)];
|
|
3725
|
+
const dataEntryLast = data[length - 1];
|
|
3726
|
+
const keys1 = Object.keys(dataEntry);
|
|
3727
|
+
const keys2 = Object.keys(dataEntryMiddle);
|
|
3728
|
+
const keys3 = Object.keys(dataEntryLast);
|
|
3729
|
+
const keys = new Set(keys1.concat(keys2).concat(keys3));
|
|
3730
|
+
return !ExportUtilities.isSpecialData(dataEntry) ? Array.from(keys) : ['Column 1'];
|
|
3731
|
+
}
|
|
3732
|
+
static saveBlobToFile(blob, fileName) {
|
|
3733
|
+
const doc = globalThis.document;
|
|
3734
|
+
const a = doc.createElement('a');
|
|
3735
|
+
const url = window.URL.createObjectURL(blob);
|
|
3736
|
+
a.download = fileName;
|
|
3737
|
+
a.href = url;
|
|
3738
|
+
doc.body.appendChild(a);
|
|
3739
|
+
a.click();
|
|
3740
|
+
doc.body.removeChild(a);
|
|
3741
|
+
window.URL.revokeObjectURL(url);
|
|
3742
|
+
}
|
|
3743
|
+
static stringToArrayBuffer(s) {
|
|
3744
|
+
const buf = new ArrayBuffer(s.length);
|
|
3745
|
+
const view = new Uint8Array(buf);
|
|
3746
|
+
for (let i = 0; i !== s.length; ++i) {
|
|
3747
|
+
view[i] = s.charCodeAt(i) & 0xFF;
|
|
3748
|
+
}
|
|
3749
|
+
return buf;
|
|
3750
|
+
}
|
|
3751
|
+
static isSpecialData(data) {
|
|
3752
|
+
return (typeof data === 'string' ||
|
|
3753
|
+
typeof data === 'number' ||
|
|
3754
|
+
data instanceof Date);
|
|
3755
|
+
}
|
|
3756
|
+
static hasValue(value) {
|
|
3757
|
+
return value !== undefined && value !== null;
|
|
3758
|
+
}
|
|
3759
|
+
static isNullOrWhitespaces(value) {
|
|
3760
|
+
return value === undefined || value === null || !value.trim();
|
|
3761
|
+
}
|
|
3762
|
+
static sanitizeValue(value) {
|
|
3763
|
+
if (!this.hasValue(value)) {
|
|
3764
|
+
return '';
|
|
3765
|
+
}
|
|
3766
|
+
else {
|
|
3767
|
+
const stringValue = String(value);
|
|
3768
|
+
return stringValue.replace(/&/g, '&')
|
|
3769
|
+
.replace(/</g, '<')
|
|
3770
|
+
.replace(/>/g, '>')
|
|
3771
|
+
.replace(/"/g, '"')
|
|
3772
|
+
.replace(/'/g, ''')
|
|
3773
|
+
// Bug #14944 - Remove the not supported null character (\u0000, \x00)
|
|
3774
|
+
.replace(/\x00/g, '');
|
|
3775
|
+
}
|
|
3776
|
+
}
|
|
3777
|
+
}
|
|
3778
|
+
|
|
3757
3779
|
class TreeGridFilteringStrategy extends BaseFilteringStrategy {
|
|
3758
3780
|
constructor(hierarchicalFilterFields) {
|
|
3759
3781
|
super();
|
|
@@ -3816,6 +3838,9 @@ class TreeGridFilteringStrategy extends BaseFilteringStrategy {
|
|
|
3816
3838
|
const items = this.getHierarchicalFilterItems(data, column);
|
|
3817
3839
|
return Promise.resolve(items);
|
|
3818
3840
|
}
|
|
3841
|
+
getFilteredData(column, tree) {
|
|
3842
|
+
return DataUtil.filterDataByExpressions(column.grid.flatData, tree, column.grid);
|
|
3843
|
+
}
|
|
3819
3844
|
getHierarchicalFilterItems(records, column, parent) {
|
|
3820
3845
|
const pathParts = columnFieldPath(column.field);
|
|
3821
3846
|
return records?.map(record => {
|
|
@@ -10239,6 +10264,9 @@ class IgxInputDirective {
|
|
|
10239
10264
|
const elTag = this.nativeElement.tagName.toLowerCase();
|
|
10240
10265
|
if (elTag === 'textarea') {
|
|
10241
10266
|
this.isTextArea = true;
|
|
10267
|
+
if (this.nativeElement.getAttribute('rows') === null) {
|
|
10268
|
+
this.renderer.setAttribute(this.nativeElement, 'rows', '3');
|
|
10269
|
+
}
|
|
10242
10270
|
}
|
|
10243
10271
|
else {
|
|
10244
10272
|
this.isInput = true;
|
|
@@ -21364,6 +21392,8 @@ class IgxTooltipDirective extends IgxToggleDirective {
|
|
|
21364
21392
|
this._role = 'tooltip';
|
|
21365
21393
|
this._destroy$ = new Subject();
|
|
21366
21394
|
this._document = inject(DOCUMENT);
|
|
21395
|
+
this._renderer = inject(Renderer2);
|
|
21396
|
+
this._platformUtil = inject(PlatformUtil);
|
|
21367
21397
|
this.onDocumentTouchStart = this.onDocumentTouchStart.bind(this);
|
|
21368
21398
|
this.opening.pipe(takeUntil$1(this._destroy$)).subscribe(() => {
|
|
21369
21399
|
this._document.addEventListener('touchstart', this.onDocumentTouchStart, { passive: true });
|
|
@@ -21371,7 +21401,12 @@ class IgxTooltipDirective extends IgxToggleDirective {
|
|
|
21371
21401
|
this.closed.pipe(takeUntil$1(this._destroy$)).subscribe(() => {
|
|
21372
21402
|
this._document.removeEventListener('touchstart', this.onDocumentTouchStart);
|
|
21373
21403
|
});
|
|
21374
|
-
|
|
21404
|
+
}
|
|
21405
|
+
/** @hidden */
|
|
21406
|
+
ngAfterViewInit() {
|
|
21407
|
+
if (this._platformUtil.isBrowser) {
|
|
21408
|
+
this._createArrow();
|
|
21409
|
+
}
|
|
21375
21410
|
}
|
|
21376
21411
|
/** @hidden */
|
|
21377
21412
|
ngOnDestroy() {
|
|
@@ -21379,7 +21414,9 @@ class IgxTooltipDirective extends IgxToggleDirective {
|
|
|
21379
21414
|
this._document.removeEventListener('touchstart', this.onDocumentTouchStart);
|
|
21380
21415
|
this._destroy$.next(true);
|
|
21381
21416
|
this._destroy$.complete();
|
|
21382
|
-
this.
|
|
21417
|
+
if (this.arrow) {
|
|
21418
|
+
this._removeArrow();
|
|
21419
|
+
}
|
|
21383
21420
|
}
|
|
21384
21421
|
/**
|
|
21385
21422
|
* @hidden
|
|
@@ -21395,35 +21432,48 @@ class IgxTooltipDirective extends IgxToggleDirective {
|
|
|
21395
21432
|
}
|
|
21396
21433
|
/**
|
|
21397
21434
|
* If there is an animation in progress, this method will reset it to its initial state.
|
|
21398
|
-
*
|
|
21435
|
+
* Allows hovering over the tooltip while an open/close animation is running.
|
|
21436
|
+
* Stops the animation and immediately shows the tooltip.
|
|
21399
21437
|
*
|
|
21400
21438
|
* @hidden
|
|
21401
|
-
* @param force if set to `true`, the animation will be ended.
|
|
21402
21439
|
*/
|
|
21403
|
-
stopAnimations(
|
|
21440
|
+
stopAnimations() {
|
|
21404
21441
|
const info = this.overlayService.getOverlayById(this._overlayId);
|
|
21405
21442
|
if (!info)
|
|
21406
21443
|
return;
|
|
21407
21444
|
if (info.openAnimationPlayer) {
|
|
21408
21445
|
info.openAnimationPlayer.reset();
|
|
21409
|
-
if (force) {
|
|
21410
|
-
info.openAnimationPlayer.finish();
|
|
21411
|
-
info.openAnimationPlayer = null;
|
|
21412
|
-
}
|
|
21413
21446
|
}
|
|
21414
21447
|
if (info.closeAnimationPlayer) {
|
|
21415
21448
|
info.closeAnimationPlayer.reset();
|
|
21416
|
-
|
|
21417
|
-
|
|
21418
|
-
|
|
21419
|
-
|
|
21449
|
+
}
|
|
21450
|
+
}
|
|
21451
|
+
/**
|
|
21452
|
+
* If there is a close animation in progress, this method will end it.
|
|
21453
|
+
* If there is no close animation in progress, this method will close the tooltip with no animation.
|
|
21454
|
+
*
|
|
21455
|
+
* @param overlaySettings settings to use for closing the tooltip
|
|
21456
|
+
* @hidden
|
|
21457
|
+
*/
|
|
21458
|
+
forceClose(overlaySettings) {
|
|
21459
|
+
const info = this.overlayService.getOverlayById(this._overlayId);
|
|
21460
|
+
if (info && info.closeAnimationPlayer) {
|
|
21461
|
+
info.closeAnimationPlayer.finish();
|
|
21462
|
+
info.closeAnimationPlayer.reset();
|
|
21463
|
+
info.closeAnimationPlayer = null;
|
|
21464
|
+
}
|
|
21465
|
+
else if (!this.collapsed) {
|
|
21466
|
+
const animation = overlaySettings.positionStrategy.settings.closeAnimation;
|
|
21467
|
+
overlaySettings.positionStrategy.settings.closeAnimation = null;
|
|
21468
|
+
this.close();
|
|
21469
|
+
overlaySettings.positionStrategy.settings.closeAnimation = animation;
|
|
21420
21470
|
}
|
|
21421
21471
|
}
|
|
21422
21472
|
_createArrow() {
|
|
21423
|
-
this._arrowEl =
|
|
21424
|
-
this.
|
|
21425
|
-
this.
|
|
21426
|
-
this.
|
|
21473
|
+
this._arrowEl = this._renderer.createElement('span');
|
|
21474
|
+
this._renderer.setStyle(this._arrowEl, 'position', 'absolute');
|
|
21475
|
+
this._renderer.setAttribute(this._arrowEl, 'data-arrow', 'true');
|
|
21476
|
+
this._renderer.appendChild(this.element, this._arrowEl);
|
|
21427
21477
|
}
|
|
21428
21478
|
_removeArrow() {
|
|
21429
21479
|
this._arrowEl.remove();
|
|
@@ -21825,7 +21875,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
21825
21875
|
* ```
|
|
21826
21876
|
*/
|
|
21827
21877
|
set hasArrow(value) {
|
|
21828
|
-
if (this.target) {
|
|
21878
|
+
if (this.target && this.target.arrow) {
|
|
21829
21879
|
this.target.arrow.style.display = value ? '' : 'none';
|
|
21830
21880
|
}
|
|
21831
21881
|
this._hasArrow = value;
|
|
@@ -22111,14 +22161,6 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
22111
22161
|
this._hideOnInteraction();
|
|
22112
22162
|
}
|
|
22113
22163
|
}
|
|
22114
|
-
/**
|
|
22115
|
-
* @hidden
|
|
22116
|
-
*/
|
|
22117
|
-
ngOnChanges(changes) {
|
|
22118
|
-
if (changes['hasArrow']) {
|
|
22119
|
-
this.target.arrow.style.display = changes['hasArrow'].currentValue ? '' : 'none';
|
|
22120
|
-
}
|
|
22121
|
-
}
|
|
22122
22164
|
/**
|
|
22123
22165
|
* @hidden
|
|
22124
22166
|
*/
|
|
@@ -22139,6 +22181,14 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
22139
22181
|
});
|
|
22140
22182
|
this.nativeElement.addEventListener('touchstart', this.onTouchStart = this.onTouchStart.bind(this), { passive: true });
|
|
22141
22183
|
}
|
|
22184
|
+
/**
|
|
22185
|
+
* @hidden
|
|
22186
|
+
*/
|
|
22187
|
+
ngAfterViewInit() {
|
|
22188
|
+
if (this.target && this.target.arrow) {
|
|
22189
|
+
this.target.arrow.style.display = this.hasArrow ? '' : 'none';
|
|
22190
|
+
}
|
|
22191
|
+
}
|
|
22142
22192
|
/**
|
|
22143
22193
|
* @hidden
|
|
22144
22194
|
*/
|
|
@@ -22246,8 +22296,6 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
22246
22296
|
}
|
|
22247
22297
|
/**
|
|
22248
22298
|
* Used when a single tooltip is used for multiple targets.
|
|
22249
|
-
* If the tooltip is shown for one target and the user interacts with another target,
|
|
22250
|
-
* the tooltip is instantly hidden for the first target.
|
|
22251
22299
|
*/
|
|
22252
22300
|
_checkTooltipForMultipleTargets() {
|
|
22253
22301
|
if (!this.target.tooltipTarget) {
|
|
@@ -22259,8 +22307,10 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
22259
22307
|
if (this.target.tooltipTarget.sticky) {
|
|
22260
22308
|
this.target.tooltipTarget._removeCloseButtonFromTooltip();
|
|
22261
22309
|
}
|
|
22310
|
+
// If the tooltip is shown for one target and the user interacts with another target,
|
|
22311
|
+
// the tooltip is instantly hidden for the first target.
|
|
22262
22312
|
clearTimeout(this.target.timeoutId);
|
|
22263
|
-
this.target.
|
|
22313
|
+
this.target.forceClose(this._mergedOverlaySettings);
|
|
22264
22314
|
this.target.tooltipTarget = this;
|
|
22265
22315
|
this._isForceClosed = true;
|
|
22266
22316
|
}
|
|
@@ -22326,7 +22376,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
22326
22376
|
}
|
|
22327
22377
|
}
|
|
22328
22378
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxTooltipTargetDirective, deps: [{ token: i0.ElementRef }, { token: IgxNavigationService, optional: true }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
22329
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.6", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", hasArrow: "hasArrow", sticky: "sticky", closeTemplate: ["closeButtonTemplate", "closeTemplate"], positionSettings: "positionSettings", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, exportAs: ["tooltipTarget"], usesInheritance: true,
|
|
22379
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.6", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", hasArrow: "hasArrow", sticky: "sticky", closeTemplate: ["closeButtonTemplate", "closeTemplate"], positionSettings: "positionSettings", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, exportAs: ["tooltipTarget"], usesInheritance: true, ngImport: i0 }); }
|
|
22330
22380
|
}
|
|
22331
22381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxTooltipTargetDirective, decorators: [{
|
|
22332
22382
|
type: Directive,
|
|
@@ -53059,6 +53109,7 @@ class IgxExcelStyleClearFiltersComponent {
|
|
|
53059
53109
|
*/
|
|
53060
53110
|
clearFilter() {
|
|
53061
53111
|
this.esf.grid.filteringService.clearFilter(this.esf.column.field);
|
|
53112
|
+
this.esf.filterCleared.emit();
|
|
53062
53113
|
this.selectAllFilterItems();
|
|
53063
53114
|
}
|
|
53064
53115
|
/**
|
|
@@ -57438,6 +57489,7 @@ class IgxExcelStyleSearchComponent {
|
|
|
57438
57489
|
this.displayedListData = [];
|
|
57439
57490
|
this.activeDescendant = '';
|
|
57440
57491
|
this._id = `igx-excel-style-search-${NEXT_ID$a++}`;
|
|
57492
|
+
this._isLoading = true;
|
|
57441
57493
|
this._focusedItem = null;
|
|
57442
57494
|
this.destroy$ = new Subject();
|
|
57443
57495
|
/**
|
|
@@ -57488,6 +57540,9 @@ class IgxExcelStyleSearchComponent {
|
|
|
57488
57540
|
this.searchInput.nativeElement.focus();
|
|
57489
57541
|
});
|
|
57490
57542
|
});
|
|
57543
|
+
esf.filterCleared.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
57544
|
+
this.clearInput();
|
|
57545
|
+
});
|
|
57491
57546
|
}
|
|
57492
57547
|
ngAfterViewInit() {
|
|
57493
57548
|
if (this.platform.isBrowser) {
|
|
@@ -57785,18 +57840,37 @@ class IgxExcelStyleSearchComponent {
|
|
|
57785
57840
|
blanksItem = selectedItems[blanksItemIndex];
|
|
57786
57841
|
selectedItems.splice(blanksItemIndex, 1);
|
|
57787
57842
|
}
|
|
57843
|
+
let searchVal;
|
|
57844
|
+
switch (this.esf.column.dataType) {
|
|
57845
|
+
case GridColumnDataType.Date:
|
|
57846
|
+
searchVal = new Set(selectedItems.map(d => d.value.toDateString()));
|
|
57847
|
+
break;
|
|
57848
|
+
case GridColumnDataType.DateTime:
|
|
57849
|
+
searchVal = new Set(selectedItems.map(d => d.value.toISOString()));
|
|
57850
|
+
break;
|
|
57851
|
+
case GridColumnDataType.Time:
|
|
57852
|
+
searchVal = new Set(selectedItems.map(e => e.value.toLocaleTimeString()));
|
|
57853
|
+
break;
|
|
57854
|
+
case GridColumnDataType.String:
|
|
57855
|
+
if (this.esf.column.filteringIgnoreCase) {
|
|
57856
|
+
const selectedValues = new Set(selectedItems.map(item => item.value.toLowerCase()));
|
|
57857
|
+
searchVal = new Set();
|
|
57858
|
+
this.esf.grid.data.forEach(item => {
|
|
57859
|
+
if (typeof item[this.esf.column.field] === "string" && selectedValues.has(item[this.esf.column.field]?.toLowerCase())) {
|
|
57860
|
+
searchVal.add(item[this.esf.column.field]);
|
|
57861
|
+
}
|
|
57862
|
+
});
|
|
57863
|
+
break;
|
|
57864
|
+
}
|
|
57865
|
+
default:
|
|
57866
|
+
searchVal = new Set(selectedItems.map(e => e.value));
|
|
57867
|
+
}
|
|
57788
57868
|
filterTree.filteringOperands.push({
|
|
57789
57869
|
condition: this.createCondition('in'),
|
|
57790
57870
|
conditionName: 'in',
|
|
57791
57871
|
fieldName: this.esf.column.field,
|
|
57792
57872
|
ignoreCase: this.esf.column.filteringIgnoreCase,
|
|
57793
|
-
searchVal
|
|
57794
|
-
selectedItems.map(d => d.value.toDateString()) :
|
|
57795
|
-
this.esf.column.dataType === GridColumnDataType.DateTime ?
|
|
57796
|
-
selectedItems.map(d => d.value.toISOString()) :
|
|
57797
|
-
this.esf.column.dataType === GridColumnDataType.Time ?
|
|
57798
|
-
selectedItems.map(e => e.value.toLocaleTimeString()) :
|
|
57799
|
-
selectedItems.map(e => e.value))
|
|
57873
|
+
searchVal
|
|
57800
57874
|
});
|
|
57801
57875
|
if (blanksItem) {
|
|
57802
57876
|
filterTree.filteringOperands.push({
|
|
@@ -58184,25 +58258,13 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58184
58258
|
* Sets the column.
|
|
58185
58259
|
*/
|
|
58186
58260
|
set column(value) {
|
|
58187
|
-
|
|
58188
|
-
|
|
58189
|
-
|
|
58190
|
-
|
|
58191
|
-
|
|
58192
|
-
|
|
58193
|
-
|
|
58194
|
-
this.sortingChanged.emit();
|
|
58195
|
-
this.subscriptions = this.grid.columnPin.subscribe(() => {
|
|
58196
|
-
requestAnimationFrame(() => {
|
|
58197
|
-
if (!this.cdr.destroyed) {
|
|
58198
|
-
this.cdr.detectChanges();
|
|
58199
|
-
}
|
|
58200
|
-
});
|
|
58201
|
-
});
|
|
58202
|
-
this.subscriptions.add(this.grid.columnVisibilityChanged.subscribe(() => this.detectChanges()));
|
|
58203
|
-
this.subscriptions.add(this.grid.sortingExpressionsChange.subscribe(() => this.sortingChanged.emit()));
|
|
58204
|
-
this.subscriptions.add(this.grid.filteringExpressionsTreeChange.subscribe(() => this.init()));
|
|
58205
|
-
this.subscriptions.add(this.grid.columnMovingEnd.subscribe(() => this.cdr.markForCheck()));
|
|
58261
|
+
if (value) {
|
|
58262
|
+
this._column = value;
|
|
58263
|
+
this.columnChange.emit(this._column);
|
|
58264
|
+
if (this.inline) {
|
|
58265
|
+
// In case external filtering
|
|
58266
|
+
this.populateData();
|
|
58267
|
+
}
|
|
58206
58268
|
}
|
|
58207
58269
|
}
|
|
58208
58270
|
/**
|
|
@@ -58301,6 +58363,10 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58301
58363
|
* @hidden @internal
|
|
58302
58364
|
*/
|
|
58303
58365
|
this.listDataLoaded = new EventEmitter();
|
|
58366
|
+
/**
|
|
58367
|
+
* @hidden @internal
|
|
58368
|
+
*/
|
|
58369
|
+
this.filterCleared = new EventEmitter();
|
|
58304
58370
|
/**
|
|
58305
58371
|
* @hidden @internal
|
|
58306
58372
|
*/
|
|
@@ -58342,6 +58408,14 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58342
58408
|
this.inline = false;
|
|
58343
58409
|
this.column = column;
|
|
58344
58410
|
this.overlayService = overlayService;
|
|
58411
|
+
}
|
|
58412
|
+
/**
|
|
58413
|
+
* @hidden @internal
|
|
58414
|
+
*/
|
|
58415
|
+
populateData() {
|
|
58416
|
+
if (this.column) {
|
|
58417
|
+
this.afterColumnChange();
|
|
58418
|
+
}
|
|
58345
58419
|
if (this._originalDisplay) {
|
|
58346
58420
|
this.element.nativeElement.style.display = this._originalDisplay;
|
|
58347
58421
|
}
|
|
@@ -58424,6 +58498,30 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58424
58498
|
get size() {
|
|
58425
58499
|
return this.computedStyles?.getPropertyValue('--component-size');
|
|
58426
58500
|
}
|
|
58501
|
+
afterColumnChange() {
|
|
58502
|
+
this.listData = new Array();
|
|
58503
|
+
this.subscriptions?.unsubscribe();
|
|
58504
|
+
if (this._column) {
|
|
58505
|
+
this.grid.filteringService.registerSVGIcons();
|
|
58506
|
+
this.init();
|
|
58507
|
+
this.sortingChanged.emit();
|
|
58508
|
+
this.subscriptions = this.grid.columnPin.subscribe(() => {
|
|
58509
|
+
requestAnimationFrame(() => {
|
|
58510
|
+
if (!this.cdr.destroyed) {
|
|
58511
|
+
this.cdr.detectChanges();
|
|
58512
|
+
}
|
|
58513
|
+
});
|
|
58514
|
+
});
|
|
58515
|
+
this.subscriptions.add(this.grid.columnVisibilityChanged.subscribe(() => this.detectChanges()));
|
|
58516
|
+
this.subscriptions.add(this.grid.sortingExpressionsChange.subscribe(() => this.sortingChanged.emit()));
|
|
58517
|
+
this.subscriptions.add(this.grid.filteringExpressionsTreeChange.subscribe(() => {
|
|
58518
|
+
this.expressionsList = new Array();
|
|
58519
|
+
generateExpressionsList(this.column.filteringExpressionsTree, this.grid.filteringLogic, this.expressionsList);
|
|
58520
|
+
this.cdr.detectChanges();
|
|
58521
|
+
}));
|
|
58522
|
+
this.subscriptions.add(this.grid.columnMovingEnd.subscribe(() => this.cdr.markForCheck()));
|
|
58523
|
+
}
|
|
58524
|
+
}
|
|
58427
58525
|
init() {
|
|
58428
58526
|
this.expressionsList = new Array();
|
|
58429
58527
|
generateExpressionsList(this.column.filteringExpressionsTree, this.grid.filteringLogic, this.expressionsList);
|
|
@@ -58494,12 +58592,6 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58494
58592
|
renderValues() {
|
|
58495
58593
|
this.filterValues = this.generateFilterValues();
|
|
58496
58594
|
this.generateListData();
|
|
58497
|
-
this.expressionsList.forEach(expr => {
|
|
58498
|
-
if (this.column.dataType === GridColumnDataType.String && this.column.filteringIgnoreCase
|
|
58499
|
-
&& expr.expression.searchVal && expr.expression.searchVal instanceof Set) {
|
|
58500
|
-
this.modifyExpression(expr);
|
|
58501
|
-
}
|
|
58502
|
-
});
|
|
58503
58595
|
}
|
|
58504
58596
|
generateFilterValues() {
|
|
58505
58597
|
const formatValue = (value) => {
|
|
@@ -58525,14 +58617,6 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58525
58617
|
const filterValues = new Set(this.expressionsList.reduce(processExpression, []));
|
|
58526
58618
|
return filterValues;
|
|
58527
58619
|
}
|
|
58528
|
-
modifyExpression(expr) {
|
|
58529
|
-
const lowerCaseFilterValues = new Set(Array.from(expr.expression.searchVal).map((value) => value.toLowerCase()));
|
|
58530
|
-
this.grid.data.forEach(item => {
|
|
58531
|
-
if (typeof item[this.column.field] === "string" && lowerCaseFilterValues.has(item[this.column.field]?.toLowerCase())) {
|
|
58532
|
-
expr.expression.searchVal.add(item[this.column.field]);
|
|
58533
|
-
}
|
|
58534
|
-
});
|
|
58535
|
-
}
|
|
58536
58620
|
generateListData() {
|
|
58537
58621
|
this.listData = new Array();
|
|
58538
58622
|
const shouldUpdateSelection = this.areExpressionsSelectable();
|
|
@@ -58722,7 +58806,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
|
|
|
58722
58806
|
return value;
|
|
58723
58807
|
}
|
|
58724
58808
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxGridExcelStyleFilteringComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: PlatformUtil }, { token: DOCUMENT }, { token: IGX_GRID_BASE, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58725
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: IgxGridExcelStyleFilteringComponent, isStandalone: true, selector: "igx-grid-excel-style-filtering", inputs: { column: "column", minHeight: "minHeight", maxHeight: "maxHeight" }, outputs: { loadingStart: "loadingStart", loadingEnd: "loadingEnd", initialized: "initialized", sortingChanged: "sortingChanged", columnChange: "columnChange", listDataLoaded: "listDataLoaded" }, host: { properties: { "class.igx-excel-filter": "this.defaultClass", "class.igx-excel-filter__sizing": "this.shouldApplySizes", "class.igx-excel-filter--inline": "this.inline", "style.max-height": "this.maxHeight" } }, providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], queries: [{ propertyName: "excelColumnOperationsDirective", first: true, predicate: IgxExcelStyleColumnOperationsTemplateDirective, descendants: true, read: IgxExcelStyleColumnOperationsTemplateDirective }, { propertyName: "excelFilterOperationsDirective", first: true, predicate: IgxExcelStyleFilterOperationsTemplateDirective, descendants: true, read: IgxExcelStyleFilterOperationsTemplateDirective }], viewQueries: [{ propertyName: "mainDropdown", first: true, predicate: ["mainDropdown"], descendants: true, read: ElementRef }, { propertyName: "defaultExcelColumnOperations", first: true, predicate: ["defaultExcelColumnOperations"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultExcelFilterOperations", first: true, predicate: ["defaultExcelFilterOperations"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__sizing': shouldApplySizes,\n 'igx-excel-filter__menu--cosy': size === '2',\n 'igx-excel-filter__menu--compact': size === '1'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n @if (this.excelColumnOperationsDirective) {\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-header\n [showHiding]=\"size !== '3' && !column?.disableHiding\"\n [showPinning]=\"size !== '3' && !column?.disablePinning\"\n [showSelecting]=\"size !== '3' && columnSelectable()\"\n >\n </igx-excel-style-header>\n @if (column?.sortable) {\n <igx-excel-style-sorting>\n </igx-excel-style-sorting>\n }\n @if (grid?.moving) {\n <igx-excel-style-moving></igx-excel-style-moving>\n }\n @if (!column?.disablePinning && size === '3') {\n <igx-excel-style-pinning></igx-excel-style-pinning>\n }\n @if (!column?.disableHiding && size === '3') {\n <igx-excel-style-hiding></igx-excel-style-hiding>\n }\n @if (columnSelectable() && size === '3') {\n <igx-excel-style-selecting></igx-excel-style-selecting>\n }\n }\n\n @if (this.excelFilterOperationsDirective) {\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-clear-filters></igx-excel-style-clear-filters>\n <igx-excel-style-conditional-filter></igx-excel-style-conditional-filter>\n <igx-excel-style-search></igx-excel-style-search>\n }\n</article>\n", dependencies: [{ kind: "component", type: IgxExcelStyleHeaderComponent, selector: "igx-excel-style-header", inputs: ["showPinning", "showSelecting", "showHiding"] }, { kind: "component", type: IgxExcelStyleSortingComponent, selector: "igx-excel-style-sorting" }, { kind: "component", type: IgxExcelStyleMovingComponent, selector: "igx-excel-style-moving" }, { kind: "component", type: IgxExcelStylePinningComponent, selector: "igx-excel-style-pinning" }, { kind: "component", type: IgxExcelStyleHidingComponent, selector: "igx-excel-style-hiding" }, { kind: "component", type: IgxExcelStyleSelectingComponent, selector: "igx-excel-style-selecting" }, { kind: "component", type: IgxExcelStyleClearFiltersComponent, selector: "igx-excel-style-clear-filters" }, { kind: "component", type: IgxExcelStyleConditionalFilterComponent, selector: "igx-excel-style-conditional-filter" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58809
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: IgxGridExcelStyleFilteringComponent, isStandalone: true, selector: "igx-grid-excel-style-filtering", inputs: { column: "column", minHeight: "minHeight", maxHeight: "maxHeight" }, outputs: { loadingStart: "loadingStart", loadingEnd: "loadingEnd", initialized: "initialized", sortingChanged: "sortingChanged", columnChange: "columnChange", listDataLoaded: "listDataLoaded", filterCleared: "filterCleared" }, host: { properties: { "class.igx-excel-filter": "this.defaultClass", "class.igx-excel-filter__sizing": "this.shouldApplySizes", "class.igx-excel-filter--inline": "this.inline", "style.max-height": "this.maxHeight" } }, providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], queries: [{ propertyName: "excelColumnOperationsDirective", first: true, predicate: IgxExcelStyleColumnOperationsTemplateDirective, descendants: true, read: IgxExcelStyleColumnOperationsTemplateDirective }, { propertyName: "excelFilterOperationsDirective", first: true, predicate: IgxExcelStyleFilterOperationsTemplateDirective, descendants: true, read: IgxExcelStyleFilterOperationsTemplateDirective }], viewQueries: [{ propertyName: "mainDropdown", first: true, predicate: ["mainDropdown"], descendants: true, read: ElementRef }, { propertyName: "defaultExcelColumnOperations", first: true, predicate: ["defaultExcelColumnOperations"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultExcelFilterOperations", first: true, predicate: ["defaultExcelFilterOperations"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__sizing': shouldApplySizes,\n 'igx-excel-filter__menu--cosy': size === '2',\n 'igx-excel-filter__menu--compact': size === '1'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n @if (this.excelColumnOperationsDirective) {\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-header\n [showHiding]=\"size !== '3' && !column?.disableHiding\"\n [showPinning]=\"size !== '3' && !column?.disablePinning\"\n [showSelecting]=\"size !== '3' && columnSelectable()\"\n >\n </igx-excel-style-header>\n @if (column?.sortable) {\n <igx-excel-style-sorting>\n </igx-excel-style-sorting>\n }\n @if (grid?.moving) {\n <igx-excel-style-moving></igx-excel-style-moving>\n }\n @if (!column?.disablePinning && size === '3') {\n <igx-excel-style-pinning></igx-excel-style-pinning>\n }\n @if (!column?.disableHiding && size === '3') {\n <igx-excel-style-hiding></igx-excel-style-hiding>\n }\n @if (columnSelectable() && size === '3') {\n <igx-excel-style-selecting></igx-excel-style-selecting>\n }\n }\n\n @if (this.excelFilterOperationsDirective) {\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-clear-filters></igx-excel-style-clear-filters>\n <igx-excel-style-conditional-filter></igx-excel-style-conditional-filter>\n <igx-excel-style-search></igx-excel-style-search>\n }\n</article>\n", dependencies: [{ kind: "component", type: IgxExcelStyleHeaderComponent, selector: "igx-excel-style-header", inputs: ["showPinning", "showSelecting", "showHiding"] }, { kind: "component", type: IgxExcelStyleSortingComponent, selector: "igx-excel-style-sorting" }, { kind: "component", type: IgxExcelStyleMovingComponent, selector: "igx-excel-style-moving" }, { kind: "component", type: IgxExcelStylePinningComponent, selector: "igx-excel-style-pinning" }, { kind: "component", type: IgxExcelStyleHidingComponent, selector: "igx-excel-style-hiding" }, { kind: "component", type: IgxExcelStyleSelectingComponent, selector: "igx-excel-style-selecting" }, { kind: "component", type: IgxExcelStyleClearFiltersComponent, selector: "igx-excel-style-clear-filters" }, { kind: "component", type: IgxExcelStyleConditionalFilterComponent, selector: "igx-excel-style-conditional-filter" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58726
58810
|
}
|
|
58727
58811
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxGridExcelStyleFilteringComponent, decorators: [{
|
|
58728
58812
|
type: Component,
|
|
@@ -58758,6 +58842,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
58758
58842
|
type: Output
|
|
58759
58843
|
}], listDataLoaded: [{
|
|
58760
58844
|
type: Output
|
|
58845
|
+
}], filterCleared: [{
|
|
58846
|
+
type: Output
|
|
58761
58847
|
}], mainDropdown: [{
|
|
58762
58848
|
type: ViewChild,
|
|
58763
58849
|
args: ['mainDropdown', { read: ElementRef }]
|
|
@@ -59993,6 +60079,11 @@ class IgxFilteringService {
|
|
|
59993
60079
|
}
|
|
59994
60080
|
this.lastActiveNode = this.grid.navigation.activeNode;
|
|
59995
60081
|
});
|
|
60082
|
+
this._overlayService.opened.pipe(first$2(overlay => overlay.id === id), takeUntil(this.destroy$)).subscribe((event) => {
|
|
60083
|
+
if (event.componentRef) {
|
|
60084
|
+
event.componentRef.instance.populateData();
|
|
60085
|
+
}
|
|
60086
|
+
});
|
|
59996
60087
|
this._overlayService.closed
|
|
59997
60088
|
.pipe(first$2(overlay => overlay.id === id), takeUntil(this.destroy$))
|
|
59998
60089
|
.subscribe(() => {
|
|
@@ -68640,6 +68731,7 @@ class IgxGridBaseDirective {
|
|
|
68640
68731
|
options.outlet = this.outlet;
|
|
68641
68732
|
if (this.excelStyleFilteringComponent) {
|
|
68642
68733
|
this.excelStyleFilteringComponent.initialize(column, this.overlayService);
|
|
68734
|
+
this.excelStyleFilteringComponent.populateData();
|
|
68643
68735
|
const id = this.overlayService.attach(this.excelStyleFilteringComponent.element, options);
|
|
68644
68736
|
this.excelStyleFilteringComponent.overlayComponentId = id;
|
|
68645
68737
|
return id;
|
|
@@ -77935,7 +78027,7 @@ class IgxPivotHeaderRowComponent extends IgxGridHeaderRowComponent {
|
|
|
77935
78027
|
return this.grid.dimensionDataColumns ? this.grid.dimensionDataColumns.find((col) => col.field === dim.memberName) : null;
|
|
77936
78028
|
}
|
|
77937
78029
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxPivotHeaderRowComponent, deps: [{ token: IGX_GRID_BASE }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77938
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: IgxPivotHeaderRowComponent, isStandalone: true, selector: "igx-pivot-header-row", host: { properties: { "attr.aria-activedescendant": "this.activeDescendant" } }, viewQueries: [{ propertyName: "esf", first: true, predicate: ["esf"], descendants: true }, { propertyName: "filterArea", first: true, predicate: ["filterAreaHidden"], descendants: true }, { propertyName: "filtersButton", first: true, predicate: ["filterIcon"], descendants: true }, { propertyName: "dropdownChips", first: true, predicate: ["dropdownChips"], descendants: true }, { propertyName: "pivotFilterContainer", first: true, predicate: ["pivotFilterContainer"], descendants: true }, { propertyName: "pivotRowContainer", first: true, predicate: ["pivotRowContainer"], descendants: true }, { propertyName: "notificationChips", predicate: ["notifyChip"], descendants: true }, { propertyName: "headerContainers", predicate: ["headerVirtualContainer"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "rowDimensionHeaders", predicate: ["rowDimensionHeaders"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"igx-grid-thead__wrapper igx-grid-thead__wrapper--pivot\" role=\"row\" [style.width.px]=\"width\">\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n <div class='igx-grid__tr-pivot--filter-container'>\n @if (grid.pivotUI.showConfiguration) {\n <div #pivotFilterContainer\n class=\"igx-grid__tr-pivot igx-grid__tr-pivot--filter\" [style.min-width.px]=\"grid.pivotRowWidths - 1\"\n [style.max-width.px]=\"grid.pivotRowWidths - 1\" (igxDragLeave)=\"onAreaDragLeave($event, filterArea)\"\n igxDrop (dropped)=\"onDimDrop($event, filterArea, 2)\" (pointerdown)=\"$event.preventDefault()\">\n <!-- Filter area -->\n <igx-chips-area #filterArea droppable='true'>\n @if (grid.filterDimensions.length === 0) {\n <span id='empty' igxDrop (dropped)=\"onDimDrop($event, filterArea, 2)\"\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_filter_drop_area}}</span>\n }\n @for (filter of this.filterAreaDimensions; track filter; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(filterArea)'></span>\n <igx-chip [id]=\"filter.memberName\" [draggable]=\"true\" [data]=\"{ pivotArea: 'filter' }\"\n [removable]=\"true\" (remove)=\"filterRemoved($event)\" (dragOver)=\"onDimDragOver($event, 2)\"\n (dragLeave)=\"onDimDragLeave($event)\" (dragDrop)=\"onDimDrop($event, filterArea, 2)\"\n (moveStart)='onDimDragStart($event, filterArea)' (moveEnd)='onDimDragEnd()'>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, filter)'>\n </igx-icon>\n {{filter.displayName || filter.memberName}}\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(filterArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, filterArea, 2)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_filter_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n @if (isFiltersButton && grid.filterDimensions.length !== 0) {\n <div class=\"igx-grid__pivot-filter-toggle\">\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n #filterIcon\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFiltersAreaDropdownClick($event)'>\n </igx-icon>\n <igx-badge value=\"{{this.filterDropdownDimensions.size}}\"></igx-badge>\n </div>\n }\n </div>\n }\n <div class='igx-grid__tr-pivot--drop-row-area'>\n @if (grid.pivotUI.showConfiguration && grid.pivotUI.showRowHeaders) {\n <div #pivotRowContainer [style.width.px]=\"grid.pivotRowWidths - 1\"\n class=\"igx-grid__tr-pivot igx-grid__tr-pivot--small-row-area\" igxDrop\n (igxDragLeave)=\"onAreaDragLeave($event, rowArea)\"\n (dropped)=\"onDimDrop($event, rowArea, 0)\">\n <igx-chips-area #rowArea droppable='true'>\n @if (grid.rowDimensions.length === 0) {\n <span id='empty' igxDrop (dropped)=\"onDimDrop($event, rowArea, 0)\"\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_row_drop_area}}</span>\n }\n @for (row of grid.rowDimensions; track row.memberName; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n <igx-chip [draggable]=\"true\" [id]=\"row.memberName\" [data]=\"{ pivotArea: 'row' }\"\n [removable]=\"true\" (remove)=\"rowRemoved($event)\" (dragLeave)=\"onDimDragLeave($event)\"\n (dragDrop)=\"onDimDrop($event, rowArea, 0)\" (dragOver)=\"onDimDragOver($event, 0)\"\n (moveStart)='onDimDragStart($event, rowArea)' (moveEnd)='onDimDragEnd()'\n (click)=\"onChipSort($event, row)\">\n <igx-icon igxPrefix family=\"default\" name=\"table_rows\"></igx-icon>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, row)'>\n </igx-icon>\n {{ row.displayName || row.memberName}}\n @if (row.sortDirection) {\n <igx-icon\n family=\"default\"\n [name]=\"row.sortDirection < 2 ? 'sort_asc' : 'sort_desc'\"\n igxSuffix>\n </igx-icon>\n }\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, rowArea, 0)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_row_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n </div>\n }\n </div>\n </div>\n\n <div class=\"igx-grid__tr-pivot-group\">\n @if (grid.pivotUI.showConfiguration) {\n <div #pivotColumnContainer class=\"igx-grid__tr-pivot\"\n (dropped)=\"onDimDrop($event, colArea, 1)\" igxDrop (igxDragLeave)=\"onAreaDragLeave($event, colArea)\">\n <!-- Columns area -->\n <igx-chips-area #colArea droppable='true'>\n @if (grid.columnDimensions.length === 0) {\n <span id='empty' (dropped)=\"onDimDrop($event, colArea, 1)\" igxDrop\n class='igx-grid__pivot-empty-chip-area'>\n {{grid.resourceStrings.igx_grid_pivot_empty_column_drop_area}}</span>\n }\n @for (col of grid.columnDimensions; track col.memberName; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(colArea)'></span>\n <igx-chip [draggable]=\"true\" [id]=\"col.memberName\" [data]=\"{ pivotArea: 'column' }\"\n [removable]=\"true\" (remove)=\"columnRemoved($event)\" (dragOver)=\"onDimDragOver($event, 1)\"\n (dragLeave)=\"onDimDragLeave($event)\" (dragDrop)=\"onDimDrop($event, colArea, 1)\"\n (moveStart)='onDimDragStart($event, colArea)' (moveEnd)='onDimDragEnd()'\n (click)=\"onChipSort($event, col)\">\n <igx-icon\n family=\"default\"\n name=\"view_column\"\n igxPrefix>\n </igx-icon>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, col)'>\n </igx-icon>\n {{col.displayName || col.memberName}}\n @if (col.sortDirection) {\n <igx-icon\n family=\"default\"\n [name]=\"col.sortDirection < 2 ? 'sort_asc' : 'sort_desc'\"\n igxSuffix>\n </igx-icon>\n }\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(colArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, colArea, 1)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_column_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n </div>\n }\n\n @if (grid.pivotUI.showConfiguration) {\n <div #pivotValueContainer class=\"igx-grid__tr-pivot\"\n (pointerdown)=\"$event.preventDefault()\" (dropped)=\"onValueDrop($event, valueArea)\" igxDrop\n (igxDragLeave)=\"onAreaDragLeave($event, valueArea)\">\n <!-- Value area -->\n <igx-chips-area #valueArea droppable='true'>\n @if (grid.values.length === 0) {\n <span id='empty' (dropped)=\"onValueDrop($event, valueArea)\" igxDrop\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_value_drop_area}}</span>\n }\n @for (value of grid.values; track value.member; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(valueArea)'></span>\n <igx-chip #currChip [draggable]=\"true\" [id]=\"value.displayName || value.member\" [data]=\"{ pivotArea: 'value' }\"\n [removable]=\"true\" (remove)=\"valueRemoved($event)\"\n (dragLeave)=\"onDimDragLeave($event)\" (dragOver)=\"onDimDragOver($event)\"\n (dragDrop)=\"onValueDrop($event, valueArea)\">\n <div class=\"igx-grid__tr-pivot-toggle-icons\" igxPrefix\n (click)='onSummaryClick($event, value, dropdown, currChip)'\n (pointerdown)='$event.stopPropagation()' [igxDropDownItemNavigation]=\"dropdown\">\n <igx-icon family=\"default\" name=\"functions\"></igx-icon>\n <igx-icon family=\"default\" name=\"arrow_drop_down\"></igx-icon>\n </div>\n <ng-container *ngTemplateOutlet=\"grid.valueChipTemplate ? grid.valueChipTemplate : valueChipDefaultTemplate; context: { $implicit: value }\"></ng-container>\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(valueArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onValueDrop($event, valueArea)\" #notifyValueChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_value_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n </div>\n }\n </div>\n </div>\n </div>\n <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 @if (!grid.pivotUI.showRowHeaders || grid.rowDimensions.length === 0) {\n <div #pivotContainer class=\"igx-grid__tr-pivot igx-grid__tr-pivot--row-area\"\n [style.width.px]=\"grid.pivotRowWidths - 1\" (igxDragLeave)=\"onAreaDragLeave($event, rowArea)\" igxDrop\n (dropped)=\"onDimDrop($event, rowArea, 0)\" (pointerdown)=\"$event.preventDefault()\">\n <!-- Row area -->\n <igx-chips-area #rowArea droppable='true'>\n @if (grid.pivotUI.showConfiguration || grid.rowDimensions.length === 0) {\n @if (grid.rowDimensions.length === 0) {\n <span id='empty' igxDrop (dropped)=\"onDimDrop($event, rowArea, 0)\"\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_row_drop_area}}</span>\n }\n @for (row of grid.rowDimensions; track row.memberName; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n <igx-chip [draggable]=\"true\" [id]=\"row.memberName\" [data]=\"{ pivotArea: 'row' }\"\n [removable]=\"true\" (remove)=\"rowRemoved($event)\" (dragLeave)=\"onDimDragLeave($event)\"\n (dragDrop)=\"onDimDrop($event, rowArea, 0)\" (dragOver)=\"onDimDragOver($event, 0)\"\n (moveStart)='onDimDragStart($event, rowArea)' (moveEnd)='onDimDragEnd()'\n (click)=\"onChipSort($event, row)\">\n <igx-icon igxPrefix family=\"default\" name=\"table_rows\"></igx-icon>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, row)'>\n </igx-icon>\n {{ row.displayName || row.memberName}}\n @if (row.sortDirection) {\n <igx-icon\n family=\"default\"\n [name]=\"row.sortDirection < 2 ? 'sort_asc' : 'sort_desc'\"\n igxSuffix>\n </igx-icon>\n }\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, rowArea, 0)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_row_drop_chip}}\n </igx-chip>\n }\n </igx-chips-area>\n </div>\n }\n\n @if (grid.pivotUI.showRowHeaders && grid.rowDimensions.length > 0) {\n <div class=\"igx-grid__tr igx-grid__tr-header-row\" [style.width.px]=\"grid.pivotRowWidths - 1\">\n @for (dim of grid.visibleRowDimensions; track dim; let colIndex = $index; let isLast = $last) {\n @if (getRowDimensionColumn(dim); as dimCol) {\n <igx-pivot-row-header-group #rowDimensionHeaders\n [ngClass]=\"dimCol.headerGroupClasses\"\n [ngStyle]=\"dimCol.headerGroupStyles | igxHeaderGroupStyle:dimCol:grid.pipeTrigger\"\n [style.min-width]=\"grid.rowDimensionWidthToPixels(this.grid.visibleRowDimensions[colIndex])\"\n [style.flex-basis]=\"grid.rowDimensionWidthToPixels(this.grid.visibleRowDimensions[colIndex])\"\n [column]=\"dimCol\"\n [rootDimension]=\"grid.visibleRowDimensions[colIndex]\"\n [dimWidth]=\"grid.rowDimensionWidthToPixels(this.grid.visibleRowDimensions[colIndex])\"\n [rowIndex]=\"-1\" >\n </igx-pivot-row-header-group>\n }\n }\n </div>\n }\n\n <!-- Pinned columns collection from the start -->\n @if (pinnedStartColumnCollection.length) {\n @for (column of pinnedStartColumnCollection | igxTopLevel; track column) {\n <igx-grid-header-group [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\" [column]=\"column\"\n [style.min-width]=\"column.resolvedWidth\"\n [style.flex-basis]=\"column.resolvedWidth\"\n (pointerdown)=\"grid.navigation.focusOutRowHeader($event)\">\n </igx-grid-header-group>\n }\n }\n <div class=\"igx-grid-thead--virtualizationWrapper\" [style.max-height.px]=\"maxContainerHeight\" (click)=\"grid.navigation.focusOutRowHeader($event)\">\n @for (dimLevelColumns of columnDimensionsByLevel; track $index; let i = $index) {\n <div class=\"igx-grid-thead__group igx-grid-thead--virtualizationContainer\" [style.height.px]=\"totalDepth > 1 ? grid.rowHeight : undefined\" [style.width.px]=\"grid.unpinnedWidth\">\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"dimLevelColumns\" [igxGridForOfUniqueSizeCache]=\"true\" [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\" [igxForScrollOrientation]=\"'horizontal'\">\n <igx-grid-header-group [ngClass]=\"column.headerGroupClasses\"\n [style.height.px]=\"totalDepth > 1 ? calcHeight(column, i) : undefined\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\" [column]=\"column\"\n [style.min-width]=\"column.resolvedWidth\"\n [style.flex-basis]=\"column.resolvedWidth\"\n [class.igx-grid__tr-pivot--columnDimensionLeaf]=\"isDuplicateOfExistingParent(column, i)\"\n [class.igx-grid__tr-pivot--columnMultiRowSpan]=\"isMultiRow(column, i)\"\n >\n </igx-grid-header-group>\n </ng-template>\n </div>\n }\n </div>\n\n <!-- Pinned columns collection at the end -->\n @if (pinnedEndColumnCollection.length) {\n @for (column of pinnedEndColumnCollection | igxTopLevel; track column) {\n <igx-grid-header-group [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\" [column]=\"column\"\n [style.min-width]=\"column.resolvedWidth\"\n [style.flex-basis]=\"column.resolvedWidth\"\n (pointerdown)=\"grid.navigation.focusOutRowHeader($event)\">\n </igx-grid-header-group>\n }\n }\n </div>\n\n <!-- Render a hidden row of the leaf column headers for accessibility purposes -->\n <div role=\"row\" style=\"width: 0; height: 0; position: absolute; top: -10000px;\">\n @for (column of visibleLeafColumns; track column.index) {\n <div role=\"columnheader\" [attr.aria-hidden]=\"isLeafHeaderAriaHidden\">{{ column.header || column.field }}</div>\n }\n </div>\n </div>\n</div>\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\">\n</div>\n\n<igx-drop-down #dropdown (selectionChanging)='onAggregationChange($event)'>\n @for (item of aggregateList; track item.key) {\n <igx-drop-down-item [selected]='isSelected(item)' [value]='item'>\n {{ item.label }}\n </igx-drop-down-item>\n }\n</igx-drop-down>\n\n<div [hidden]='true'>\n <igx-grid-excel-style-filtering [maxHeight]='grid.excelStyleFilterMaxHeight' [minHeight]='grid.excelStyleFilterMinHeight' #esf>\n <div igxExcelStyleColumnOperations>\n <igx-chips-area #dropdownChips>\n @for (filter of this.filterDropdownDimensions; track filter) {\n <igx-chip [id]=\"filter.memberName\"\n [removable]=\"true\" (remove)=\"filterRemoved($event)\"\n (chipClick)='onFiltersSelectionChanged($event)' [selectable]='true' [selected]='filter === this.filterDropdownDimensions.values().next().value'>\n {{filter.displayName || filter.memberName}}\n </igx-chip>\n }\n </igx-chips-area>\n </div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n<div style=\"visibility: hidden; position: absolute; top: -10000px\">\n <igx-chips-area #filterAreaHidden droppable='true'>\n @for (filter of grid.filterDimensions; track filter) {\n <igx-chip\n [id]=\"filter.memberName\"\n [draggable]=\"true\"\n [removable]=\"true\"\n (remove)=\"filterRemoved($event)\">\n <igx-icon family=\"default\" name=\"filter_list\" igxPrefix></igx-icon>\n {{filter.displayName || filter.memberName}}\n </igx-chip>\n }\n </igx-chips-area>\n</div>\n\n<ng-template #valueChipDefaultTemplate let-value>\n {{value.aggregate.key}}({{value.displayName || value.member}})\n</ng-template>\n", dependencies: [{ kind: "directive", type: IgxDropDirective, selector: "[igxDrop]", inputs: ["igxDrop", "dropChannel", "dropStrategy"], outputs: ["enter", "over", "leave", "dropped"], exportAs: ["drop"] }, { kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape", "outlined"] }, { kind: "directive", type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix],[igxEnd]" }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxGridHeaderGroupComponent, selector: "igx-grid-header-group", inputs: ["column"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy", "role"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }, { kind: "component", type: IgxGridExcelStyleFilteringComponent, selector: "igx-grid-excel-style-filtering", inputs: ["column", "minHeight", "maxHeight"], outputs: ["loadingStart", "loadingEnd", "initialized", "sortingChanged", "columnChange", "listDataLoaded"] }, { kind: "directive", type: IgxExcelStyleColumnOperationsTemplateDirective, selector: "igx-excel-style-column-operations,[igxExcelStyleColumnOperations]" }, { kind: "directive", type: IgxExcelStyleFilterOperationsTemplateDirective, selector: "igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "component", type: IgxPivotRowHeaderGroupComponent, selector: "igx-pivot-row-header-group", inputs: ["rowIndex", "dimWidth", "rootDimension"] }, { kind: "pipe", type: IgxHeaderGroupStylePipe, name: "igxHeaderGroupStyle" }, { kind: "pipe", type: IgxGridTopLevelColumns, name: "igxTopLevel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78030
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: IgxPivotHeaderRowComponent, isStandalone: true, selector: "igx-pivot-header-row", host: { properties: { "attr.aria-activedescendant": "this.activeDescendant" } }, viewQueries: [{ propertyName: "esf", first: true, predicate: ["esf"], descendants: true }, { propertyName: "filterArea", first: true, predicate: ["filterAreaHidden"], descendants: true }, { propertyName: "filtersButton", first: true, predicate: ["filterIcon"], descendants: true }, { propertyName: "dropdownChips", first: true, predicate: ["dropdownChips"], descendants: true }, { propertyName: "pivotFilterContainer", first: true, predicate: ["pivotFilterContainer"], descendants: true }, { propertyName: "pivotRowContainer", first: true, predicate: ["pivotRowContainer"], descendants: true }, { propertyName: "notificationChips", predicate: ["notifyChip"], descendants: true }, { propertyName: "headerContainers", predicate: ["headerVirtualContainer"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "rowDimensionHeaders", predicate: ["rowDimensionHeaders"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"igx-grid-thead__wrapper igx-grid-thead__wrapper--pivot\" role=\"row\" [style.width.px]=\"width\">\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n <div class='igx-grid__tr-pivot--filter-container'>\n @if (grid.pivotUI.showConfiguration) {\n <div #pivotFilterContainer\n class=\"igx-grid__tr-pivot igx-grid__tr-pivot--filter\" [style.min-width.px]=\"grid.pivotRowWidths - 1\"\n [style.max-width.px]=\"grid.pivotRowWidths - 1\" (igxDragLeave)=\"onAreaDragLeave($event, filterArea)\"\n igxDrop (dropped)=\"onDimDrop($event, filterArea, 2)\" (pointerdown)=\"$event.preventDefault()\">\n <!-- Filter area -->\n <igx-chips-area #filterArea droppable='true'>\n @if (grid.filterDimensions.length === 0) {\n <span id='empty' igxDrop (dropped)=\"onDimDrop($event, filterArea, 2)\"\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_filter_drop_area}}</span>\n }\n @for (filter of this.filterAreaDimensions; track filter; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(filterArea)'></span>\n <igx-chip [id]=\"filter.memberName\" [draggable]=\"true\" [data]=\"{ pivotArea: 'filter' }\"\n [removable]=\"true\" (remove)=\"filterRemoved($event)\" (dragOver)=\"onDimDragOver($event, 2)\"\n (dragLeave)=\"onDimDragLeave($event)\" (dragDrop)=\"onDimDrop($event, filterArea, 2)\"\n (moveStart)='onDimDragStart($event, filterArea)' (moveEnd)='onDimDragEnd()'>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, filter)'>\n </igx-icon>\n {{filter.displayName || filter.memberName}}\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(filterArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, filterArea, 2)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_filter_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n @if (isFiltersButton && grid.filterDimensions.length !== 0) {\n <div class=\"igx-grid__pivot-filter-toggle\">\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n #filterIcon\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFiltersAreaDropdownClick($event)'>\n </igx-icon>\n <igx-badge value=\"{{this.filterDropdownDimensions.size}}\"></igx-badge>\n </div>\n }\n </div>\n }\n <div class='igx-grid__tr-pivot--drop-row-area'>\n @if (grid.pivotUI.showConfiguration && grid.pivotUI.showRowHeaders) {\n <div #pivotRowContainer [style.width.px]=\"grid.pivotRowWidths - 1\"\n class=\"igx-grid__tr-pivot igx-grid__tr-pivot--small-row-area\" igxDrop\n (igxDragLeave)=\"onAreaDragLeave($event, rowArea)\"\n (dropped)=\"onDimDrop($event, rowArea, 0)\">\n <igx-chips-area #rowArea droppable='true'>\n @if (grid.rowDimensions.length === 0) {\n <span id='empty' igxDrop (dropped)=\"onDimDrop($event, rowArea, 0)\"\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_row_drop_area}}</span>\n }\n @for (row of grid.rowDimensions; track row.memberName; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n <igx-chip [draggable]=\"true\" [id]=\"row.memberName\" [data]=\"{ pivotArea: 'row' }\"\n [removable]=\"true\" (remove)=\"rowRemoved($event)\" (dragLeave)=\"onDimDragLeave($event)\"\n (dragDrop)=\"onDimDrop($event, rowArea, 0)\" (dragOver)=\"onDimDragOver($event, 0)\"\n (moveStart)='onDimDragStart($event, rowArea)' (moveEnd)='onDimDragEnd()'\n (click)=\"onChipSort($event, row)\">\n <igx-icon igxPrefix family=\"default\" name=\"table_rows\"></igx-icon>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, row)'>\n </igx-icon>\n {{ row.displayName || row.memberName}}\n @if (row.sortDirection) {\n <igx-icon\n family=\"default\"\n [name]=\"row.sortDirection < 2 ? 'sort_asc' : 'sort_desc'\"\n igxSuffix>\n </igx-icon>\n }\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, rowArea, 0)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_row_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n </div>\n }\n </div>\n </div>\n\n <div class=\"igx-grid__tr-pivot-group\">\n @if (grid.pivotUI.showConfiguration) {\n <div #pivotColumnContainer class=\"igx-grid__tr-pivot\"\n (dropped)=\"onDimDrop($event, colArea, 1)\" igxDrop (igxDragLeave)=\"onAreaDragLeave($event, colArea)\">\n <!-- Columns area -->\n <igx-chips-area #colArea droppable='true'>\n @if (grid.columnDimensions.length === 0) {\n <span id='empty' (dropped)=\"onDimDrop($event, colArea, 1)\" igxDrop\n class='igx-grid__pivot-empty-chip-area'>\n {{grid.resourceStrings.igx_grid_pivot_empty_column_drop_area}}</span>\n }\n @for (col of grid.columnDimensions; track col.memberName; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(colArea)'></span>\n <igx-chip [draggable]=\"true\" [id]=\"col.memberName\" [data]=\"{ pivotArea: 'column' }\"\n [removable]=\"true\" (remove)=\"columnRemoved($event)\" (dragOver)=\"onDimDragOver($event, 1)\"\n (dragLeave)=\"onDimDragLeave($event)\" (dragDrop)=\"onDimDrop($event, colArea, 1)\"\n (moveStart)='onDimDragStart($event, colArea)' (moveEnd)='onDimDragEnd()'\n (click)=\"onChipSort($event, col)\">\n <igx-icon\n family=\"default\"\n name=\"view_column\"\n igxPrefix>\n </igx-icon>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, col)'>\n </igx-icon>\n {{col.displayName || col.memberName}}\n @if (col.sortDirection) {\n <igx-icon\n family=\"default\"\n [name]=\"col.sortDirection < 2 ? 'sort_asc' : 'sort_desc'\"\n igxSuffix>\n </igx-icon>\n }\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(colArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, colArea, 1)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_column_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n </div>\n }\n\n @if (grid.pivotUI.showConfiguration) {\n <div #pivotValueContainer class=\"igx-grid__tr-pivot\"\n (pointerdown)=\"$event.preventDefault()\" (dropped)=\"onValueDrop($event, valueArea)\" igxDrop\n (igxDragLeave)=\"onAreaDragLeave($event, valueArea)\">\n <!-- Value area -->\n <igx-chips-area #valueArea droppable='true'>\n @if (grid.values.length === 0) {\n <span id='empty' (dropped)=\"onValueDrop($event, valueArea)\" igxDrop\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_value_drop_area}}</span>\n }\n @for (value of grid.values; track value.member; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(valueArea)'></span>\n <igx-chip #currChip [draggable]=\"true\" [id]=\"value.displayName || value.member\" [data]=\"{ pivotArea: 'value' }\"\n [removable]=\"true\" (remove)=\"valueRemoved($event)\"\n (dragLeave)=\"onDimDragLeave($event)\" (dragOver)=\"onDimDragOver($event)\"\n (dragDrop)=\"onValueDrop($event, valueArea)\">\n <div class=\"igx-grid__tr-pivot-toggle-icons\" igxPrefix\n (click)='onSummaryClick($event, value, dropdown, currChip)'\n (pointerdown)='$event.stopPropagation()' [igxDropDownItemNavigation]=\"dropdown\">\n <igx-icon family=\"default\" name=\"functions\"></igx-icon>\n <igx-icon family=\"default\" name=\"arrow_drop_down\"></igx-icon>\n </div>\n <ng-container *ngTemplateOutlet=\"grid.valueChipTemplate ? grid.valueChipTemplate : valueChipDefaultTemplate; context: { $implicit: value }\"></ng-container>\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(valueArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onValueDrop($event, valueArea)\" #notifyValueChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_value_drop_chip}}\n </igx-chip>\n </igx-chips-area>\n </div>\n }\n </div>\n </div>\n </div>\n <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 @if (!grid.pivotUI.showRowHeaders || grid.rowDimensions.length === 0) {\n <div #pivotContainer class=\"igx-grid__tr-pivot igx-grid__tr-pivot--row-area\"\n [style.width.px]=\"grid.pivotRowWidths - 1\" (igxDragLeave)=\"onAreaDragLeave($event, rowArea)\" igxDrop\n (dropped)=\"onDimDrop($event, rowArea, 0)\" (pointerdown)=\"$event.preventDefault()\">\n <!-- Row area -->\n <igx-chips-area #rowArea droppable='true'>\n @if (grid.pivotUI.showConfiguration || grid.rowDimensions.length === 0) {\n @if (grid.rowDimensions.length === 0) {\n <span id='empty' igxDrop (dropped)=\"onDimDrop($event, rowArea, 0)\"\n class='igx-grid__pivot-empty-chip-area'>{{grid.resourceStrings.igx_grid_pivot_empty_row_drop_area}}</span>\n }\n @for (row of grid.rowDimensions; track row.memberName; let last = $last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n <igx-chip [draggable]=\"true\" [id]=\"row.memberName\" [data]=\"{ pivotArea: 'row' }\"\n [removable]=\"true\" (remove)=\"rowRemoved($event)\" (dragLeave)=\"onDimDragLeave($event)\"\n (dragDrop)=\"onDimDrop($event, rowArea, 0)\" (dragOver)=\"onDimDragOver($event, 0)\"\n (moveStart)='onDimDragStart($event, rowArea)' (moveEnd)='onDimDragEnd()'\n (click)=\"onChipSort($event, row)\">\n <igx-icon igxPrefix family=\"default\" name=\"table_rows\"></igx-icon>\n <igx-icon\n family=\"default\"\n name=\"filter_list\"\n igxPrefix\n (pointerdown)='onFilteringIconPointerDown($event)'\n (click)='onFilteringIconClick($event, row)'>\n </igx-icon>\n {{ row.displayName || row.memberName}}\n @if (row.sortDirection) {\n <igx-icon\n family=\"default\"\n [name]=\"row.sortDirection < 2 ? 'sort_asc' : 'sort_desc'\"\n igxSuffix>\n </igx-icon>\n }\n </igx-chip>\n @if (last) {\n <span class=\"igx-grid__tr-pivot--chip_drop_indicator\"\n [style.height.px]='getAreaHeight(rowArea)'></span>\n }\n }\n <igx-chip igxDrop (dragDrop)=\"onDimDrop($event, rowArea, 0)\" #notifyChip [hidden]='true'>\n {{grid.resourceStrings.igx_grid_pivot_row_drop_chip}}\n </igx-chip>\n }\n </igx-chips-area>\n </div>\n }\n\n @if (grid.pivotUI.showRowHeaders && grid.rowDimensions.length > 0) {\n <div class=\"igx-grid__tr igx-grid__tr-header-row\" [style.width.px]=\"grid.pivotRowWidths - 1\">\n @for (dim of grid.visibleRowDimensions; track dim; let colIndex = $index; let isLast = $last) {\n @if (getRowDimensionColumn(dim); as dimCol) {\n <igx-pivot-row-header-group #rowDimensionHeaders\n [ngClass]=\"dimCol.headerGroupClasses\"\n [ngStyle]=\"dimCol.headerGroupStyles | igxHeaderGroupStyle:dimCol:grid.pipeTrigger\"\n [style.min-width]=\"grid.rowDimensionWidthToPixels(this.grid.visibleRowDimensions[colIndex])\"\n [style.flex-basis]=\"grid.rowDimensionWidthToPixels(this.grid.visibleRowDimensions[colIndex])\"\n [column]=\"dimCol\"\n [rootDimension]=\"grid.visibleRowDimensions[colIndex]\"\n [dimWidth]=\"grid.rowDimensionWidthToPixels(this.grid.visibleRowDimensions[colIndex])\"\n [rowIndex]=\"-1\" >\n </igx-pivot-row-header-group>\n }\n }\n </div>\n }\n\n <!-- Pinned columns collection from the start -->\n @if (pinnedStartColumnCollection.length) {\n @for (column of pinnedStartColumnCollection | igxTopLevel; track column) {\n <igx-grid-header-group [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\" [column]=\"column\"\n [style.min-width]=\"column.resolvedWidth\"\n [style.flex-basis]=\"column.resolvedWidth\"\n (pointerdown)=\"grid.navigation.focusOutRowHeader($event)\">\n </igx-grid-header-group>\n }\n }\n <div class=\"igx-grid-thead--virtualizationWrapper\" [style.max-height.px]=\"maxContainerHeight\" (click)=\"grid.navigation.focusOutRowHeader($event)\">\n @for (dimLevelColumns of columnDimensionsByLevel; track $index; let i = $index) {\n <div class=\"igx-grid-thead__group igx-grid-thead--virtualizationContainer\" [style.height.px]=\"totalDepth > 1 ? grid.rowHeight : undefined\" [style.width.px]=\"grid.unpinnedWidth\">\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"dimLevelColumns\" [igxGridForOfUniqueSizeCache]=\"true\" [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\" [igxForScrollOrientation]=\"'horizontal'\">\n <igx-grid-header-group [ngClass]=\"column.headerGroupClasses\"\n [style.height.px]=\"totalDepth > 1 ? calcHeight(column, i) : undefined\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\" [column]=\"column\"\n [style.min-width]=\"column.resolvedWidth\"\n [style.flex-basis]=\"column.resolvedWidth\"\n [class.igx-grid__tr-pivot--columnDimensionLeaf]=\"isDuplicateOfExistingParent(column, i)\"\n [class.igx-grid__tr-pivot--columnMultiRowSpan]=\"isMultiRow(column, i)\"\n >\n </igx-grid-header-group>\n </ng-template>\n </div>\n }\n </div>\n\n <!-- Pinned columns collection at the end -->\n @if (pinnedEndColumnCollection.length) {\n @for (column of pinnedEndColumnCollection | igxTopLevel; track column) {\n <igx-grid-header-group [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\" [column]=\"column\"\n [style.min-width]=\"column.resolvedWidth\"\n [style.flex-basis]=\"column.resolvedWidth\"\n (pointerdown)=\"grid.navigation.focusOutRowHeader($event)\">\n </igx-grid-header-group>\n }\n }\n </div>\n\n <!-- Render a hidden row of the leaf column headers for accessibility purposes -->\n <div role=\"row\" style=\"width: 0; height: 0; position: absolute; top: -10000px;\">\n @for (column of visibleLeafColumns; track column.index) {\n <div role=\"columnheader\" [attr.aria-hidden]=\"isLeafHeaderAriaHidden\">{{ column.header || column.field }}</div>\n }\n </div>\n </div>\n</div>\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\">\n</div>\n\n<igx-drop-down #dropdown (selectionChanging)='onAggregationChange($event)'>\n @for (item of aggregateList; track item.key) {\n <igx-drop-down-item [selected]='isSelected(item)' [value]='item'>\n {{ item.label }}\n </igx-drop-down-item>\n }\n</igx-drop-down>\n\n<div [hidden]='true'>\n <igx-grid-excel-style-filtering [maxHeight]='grid.excelStyleFilterMaxHeight' [minHeight]='grid.excelStyleFilterMinHeight' #esf>\n <div igxExcelStyleColumnOperations>\n <igx-chips-area #dropdownChips>\n @for (filter of this.filterDropdownDimensions; track filter) {\n <igx-chip [id]=\"filter.memberName\"\n [removable]=\"true\" (remove)=\"filterRemoved($event)\"\n (chipClick)='onFiltersSelectionChanged($event)' [selectable]='true' [selected]='filter === this.filterDropdownDimensions.values().next().value'>\n {{filter.displayName || filter.memberName}}\n </igx-chip>\n }\n </igx-chips-area>\n </div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n<div style=\"visibility: hidden; position: absolute; top: -10000px\">\n <igx-chips-area #filterAreaHidden droppable='true'>\n @for (filter of grid.filterDimensions; track filter) {\n <igx-chip\n [id]=\"filter.memberName\"\n [draggable]=\"true\"\n [removable]=\"true\"\n (remove)=\"filterRemoved($event)\">\n <igx-icon family=\"default\" name=\"filter_list\" igxPrefix></igx-icon>\n {{filter.displayName || filter.memberName}}\n </igx-chip>\n }\n </igx-chips-area>\n</div>\n\n<ng-template #valueChipDefaultTemplate let-value>\n {{value.aggregate.key}}({{value.displayName || value.member}})\n</ng-template>\n", dependencies: [{ kind: "directive", type: IgxDropDirective, selector: "[igxDrop]", inputs: ["igxDrop", "dropChannel", "dropStrategy"], outputs: ["enter", "over", "leave", "dropped"], exportAs: ["drop"] }, { kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape", "outlined"] }, { kind: "directive", type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix],[igxEnd]" }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxGridHeaderGroupComponent, selector: "igx-grid-header-group", inputs: ["column"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy", "role"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }, { kind: "component", type: IgxGridExcelStyleFilteringComponent, selector: "igx-grid-excel-style-filtering", inputs: ["column", "minHeight", "maxHeight"], outputs: ["loadingStart", "loadingEnd", "initialized", "sortingChanged", "columnChange", "listDataLoaded", "filterCleared"] }, { kind: "directive", type: IgxExcelStyleColumnOperationsTemplateDirective, selector: "igx-excel-style-column-operations,[igxExcelStyleColumnOperations]" }, { kind: "directive", type: IgxExcelStyleFilterOperationsTemplateDirective, selector: "igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "component", type: IgxPivotRowHeaderGroupComponent, selector: "igx-pivot-row-header-group", inputs: ["rowIndex", "dimWidth", "rootDimension"] }, { kind: "pipe", type: IgxHeaderGroupStylePipe, name: "igxHeaderGroupStyle" }, { kind: "pipe", type: IgxGridTopLevelColumns, name: "igxTopLevel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
77939
78031
|
}
|
|
77940
78032
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxPivotHeaderRowComponent, decorators: [{
|
|
77941
78033
|
type: Component,
|
|
@@ -80584,6 +80676,7 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
80584
80676
|
options.outlet = this.outlet;
|
|
80585
80677
|
if (dropdown) {
|
|
80586
80678
|
dropdown.initialize(column, this.overlayService);
|
|
80679
|
+
dropdown.populateData();
|
|
80587
80680
|
if (shouldReatach) {
|
|
80588
80681
|
const id = this.overlayService.attach(dropdown.element, options);
|
|
80589
80682
|
dropdown.overlayComponentId = id;
|
|
@@ -81545,6 +81638,7 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
81545
81638
|
ref.instance.resizable = this.rowDimensionResizing;
|
|
81546
81639
|
ref.instance.sortable = dim.sortable === undefined ? true : dim.sortable;
|
|
81547
81640
|
ref.instance.width = this.rowDimensionWidth(dim);
|
|
81641
|
+
ref.instance.filteringIgnoreCase = false;
|
|
81548
81642
|
ref.changeDetectorRef.detectChanges();
|
|
81549
81643
|
columns.push(ref.instance);
|
|
81550
81644
|
});
|
|
@@ -81870,7 +81964,7 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
81870
81964
|
IgxPivotColumnResizingService,
|
|
81871
81965
|
IgxForOfSyncService,
|
|
81872
81966
|
IgxForOfScrollSyncService
|
|
81873
|
-
], queries: [{ propertyName: "valueChipTemplateDirective", first: true, predicate: IgxPivotValueChipTemplateDirective, descendants: true, read: IgxPivotValueChipTemplateDirective }, { propertyName: "rowDimensionHeaderDirective", first: true, predicate: IgxPivotRowDimensionHeaderTemplateDirective, descendants: true, read: IgxPivotRowDimensionHeaderTemplateDirective }], viewQueries: [{ propertyName: "theadRow", first: true, predicate: IgxPivotHeaderRowComponent, descendants: true, static: true }, { propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowDimensionMrlComponent", first: true, predicate: IgxPivotRowDimensionMrlRowComponent, descendants: true, read: IgxPivotRowDimensionMrlRowComponent }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "resizeLine", first: true, predicate: IgxPivotGridColumnResizerComponent, descendants: true }, { propertyName: "defaultEmptyPivotGridTemplate", first: true, predicate: ["emptyPivotGridTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowDimensionContainer", predicate: ["rowDimensionContainer"], descendants: true, read: ElementRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, descendants: true, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "rowDimensionContentCollection", predicate: IgxPivotRowDimensionContentComponent, descendants: true }, { propertyName: "verticalRowDimScrollContainers", predicate: ["verticalRowDimScrollContainer"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "rowDimensionMrlRowsCollection", predicate: IgxPivotRowDimensionMrlRowComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar,igc-grid-toolbar\"></ng-content>\n\n<!-- Grid table head row area -->\n<igx-pivot-header-row class=\"igx-grid-thead igx-grid-thead--pivot\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [width]=\"calcWidth\"\n [pinnedStartColumnCollection]=\"pinnedStartColumns\"\n [pinnedEndColumnCollection]=\"pinnedEndColumns\"\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>\n</igx-pivot-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"rowDimensions.length ? (hasHorizontalLayout ? horizontalRowDimensionsTemplate : defaultRowDimensionsTemplate) : emptyRowDimensionsTemplate; context: this\"></ng-container>\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.aria-activedescendant]=\"activeDescendant\" [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]=\"pivotContentCalcWidth || null\" [style.width]=\"!platform.isBrowser ? '100%' : undefined\" #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n @if (hasMovableColumns && columnInDrag && pinnedColumns.length <= 0) {\n <span [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n }\n @if (hasMovableColumns && columnInDrag && pinnedColumns.length > 0) {\n <span [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedStartWidth\"></span>\n }\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"renderData\n | pivotGridFilter:pivotConfiguration:filterStrategy:advancedFilteringExpressionsTree:filteringPipeTrigger:pipeTrigger\n | pivotGridSort:pivotConfiguration:sortStrategy:pipeTrigger\n | pivotGridRow:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridColumn:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridAutoTransform:pivotConfiguration:pipeTrigger\n | pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger\n | pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxGridForOfVariableSizes]=\"false\"\n #verticalScrollContainer (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template\n [igxTemplateOutlet]=\"recordTemplate\"\n [igxTemplateOutletContext]=\"getContext(rowData, rowIndex)\"\n (cachedViewLoaded)=\"cachedViewLoaded($event)\">\n </ng-template>\n </ng-template>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData>\n <igx-pivot-row [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:isRecordMerged(rowData):false:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-pivot-row>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: this }\"></ng-container>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n @if (shouldOverlayLoading) {\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n }\n </div>\n @if (hasMovableColumns && columnInDrag) {\n <span [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n }\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<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]=\"pivotPinnedStartWidth\" [style.min-width.px]=\"pivotPinnedStartWidth\"></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]=\"pivotUnpinnedWidth\">\n <ng-template igxGridFor [igxGridForOf]=\"EMPTY_DATA\" #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]=\"pivotPinnedEndWidth\" [style.min-width.px]=\"pivotPinnedEndWidth\" [hidden]=\"pivotPinnedEndWidth === 0\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" #tfoot>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer,igc-grid-footer\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</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>\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@if (colResizingService.showResizer) {\n <igx-pivot-grid-column-resizer [restrictResizerTop]=\"calculateResizerTop()\"></igx-pivot-grid-column-resizer>\n}\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n\n<ng-template #headerTemplate let-column>\n <div class=\"igx-grid__tr--header\">\n <igx-icon\n family=\"default\"\n [name]=\"getColumnGroupExpandState(column) ? 'tree_expand' : 'tree_collapse'\"\n [attr.draggable]=\"false\"\n (click)=\"toggleColumn(column)\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #defaultRowDimensionsTemplate>\n @for (dim of rowDimensions; track dim.memberName; let dimIndex = $index) {\n <div tabindex=\"0\" [style.height.px]=\"totalHeight\" #rowDimensionContainer class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n [attr.aria-activedescendant]=\"headerRowActiveDescendant\">\n <ng-template igxGridFor let-rowData\n [igxGridForOf]=\"dataView | pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n #verticalRowDimScrollContainer\n >\n <igx-pivot-row-dimension-content\n class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"rowData.dimensions[dimIndex]\"\n [rootDimension]=\"dim\"\n [style.height.px]=\"renderedRowHeight * (rowData.rowSpan || 1)\"\n [rowIndex]=\"rowIndex\" [rowData]=\"rowData\"\n [width]=\"rowDimensionWidthToPixels(dim)\">\n </igx-pivot-row-dimension-content>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"emptyRowDimensionFill; context: { $implicit: this, widthPx: rowDimensionWidthToPixels(dim) }\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #horizontalRowDimensionsTemplate>\n <div tabindex=\"0\" class=\"igx-grid__tbody-pivot-mrl-dimension\" #rowDimensionContainer [style.height.px]=\"totalHeight\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n [attr.aria-activedescendant]=\"headerRowActiveDescendant\">\n @if (dataView | pivotGridHorizontalRowGrouping:pivotConfiguration:pipeTrigger:regroupTrigger; as groupedData) {\n <ng-template #verticalRowDimScrollContainer role=\"rowgroup\" igxGridFor let-rowGroup let-rowIndex=\"index\"\n [igxGridForOf]=\"groupedData\"\n [igxForScrollOrientation]=\"'vertical'\"\n [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n >\n <igx-pivot-row-dimension-mrl-row [rowIndex]=\"rowIndex\" [rowGroup]=\"rowGroup\" [groupedData]=\"groupedData\" [style.height.px]=\"renderedRowHeight * rowGroup.length\"></igx-pivot-row-dimension-mrl-row>\n </ng-template>\n }\n <ng-container *ngTemplateOutlet=\"emptyRowDimensionFill; context: { $implicit: this, widthPx: pivotRowWidths }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyRowDimensionsTemplate>\n <div tabindex=\"0\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n [attr.aria-activedescendant]=\"headerRowActiveDescendant\">\n @if ((columnDimensions.length > 0 || values.length > 0) && data.length > 0) {\n <igx-pivot-row-dimension-content class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"emptyRowDimension\"\n [rootDimension]=\"emptyRowDimension\"\n [rowIndex]=\"0\" [rowData]=\"dataView[0]\"\n [width]=\"rowDimensionWidthToPixels(emptyRowDimension)\">\n </igx-pivot-row-dimension-content>\n }\n <ng-container *ngTemplateOutlet=\"emptyRowDimensionFill; context: { $implicit: this, widthPx: rowDimensionWidthToPixels(emptyRowDimension) }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyPivotGridTemplate>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{resourceStrings.igx_grid_pivot_empty_message}}</span>\n </span>\n</ng-template>\n\n<ng-template #emptyRowDimensionFill let-width=\"widthPx\">\n @if (emptyBottomSize > 0) {\n <div class=\"igx-pivot-grid-row-filler__wrapper\" [style.height.px]=\"emptyBottomSize\" [style.width.px]=\"width\">\n <!-- Reuse header styles to keep visuals consistent -->\n <div class=\"igx-grid-thead__wrapper\">\n <div class=\"igx-grid-th\"></div>\n </div>\n </div>\n }\n</ng-template>\n\n<div [hidden]=\"true\">\n <igx-grid-excel-style-filtering [maxHeight]=\"excelStyleFilterMaxHeight\" [minHeight]=\"excelStyleFilterMinHeight\">\n <div igxExcelStyleColumnOperations [hidden]=\"true\"></div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n@if (platform.isElements) {\n <div #sink style=\"display: none;\"></div>\n <ng-content select=\"igx-grid-state,igc-grid-state\"></ng-content>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxPivotHeaderRowComponent, selector: "igx-pivot-header-row" }, { kind: "directive", type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { kind: "directive", type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { kind: "component", type: IgxPivotRowComponent, selector: "igx-pivot-row", inputs: ["selected", "data"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "textVisibility", "type"] }, { kind: "component", type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "component", type: IgxPivotGridColumnResizerComponent, selector: "igx-pivot-grid-column-resizer" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxPivotRowDimensionContentComponent, selector: "igx-pivot-row-dimension-content", inputs: ["rowIndex", "colIndex", "layout", "dimension", "rootDimension", "rowData"] }, { kind: "component", type: IgxGridExcelStyleFilteringComponent, selector: "igx-grid-excel-style-filtering", inputs: ["column", "minHeight", "maxHeight"], outputs: ["loadingStart", "loadingEnd", "initialized", "sortingChanged", "columnChange", "listDataLoaded"] }, { kind: "directive", type: IgxExcelStyleColumnOperationsTemplateDirective, selector: "igx-excel-style-column-operations,[igxExcelStyleColumnOperations]" }, { kind: "directive", type: IgxExcelStyleFilterOperationsTemplateDirective, selector: "igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "component", type: IgxPivotRowDimensionMrlRowComponent, selector: "igx-pivot-row-dimension-mrl-row", inputs: ["rowIndex", "rowGroup", "groupedData"] }, { kind: "pipe", type: IgxGridRowClassesPipe, name: "igxGridRowClasses" }, { kind: "pipe", type: IgxGridRowStylesPipe, name: "igxGridRowStyles" }, { kind: "pipe", type: IgxPivotRowPipe, name: "pivotGridRow" }, { kind: "pipe", type: IgxPivotRowExpansionPipe, name: "pivotGridRowExpansion" }, { kind: "pipe", type: IgxPivotAutoTransform, name: "pivotGridAutoTransform" }, { kind: "pipe", type: IgxPivotColumnPipe, name: "pivotGridColumn" }, { kind: "pipe", type: IgxPivotGridFilterPipe, name: "pivotGridFilter" }, { kind: "pipe", type: IgxPivotGridSortingPipe, name: "pivotGridSort" }, { kind: "pipe", type: IgxPivotGridColumnSortingPipe, name: "pivotGridColumnSort" }, { kind: "pipe", type: IgxPivotCellMergingPipe, name: "pivotGridCellMerging" }, { kind: "pipe", type: IgxPivotGridHorizontalRowGrouping, name: "pivotGridHorizontalRowGrouping" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
81967
|
+
], queries: [{ propertyName: "valueChipTemplateDirective", first: true, predicate: IgxPivotValueChipTemplateDirective, descendants: true, read: IgxPivotValueChipTemplateDirective }, { propertyName: "rowDimensionHeaderDirective", first: true, predicate: IgxPivotRowDimensionHeaderTemplateDirective, descendants: true, read: IgxPivotRowDimensionHeaderTemplateDirective }], viewQueries: [{ propertyName: "theadRow", first: true, predicate: IgxPivotHeaderRowComponent, descendants: true, static: true }, { propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowDimensionMrlComponent", first: true, predicate: IgxPivotRowDimensionMrlRowComponent, descendants: true, read: IgxPivotRowDimensionMrlRowComponent }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "resizeLine", first: true, predicate: IgxPivotGridColumnResizerComponent, descendants: true }, { propertyName: "defaultEmptyPivotGridTemplate", first: true, predicate: ["emptyPivotGridTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowDimensionContainer", predicate: ["rowDimensionContainer"], descendants: true, read: ElementRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, descendants: true, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "rowDimensionContentCollection", predicate: IgxPivotRowDimensionContentComponent, descendants: true }, { propertyName: "verticalRowDimScrollContainers", predicate: ["verticalRowDimScrollContainer"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "rowDimensionMrlRowsCollection", predicate: IgxPivotRowDimensionMrlRowComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar,igc-grid-toolbar\"></ng-content>\n\n<!-- Grid table head row area -->\n<igx-pivot-header-row class=\"igx-grid-thead igx-grid-thead--pivot\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [width]=\"calcWidth\"\n [pinnedStartColumnCollection]=\"pinnedStartColumns\"\n [pinnedEndColumnCollection]=\"pinnedEndColumns\"\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>\n</igx-pivot-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"rowDimensions.length ? (hasHorizontalLayout ? horizontalRowDimensionsTemplate : defaultRowDimensionsTemplate) : emptyRowDimensionsTemplate; context: this\"></ng-container>\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.aria-activedescendant]=\"activeDescendant\" [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]=\"pivotContentCalcWidth || null\" [style.width]=\"!platform.isBrowser ? '100%' : undefined\" #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n @if (hasMovableColumns && columnInDrag && pinnedColumns.length <= 0) {\n <span [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n }\n @if (hasMovableColumns && columnInDrag && pinnedColumns.length > 0) {\n <span [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedStartWidth\"></span>\n }\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"renderData\n | pivotGridFilter:pivotConfiguration:filterStrategy:advancedFilteringExpressionsTree:filteringPipeTrigger:pipeTrigger\n | pivotGridSort:pivotConfiguration:sortStrategy:pipeTrigger\n | pivotGridRow:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridColumn:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridAutoTransform:pivotConfiguration:pipeTrigger\n | pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger\n | pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxGridForOfVariableSizes]=\"false\"\n #verticalScrollContainer (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template\n [igxTemplateOutlet]=\"recordTemplate\"\n [igxTemplateOutletContext]=\"getContext(rowData, rowIndex)\"\n (cachedViewLoaded)=\"cachedViewLoaded($event)\">\n </ng-template>\n </ng-template>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData>\n <igx-pivot-row [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:isRecordMerged(rowData):false:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-pivot-row>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: this }\"></ng-container>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n @if (shouldOverlayLoading) {\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n }\n </div>\n @if (hasMovableColumns && columnInDrag) {\n <span [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n }\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<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]=\"pivotPinnedStartWidth\" [style.min-width.px]=\"pivotPinnedStartWidth\"></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]=\"pivotUnpinnedWidth\">\n <ng-template igxGridFor [igxGridForOf]=\"EMPTY_DATA\" #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]=\"pivotPinnedEndWidth\" [style.min-width.px]=\"pivotPinnedEndWidth\" [hidden]=\"pivotPinnedEndWidth === 0\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" #tfoot>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer,igc-grid-footer\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</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>\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@if (colResizingService.showResizer) {\n <igx-pivot-grid-column-resizer [restrictResizerTop]=\"calculateResizerTop()\"></igx-pivot-grid-column-resizer>\n}\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n\n<ng-template #headerTemplate let-column>\n <div class=\"igx-grid__tr--header\">\n <igx-icon\n family=\"default\"\n [name]=\"getColumnGroupExpandState(column) ? 'tree_expand' : 'tree_collapse'\"\n [attr.draggable]=\"false\"\n (click)=\"toggleColumn(column)\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #defaultRowDimensionsTemplate>\n @for (dim of rowDimensions; track dim.memberName; let dimIndex = $index) {\n <div tabindex=\"0\" [style.height.px]=\"totalHeight\" #rowDimensionContainer class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n [attr.aria-activedescendant]=\"headerRowActiveDescendant\">\n <ng-template igxGridFor let-rowData\n [igxGridForOf]=\"dataView | pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n #verticalRowDimScrollContainer\n >\n <igx-pivot-row-dimension-content\n class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"rowData.dimensions[dimIndex]\"\n [rootDimension]=\"dim\"\n [style.height.px]=\"renderedRowHeight * (rowData.rowSpan || 1)\"\n [rowIndex]=\"rowIndex\" [rowData]=\"rowData\"\n [width]=\"rowDimensionWidthToPixels(dim)\">\n </igx-pivot-row-dimension-content>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"emptyRowDimensionFill; context: { $implicit: this, widthPx: rowDimensionWidthToPixels(dim) }\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #horizontalRowDimensionsTemplate>\n <div tabindex=\"0\" class=\"igx-grid__tbody-pivot-mrl-dimension\" #rowDimensionContainer [style.height.px]=\"totalHeight\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n [attr.aria-activedescendant]=\"headerRowActiveDescendant\">\n @if (dataView | pivotGridHorizontalRowGrouping:pivotConfiguration:pipeTrigger:regroupTrigger; as groupedData) {\n <ng-template #verticalRowDimScrollContainer role=\"rowgroup\" igxGridFor let-rowGroup let-rowIndex=\"index\"\n [igxGridForOf]=\"groupedData\"\n [igxForScrollOrientation]=\"'vertical'\"\n [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n >\n <igx-pivot-row-dimension-mrl-row [rowIndex]=\"rowIndex\" [rowGroup]=\"rowGroup\" [groupedData]=\"groupedData\" [style.height.px]=\"renderedRowHeight * rowGroup.length\"></igx-pivot-row-dimension-mrl-row>\n </ng-template>\n }\n <ng-container *ngTemplateOutlet=\"emptyRowDimensionFill; context: { $implicit: this, widthPx: pivotRowWidths }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyRowDimensionsTemplate>\n <div tabindex=\"0\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n [attr.aria-activedescendant]=\"headerRowActiveDescendant\">\n @if ((columnDimensions.length > 0 || values.length > 0) && data.length > 0) {\n <igx-pivot-row-dimension-content class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"emptyRowDimension\"\n [rootDimension]=\"emptyRowDimension\"\n [rowIndex]=\"0\" [rowData]=\"dataView[0]\"\n [width]=\"rowDimensionWidthToPixels(emptyRowDimension)\">\n </igx-pivot-row-dimension-content>\n }\n <ng-container *ngTemplateOutlet=\"emptyRowDimensionFill; context: { $implicit: this, widthPx: rowDimensionWidthToPixels(emptyRowDimension) }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyPivotGridTemplate>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{resourceStrings.igx_grid_pivot_empty_message}}</span>\n </span>\n</ng-template>\n\n<ng-template #emptyRowDimensionFill let-width=\"widthPx\">\n @if (emptyBottomSize > 0) {\n <div class=\"igx-pivot-grid-row-filler__wrapper\" [style.height.px]=\"emptyBottomSize\" [style.width.px]=\"width\">\n <!-- Reuse header styles to keep visuals consistent -->\n <div class=\"igx-grid-thead__wrapper\">\n <div class=\"igx-grid-th\"></div>\n </div>\n </div>\n }\n</ng-template>\n\n<div [hidden]=\"true\">\n <igx-grid-excel-style-filtering [maxHeight]=\"excelStyleFilterMaxHeight\" [minHeight]=\"excelStyleFilterMinHeight\">\n <div igxExcelStyleColumnOperations [hidden]=\"true\"></div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n@if (platform.isElements) {\n <div #sink style=\"display: none;\"></div>\n <ng-content select=\"igx-grid-state,igc-grid-state\"></ng-content>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxPivotHeaderRowComponent, selector: "igx-pivot-header-row" }, { kind: "directive", type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { kind: "directive", type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { kind: "component", type: IgxPivotRowComponent, selector: "igx-pivot-row", inputs: ["selected", "data"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "textVisibility", "type"] }, { kind: "component", type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "component", type: IgxPivotGridColumnResizerComponent, selector: "igx-pivot-grid-column-resizer" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxPivotRowDimensionContentComponent, selector: "igx-pivot-row-dimension-content", inputs: ["rowIndex", "colIndex", "layout", "dimension", "rootDimension", "rowData"] }, { kind: "component", type: IgxGridExcelStyleFilteringComponent, selector: "igx-grid-excel-style-filtering", inputs: ["column", "minHeight", "maxHeight"], outputs: ["loadingStart", "loadingEnd", "initialized", "sortingChanged", "columnChange", "listDataLoaded", "filterCleared"] }, { kind: "directive", type: IgxExcelStyleColumnOperationsTemplateDirective, selector: "igx-excel-style-column-operations,[igxExcelStyleColumnOperations]" }, { kind: "directive", type: IgxExcelStyleFilterOperationsTemplateDirective, selector: "igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "component", type: IgxPivotRowDimensionMrlRowComponent, selector: "igx-pivot-row-dimension-mrl-row", inputs: ["rowIndex", "rowGroup", "groupedData"] }, { kind: "pipe", type: IgxGridRowClassesPipe, name: "igxGridRowClasses" }, { kind: "pipe", type: IgxGridRowStylesPipe, name: "igxGridRowStyles" }, { kind: "pipe", type: IgxPivotRowPipe, name: "pivotGridRow" }, { kind: "pipe", type: IgxPivotRowExpansionPipe, name: "pivotGridRowExpansion" }, { kind: "pipe", type: IgxPivotAutoTransform, name: "pivotGridAutoTransform" }, { kind: "pipe", type: IgxPivotColumnPipe, name: "pivotGridColumn" }, { kind: "pipe", type: IgxPivotGridFilterPipe, name: "pivotGridFilter" }, { kind: "pipe", type: IgxPivotGridSortingPipe, name: "pivotGridSort" }, { kind: "pipe", type: IgxPivotGridColumnSortingPipe, name: "pivotGridColumnSort" }, { kind: "pipe", type: IgxPivotCellMergingPipe, name: "pivotGridCellMerging" }, { kind: "pipe", type: IgxPivotGridHorizontalRowGrouping, name: "pivotGridHorizontalRowGrouping" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
81874
81968
|
}
|
|
81875
81969
|
__decorate([
|
|
81876
81970
|
WatchChanges()
|
|
@@ -94674,12 +94768,10 @@ class IgxSplitterComponent {
|
|
|
94674
94768
|
onMoveEnd(delta) {
|
|
94675
94769
|
let [paneSize, siblingSize] = this.calcNewSizes(delta);
|
|
94676
94770
|
if (paneSize + siblingSize > this.getTotalSize() && delta < 0) {
|
|
94677
|
-
|
|
94678
|
-
siblingSize = 0;
|
|
94771
|
+
siblingSize = this.getTotalSize() - paneSize;
|
|
94679
94772
|
}
|
|
94680
94773
|
else if (paneSize + siblingSize > this.getTotalSize() && delta > 0) {
|
|
94681
|
-
paneSize =
|
|
94682
|
-
siblingSize = this.getTotalSize();
|
|
94774
|
+
paneSize = this.getTotalSize() - siblingSize;
|
|
94683
94775
|
}
|
|
94684
94776
|
if (this.pane.isPercentageSize) {
|
|
94685
94777
|
// handle % resizes
|
|
@@ -99040,6 +99132,230 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
99040
99132
|
}]
|
|
99041
99133
|
}] });
|
|
99042
99134
|
|
|
99135
|
+
const DEFAULT_LANGUAGES = ['javascript', 'typescript', 'html', 'css'];
|
|
99136
|
+
const DEFAULT_THEMES = {
|
|
99137
|
+
light: 'github-light',
|
|
99138
|
+
dark: 'github-dark'
|
|
99139
|
+
};
|
|
99140
|
+
class IgxChatMarkdownService {
|
|
99141
|
+
_initializeMarked() {
|
|
99142
|
+
this._instance = new Marked({
|
|
99143
|
+
breaks: true,
|
|
99144
|
+
gfm: true,
|
|
99145
|
+
extensions: [
|
|
99146
|
+
{
|
|
99147
|
+
name: 'link',
|
|
99148
|
+
renderer({ href, title, text }) {
|
|
99149
|
+
return `<a href="${href}" target="_blank" rel="noopener noreferrer" ${title ? `title="${title}"` : ''}>${text}</a>`;
|
|
99150
|
+
}
|
|
99151
|
+
}
|
|
99152
|
+
]
|
|
99153
|
+
});
|
|
99154
|
+
}
|
|
99155
|
+
async _initializeShiki() {
|
|
99156
|
+
const highlighter = await createHighlighter({
|
|
99157
|
+
langs: DEFAULT_LANGUAGES,
|
|
99158
|
+
themes: Object.keys(bundledThemes)
|
|
99159
|
+
});
|
|
99160
|
+
this._instance.use(markedShiki({
|
|
99161
|
+
highlight(code, lang, _) {
|
|
99162
|
+
try {
|
|
99163
|
+
return highlighter.codeToHtml(code, {
|
|
99164
|
+
lang,
|
|
99165
|
+
themes: DEFAULT_THEMES,
|
|
99166
|
+
});
|
|
99167
|
+
}
|
|
99168
|
+
catch {
|
|
99169
|
+
return `<pre><code>${code}</code></pre>`;
|
|
99170
|
+
}
|
|
99171
|
+
}
|
|
99172
|
+
}));
|
|
99173
|
+
}
|
|
99174
|
+
constructor() {
|
|
99175
|
+
this._initializeMarked();
|
|
99176
|
+
this._isInitialized = this._initializeShiki();
|
|
99177
|
+
}
|
|
99178
|
+
async parse(text) {
|
|
99179
|
+
await this._isInitialized;
|
|
99180
|
+
return await this._instance.parse(text);
|
|
99181
|
+
}
|
|
99182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatMarkdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
99183
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatMarkdownService, providedIn: 'root' }); }
|
|
99184
|
+
}
|
|
99185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatMarkdownService, decorators: [{
|
|
99186
|
+
type: Injectable,
|
|
99187
|
+
args: [{ providedIn: 'root' }]
|
|
99188
|
+
}], ctorParameters: () => [] });
|
|
99189
|
+
|
|
99190
|
+
class MarkdownPipe {
|
|
99191
|
+
constructor() {
|
|
99192
|
+
this._service = inject(IgxChatMarkdownService);
|
|
99193
|
+
this._sanitizer = inject(DomSanitizer);
|
|
99194
|
+
}
|
|
99195
|
+
async transform(text) {
|
|
99196
|
+
return this._sanitizer.bypassSecurityTrustHtml(DOMPurify.sanitize(await this._service.parse(text ?? '')));
|
|
99197
|
+
}
|
|
99198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: MarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
99199
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: MarkdownPipe, isStandalone: true, name: "fromMarkdown" }); }
|
|
99200
|
+
}
|
|
99201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: MarkdownPipe, decorators: [{
|
|
99202
|
+
type: Pipe,
|
|
99203
|
+
args: [{ name: 'fromMarkdown' }]
|
|
99204
|
+
}] });
|
|
99205
|
+
|
|
99206
|
+
class IgxChatComponent {
|
|
99207
|
+
//#endregion
|
|
99208
|
+
/** @internal */
|
|
99209
|
+
ngOnInit() {
|
|
99210
|
+
IgcChatComponent.register();
|
|
99211
|
+
}
|
|
99212
|
+
/** @internal */
|
|
99213
|
+
ngOnDestroy() {
|
|
99214
|
+
for (const viewSet of this._templateViewRefs.values()) {
|
|
99215
|
+
viewSet.forEach(viewRef => viewRef.destroy());
|
|
99216
|
+
}
|
|
99217
|
+
this._templateViewRefs.clear();
|
|
99218
|
+
}
|
|
99219
|
+
constructor() {
|
|
99220
|
+
//#region Internal state
|
|
99221
|
+
this._view = inject(ViewContainerRef);
|
|
99222
|
+
this._templateViewRefs = new Map();
|
|
99223
|
+
this._oldTemplates = {};
|
|
99224
|
+
this._mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: "_mergedOptions" }] : []));
|
|
99225
|
+
this._transformedTemplates = signal({}, ...(ngDevMode ? [{ debugName: "_transformedTemplates" }] : []));
|
|
99226
|
+
//#endregion
|
|
99227
|
+
//#region Inputs
|
|
99228
|
+
this.messages = input([], ...(ngDevMode ? [{ debugName: "messages" }] : []));
|
|
99229
|
+
this.draftMessage = input({ text: '' }, ...(ngDevMode ? [{ debugName: "draftMessage" }] : []));
|
|
99230
|
+
this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
99231
|
+
this.templates = input({}, ...(ngDevMode ? [{ debugName: "templates" }] : []));
|
|
99232
|
+
//#endregion
|
|
99233
|
+
//#region Outputs
|
|
99234
|
+
this.messageCreated = output();
|
|
99235
|
+
this.attachmentClick = output();
|
|
99236
|
+
this.attachmentDrag = output();
|
|
99237
|
+
this.attachmentDrop = output();
|
|
99238
|
+
this.typingChange = output();
|
|
99239
|
+
this.inputFocus = output();
|
|
99240
|
+
this.inputBlur = output();
|
|
99241
|
+
this.inputChange = output();
|
|
99242
|
+
// Templates changed - update transformed templates and viewRefs and merge with options
|
|
99243
|
+
effect(() => {
|
|
99244
|
+
const templates = this.templates();
|
|
99245
|
+
this._setTemplates(templates ?? {});
|
|
99246
|
+
this._mergeOptions(untracked(() => this.options()));
|
|
99247
|
+
});
|
|
99248
|
+
// Options changed - merge with current template state
|
|
99249
|
+
effect(() => {
|
|
99250
|
+
const options = this.options();
|
|
99251
|
+
this._mergeOptions(options ?? {});
|
|
99252
|
+
});
|
|
99253
|
+
}
|
|
99254
|
+
_mergeOptions(options) {
|
|
99255
|
+
const transformedTemplates = this._transformedTemplates();
|
|
99256
|
+
const merged = {
|
|
99257
|
+
...options,
|
|
99258
|
+
renderers: transformedTemplates
|
|
99259
|
+
};
|
|
99260
|
+
this._mergedOptions.set(merged);
|
|
99261
|
+
}
|
|
99262
|
+
_setTemplates(newTemplates) {
|
|
99263
|
+
const templateCopies = {};
|
|
99264
|
+
const newTemplateKeys = Object.keys(newTemplates);
|
|
99265
|
+
const oldTemplates = this._oldTemplates;
|
|
99266
|
+
const oldTemplateKeys = Object.keys(oldTemplates);
|
|
99267
|
+
for (const key of oldTemplateKeys) {
|
|
99268
|
+
const oldRef = oldTemplates[key];
|
|
99269
|
+
const newRef = newTemplates[key];
|
|
99270
|
+
if (oldRef && oldRef !== newRef) {
|
|
99271
|
+
const obsolete = this._templateViewRefs.get(oldRef);
|
|
99272
|
+
if (obsolete) {
|
|
99273
|
+
obsolete.forEach(viewRef => viewRef.destroy());
|
|
99274
|
+
this._templateViewRefs.delete(oldRef);
|
|
99275
|
+
}
|
|
99276
|
+
}
|
|
99277
|
+
}
|
|
99278
|
+
if (newTemplateKeys.length > 0) {
|
|
99279
|
+
this._oldTemplates = {};
|
|
99280
|
+
for (const key of newTemplateKeys) {
|
|
99281
|
+
const ref = newTemplates[key];
|
|
99282
|
+
if (ref) {
|
|
99283
|
+
this._oldTemplates[key] = ref;
|
|
99284
|
+
templateCopies[key] = this._createTemplateRenderer(ref);
|
|
99285
|
+
}
|
|
99286
|
+
}
|
|
99287
|
+
}
|
|
99288
|
+
this._transformedTemplates.set(templateCopies);
|
|
99289
|
+
}
|
|
99290
|
+
_createTemplateRenderer(ref) {
|
|
99291
|
+
if (!this._templateViewRefs.has(ref)) {
|
|
99292
|
+
this._templateViewRefs.set(ref, new Set());
|
|
99293
|
+
}
|
|
99294
|
+
const viewSet = this._templateViewRefs.get(ref);
|
|
99295
|
+
return (ctx) => {
|
|
99296
|
+
const context = ctx;
|
|
99297
|
+
let angularContext;
|
|
99298
|
+
if ('message' in context && 'attachment' in context) {
|
|
99299
|
+
angularContext = { $implicit: context.attachment };
|
|
99300
|
+
}
|
|
99301
|
+
else if ('message' in context) {
|
|
99302
|
+
angularContext = { $implicit: context.message };
|
|
99303
|
+
}
|
|
99304
|
+
else if ('value' in context) {
|
|
99305
|
+
angularContext = {
|
|
99306
|
+
$implicit: { value: context.value, attachments: context.attachments },
|
|
99307
|
+
};
|
|
99308
|
+
}
|
|
99309
|
+
else {
|
|
99310
|
+
angularContext = { $implicit: { instance: context.instance } };
|
|
99311
|
+
}
|
|
99312
|
+
const viewRef = this._view.createEmbeddedView(ref, angularContext);
|
|
99313
|
+
viewSet.add(viewRef);
|
|
99314
|
+
return viewRef.rootNodes;
|
|
99315
|
+
};
|
|
99316
|
+
}
|
|
99317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99318
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.6", type: IgxChatComponent, isStandalone: true, selector: "igx-chat", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, draftMessage: { classPropertyName: "draftMessage", publicName: "draftMessage", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { messageCreated: "messageCreated", attachmentClick: "attachmentClick", attachmentDrag: "attachmentDrag", attachmentDrop: "attachmentDrop", typingChange: "typingChange", inputFocus: "inputFocus", inputBlur: "inputBlur", inputChange: "inputChange" }, ngImport: i0, template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n>\n <ng-content></ng-content>\n</igc-chat>\n", styles: ["igc-chat{--igc-chat-height: calc(100vh - 32px) }\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
99319
|
+
}
|
|
99320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatComponent, decorators: [{
|
|
99321
|
+
type: Component,
|
|
99322
|
+
args: [{ selector: 'igx-chat', changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n>\n <ng-content></ng-content>\n</igc-chat>\n", styles: ["igc-chat{--igc-chat-height: calc(100vh - 32px) }\n"] }]
|
|
99323
|
+
}], ctorParameters: () => [], propDecorators: { messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], draftMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "draftMessage", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], templates: [{ type: i0.Input, args: [{ isSignal: true, alias: "templates", required: false }] }], messageCreated: [{ type: i0.Output, args: ["messageCreated"] }], attachmentClick: [{ type: i0.Output, args: ["attachmentClick"] }], attachmentDrag: [{ type: i0.Output, args: ["attachmentDrag"] }], attachmentDrop: [{ type: i0.Output, args: ["attachmentDrop"] }], typingChange: [{ type: i0.Output, args: ["typingChange"] }], inputFocus: [{ type: i0.Output, args: ["inputFocus"] }], inputBlur: [{ type: i0.Output, args: ["inputBlur"] }], inputChange: [{ type: i0.Output, args: ["inputChange"] }] } });
|
|
99324
|
+
class IgxChatMessageContextDirective {
|
|
99325
|
+
static ngTemplateContextGuard(_, ctx) {
|
|
99326
|
+
return true;
|
|
99327
|
+
}
|
|
99328
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatMessageContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
99329
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: IgxChatMessageContextDirective, isStandalone: true, selector: "[igxChatMessageContext]", ngImport: i0 }); }
|
|
99330
|
+
}
|
|
99331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatMessageContextDirective, decorators: [{
|
|
99332
|
+
type: Directive,
|
|
99333
|
+
args: [{ selector: '[igxChatMessageContext]' }]
|
|
99334
|
+
}] });
|
|
99335
|
+
;
|
|
99336
|
+
class IgxChatAttachmentContextDirective {
|
|
99337
|
+
static ngTemplateContextGuard(_, ctx) {
|
|
99338
|
+
return true;
|
|
99339
|
+
}
|
|
99340
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatAttachmentContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
99341
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: IgxChatAttachmentContextDirective, isStandalone: true, selector: "[igxChatAttachmentContext]", ngImport: i0 }); }
|
|
99342
|
+
}
|
|
99343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatAttachmentContextDirective, decorators: [{
|
|
99344
|
+
type: Directive,
|
|
99345
|
+
args: [{ selector: '[igxChatAttachmentContext]' }]
|
|
99346
|
+
}] });
|
|
99347
|
+
class IgxChatInputContextDirective {
|
|
99348
|
+
static ngTemplateContextGuard(_, ctx) {
|
|
99349
|
+
return true;
|
|
99350
|
+
}
|
|
99351
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatInputContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
99352
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: IgxChatInputContextDirective, isStandalone: true, selector: "[igxChatInputContext]", ngImport: i0 }); }
|
|
99353
|
+
}
|
|
99354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatInputContextDirective, decorators: [{
|
|
99355
|
+
type: Directive,
|
|
99356
|
+
args: [{ selector: '[igxChatInputContext]' }]
|
|
99357
|
+
}] });
|
|
99358
|
+
|
|
99043
99359
|
/*
|
|
99044
99360
|
* Public API Surface of igniteui-angular
|
|
99045
99361
|
*/
|
|
@@ -99056,5 +99372,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
99056
99372
|
* Generated bundle index. Do not edit.
|
|
99057
99373
|
*/
|
|
99058
99374
|
|
|
99059
|
-
export { AbsolutePosition, AbsoluteScrollStrategy, ActionStripResourceStringsEN, AutoPositionStrategy, BannerResourceStringsEN, BaseFilteringStrategy, BlockScrollStrategy, ButtonGroupAlignment, ByLevelTreeGridMergeStrategy, CachedDataCloneStrategy, Calendar, CalendarResourceStringsEN, CalendarSelection, CarouselAnimationType, CarouselHammerConfig, CarouselIndicatorsOrientation, CarouselResourceStringsEN, ChipResourceStringsEN, CloseScrollStrategy, ColumnDisplayOrder, ColumnPinningPosition, ComboResourceStringsEN, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DEFAULT_OWNER, DEFAULT_PIVOT_KEYS, DataType, DataUtil, DatePart, DatePickerResourceStringsEN, DateRangePickerFormatPipe, DateRangePickerResourceStringsEN, DateRangeType, DefaultDataCloneStrategy, DefaultMergeStrategy, DefaultPivotGridRecordSortingStrategy, DefaultPivotSortingStrategy, DefaultSortingStrategy, DefaultTreeGridMergeStrategy, DimensionValuesFilteringStrategy, Direction, DragDirection, ElasticPositionStrategy, ExpansionPanelHeaderIconPosition, ExportHeaderType, ExportRecordType, ExpressionsTreeUtil, FilterMode, FilterUtil, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, FormattedValuesFilteringStrategy, FormattedValuesSortingStrategy, GRID_LEVEL_COL, GRID_PARENT, GRID_ROOT_SUMMARY, GlobalPositionStrategy, GridCellMergeMode, GridColumnDataType, GridPagingMode, GridResourceStringsEN, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupMemberCountSortingStrategy, GroupedRecords, HorizontalAlignment, HorizontalAnimationType, IGX_ACCORDION_DIRECTIVES, IGX_ACTION_STRIP_DIRECTIVES, IGX_BANNER_DIRECTIVES, IGX_BOTTOM_NAV_DIRECTIVES, IGX_BUTTON_GROUP_DIRECTIVES, IGX_CALENDAR_DIRECTIVES, IGX_CALENDAR_VIEW_ITEM, IGX_CARD_DIRECTIVES, IGX_CAROUSEL_DIRECTIVES, IGX_CHIPS_DIRECTIVES, IGX_CIRCULAR_PROGRESS_BAR_DIRECTIVES, IGX_COMBO_DIRECTIVES, IGX_DATE_PICKER_DIRECTIVES, IGX_DATE_RANGE_PICKER_DIRECTIVES, IGX_DIALOG_DIRECTIVES, IGX_DRAG_DROP_DIRECTIVES, IGX_DROP_DOWN_DIRECTIVES, IGX_EXPANSION_PANEL_DIRECTIVES, IGX_GRID_ACTION_STRIP_DIRECTIVES, IGX_GRID_BASE, IGX_GRID_COMMON_DIRECTIVES, IGX_GRID_DIRECTIVES, IGX_GRID_SERVICE_BASE, IGX_GRID_VALIDATION_DIRECTIVES, IGX_HIERARCHICAL_GRID_DIRECTIVES, IGX_INPUT_GROUP_DIRECTIVES, IGX_INPUT_GROUP_TYPE, IGX_LINEAR_PROGRESS_BAR_DIRECTIVES, IGX_LIST_DIRECTIVES, IGX_NAVBAR_DIRECTIVES, IGX_NAVIGATION_DRAWER_DIRECTIVES, IGX_PAGINATOR_DIRECTIVES, IGX_PIVOT_GRID_DIRECTIVES, IGX_PROGRESS_BAR_DIRECTIVES, IGX_QUERY_BUILDER_DIRECTIVES, IGX_RADIO_GROUP_DIRECTIVES, IGX_SELECT_DIRECTIVES, IGX_SIMPLE_COMBO_DIRECTIVES, IGX_SLIDER_DIRECTIVES, IGX_SPLITTER_DIRECTIVES, IGX_STEPPER_DIRECTIVES, IGX_TABS_DIRECTIVES, IGX_TIME_PICKER_DIRECTIVES, IGX_TOOLTIP_DIRECTIVES, IGX_TREE_DIRECTIVES, IGX_TREE_GRID_DIRECTIVES, ITreeGridAggregation, IgSizeDirective, IgcFormControlDirective, IgcFormsModule, 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, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarHeaderTitleTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollPageDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarView, IgxCalendarViewBaseDirective, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCarouselComponent, IgxCarouselIndicatorDirective, IgxCarouselModule, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCellValidationErrorDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxChildGridRowComponent, IgxChipComponent, IgxChipTypeVariant, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxCollapsibleIndicatorTemplateDirective, IgxColumPatternValidatorDirective, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnComponent, IgxColumnEmailValidatorDirective, IgxColumnGroupComponent, IgxColumnHidingDirective, IgxColumnLayoutComponent, IgxColumnMaxLengthValidatorDirective, IgxColumnMaxValidatorDirective, IgxColumnMinLengthValidatorDirective, IgxColumnMinValidatorDirective, IgxColumnPinningDirective, IgxColumnRequiredValidatorDirective, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboComponent, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, 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, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDragIndicatorIconDirective, IgxDragLocation, IgxDropDirective, IgxDropDownComponent, IgxDropDownGroupComponent, 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, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlatTransactionFactory, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxFocusTrapDirective, IgxFocusTrapModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridActionButtonComponent, IgxGridActionsBaseDirective, IgxGridCell, IgxGridComponent, IgxGridDetailTemplateDirective, IgxGridEditingActionsComponent, IgxGridEmptyTemplateDirective, IgxGridExcelStyleFilteringComponent, IgxGridFooterComponent, IgxGridForOfContext, IgxGridForOfDirective, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxGridLoadingTemplateDirective, IgxGridModule, IgxGridPinningActionsComponent, IgxGridRow, IgxGridStateDirective, IgxGridToolbarActionsComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxGridTransaction, IgxGroupAreaDropDirective, IgxGroupByRow, IgxGroupByRowSelectorDirective, IgxGroupByRowTemplateDirective, IgxGroupedTreeGridSorting, IgxGrouping, IgxHeadSelectorDirective, IgxHeaderCollapsedIndicatorDirective, IgxHeaderExpandedIndicatorDirective, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalGridRow, IgxHierarchicalTransactionFactory, IgxHierarchicalTransactionService, IgxHintDirective, IgxIconButtonDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupEnum, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxItemListDirective, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarActionDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavbarTitleDirective, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorContentDirective, IgxPaginatorDirective, IgxPaginatorModule, IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent, IgxPivotAggregate, IgxPivotDataSelectorComponent, IgxPivotDateAggregate, IgxPivotDateDimension, IgxPivotGridComponent, IgxPivotGridModule, IgxPivotGridRow, IgxPivotNumericAggregate, IgxPivotRowDimensionHeaderTemplateDirective, IgxPivotTimeAggregate, IgxPivotValueChipTemplateDirective, IgxPrefixDirective, IgxPrependDropStrategy, IgxProgressBarGradientDirective, IgxProgressBarModule, IgxProgressBarTextTemplateDirective, IgxProgressType, IgxQueryBuilderComponent, IgxQueryBuilderHeaderComponent, IgxQueryBuilderModule, IgxQueryBuilderSearchValueTemplateDirective, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxRippleDirective, IgxRippleModule, IgxRowAddTextDirective, IgxRowCollapsedIndicatorDirective, IgxRowDirective, IgxRowDragGhostDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTextDirective, IgxRowExpandedIndicatorDirective, IgxRowIslandComponent, IgxRowSelectorDirective, IgxScrollInertiaDirective, IgxScrollInertiaModule, IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent, IgxSelectModule, IgxSelectToggleIconDirective, IgxSimpleComboComponent, IgxSimpleComboModule, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSliderType, IgxSnackbarComponent, IgxSnackbarModule, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective, IgxSorting, IgxSplitBarComponent, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepComponent, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective, IgxStepType, IgxStepperComponent, IgxStepperModule, IgxStepperOrientation, IgxStepperTitlePosition, IgxStringFilteringOperand, IgxSuffixDirective, IgxSummaryOperand, IgxSummaryRow, IgxSummaryTemplateDirective, IgxSwitchComponent, IgxSwitchModule, IgxTabContentComponent, IgxTabHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabsAlignment, IgxTabsComponent, IgxTabsModule, IgxTemplateOutletDirective, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextHighlightService, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective, IgxTimeFilteringOperand, IgxTimeItemDirective, IgxTimePickerComponent, IgxTimePickerModule, IgxTimeSummaryOperand, IgxToastComponent, IgxToastModule, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeComponent, IgxTreeExpandIndicatorDirective, IgxTreeGridComponent, IgxTreeGridGroupByAreaComponent, IgxTreeGridGroupingPipe, IgxTreeGridModule, IgxTreeGridRow, IgxTreeModule, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, IgxTreeSelectionType, IgxYearsViewComponent, IndigoIcons, InputResourceStringsEN, LabelPosition, ListResourceStringsEN, NoOpScrollStrategy, NoopFilteringStrategy, NoopPivotDimensionsStrategy, NoopSortingStrategy, PaginatorResourceStringsEN, PagingError, PickerInteractionMode, PivotColumnDimensionsStrategy, PivotDimensionType, PivotRowDimensionsStrategy, PivotRowLayoutType, PivotSummaryPosition, Point, QueryBuilderResourceStringsEN, RadioGroupAlignment, RelativePosition, RelativePositionStrategy, RowPinningPosition, ScrollStrategy, Size, SliderHandle, SortingDirection, SplitterType, THEME_TOKEN, ThemeToken, TickLabelsOrientation, TicksOrientation, TimePickerResourceStringsEN, TooltipPositionStrategy, TransactionEventOrigin, TransactionType, TreeGridFilteringStrategy, TreeGridFormattedValuesFilteringStrategy, TreeGridMatchingRecordsOnlyFilteringStrategy, TreeResourceStringsEN, VerticalAlignment, VerticalAnimationType, WEEKDAYS, changei18n, comboIgnoreDiacriticsFilter, igxI18N, isLeap, monthRange, range, weekDay };
|
|
99375
|
+
export { AbsolutePosition, AbsoluteScrollStrategy, ActionStripResourceStringsEN, AutoPositionStrategy, BannerResourceStringsEN, BaseFilteringStrategy, BlockScrollStrategy, ButtonGroupAlignment, ByLevelTreeGridMergeStrategy, CachedDataCloneStrategy, Calendar, CalendarResourceStringsEN, CalendarSelection, CarouselAnimationType, CarouselHammerConfig, CarouselIndicatorsOrientation, CarouselResourceStringsEN, ChipResourceStringsEN, CloseScrollStrategy, ColumnDisplayOrder, ColumnPinningPosition, ComboResourceStringsEN, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DEFAULT_OWNER, DEFAULT_PIVOT_KEYS, DataType, DataUtil, DatePart, DatePickerResourceStringsEN, DateRangePickerFormatPipe, DateRangePickerResourceStringsEN, DateRangeType, DefaultDataCloneStrategy, DefaultMergeStrategy, DefaultPivotGridRecordSortingStrategy, DefaultPivotSortingStrategy, DefaultSortingStrategy, DefaultTreeGridMergeStrategy, DimensionValuesFilteringStrategy, Direction, DragDirection, ElasticPositionStrategy, ExpansionPanelHeaderIconPosition, ExportHeaderType, ExportRecordType, ExpressionsTreeUtil, FilterMode, FilterUtil, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, FormattedValuesFilteringStrategy, FormattedValuesSortingStrategy, GRID_LEVEL_COL, GRID_PARENT, GRID_ROOT_SUMMARY, GlobalPositionStrategy, GridCellMergeMode, GridColumnDataType, GridPagingMode, GridResourceStringsEN, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupMemberCountSortingStrategy, GroupedRecords, HorizontalAlignment, HorizontalAnimationType, IGX_ACCORDION_DIRECTIVES, IGX_ACTION_STRIP_DIRECTIVES, IGX_BANNER_DIRECTIVES, IGX_BOTTOM_NAV_DIRECTIVES, IGX_BUTTON_GROUP_DIRECTIVES, IGX_CALENDAR_DIRECTIVES, IGX_CALENDAR_VIEW_ITEM, IGX_CARD_DIRECTIVES, IGX_CAROUSEL_DIRECTIVES, IGX_CHIPS_DIRECTIVES, IGX_CIRCULAR_PROGRESS_BAR_DIRECTIVES, IGX_COMBO_DIRECTIVES, IGX_DATE_PICKER_DIRECTIVES, IGX_DATE_RANGE_PICKER_DIRECTIVES, IGX_DIALOG_DIRECTIVES, IGX_DRAG_DROP_DIRECTIVES, IGX_DROP_DOWN_DIRECTIVES, IGX_EXPANSION_PANEL_DIRECTIVES, IGX_GRID_ACTION_STRIP_DIRECTIVES, IGX_GRID_BASE, IGX_GRID_COMMON_DIRECTIVES, IGX_GRID_DIRECTIVES, IGX_GRID_SERVICE_BASE, IGX_GRID_VALIDATION_DIRECTIVES, IGX_HIERARCHICAL_GRID_DIRECTIVES, IGX_INPUT_GROUP_DIRECTIVES, IGX_INPUT_GROUP_TYPE, IGX_LINEAR_PROGRESS_BAR_DIRECTIVES, IGX_LIST_DIRECTIVES, IGX_NAVBAR_DIRECTIVES, IGX_NAVIGATION_DRAWER_DIRECTIVES, IGX_PAGINATOR_DIRECTIVES, IGX_PIVOT_GRID_DIRECTIVES, IGX_PROGRESS_BAR_DIRECTIVES, IGX_QUERY_BUILDER_DIRECTIVES, IGX_RADIO_GROUP_DIRECTIVES, IGX_SELECT_DIRECTIVES, IGX_SIMPLE_COMBO_DIRECTIVES, IGX_SLIDER_DIRECTIVES, IGX_SPLITTER_DIRECTIVES, IGX_STEPPER_DIRECTIVES, IGX_TABS_DIRECTIVES, IGX_TIME_PICKER_DIRECTIVES, IGX_TOOLTIP_DIRECTIVES, IGX_TREE_DIRECTIVES, IGX_TREE_GRID_DIRECTIVES, ITreeGridAggregation, IgSizeDirective, IgcFormControlDirective, IgcFormsModule, 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, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarHeaderTitleTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollPageDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarView, IgxCalendarViewBaseDirective, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCarouselComponent, IgxCarouselIndicatorDirective, IgxCarouselModule, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCellValidationErrorDirective, IgxChatAttachmentContextDirective, IgxChatComponent, IgxChatInputContextDirective, IgxChatMessageContextDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxChildGridRowComponent, IgxChipComponent, IgxChipTypeVariant, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxCollapsibleIndicatorTemplateDirective, IgxColumPatternValidatorDirective, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnComponent, IgxColumnEmailValidatorDirective, IgxColumnGroupComponent, IgxColumnHidingDirective, IgxColumnLayoutComponent, IgxColumnMaxLengthValidatorDirective, IgxColumnMaxValidatorDirective, IgxColumnMinLengthValidatorDirective, IgxColumnMinValidatorDirective, IgxColumnPinningDirective, IgxColumnRequiredValidatorDirective, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboComponent, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, 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, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDragIndicatorIconDirective, IgxDragLocation, IgxDropDirective, IgxDropDownComponent, IgxDropDownGroupComponent, 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, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlatTransactionFactory, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxFocusTrapDirective, IgxFocusTrapModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridActionButtonComponent, IgxGridActionsBaseDirective, IgxGridCell, IgxGridComponent, IgxGridDetailTemplateDirective, IgxGridEditingActionsComponent, IgxGridEmptyTemplateDirective, IgxGridExcelStyleFilteringComponent, IgxGridFooterComponent, IgxGridForOfContext, IgxGridForOfDirective, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxGridLoadingTemplateDirective, IgxGridModule, IgxGridPinningActionsComponent, IgxGridRow, IgxGridStateDirective, IgxGridToolbarActionsComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxGridTransaction, IgxGroupAreaDropDirective, IgxGroupByRow, IgxGroupByRowSelectorDirective, IgxGroupByRowTemplateDirective, IgxGroupedTreeGridSorting, IgxGrouping, IgxHeadSelectorDirective, IgxHeaderCollapsedIndicatorDirective, IgxHeaderExpandedIndicatorDirective, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalGridRow, IgxHierarchicalTransactionFactory, IgxHierarchicalTransactionService, IgxHintDirective, IgxIconButtonDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupEnum, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxItemListDirective, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarActionDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavbarTitleDirective, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorContentDirective, IgxPaginatorDirective, IgxPaginatorModule, IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent, IgxPivotAggregate, IgxPivotDataSelectorComponent, IgxPivotDateAggregate, IgxPivotDateDimension, IgxPivotGridComponent, IgxPivotGridModule, IgxPivotGridRow, IgxPivotNumericAggregate, IgxPivotRowDimensionHeaderTemplateDirective, IgxPivotTimeAggregate, IgxPivotValueChipTemplateDirective, IgxPrefixDirective, IgxPrependDropStrategy, IgxProgressBarGradientDirective, IgxProgressBarModule, IgxProgressBarTextTemplateDirective, IgxProgressType, IgxQueryBuilderComponent, IgxQueryBuilderHeaderComponent, IgxQueryBuilderModule, IgxQueryBuilderSearchValueTemplateDirective, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxRippleDirective, IgxRippleModule, IgxRowAddTextDirective, IgxRowCollapsedIndicatorDirective, IgxRowDirective, IgxRowDragGhostDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTextDirective, IgxRowExpandedIndicatorDirective, IgxRowIslandComponent, IgxRowSelectorDirective, IgxScrollInertiaDirective, IgxScrollInertiaModule, IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent, IgxSelectModule, IgxSelectToggleIconDirective, IgxSimpleComboComponent, IgxSimpleComboModule, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSliderType, IgxSnackbarComponent, IgxSnackbarModule, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective, IgxSorting, IgxSplitBarComponent, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepComponent, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective, IgxStepType, IgxStepperComponent, IgxStepperModule, IgxStepperOrientation, IgxStepperTitlePosition, IgxStringFilteringOperand, IgxSuffixDirective, IgxSummaryOperand, IgxSummaryRow, IgxSummaryTemplateDirective, IgxSwitchComponent, IgxSwitchModule, IgxTabContentComponent, IgxTabHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabsAlignment, IgxTabsComponent, IgxTabsModule, IgxTemplateOutletDirective, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextHighlightService, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective, IgxTimeFilteringOperand, IgxTimeItemDirective, IgxTimePickerComponent, IgxTimePickerModule, IgxTimeSummaryOperand, IgxToastComponent, IgxToastModule, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeComponent, IgxTreeExpandIndicatorDirective, IgxTreeGridComponent, IgxTreeGridGroupByAreaComponent, IgxTreeGridGroupingPipe, IgxTreeGridModule, IgxTreeGridRow, IgxTreeModule, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, IgxTreeSelectionType, IgxYearsViewComponent, IndigoIcons, InputResourceStringsEN, LabelPosition, ListResourceStringsEN, MarkdownPipe, NoOpScrollStrategy, NoopFilteringStrategy, NoopPivotDimensionsStrategy, NoopSortingStrategy, PaginatorResourceStringsEN, PagingError, PickerInteractionMode, PivotColumnDimensionsStrategy, PivotDimensionType, PivotRowDimensionsStrategy, PivotRowLayoutType, PivotSummaryPosition, Point, QueryBuilderResourceStringsEN, RadioGroupAlignment, RelativePosition, RelativePositionStrategy, RowPinningPosition, ScrollStrategy, Size, SliderHandle, SortingDirection, SplitterType, THEME_TOKEN, ThemeToken, TickLabelsOrientation, TicksOrientation, TimePickerResourceStringsEN, TooltipPositionStrategy, TransactionEventOrigin, TransactionType, TreeGridFilteringStrategy, TreeGridFormattedValuesFilteringStrategy, TreeGridMatchingRecordsOnlyFilteringStrategy, TreeResourceStringsEN, VerticalAlignment, VerticalAnimationType, WEEKDAYS, changei18n, comboIgnoreDiacriticsFilter, igxI18N, isLeap, monthRange, range, weekDay };
|
|
99060
99376
|
//# sourceMappingURL=igniteui-angular.mjs.map
|