Skip to content

Commit 81892ae

Browse files
authored
Merge branch 'master' into simeonoff/fix-fluent-pagination
2 parents 1787795 + 3a206b8 commit 81892ae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+707
-344
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ The following example shows how you can use the Indigo theme:
4949
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
5050
- Introduced `showSummaryOnCollapse` grid property which allows you to control whether the summary row stays visible when the groupBy / parent row is collapsed.
5151
- Added support for tooltips on data cells default template and summary cells.
52+
- Added support for binding columns to properties in nested data objects.
53+
Data operations (filtering/sorting/updating/etc) are supported for the nested properties.
54+
```html
55+
<igx-column field="foo.bar.baz"></igx-column>
56+
```
5257
- `IgxGridState` directive
5358
- Added support for expansion states, column selection and row pinning.
5459
- Added support for `IgxTreeGrid` and `IgxHierarchicalGrid` (including child grids)

package-lock.json

Lines changed: 8 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@
5353
"@angular/platform-browser-dynamic": "^10.0.0",
5454
"@angular/router": "^10.0.0",
5555
"@types/hammerjs": "^2.0.36",
56-
"@types/jszip": "^3.4.1",
5756
"@types/source-map": "0.5.2",
5857
"classlist.js": "^1.1.20150312",
5958
"core-js": "^2.6.11",
6059
"core-js-pure": "^3.6.5",
6160
"hammerjs": "^2.0.8",
6261
"igniteui-trial-watermark": "^1.0.3",
63-
"jszip": "^3.4.0",
62+
"jszip": "^3.5.0",
63+
"lodash.merge": "^4.6.2",
6464
"resize-observer-polyfill": "^1.5.1",
6565
"rxjs": "^6.5.4",
6666
"tslib": "^2.0.0",

projects/igniteui-angular/ng-package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
},
88
"whitelistedNonPeerDependencies": [
99
"@types/hammerjs",
10-
"@types/jszip",
1110
"core-js-pure",
1211
"hammerjs",
1312
"jszip",
1413
"resize-observer-polyfill",
15-
"igniteui-trial-watermark"
14+
"igniteui-trial-watermark",
15+
"lodash.merge"
1616
]
1717
}

projects/igniteui-angular/ng-package.prod.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
},
1010
"whitelistedNonPeerDependencies": [
1111
"@types/hammerjs",
12-
"@types/jszip",
1312
"core-js-pure",
1413
"hammerjs",
1514
"jszip",
1615
"resize-observer-polyfill",
17-
"igniteui-trial-watermark"
16+
"igniteui-trial-watermark",
17+
"lodash.merge"
1818
]
1919
}

