igniteui-angular 20.1.14 → 20.1.15
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 +120 -44
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/core/styles/components/navbar/_navbar-theme.scss +7 -1
- package/package.json +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
|
@@ -4101,7 +4101,8 @@ class IgxBaseExporter {
|
|
|
4101
4101
|
this._ownersMap.set(grid, columnList);
|
|
4102
4102
|
const childLayoutList = grid.childLayoutList;
|
|
4103
4103
|
for (const island of childLayoutList) {
|
|
4104
|
-
|
|
4104
|
+
const gridData = grid.data && grid.data.length > 0 ? grid.data[0] : {};
|
|
4105
|
+
this.mapHierarchicalGridColumns(island, gridData);
|
|
4105
4106
|
}
|
|
4106
4107
|
}
|
|
4107
4108
|
else if (grid.type === 'pivot') {
|
|
@@ -4904,27 +4905,33 @@ class IgxBaseExporter {
|
|
|
4904
4905
|
let columnList;
|
|
4905
4906
|
let keyData;
|
|
4906
4907
|
if (island.autoGenerate) {
|
|
4907
|
-
keyData = gridData[island.key];
|
|
4908
|
-
const islandKeys = island.children.map(i => i.key);
|
|
4909
|
-
|
|
4910
|
-
const
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4908
|
+
keyData = gridData && gridData[island.key] ? gridData[island.key] : undefined;
|
|
4909
|
+
const islandKeys = island.children && island.children.length > 0 ? island.children.map(i => i.key) : [];
|
|
4910
|
+
if (keyData && Array.isArray(keyData) && keyData.length > 0) {
|
|
4911
|
+
const islandData = keyData.map(i => {
|
|
4912
|
+
const newItem = {};
|
|
4913
|
+
Object.keys(i).map(k => {
|
|
4914
|
+
if (!islandKeys.includes(k)) {
|
|
4915
|
+
newItem[k] = i[k];
|
|
4916
|
+
}
|
|
4917
|
+
});
|
|
4918
|
+
return newItem;
|
|
4915
4919
|
});
|
|
4916
|
-
|
|
4917
|
-
}
|
|
4918
|
-
|
|
4920
|
+
columnList = this.getAutoGeneratedColumns(islandData);
|
|
4921
|
+
}
|
|
4922
|
+
else {
|
|
4923
|
+
// If no data available, create empty column list
|
|
4924
|
+
columnList = this.getAutoGeneratedColumns([{}]);
|
|
4925
|
+
}
|
|
4919
4926
|
}
|
|
4920
4927
|
else {
|
|
4921
4928
|
const islandColumnList = island.columns;
|
|
4922
4929
|
columnList = this.getColumns(islandColumnList);
|
|
4923
4930
|
}
|
|
4924
4931
|
this._ownersMap.set(island, columnList);
|
|
4925
|
-
if (island.children.length > 0) {
|
|
4932
|
+
if (island.children && island.children.length > 0) {
|
|
4926
4933
|
for (const childIsland of island.children) {
|
|
4927
|
-
const islandKeyData = keyData
|
|
4934
|
+
const islandKeyData = keyData && Array.isArray(keyData) && keyData.length > 0 ? keyData[0] : {};
|
|
4928
4935
|
this.mapHierarchicalGridColumns(childIsland, islandKeyData);
|
|
4929
4936
|
}
|
|
4930
4937
|
}
|
|
@@ -5141,19 +5148,27 @@ class CharSeparatedValueData {
|
|
|
5141
5148
|
this._dataRecords = this.processDataRecords(this._data, keys);
|
|
5142
5149
|
return this._headerRecord + this._dataRecords;
|
|
5143
5150
|
}
|
|
5144
|
-
prepareDataAsync(done) {
|
|
5151
|
+
prepareDataAsync(done, alwaysExportHeaders = true) {
|
|
5145
5152
|
const columns = this.columns?.filter(c => !c.skip)
|
|
5146
5153
|
.sort((a, b) => a.startIndex - b.startIndex)
|
|
5147
5154
|
.sort((a, b) => a.pinnedIndex - b.pinnedIndex);
|
|
5148
5155
|
const keys = columns && columns.length ? columns.map(c => c.field) : ExportUtilities.getKeysFromData(this._data);
|
|
5149
|
-
this.
|
|
5156
|
+
if (this._data && this._data.length > 0) {
|
|
5157
|
+
this._isSpecialData = ExportUtilities.isSpecialData(this._data[0]);
|
|
5158
|
+
}
|
|
5150
5159
|
this._escapeCharacters.push(this._delimiter);
|
|
5151
5160
|
const headers = columns && columns.length ?
|
|
5152
5161
|
columns.map(c => c.header ?? c.field) :
|
|
5153
5162
|
keys;
|
|
5154
5163
|
this._headerRecord = this.processHeaderRecord(headers, this._data.length);
|
|
5155
5164
|
if (keys.length === 0 || ((!this._data || this._data.length === 0) && keys.length === 0)) {
|
|
5156
|
-
|
|
5165
|
+
// If alwaysExportHeaders is true and we have headers, export headers only
|
|
5166
|
+
if (alwaysExportHeaders && headers && headers.length > 0) {
|
|
5167
|
+
done(this._headerRecord);
|
|
5168
|
+
}
|
|
5169
|
+
else {
|
|
5170
|
+
done('');
|
|
5171
|
+
}
|
|
5157
5172
|
}
|
|
5158
5173
|
else {
|
|
5159
5174
|
this.processDataRecordsAsync(this._data, keys, (dr) => {
|
|
@@ -5488,10 +5503,33 @@ class IgxCsvExporterService extends IgxBaseExporter {
|
|
|
5488
5503
|
this.exportEnded = new EventEmitter();
|
|
5489
5504
|
}
|
|
5490
5505
|
exportDataImplementation(data, options, done) {
|
|
5491
|
-
const
|
|
5492
|
-
|
|
5493
|
-
|
|
5494
|
-
data.map((item) => item.
|
|
5506
|
+
const firstDataElement = data[0];
|
|
5507
|
+
const dimensionKeys = firstDataElement?.dimensionKeys;
|
|
5508
|
+
const dataRecords = dimensionKeys?.length ?
|
|
5509
|
+
data.filter(item => item.type !== ExportRecordType.SummaryRecord).map((item) => item.rawData) :
|
|
5510
|
+
data.filter(item => item.type !== ExportRecordType.SummaryRecord).map((item) => item.data);
|
|
5511
|
+
// Get summary records if exportSummaries is enabled
|
|
5512
|
+
const summaryRecords = [];
|
|
5513
|
+
if (options.exportSummaries) {
|
|
5514
|
+
const summaries = data.filter(item => item.type === ExportRecordType.SummaryRecord);
|
|
5515
|
+
for (const summary of summaries) {
|
|
5516
|
+
// Convert summary record data to a flat object format for CSV
|
|
5517
|
+
const summaryData = {};
|
|
5518
|
+
if (summary.data) {
|
|
5519
|
+
for (const [key, value] of Object.entries(summary.data)) {
|
|
5520
|
+
if (value && typeof value === 'object' && 'label' in value && 'value' in value) {
|
|
5521
|
+
summaryData[key] = `${value.label}: ${value.value}`;
|
|
5522
|
+
}
|
|
5523
|
+
else {
|
|
5524
|
+
summaryData[key] = value;
|
|
5525
|
+
}
|
|
5526
|
+
}
|
|
5527
|
+
}
|
|
5528
|
+
summaryRecords.push(summaryData);
|
|
5529
|
+
}
|
|
5530
|
+
}
|
|
5531
|
+
// Combine data records and summary records
|
|
5532
|
+
const allRecords = [...dataRecords, ...summaryRecords];
|
|
5495
5533
|
const columnList = this._ownersMap.get(DEFAULT_OWNER);
|
|
5496
5534
|
const columns = columnList?.columns.filter(c => c.headerType === ExportHeaderType.ColumnHeader);
|
|
5497
5535
|
if (dimensionKeys) {
|
|
@@ -5509,13 +5547,13 @@ class IgxCsvExporterService extends IgxBaseExporter {
|
|
|
5509
5547
|
});
|
|
5510
5548
|
columns.unshift(...dimensionCols);
|
|
5511
5549
|
}
|
|
5512
|
-
const csvData = new CharSeparatedValueData(
|
|
5550
|
+
const csvData = new CharSeparatedValueData(allRecords, options.valueDelimiter, columns);
|
|
5513
5551
|
csvData.prepareDataAsync((r) => {
|
|
5514
5552
|
this._stringData = r;
|
|
5515
5553
|
this.saveFile(options);
|
|
5516
5554
|
this.exportEnded.emit({ csvData: this._stringData });
|
|
5517
5555
|
done();
|
|
5518
|
-
});
|
|
5556
|
+
}, options.alwaysExportHeaders);
|
|
5519
5557
|
}
|
|
5520
5558
|
saveFile(options) {
|
|
5521
5559
|
switch (options.fileType) {
|
|
@@ -6106,9 +6144,15 @@ class WorksheetFile {
|
|
|
6106
6144
|
}
|
|
6107
6145
|
}
|
|
6108
6146
|
getSummaryFunction(type, key, dimensionMapKey, recordLevel, col) {
|
|
6109
|
-
const dimensionMap = dimensionMapKey ? this.hierarchicalDimensionMap.get(dimensionMapKey) : this.dimensionMap;
|
|
6147
|
+
const dimensionMap = dimensionMapKey ? (this.hierarchicalDimensionMap.get(dimensionMapKey) ?? this.dimensionMap) : this.dimensionMap;
|
|
6148
|
+
if (!dimensionMap) {
|
|
6149
|
+
return '';
|
|
6150
|
+
}
|
|
6110
6151
|
const dimensions = dimensionMap.get(key);
|
|
6111
6152
|
const levelDimensions = dimensionMap.get(GRID_LEVEL_COL);
|
|
6153
|
+
if (!dimensions || !levelDimensions) {
|
|
6154
|
+
return '';
|
|
6155
|
+
}
|
|
6112
6156
|
let func = '';
|
|
6113
6157
|
let funcType = '';
|
|
6114
6158
|
let result = '';
|
|
@@ -6733,6 +6777,10 @@ class IgxExcelExporterService extends IgxBaseExporter {
|
|
|
6733
6777
|
const firstDataElement = data[0];
|
|
6734
6778
|
const isHierarchicalGrid = firstDataElement?.type === ExportRecordType.HierarchicalGridRecord;
|
|
6735
6779
|
const isPivotGrid = firstDataElement?.type === ExportRecordType.PivotGridRecord;
|
|
6780
|
+
const ownersKeys = Array.from(this._ownersMap.keys());
|
|
6781
|
+
const firstKey = ownersKeys[0];
|
|
6782
|
+
const isHierarchicalGridByMap = firstKey && typeof firstKey !== 'string';
|
|
6783
|
+
const filterColumns = (columns) => columns.filter(col => col.field !== GRID_LEVEL_COL && !col.skip && col.headerType === ExportHeaderType.ColumnHeader);
|
|
6736
6784
|
let rootKeys;
|
|
6737
6785
|
let columnCount;
|
|
6738
6786
|
let columnWidths;
|
|
@@ -6762,19 +6810,28 @@ class IgxExcelExporterService extends IgxBaseExporter {
|
|
|
6762
6810
|
defaultOwner = this._ownersMap.get(firstDataElement.owner);
|
|
6763
6811
|
}
|
|
6764
6812
|
else {
|
|
6765
|
-
|
|
6766
|
-
|
|
6767
|
-
|
|
6768
|
-
|
|
6769
|
-
|
|
6770
|
-
|
|
6813
|
+
// Check if this is actually a hierarchical grid (when data only contains summary records)
|
|
6814
|
+
defaultOwner = isHierarchicalGridByMap
|
|
6815
|
+
? this._ownersMap.get(firstKey)
|
|
6816
|
+
: this._ownersMap.get(DEFAULT_OWNER) || this._ownersMap.get(firstKey);
|
|
6817
|
+
if (defaultOwner) {
|
|
6818
|
+
const columns = filterColumns(defaultOwner.columns);
|
|
6819
|
+
columnWidths = defaultOwner.columnWidths;
|
|
6820
|
+
indexOfLastPinnedColumn = defaultOwner.indexOfLastPinnedColumn;
|
|
6821
|
+
columnCount = isPivotGrid ? columns.length + this.pivotGridFilterFieldsCount : columns.length;
|
|
6822
|
+
rootKeys = columns.map(c => c.field);
|
|
6823
|
+
}
|
|
6771
6824
|
}
|
|
6772
6825
|
}
|
|
6773
6826
|
else {
|
|
6774
|
-
|
|
6775
|
-
defaultOwner =
|
|
6776
|
-
|
|
6777
|
-
|
|
6827
|
+
// For hierarchical grids with empty data, use the grid instance; otherwise try DEFAULT_OWNER first
|
|
6828
|
+
defaultOwner = isHierarchicalGridByMap
|
|
6829
|
+
? this._ownersMap.get(firstKey)
|
|
6830
|
+
: this._ownersMap.get(DEFAULT_OWNER) || this._ownersMap.get(firstKey);
|
|
6831
|
+
if (defaultOwner) {
|
|
6832
|
+
columnWidths = defaultOwner.columnWidths;
|
|
6833
|
+
columnCount = filterColumns(defaultOwner.columns).length;
|
|
6834
|
+
}
|
|
6778
6835
|
}
|
|
6779
6836
|
const worksheetData = new WorksheetData(data, options, this._sort, columnCount, rootKeys, indexOfLastPinnedColumn, columnWidths, defaultOwner, this._ownersMap);
|
|
6780
6837
|
const rootFolder = ExcelElementsFactory.getExcelFolder(ExcelFolderTypes.RootExcelFolder);
|
|
@@ -10655,7 +10712,9 @@ class IgxButtonBaseDirective {
|
|
|
10655
10712
|
}
|
|
10656
10713
|
}
|
|
10657
10714
|
ngOnDestroy() {
|
|
10658
|
-
this._animationScheduler
|
|
10715
|
+
if (this._animationScheduler) {
|
|
10716
|
+
this._animationScheduler.unsubscribe();
|
|
10717
|
+
}
|
|
10659
10718
|
}
|
|
10660
10719
|
/**
|
|
10661
10720
|
* @hidden
|
|
@@ -53429,11 +53488,11 @@ class IgxExcelStyleDateExpressionComponent extends IgxExcelStyleDefaultExpressio
|
|
|
53429
53488
|
return getLocaleFirstDayOfWeek(this.grid.locale);
|
|
53430
53489
|
}
|
|
53431
53490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
53432
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: IgxExcelStyleDateExpressionComponent, isStandalone: true, selector: "igx-excel-style-date-expression", inputs: { searchVal: "searchVal" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(
|
|
53491
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: IgxExcelStyleDateExpressionComponent, isStandalone: true, selector: "igx-excel-style-date-expression", inputs: { searchVal: "searchVal" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputDatePlaceholder\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n}\n\n@if (column.dataType === 'time') {\n <igx-time-picker #picker\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n}\n\n@if (column.dataType === 'dateTime') {\n <igx-input-group #dropDownTarget #inputGroup type=\"box\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [locale]=\"column.grid.locale\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat\"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format\"\n [(ngModel)]=\"searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n </igx-input-group>\n}\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\" >\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span igxButton\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span igxButton\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }] }); }
|
|
53433
53492
|
}
|
|
53434
53493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, decorators: [{
|
|
53435
53494
|
type: Component,
|
|
53436
|
-
args: [{ selector: 'igx-excel-style-date-expression', imports: [IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective], template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(
|
|
53495
|
+
args: [{ selector: 'igx-excel-style-date-expression', imports: [IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective], template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputDatePlaceholder\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n}\n\n@if (column.dataType === 'time') {\n <igx-time-picker #picker\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n}\n\n@if (column.dataType === 'dateTime') {\n <igx-input-group #dropDownTarget #inputGroup type=\"box\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [locale]=\"column.grid.locale\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat\"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format\"\n [(ngModel)]=\"searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n </igx-input-group>\n}\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\" >\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span igxButton\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span igxButton\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
|
|
53437
53496
|
}], propDecorators: { input: [{
|
|
53438
53497
|
type: ViewChild,
|
|
53439
53498
|
args: ['input', { read: IgxInputDirective, static: false }]
|
|
@@ -57801,8 +57860,8 @@ class IgxExcelStyleSearchComponent {
|
|
|
57801
57860
|
* @hidden @internal
|
|
57802
57861
|
*/
|
|
57803
57862
|
get applyButtonDisabled() {
|
|
57804
|
-
return (this._selectAllItem && !this._selectAllItem.isSelected && !this._selectAllItem.indeterminate) ||
|
|
57805
|
-
(this.displayedListData && this.displayedListData.length === 0);
|
|
57863
|
+
return ((this._selectAllItem && !this._selectAllItem.isSelected && !this._selectAllItem.indeterminate) ||
|
|
57864
|
+
(this.displayedListData && this.displayedListData.length === 0)) && !this._addToCurrentFilterItem?.isSelected;
|
|
57806
57865
|
}
|
|
57807
57866
|
/**
|
|
57808
57867
|
* @hidden @internal
|
|
@@ -57918,11 +57977,28 @@ class IgxExcelStyleSearchComponent {
|
|
|
57918
57977
|
selectedItems = this._hierarchicalSelectedItems;
|
|
57919
57978
|
}
|
|
57920
57979
|
else {
|
|
57921
|
-
const
|
|
57922
|
-
const
|
|
57923
|
-
|
|
57924
|
-
|
|
57925
|
-
|
|
57980
|
+
const addToCurrentFilter = this._addToCurrentFilterItem?.isSelected;
|
|
57981
|
+
const displayedSet = new Set(this.displayedListData);
|
|
57982
|
+
const listData = this.esf.listData;
|
|
57983
|
+
for (let i = 1; i < listData.length; i++) {
|
|
57984
|
+
const el = listData[i];
|
|
57985
|
+
const isDisplayed = displayedSet.has(el);
|
|
57986
|
+
if (isDisplayed) {
|
|
57987
|
+
if (el.isSelected) {
|
|
57988
|
+
selectedItems.push(el);
|
|
57989
|
+
}
|
|
57990
|
+
}
|
|
57991
|
+
else if (addToCurrentFilter) {
|
|
57992
|
+
// Hidden items with "add to current filter": include if selected or filtered
|
|
57993
|
+
if (el.isSelected || el.isFiltered) {
|
|
57994
|
+
selectedItems.push(el);
|
|
57995
|
+
}
|
|
57996
|
+
}
|
|
57997
|
+
else if (el.isSelected) {
|
|
57998
|
+
// Hidden items without "add to current filter": include if selected
|
|
57999
|
+
selectedItems.push(el);
|
|
58000
|
+
}
|
|
58001
|
+
}
|
|
57926
58002
|
}
|
|
57927
58003
|
let unselectedItem;
|
|
57928
58004
|
if (this.isHierarchical()) {
|