igniteui-angular 22.0.0-rc.1 → 22.0.0
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-accordion.mjs +1 -1
- package/fesm2022/igniteui-angular-accordion.mjs.map +1 -1
- package/fesm2022/igniteui-angular-action-strip.mjs +1 -1
- package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
- package/fesm2022/igniteui-angular-button-group.mjs +1 -1
- package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-calendar.mjs +1 -1
- package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-card.mjs +6 -6
- package/fesm2022/igniteui-angular-card.mjs.map +1 -1
- package/fesm2022/igniteui-angular-carousel.mjs +6 -6
- package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
- package/fesm2022/igniteui-angular-chips.mjs +34 -34
- package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
- package/fesm2022/igniteui-angular-core.mjs +6 -6
- package/fesm2022/igniteui-angular-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-date-picker.mjs +2 -2
- package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-directives.mjs +12 -12
- package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
- package/fesm2022/igniteui-angular-drop-down.mjs +5 -5
- package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-core.mjs +35 -23
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +51 -51
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +7 -7
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs +5 -5
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-icon.mjs +4 -4
- package/fesm2022/igniteui-angular-icon.mjs.map +1 -1
- package/fesm2022/igniteui-angular-input-group.mjs +18 -18
- package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-list.mjs +5 -5
- package/fesm2022/igniteui-angular-list.mjs.map +1 -1
- package/fesm2022/igniteui-angular-navbar.mjs +5 -5
- package/fesm2022/igniteui-angular-navbar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-paginator.mjs +2 -2
- package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
- package/fesm2022/igniteui-angular-progressbar.mjs +7 -7
- package/fesm2022/igniteui-angular-progressbar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-query-builder.mjs +2 -2
- package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
- package/fesm2022/igniteui-angular-radio.mjs +5 -5
- package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
- package/fesm2022/igniteui-angular-select.mjs +217 -209
- package/fesm2022/igniteui-angular-select.mjs.map +1 -1
- package/fesm2022/igniteui-angular-slider.mjs +17 -17
- package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
- package/fesm2022/igniteui-angular-snackbar.mjs +1 -1
- package/fesm2022/igniteui-angular-snackbar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-splitter.mjs +2 -2
- package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
- package/fesm2022/igniteui-angular-stepper.mjs +2 -2
- package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
- package/fesm2022/igniteui-angular-time-picker.mjs +1 -1
- package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-tree.mjs +1 -1
- package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
- package/input-group/README.md +1 -1
- package/migrations/migration-collection.json +5 -0
- package/migrations/update-22_0_0/index.d.ts +3 -0
- package/migrations/update-22_0_0/index.js +86 -0
- package/migrations/update-22_0_0/index.spec.d.ts +1 -0
- package/migrations/update-22_0_0/index.spec.js +116 -0
- package/package.json +2 -2
- package/skills/igniteui-angular-grids/references/sizing.md +1 -0
- package/skills/igniteui-angular-grids/references/structure.md +1 -0
- package/skills/igniteui-angular-grids/references/types.md +2 -1
- package/types/igniteui-angular-accordion.d.ts +3 -3
- package/types/igniteui-angular-action-strip.d.ts +1 -1
- package/types/igniteui-angular-button-group.d.ts +1 -1
- package/types/igniteui-angular-calendar.d.ts +1 -1
- package/types/igniteui-angular-card.d.ts +6 -6
- package/types/igniteui-angular-carousel.d.ts +6 -6
- package/types/igniteui-angular-chips.d.ts +38 -38
- package/types/igniteui-angular-core.d.ts +9 -9
- package/types/igniteui-angular-date-picker.d.ts +4 -4
- package/types/igniteui-angular-directives.d.ts +15 -15
- package/types/igniteui-angular-drop-down.d.ts +6 -6
- package/types/igniteui-angular-grids-core.d.ts +31 -29
- package/types/igniteui-angular-grids-grid.d.ts +51 -51
- package/types/igniteui-angular-grids-hierarchical-grid.d.ts +7 -7
- package/types/igniteui-angular-grids-tree-grid.d.ts +7 -7
- package/types/igniteui-angular-icon.d.ts +4 -4
- package/types/igniteui-angular-input-group.d.ts +17 -17
- package/types/igniteui-angular-list.d.ts +7 -7
- package/types/igniteui-angular-navbar.d.ts +7 -7
- package/types/igniteui-angular-paginator.d.ts +2 -2
- package/types/igniteui-angular-progressbar.d.ts +7 -7
- package/types/igniteui-angular-query-builder.d.ts +3 -3
- package/types/igniteui-angular-radio.d.ts +5 -5
- package/types/igniteui-angular-select.d.ts +91 -7
- package/types/igniteui-angular-slider.d.ts +17 -17
- package/types/igniteui-angular-snackbar.d.ts +1 -1
- package/types/igniteui-angular-splitter.d.ts +3 -3
- package/types/igniteui-angular-stepper.d.ts +2 -2
- package/types/igniteui-angular-time-picker.d.ts +1 -1
- package/types/igniteui-angular-tree.d.ts +2 -2
|
@@ -289,6 +289,11 @@
|
|
|
289
289
|
"version": "21.2.2",
|
|
290
290
|
"description": "Updates Ignite UI for Angular from v21.2.0 to v21.2.2",
|
|
291
291
|
"factory": "./update-21_2_2"
|
|
292
|
+
},
|
|
293
|
+
"migration-57": {
|
|
294
|
+
"version": "22.0.0",
|
|
295
|
+
"description": "Updates Ignite UI for Angular from v21.2.x to v22.0.0",
|
|
296
|
+
"factory": "./update-22_0_0"
|
|
292
297
|
}
|
|
293
298
|
}
|
|
294
299
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const UpdateChanges_1 = require("../common/UpdateChanges");
|
|
13
|
+
const util_1 = require("../common/util");
|
|
14
|
+
const version = '22.0.0';
|
|
15
|
+
exports.default = () => (host, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
|
|
17
|
+
const { HtmlParser, Element } = yield import('@angular/compiler');
|
|
18
|
+
const update = new UpdateChanges_1.UpdateChanges(__dirname, host, context);
|
|
19
|
+
const changes = new Map();
|
|
20
|
+
const parser = new HtmlParser();
|
|
21
|
+
const applyChanges = () => {
|
|
22
|
+
for (const [path, fileChanges] of changes.entries()) {
|
|
23
|
+
let content = host.read(path).toString();
|
|
24
|
+
fileChanges
|
|
25
|
+
.sort((a, b) => b.position - a.position)
|
|
26
|
+
.forEach((c) => {
|
|
27
|
+
content = c.apply(content);
|
|
28
|
+
});
|
|
29
|
+
host.overwrite(path, content);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const addChange = (path, change) => {
|
|
33
|
+
if (!changes.has(path)) {
|
|
34
|
+
changes.set(path, []);
|
|
35
|
+
}
|
|
36
|
+
changes.get(path).push(change);
|
|
37
|
+
};
|
|
38
|
+
// All form components that default to 'line' prior to this version
|
|
39
|
+
const TAGS = [
|
|
40
|
+
'igx-input-group',
|
|
41
|
+
'igx-select',
|
|
42
|
+
'igx-date-picker',
|
|
43
|
+
'igx-date-range-picker',
|
|
44
|
+
'igx-time-picker'
|
|
45
|
+
];
|
|
46
|
+
const TYPE_ATTRS = ['type', '[type]'];
|
|
47
|
+
for (const path of update.templateFiles) {
|
|
48
|
+
const root = (0, util_1.parseFile)(parser, host, path);
|
|
49
|
+
const nodes = (0, util_1.findElementNodes)(root, TAGS);
|
|
50
|
+
for (const node of nodes) {
|
|
51
|
+
if (!(node instanceof Element))
|
|
52
|
+
continue;
|
|
53
|
+
// Skip if the element already has an explicit type binding
|
|
54
|
+
if ((0, util_1.hasAttribute)(node, TYPE_ATTRS))
|
|
55
|
+
continue;
|
|
56
|
+
const offset = (0, util_1.getSourceOffset)(node);
|
|
57
|
+
const file = offset.file;
|
|
58
|
+
// Insert type="line" right after the tag name in the start tag
|
|
59
|
+
// e.g., <igx-input-group → <igx-input-group type="line"
|
|
60
|
+
const tagNameEnd = offset.startTag.start + 1 + node.name.length;
|
|
61
|
+
addChange(file.url, new util_1.FileChange(tagNameEnd, ' type="line"'));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
applyChanges();
|
|
65
|
+
changes.clear();
|
|
66
|
+
// IgxSelect: default positioning strategy changed to AutoPositionStrategy.
|
|
67
|
+
// Insert a comment above each <igx-select> to inform the developer.
|
|
68
|
+
const SELECT_NOTE = `<!-- IgxSelect: default positioning changed to AutoPositionStrategy (below/above input).\n` +
|
|
69
|
+
` To preserve overlap behavior: this.select.overlaySettings = { positionStrategy: new IgxSelectOverlapPositionStrategy(this.select) }; -->\n`;
|
|
70
|
+
for (const path of update.templateFiles) {
|
|
71
|
+
const content = host.read(path).toString();
|
|
72
|
+
const root = (0, util_1.parseFile)(parser, host, path);
|
|
73
|
+
const nodes = (0, util_1.findElementNodes)(root, 'igx-select');
|
|
74
|
+
for (const node of nodes) {
|
|
75
|
+
if (!(node instanceof Element))
|
|
76
|
+
continue;
|
|
77
|
+
const { startTag, file } = (0, util_1.getSourceOffset)(node);
|
|
78
|
+
const noteStart = Math.max(0, startTag.start - SELECT_NOTE.length);
|
|
79
|
+
if (content.slice(noteStart, startTag.start) === SELECT_NOTE)
|
|
80
|
+
continue;
|
|
81
|
+
addChange(file.url, new util_1.FileChange(startTag.start, SELECT_NOTE));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
applyChanges();
|
|
85
|
+
update.applyChanges();
|
|
86
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const index_js_1 = require("@angular-devkit/schematics/testing/index.js");
|
|
47
|
+
const setup_spec_1 = require("../common/setup.spec");
|
|
48
|
+
const version = '22.0.0';
|
|
49
|
+
const SELECT_POSITION_NOTE = `<!-- IgxSelect: default positioning changed to AutoPositionStrategy (below/above input).\n` +
|
|
50
|
+
` To preserve overlap behavior: this.select.overlaySettings = { positionStrategy: new IgxSelectOverlapPositionStrategy(this.select) }; -->\n`;
|
|
51
|
+
describe(`Update to ${version}`, () => {
|
|
52
|
+
let appTree;
|
|
53
|
+
const schematicRunner = new index_js_1.SchematicTestRunner('ig-migrate', path.join(__dirname, '../migration-collection.json'));
|
|
54
|
+
beforeEach(() => {
|
|
55
|
+
appTree = (0, setup_spec_1.setupTestTree)();
|
|
56
|
+
});
|
|
57
|
+
const migrationName = 'migration-57';
|
|
58
|
+
it('should add type="line" to igx-input-group without explicit type', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-input-group><input igxInput></igx-input-group>`);
|
|
60
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
61
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
62
|
+
.toEqual(`<igx-input-group type="line"><input igxInput></igx-input-group>`);
|
|
63
|
+
}));
|
|
64
|
+
it('should add type="line" and a positioning note to igx-select without explicit type', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-select><igx-select-item>Option</igx-select-item></igx-select>`);
|
|
66
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
67
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
68
|
+
.toEqual(`${SELECT_POSITION_NOTE}<igx-select type="line"><igx-select-item>Option</igx-select-item></igx-select>`);
|
|
69
|
+
}));
|
|
70
|
+
it('should add a positioning note to igx-select that already has an explicit type', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
71
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-select type="border"><igx-select-item>Option</igx-select-item></igx-select>`);
|
|
72
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
73
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
74
|
+
.toEqual(`${SELECT_POSITION_NOTE}<igx-select type="border"><igx-select-item>Option</igx-select-item></igx-select>`);
|
|
75
|
+
}));
|
|
76
|
+
it('should add type="line" to igx-date-picker without explicit type', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
77
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-date-picker></igx-date-picker>`);
|
|
78
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
79
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
80
|
+
.toEqual(`<igx-date-picker type="line"></igx-date-picker>`);
|
|
81
|
+
}));
|
|
82
|
+
it('should add type="line" to igx-date-range-picker without explicit type', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
83
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-date-range-picker></igx-date-range-picker>`);
|
|
84
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
85
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
86
|
+
.toEqual(`<igx-date-range-picker type="line"></igx-date-range-picker>`);
|
|
87
|
+
}));
|
|
88
|
+
it('should add type="line" to igx-time-picker without explicit type', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
89
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-time-picker></igx-time-picker>`);
|
|
90
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
91
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
92
|
+
.toEqual(`<igx-time-picker type="line"></igx-time-picker>`);
|
|
93
|
+
}));
|
|
94
|
+
it('should NOT modify igx-input-group that already has type attribute', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
95
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-input-group type="box"><input igxInput></igx-input-group>`);
|
|
96
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
97
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
98
|
+
.toEqual(`<igx-input-group type="box"><input igxInput></igx-input-group>`);
|
|
99
|
+
}));
|
|
100
|
+
it('should NOT modify igx-input-group that already has [type] binding', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-input-group [type]="myType"><input igxInput></igx-input-group>`);
|
|
102
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
103
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
104
|
+
.toEqual(`<igx-input-group [type]="myType"><input igxInput></igx-input-group>`);
|
|
105
|
+
}));
|
|
106
|
+
it('should handle multiple components in the same template', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
|
+
appTree.create(`/testSrc/appPrefix/component/test.component.html`, `<igx-input-group><input igxInput></igx-input-group>
|
|
108
|
+
<igx-select></igx-select>
|
|
109
|
+
<igx-input-group type="border"><input igxInput></igx-input-group>`);
|
|
110
|
+
const tree = yield schematicRunner.runSchematic(migrationName, {}, appTree);
|
|
111
|
+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html'))
|
|
112
|
+
.toEqual(`<igx-input-group type="line"><input igxInput></igx-input-group>
|
|
113
|
+
${SELECT_POSITION_NOTE}<igx-select type="line"></igx-select>
|
|
114
|
+
<igx-input-group type="border"><input igxInput></igx-input-group>`);
|
|
115
|
+
}));
|
|
116
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "igniteui-angular",
|
|
3
|
-
"version": "22.0.0
|
|
3
|
+
"version": "22.0.0",
|
|
4
4
|
"description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
|
|
5
5
|
"author": "Infragistics",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
"igxDevDependencies": {
|
|
107
|
-
"@igniteui/angular-schematics": "~22.0.
|
|
107
|
+
"@igniteui/angular-schematics": "~22.0.1540"
|
|
108
108
|
},
|
|
109
109
|
"ng-update": {
|
|
110
110
|
"migrations": "./migrations/migration-collection.json",
|
|
@@ -212,3 +212,4 @@ igx-grid {
|
|
|
212
212
|
- Use `null` for height only when the data set is small; row virtualization is disabled and large data will hurt performance.
|
|
213
213
|
- When using percentage height, the parent **must** have an explicit height for the percentage to resolve correctly. Without it, the grid falls back to 10 visible rows.
|
|
214
214
|
- A mix of fixed-width and auto-sized columns is valid — auto-sized columns fill the remaining space after fixed-width columns are laid out.
|
|
215
|
+
- **Omit `width` on generated columns.** No `width` = columns equally share available grid width. Pixel widths leave empty space when their sum is less than the grid width. Only set `width` when the user explicitly asks for it. If column widths are used, at least one column must not have a specified width so that it fills the remaining space in the grid.
|
|
@@ -263,6 +263,7 @@ Events: `(rowSelectionChanging)`, `(columnSelectionChanging)`, `(selected)` (cel
|
|
|
263
263
|
6. **Set `dataType` on every column** for correct filtering, sorting, editing, and summaries
|
|
264
264
|
7. **Use signals** for data binding — `[data]="myData()"` with `signal<T[]>([])`
|
|
265
265
|
8. **Virtualization is automatic** — don't wrap grids in virtual scroll containers
|
|
266
|
+
9. **Omit `width` on generated `<igx-column>` elements.** Columns without `width` equally share available grid width. Only set `width` when the user explicitly asks for fixed or percentage column sizing. If column widths are used, at least one column must not have a specified width so that it fills the remaining space in the grid.
|
|
266
267
|
|
|
267
268
|
## See Also
|
|
268
269
|
|
|
@@ -247,7 +247,7 @@ Columns use `<igx-grid-lite-column>` with these inputs:
|
|
|
247
247
|
| `field` | `string` | Data property key (required) |
|
|
248
248
|
| `dataType` | `'string' \| 'number' \| 'boolean' \| 'date'` | Column data type |
|
|
249
249
|
| `header` | `string` | Header text |
|
|
250
|
-
| `width` | `string` | CSS width (e.g
|
|
250
|
+
| `width` | `string` | CSS width — omit by default; columns auto-fill available grid space. Only set when a fixed or percentage width is explicitly needed (e.g. `'20%'`). |
|
|
251
251
|
| `hidden` | `boolean` | Hide the column |
|
|
252
252
|
| `resizable` | `boolean` | Allow column resizing |
|
|
253
253
|
| `sortable` | `boolean` | Enable sorting |
|
|
@@ -487,6 +487,7 @@ Provide a drag-and-drop UI for users to reshape the pivot interactively:
|
|
|
487
487
|
2. **Hierarchical Grid**: sorting/filtering/paging are independent per level; configure features on the `<igx-row-island>` blueprint
|
|
488
488
|
3. **Pivot Grid is read-only** — editing, paging, pinning, column moving, row dragging are all disabled; use `pivotConfiguration` for all data operations
|
|
489
489
|
4. **Grid Lite requires `CUSTOM_ELEMENTS_SCHEMA`** and `igniteui-grid-lite` npm package — it has no editing, selection, paging, or export
|
|
490
|
+
5. **Omit `width` on generated `<igx-grid-lite-column>` elements.** Columns without `width` equally share available grid width. Only set `width` when the user explicitly asks for it. If column widths are used, at least one column must not have a specified width so that it fills the remaining space in the grid.
|
|
490
491
|
|
|
491
492
|
## See Also
|
|
492
493
|
|
|
@@ -5,18 +5,18 @@ import { IExpansionPanelCancelableEventArgs, ToggleAnimationSettings, IExpansion
|
|
|
5
5
|
|
|
6
6
|
interface IAccordionEventArgs extends IExpansionPanelEventArgs {
|
|
7
7
|
owner: IgxAccordionComponent;
|
|
8
|
-
/** Provides a reference to the
|
|
8
|
+
/** Provides a reference to the expansion panel which was expanded/collapsed. */
|
|
9
9
|
panel: IgxExpansionPanelBase;
|
|
10
10
|
}
|
|
11
11
|
interface IAccordionCancelableEventArgs extends IExpansionPanelCancelableEventArgs {
|
|
12
12
|
owner: IgxAccordionComponent;
|
|
13
|
-
/** Provides a reference to the
|
|
13
|
+
/** Provides a reference to the expansion panel which is currently expanding/collapsing. */
|
|
14
14
|
panel: IgxExpansionPanelBase;
|
|
15
15
|
/** Enables canceling the expansion/collapse operation. */
|
|
16
16
|
cancel: boolean;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Accordion is a container-based component that contains that can house multiple expansion panels.
|
|
20
20
|
*
|
|
21
21
|
* @igxModule IgxAccordionModule
|
|
22
22
|
*
|
|
@@ -113,7 +113,7 @@ declare class IgxActionStripComponent implements IgxActionStripToken, AfterViewI
|
|
|
113
113
|
*/
|
|
114
114
|
get menuItems(): any[];
|
|
115
115
|
/**
|
|
116
|
-
* Getter for the 'display' property of the current
|
|
116
|
+
* Getter for the 'display' property of the current action strip
|
|
117
117
|
*/
|
|
118
118
|
private get display();
|
|
119
119
|
/**
|
|
@@ -65,7 +65,7 @@ declare class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
|
|
|
65
65
|
*/
|
|
66
66
|
set itemContentCssClass(value: string);
|
|
67
67
|
/**
|
|
68
|
-
* Returns the CSS class of the item content of the
|
|
68
|
+
* Returns the CSS class of the item content of the button group.
|
|
69
69
|
* ```typescript
|
|
70
70
|
* @ViewChild("MyChild")
|
|
71
71
|
* public buttonG: IgxButtonGroupComponent;
|
|
@@ -138,7 +138,7 @@ declare class Calendar {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
/**
|
|
141
|
-
* This file contains all the directives used by the @link
|
|
141
|
+
* This file contains all the directives used by the @link calendar.
|
|
142
142
|
* Except for the directives which are used for templating the calendar itself
|
|
143
143
|
* you should generally not use them directly.
|
|
144
144
|
*
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Card media is container for the card media section.
|
|
6
6
|
* Use it to wrap images and videos.
|
|
7
7
|
*/
|
|
8
8
|
declare class IgxCardMediaDirective {
|
|
@@ -36,7 +36,7 @@ declare class IgxCardMediaDirective {
|
|
|
36
36
|
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCardMediaDirective, "igx-card-media", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, {}, never, never, true, never>;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* Card header is container for the card header
|
|
40
40
|
*/
|
|
41
41
|
declare class IgxCardHeaderComponent {
|
|
42
42
|
/** @hidden @internal */
|
|
@@ -56,7 +56,7 @@ declare class IgxCardHeaderComponent {
|
|
|
56
56
|
static ngAcceptInputType_vertical: unknown;
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Card thumbnail is container for the card thumbnail section.
|
|
60
60
|
* Use it to wrap anything you want to be used as a thumbnail.
|
|
61
61
|
*/
|
|
62
62
|
declare class IgxCardThumbnailDirective {
|
|
@@ -84,7 +84,7 @@ declare class IgxCardHeaderSubtitleDirective {
|
|
|
84
84
|
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCardHeaderSubtitleDirective, "[igxCardHeaderSubtitle]", never, {}, {}, never, never, true, never>;
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
|
-
*
|
|
87
|
+
* Card content is container for the card content.
|
|
88
88
|
*/
|
|
89
89
|
declare class IgxCardContentDirective {
|
|
90
90
|
/** @hidden @internal */
|
|
@@ -93,7 +93,7 @@ declare class IgxCardContentDirective {
|
|
|
93
93
|
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCardContentDirective, "igx-card-content", never, {}, {}, never, never, true, never>;
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* Card footer is container for the card footer
|
|
97
97
|
*/
|
|
98
98
|
declare class IgxCardFooterDirective {
|
|
99
99
|
/**
|
|
@@ -204,7 +204,7 @@ declare const IgxCardActionsLayout: {
|
|
|
204
204
|
};
|
|
205
205
|
type IgxCardActionsLayout = (typeof IgxCardActionsLayout)[keyof typeof IgxCardActionsLayout];
|
|
206
206
|
/**
|
|
207
|
-
*
|
|
207
|
+
* Card actions is container for the card actions.
|
|
208
208
|
*/
|
|
209
209
|
declare class IgxCardActionsComponent implements OnInit, OnChanges {
|
|
210
210
|
card: IgxCardComponent;
|
|
@@ -83,7 +83,7 @@ declare abstract class IgxCarouselComponentBase implements OnDestroy {
|
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
85
|
* A slide component that usually holds an image and/or a caption text.
|
|
86
|
-
*
|
|
86
|
+
* Slide is usually a child component of a carousel.
|
|
87
87
|
*
|
|
88
88
|
* ```
|
|
89
89
|
* <igx-slide [input bindings] >
|
|
@@ -432,7 +432,7 @@ declare class IgxCarouselComponent extends IgxCarouselComponentBase implements O
|
|
|
432
432
|
slides: QueryList<IgxSlideComponent>;
|
|
433
433
|
/**
|
|
434
434
|
* An event that is emitted after a slide transition has happened.
|
|
435
|
-
* Provides references to the
|
|
435
|
+
* Provides references to the carousel and slide components as event arguments.
|
|
436
436
|
* ```html
|
|
437
437
|
* <igx-carousel (slideChanged)="slideChanged($event)"></igx-carousel>
|
|
438
438
|
* ```
|
|
@@ -442,7 +442,7 @@ declare class IgxCarouselComponent extends IgxCarouselComponentBase implements O
|
|
|
442
442
|
slideChanged: EventEmitter<ISlideEventArgs>;
|
|
443
443
|
/**
|
|
444
444
|
* An event that is emitted after a slide has been added to the carousel.
|
|
445
|
-
* Provides references to the
|
|
445
|
+
* Provides references to the carousel and slide components as event arguments.
|
|
446
446
|
* ```html
|
|
447
447
|
* <igx-carousel (slideAdded)="slideAdded($event)"></igx-carousel>
|
|
448
448
|
* ```
|
|
@@ -452,7 +452,7 @@ declare class IgxCarouselComponent extends IgxCarouselComponentBase implements O
|
|
|
452
452
|
slideAdded: EventEmitter<ISlideEventArgs>;
|
|
453
453
|
/**
|
|
454
454
|
* An event that is emitted after a slide has been removed from the carousel.
|
|
455
|
-
* Provides references to the
|
|
455
|
+
* Provides references to the carousel and slide components as event arguments.
|
|
456
456
|
* ```html
|
|
457
457
|
* <igx-carousel (slideRemoved)="slideRemoved($event)"></igx-carousel>
|
|
458
458
|
* ```
|
|
@@ -462,7 +462,7 @@ declare class IgxCarouselComponent extends IgxCarouselComponentBase implements O
|
|
|
462
462
|
slideRemoved: EventEmitter<ISlideEventArgs>;
|
|
463
463
|
/**
|
|
464
464
|
* An event that is emitted after the carousel has been paused.
|
|
465
|
-
* Provides a reference to the
|
|
465
|
+
* Provides a reference to the carousel as an event argument.
|
|
466
466
|
* ```html
|
|
467
467
|
* <igx-carousel (carouselPaused)="carouselPaused($event)"></igx-carousel>
|
|
468
468
|
* ```
|
|
@@ -472,7 +472,7 @@ declare class IgxCarouselComponent extends IgxCarouselComponentBase implements O
|
|
|
472
472
|
carouselPaused: EventEmitter<IgxCarouselComponent>;
|
|
473
473
|
/**
|
|
474
474
|
* An event that is emitted after the carousel has resumed transitioning between `slides`.
|
|
475
|
-
* Provides a reference to the
|
|
475
|
+
* Provides a reference to the carousel as an event argument.
|
|
476
476
|
* ```html
|
|
477
477
|
* <igx-carousel (carouselPlaying)="carouselPlaying($event)"></igx-carousel>
|
|
478
478
|
* ```
|