projects/igniteui-angular/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@
6767
],
6868
"dependencies": {
6969
"@types/hammerjs": "^2.0.36",
70-
"@types/jszip": "^3.1.7",
7170
"core-js-pure": "^3.6.5",
7271
"hammerjs": "^2.0.8",
73-
"jszip": "^3.3.0",
72+
"jszip": "^3.5.0",
7473
"tslib": "^2.0.0",
7574
"resize-observer-polyfill": "^1.5.1",
76-
"igniteui-trial-watermark": "^1.0.3"
75+
"igniteui-trial-watermark": "^1.0.3",
76+
"lodash.merge": "^4.6.2"
7777
},
7878
"peerDependencies": {
7979
"@angular/common": "^10.0.0",

projects/igniteui-angular/schematics/utils/dependency-handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ export const DEPENDENCIES_MAP: PackageEntry[] = [
2828
{ name: 'tslib', target: PackageTarget.NONE },
2929
{ name: 'resize-observer-polyfill', target: PackageTarget.REGULAR },
3030
{ name: '@types/hammerjs', target: PackageTarget.DEV },
31-
{ name: '@types/jszip', target: PackageTarget.DEV },
3231
{ name: 'igniteui-trial-watermark', target: PackageTarget.NONE },
3332
{ name: 'core-js-pure', target: PackageTarget.NONE },
33+
{ name: 'lodash.merge', target: PackageTarget.NONE },
3434
// peerDependencies
3535
{ name: '@angular/forms', target: PackageTarget.NONE },
3636
{ name: '@angular/common', target: PackageTarget.NONE },

projects/igniteui-angular/src/lib/combo/combo.component.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2461,6 +2461,13 @@ describe('igxCombo', () => {
24612461
expect(combo.valid).toEqual(IgxComboState.INITIAL);
24622462
expect(combo.comboInput.valid).toEqual(IgxInputState.INITIAL);
24632463
});
2464+
it('should not open on click if combo is disabled', () => {
2465+
combo.disabled = true;
2466+
fixture.detectChanges();
2467+
UIInteractions.simulateClickEvent(combo.comboInput.nativeElement);
2468+
fixture.detectChanges();
2469+
expect(combo.dropdown.collapsed).toBeTruthy();
2470+
});
24642471
it('should be possible to be enabled/disabled when used as a form control', () => {
24652472
const form = fixture.componentInstance.reactiveForm;
24662473
const comboFormReference = form.controls.townCombo;

projects/igniteui-angular/src/lib/combo/combo.component.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,9 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
873873
onInputClick(event: Event) {
874874
event.stopPropagation();
875875
event.preventDefault();
876-
this.toggle();
876+
if (!this.disabled) {
877+
this.toggle();
878+
}
877879
}
878880

879881
/**

projects/igniteui-angular/src/lib/core/utils.spec.ts

Lines changed: 0 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -171,146 +171,6 @@ describe('Utils', () => {
171171
});
172172
});
173173

174-
describe('Utils - mergeObjects() unit tests', () => {
175-
it('Should correctly merge objects', () => {
176-
const obj1 = {
177-
Numeric: 1,
178-
String: 'Some test string',
179-
Boolean: true,
180-
Date: new Date(0),
181-
Object: {
182-
Numeric: 10,
183-
String: 'Some inner test string',
184-
Boolean: false,
185-
Date: new Date(1000 * 60 * 60 * 24 * 10),
186-
}
187-
};
188-
189-
const obj2 = {
190-
Numeric: 100,
191-
String: 'Some changed test string',
192-
Boolean: false,
193-
Date: new Date(1000 * 60 * 60 * 24 * 100),
194-
Object: {
195-
Numeric: Infinity,
196-
}
197-
};
198-
199-
const result = mergeObjects(obj1, obj2);
200-
expect(result.Numeric).toBe(obj2.Numeric);
201-
expect(result.String).toBe(obj2.String);
202-
expect(result.Boolean).toBe(obj2.Boolean);
203-
expect(result.Date).toEqual(obj2.Date);
204-
expect(result.Date).not.toBe(obj2.Date);
205-
expect(result.Date.getTime()).toBe(obj2.Date.getTime());
206-
207-
expect(result.Object).toEqual(obj2.Object);
208-
expect(result.Object).not.toBe(obj2.Object);
209-
expect(result.Object.Numeric).toEqual(obj2.Object.Numeric);
210-
});
211-
212-
it('Should correctly merge into empty object', () => {
213-
const obj1 = {};
214-
const obj2 = {
215-
Test: 'Test',
216-
Date: new Date(0)
217-
};
218-
219-
const result = mergeObjects(obj1, obj2);
220-
expect(result).toEqual(obj2);
221-
expect(result).not.toBe(obj2);
222-
});
223-
224-
it('Should correctly merge from empty object', () => {
225-
const obj1 = {
226-
Test: 'Test',
227-
Date: new Date(0)
228-
};
229-
const obj2 = {};
230-
231-
const result = mergeObjects(obj1, obj2);
232-
expect(result).toEqual(obj1);
233-
expect(result).toBe(obj1);
234-
});
235-
236-
it('Should throw when try to merge into null object', () => {
237-
const obj1 = null;
238-
const obj2 = {
239-
Test: 'Test',
240-
Date: new Date(0)
241-
};
242-
243-
const errorFunction = function () { mergeObjects(obj1, obj2); };
244-
expect(errorFunction).toThrowError(`Cannot merge into ${obj1}. First param must be an object.`);
245-
});
246-
247-
it('Should correctly merge from null object', () => {
248-
const obj1 = {
249-
Test: 'Test',
250-
Date: new Date(0)
251-
};
252-
const obj2 = null;
253-
254-
const result = mergeObjects(obj1, obj2);
255-
expect(result).toEqual(obj1);
256-
expect(result).toBe(obj1);
257-
});
258-
259-
it('Should throw when try to merge into undefined object', () => {
260-
const obj1 = undefined;
261-
const obj2 = {
262-
Test: 'Test',
263-
Date: new Date(0)
264-
};
265-
266-
const errorFunction = function () { mergeObjects(obj1, obj2); };
267-
expect(errorFunction).toThrowError(`Cannot merge into ${obj1}. First param must be an object.`);
268-
});
269-
270-
it('Should correctly merge from undefined object', () => {
271-
const obj1 = {
272-
Test: 'Test',
273-
Date: new Date(0)
274-
};
275-
const obj2 = undefined;
276-
277-
const result = mergeObjects(obj1, obj2);
278-
expect(result).toEqual(obj1);
279-
expect(result).toBe(obj1);
280-
});
281-
282-
it('Should throw error when try to merge into non object type', () => {
283-
let obj1: any = 'Some string';
284-
const obj2 = {};
285-
const errorFunction = function () { mergeObjects(obj1, obj2); };
286-
expect(errorFunction).toThrowError(`Cannot merge into ${obj1}. First param must be an object.`);
287-
288-
obj1 = 100;
289-
expect(errorFunction).toThrowError(`Cannot merge into ${obj1}. First param must be an object.`);
290-
291-
obj1 = true;
292-
expect(errorFunction).toThrowError(`Cannot merge into ${obj1}. First param must be an object.`);
293-
294-
obj1 = new Date(0);
295-
expect(errorFunction).toThrowError(`Cannot merge into ${obj1}. First param must be an object.`);
296-
});
297-
298-
it('Should return first object when try to merge from non object type', () => {
299-
const obj1 = {};
300-
let obj2: any = 'Some string';
301-
expect(mergeObjects(obj1, obj2)).toBe(obj1);
302-
303-
obj2 = 100;
304-
expect(mergeObjects(obj1, obj2)).toBe(obj1);
305-
306-
obj2 = true;
307-
expect(mergeObjects(obj1, obj2)).toBe(obj1);
308-
309-
obj2 = new Date(0);
310-
expect(mergeObjects(obj1, obj2)).toBe(obj1);
311-
});
312-
});
313-
314174
describe('Utils - isObject() unit tests', () => {
315175
it('Should correctly determine if variable is Object', () => {
316176
let variable: any = {};

0 commit comments

Comments
 (0)