@progress/kendo-angular-grid 24.0.0-develop.9 → 24.0.1-develop.1
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/codemods/libs/common/src/codemods/utils.js +53 -18
- package/column-menu/column-menu-item-base.d.ts +11 -2
- package/column-menu/column-menu-item.component.d.ts +5 -1
- package/databinding.directive.d.ts +1 -0
- package/editing/form/models.d.ts +1 -5
- package/editing-directives/local-edit.service.d.ts +1 -0
- package/fesm2022/progress-kendo-angular-grid.mjs +3239 -465
- package/grid.component.d.ts +8 -1
- package/grouping/group-header.component.d.ts +3 -3
- package/grouping/group-panel.component.d.ts +2 -2
- package/grouping/group-settings.d.ts +14 -0
- package/grouping/sticky-groups/models.d.ts +24 -0
- package/grouping/sticky-groups/sticky-group-container.component.d.ts +114 -0
- package/grouping/sticky-groups/sticky-groups-utils.d.ts +71 -0
- package/grouping/sticky-groups/sticky-groups.service.d.ts +132 -0
- package/localization/messages.d.ts +9 -1
- package/navigation/logical-cell.directive.d.ts +4 -2
- package/navigation/navigation.service.d.ts +19 -0
- package/navigation/skip-cell-navigation.d.ts +12 -0
- package/package-metadata.mjs +2 -2
- package/package.json +25 -25
- package/rendering/cell.component.d.ts +18 -6
- package/rendering/list.component.d.ts +67 -1
- package/rendering/table-body.component.d.ts +1 -0
- package/rendering/toolbar/tools/smartbox/smartbox-component/smartbox.component.d.ts +4 -4
- package/row-pinning/pinned-row-tracking.service.d.ts +64 -0
- package/row-pinning/row-pin-container.component.d.ts +12 -4
- package/schematics/ngAdd/index.js +7 -7
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
"use strict";
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.tsInterfaceTransformer = exports.tsPropertyValueTransformer = exports.tsPropertyTransformer = exports.tsComponentPropertyRemoval = exports.attributeRemoval = exports.attributeValueUpdate = exports.attributeNameValueUpdate = exports.attributeNameUpdate = exports.eventUpdate = exports.htmlTransformer = exports.blockTextElements = void 0;
|
|
7
|
+
exports.tsInterfaceTransformer = exports.tsPropertyValueTransformer = exports.tsPropertyTransformer = exports.tsComponentPropertyRemoval = exports.attributeConditionalRemoval = exports.attributeRemoval = exports.attributeValueUpdate = exports.attributeNameValueUpdate = exports.attributeNameUpdate = exports.eventUpdate = exports.htmlTransformer = exports.blockTextElements = void 0;
|
|
8
8
|
exports.hasKendoInTemplate = hasKendoInTemplate;
|
|
9
9
|
exports.isImportedFromPackage = isImportedFromPackage;
|
|
10
10
|
exports.tsPropertyRemoval = tsPropertyRemoval;
|
|
@@ -345,6 +345,34 @@ const attributeRemoval = (templateContent, tagName, attributeName, propertyToRem
|
|
|
345
345
|
});
|
|
346
346
|
};
|
|
347
347
|
exports.attributeRemoval = attributeRemoval;
|
|
348
|
+
/**
|
|
349
|
+
* Removes an attribute from a tag only when its value matches one of the specified values.
|
|
350
|
+
* Handles both static (`attr="value"`) and bound (`[attr]="'value'"`) forms.
|
|
351
|
+
*
|
|
352
|
+
* @param templateContent - The template string content to transform
|
|
353
|
+
* @param tagName - The HTML tag name to target (e.g., 'kendo-button')
|
|
354
|
+
* @param attributeName - The attribute name to conditionally remove
|
|
355
|
+
* @param values - The attribute values that trigger removal
|
|
356
|
+
* @returns The transformed template content
|
|
357
|
+
*/
|
|
358
|
+
const attributeConditionalRemoval = (templateContent, tagName, attributeName, values) => {
|
|
359
|
+
const escapeRegex = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
360
|
+
const escapedTag = escapeRegex(tagName);
|
|
361
|
+
const escapedAttr = escapeRegex(attributeName);
|
|
362
|
+
// Remove bound attributes [attribute]="value"
|
|
363
|
+
const boundAttributePattern = new RegExp(`(<${escapedTag}[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
|
|
364
|
+
// Remove static attributes attribute="value"
|
|
365
|
+
const staticAttributePattern = new RegExp(`(<${escapedTag}[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
|
|
366
|
+
// Strip outer and inner quotes to extract the raw value for comparison
|
|
367
|
+
const matchesValue = (raw) => {
|
|
368
|
+
const inner = raw.replace(/^["']|["']$/g, '').replace(/^['"]|['"]$/g, '');
|
|
369
|
+
return values.includes(inner);
|
|
370
|
+
};
|
|
371
|
+
let result = templateContent.replace(boundAttributePattern, (match, prefix, value, suffix) => matchesValue(value) ? prefix + suffix : match);
|
|
372
|
+
result = result.replace(staticAttributePattern, (match, prefix, value, suffix) => matchesValue(value) ? prefix + suffix : match);
|
|
373
|
+
return result;
|
|
374
|
+
};
|
|
375
|
+
exports.attributeConditionalRemoval = attributeConditionalRemoval;
|
|
348
376
|
function tsPropertyRemoval(source, rootSource, j, packageName, typeName, propertyName) {
|
|
349
377
|
if (source.includes(typeName)) {
|
|
350
378
|
if (!isImportedFromPackage(rootSource, j, packageName, typeName)) {
|
|
@@ -441,8 +469,31 @@ function tsPropertyRemoval(source, rootSource, j, packageName, typeName, propert
|
|
|
441
469
|
}
|
|
442
470
|
}
|
|
443
471
|
});
|
|
444
|
-
// Handle return statements with object literals
|
|
472
|
+
// Handle return statements with object literals, but only when the enclosing
|
|
473
|
+
// function's declared return type matches typeName. This prevents removing
|
|
474
|
+
// unrelated propertyName keys from object literals returned in other functions.
|
|
475
|
+
const enclosingFunctionReturnsType = (nodePath) => {
|
|
476
|
+
let current = nodePath.parent;
|
|
477
|
+
while (current) {
|
|
478
|
+
const node = current.node;
|
|
479
|
+
if (node.type === 'FunctionDeclaration' ||
|
|
480
|
+
node.type === 'FunctionExpression' ||
|
|
481
|
+
node.type === 'ArrowFunctionExpression' ||
|
|
482
|
+
node.type === 'ClassMethod' ||
|
|
483
|
+
node.type === 'ObjectMethod') {
|
|
484
|
+
return !!(node.returnType &&
|
|
485
|
+
node.returnType.typeAnnotation?.type === 'TSTypeReference' &&
|
|
486
|
+
node.returnType.typeAnnotation.typeName?.type === 'Identifier' &&
|
|
487
|
+
node.returnType.typeAnnotation.typeName.name === typeName);
|
|
488
|
+
}
|
|
489
|
+
current = current.parent;
|
|
490
|
+
}
|
|
491
|
+
return false;
|
|
492
|
+
};
|
|
445
493
|
rootSource.find(j.ReturnStatement).forEach((path) => {
|
|
494
|
+
if (!enclosingFunctionReturnsType(path)) {
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
446
497
|
if (path.node.argument && path.node.argument.type === 'ObjectExpression') {
|
|
447
498
|
const properties = path.node.argument.properties;
|
|
448
499
|
const propIndex = properties.findIndex((p) => p.type === 'ObjectProperty' &&
|
|
@@ -491,22 +542,6 @@ function tsPropertyRemoval(source, rootSource, j, packageName, typeName, propert
|
|
|
491
542
|
statement.remove();
|
|
492
543
|
}
|
|
493
544
|
});
|
|
494
|
-
// Handle nested member expressions like chatConfig.chat.modelFields.pinnedByField
|
|
495
|
-
rootSource
|
|
496
|
-
.find(j.AssignmentExpression, {
|
|
497
|
-
left: {
|
|
498
|
-
type: 'MemberExpression',
|
|
499
|
-
object: {
|
|
500
|
-
type: 'MemberExpression',
|
|
501
|
-
},
|
|
502
|
-
property: {
|
|
503
|
-
name: propertyName,
|
|
504
|
-
},
|
|
505
|
-
},
|
|
506
|
-
})
|
|
507
|
-
.forEach((path) => {
|
|
508
|
-
j(path).closest(j.ExpressionStatement).remove();
|
|
509
|
-
});
|
|
510
545
|
return rootSource;
|
|
511
546
|
}
|
|
512
547
|
}
|
|
@@ -14,12 +14,21 @@ export declare class ColumnMenuItemBase implements OnInit {
|
|
|
14
14
|
* This input is required.
|
|
15
15
|
*/
|
|
16
16
|
service: ColumnMenuService;
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @hidden
|
|
19
|
+
*
|
|
20
|
+
* Set to `true` when the component is rendered inside another column menu item's content
|
|
21
|
+
* (for example, lock/stick items inside the position expander) to skip the
|
|
22
|
+
* `.k-columnmenu-item-wrapper` host class and avoid producing a duplicated wrapper.
|
|
23
|
+
*/
|
|
24
|
+
nested: boolean;
|
|
25
|
+
get hostClass(): boolean;
|
|
26
|
+
hostDisplay: string;
|
|
18
27
|
ngOnInit(): void;
|
|
19
28
|
/**
|
|
20
29
|
* @hidden
|
|
21
30
|
*/
|
|
22
31
|
close(): void;
|
|
23
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuItemBase, never>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemBase, "kendo-grid-column-menu-item-base", never, { "service": { "alias": "service"; "required": false; }; }, {}, never, never, true, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemBase, "kendo-grid-column-menu-item-base", never, { "service": { "alias": "service"; "required": false; }; "nested": { "alias": "nested"; "required": false; }; }, {}, never, never, true, never>;
|
|
25
34
|
}
|
|
@@ -85,6 +85,10 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
85
85
|
* Specifies if the item is expanded.
|
|
86
86
|
*/
|
|
87
87
|
expanded: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* @hidden
|
|
90
|
+
*/
|
|
91
|
+
contentClass: string;
|
|
88
92
|
/**
|
|
89
93
|
* @hidden
|
|
90
94
|
*/
|
|
@@ -132,5 +136,5 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
132
136
|
onClick(e: any): void;
|
|
133
137
|
private updateContentState;
|
|
134
138
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuItemComponent, never>;
|
|
135
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemComponent, "kendo-grid-columnmenu-item", never, { "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "indicatorIcon": { "alias": "indicatorIcon"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "focused": { "alias": "focused"; "required": false; }; "service": { "alias": "service"; "required": false; }; "column": { "alias": "column"; "required": false; }; }, { "itemClick": "itemClick"; "expand": "expand"; "collapse": "collapse"; }, ["contentTemplate"], never, true, never>;
|
|
139
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemComponent, "kendo-grid-columnmenu-item", never, { "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "indicatorIcon": { "alias": "indicatorIcon"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "contentClass": { "alias": "contentClass"; "required": false; }; "focused": { "alias": "focused"; "required": false; }; "service": { "alias": "service"; "required": false; }; "column": { "alias": "column"; "required": false; }; }, { "itemClick": "itemClick"; "expand": "expand"; "collapse": "collapse"; }, ["contentTemplate"], never, true, never>;
|
|
136
140
|
}
|
|
@@ -118,6 +118,7 @@ export declare class DataBindingDirective implements OnInit, OnDestroy, DoCheck,
|
|
|
118
118
|
protected updateGridData(): void;
|
|
119
119
|
private combineFilters;
|
|
120
120
|
private processPinnedRowsData;
|
|
121
|
+
private reorderPinnedRows;
|
|
121
122
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataBindingDirective, never>;
|
|
122
123
|
static ɵdir: i0.ɵɵDirectiveDeclaration<DataBindingDirective, "[kendoGridBinding]", ["kendoGridBinding"], { "skip": { "alias": "skip"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "group": { "alias": "group"; "required": false; }; "data": { "alias": "kendoGridBinding"; "required": false; }; }, {}, never, never, true, never>;
|
|
123
124
|
}
|
package/editing/form/models.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { TemplateRef, ViewContainerRef } from "@angular/core";
|
|
6
6
|
import { FormControl, FormGroup } from "@angular/forms";
|
|
7
7
|
import { ButtonFillMode, ButtonRounded, ButtonSize, ButtonThemeColor } from "@progress/kendo-angular-buttons";
|
|
8
|
-
import { ActionsLayout, DialogAnimation
|
|
8
|
+
import { ActionsLayout, DialogAnimation } from "@progress/kendo-angular-dialog";
|
|
9
9
|
import { Orientation } from "@progress/kendo-angular-inputs";
|
|
10
10
|
import { SVGIcon } from "@progress/kendo-svg-icons";
|
|
11
11
|
import { FieldDataType } from "../../common/field-datatype";
|
|
@@ -163,10 +163,6 @@ export interface FormDialogSettings {
|
|
|
163
163
|
* Sets the layout of the action buttons in the Dialog.
|
|
164
164
|
*/
|
|
165
165
|
actionsLayout?: ActionsLayout;
|
|
166
|
-
/**
|
|
167
|
-
* Sets the theme color of the Dialog.
|
|
168
|
-
*/
|
|
169
|
-
themeColor?: DialogThemeColor;
|
|
170
166
|
}
|
|
171
167
|
/**
|
|
172
168
|
* @hidden
|
|
@@ -14,6 +14,7 @@ export declare class LocalEditService implements EditService {
|
|
|
14
14
|
create(item: any): void;
|
|
15
15
|
update(_item: any): void;
|
|
16
16
|
remove(item: any): void;
|
|
17
|
+
private removePinnedRow;
|
|
17
18
|
assignValues(target: any, source: any): void;
|
|
18
19
|
protected dataChanged(args?: any): void;
|
|
19
20
|
protected get hasLocalData(): boolean;
|