Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
aab95fd
fix(chip): Chips are being reordered now correctly #6097
3phase Oct 30, 2019
343bb99
Merge branch 'master' into pbozhinov/fixes-chips-not-being-reordered-ivy
ChronosSF Oct 31, 2019
39e5d20
Merge branch 'master' into pbozhinov/fixes-chips-not-being-reordered-ivy
ChronosSF Nov 1, 2019
f0c5efc
fix(igxDatePicker): Fix opening dropdown/dialog throws error on Ivy. …
skrustev Nov 4, 2019
4001909
chore(paginator): remove duplicate migration for 9
hanastasov Nov 5, 2019
78ed5b4
chore(paginator): enhance migration test
hanastasov Nov 5, 2019
1071213
Merge branch 'master' into pbozhinov/fixes-chips-not-being-reordered-ivy
ChronosSF Nov 6, 2019
7a45a47
fix(progress-bar): revert change to progress-bar styles, #6129
ViktorSlavov Nov 6, 2019
44e8a86
test(progress-bar): check for text visibility in indeterminate bar, #…
ViktorSlavov Nov 7, 2019
aaca796
Merge branch 'master' into fix-826-migration-master
simeonoff Nov 7, 2019
ebc46c6
fix(igxGrid): Workaround for ivy issue where ContentChildren are re-e…
Nov 7, 2019
86fc19e
Merge branch 'master' into fix-826-migration-master
zdrawku Nov 7, 2019
2d86b8e
Merge pull request #6122 from IgniteUI/fix-826-migration-master
zdrawku Nov 8, 2019
bdfa2a5
Merge branch 'master' into SKrastev/fix-date-picker
ChronosSF Nov 8, 2019
d3bf708
Merge branch 'master' into pbozhinov/fixes-chips-not-being-reordered-ivy
ChronosSF Nov 8, 2019
20a542c
Merge branch 'master' of https://github.com/IgniteUI/igniteui-angular…
3phase Nov 8, 2019
67f990c
fix(esf): register filtering svg icons #6149
DiyanDimitrov Nov 8, 2019
9be919d
Merge pull request #6150 from IgniteUI/ddimitrov/fix-6149
DiyanDimitrov Nov 8, 2019
f934c88
Merge branch 'master' into pbozhinov/fixes-chips-not-being-reordered-ivy
ChronosSF Nov 8, 2019
8034855
Merge branch 'master' into SKrastev/fix-date-picker
ChronosSF Nov 8, 2019
a746a94
Merge pull request #6098 from IgniteUI/pbozhinov/fixes-chips-not-bein…
ChronosSF Nov 8, 2019
bd3f27e
feat(row-drag): Adding igxDragCustomGhost directive
dafo Nov 8, 2019
2550456
fix(igxGrid): Fixes bug after workaround of #6140
3phase Nov 8, 2019
79f88dd
Merge branch 'master' of https://github.com/IgniteUI/igniteui-angular…
3phase Nov 8, 2019
68ddfcb
fix(column): Added prop decorator for column #6004
Nov 11, 2019
b285a86
fix(forOf): Updating heightCache after the view is updated. #6058
Nov 11, 2019
c3765d5
Merge branch 'master' into vslavov/progress-bar-styles-master
damyanpetev Nov 11, 2019
bd20d60
Merge pull request #6135 from IgniteUI/vslavov/progress-bar-styles-ma…
Lipata Nov 11, 2019
03edc2d
fix(schematics): check polyfills in default project #6017 (#6106)
Lipata Nov 11, 2019
d6f9c84
fix(date-picker): remove duplicate call to onChangeCalback #6067 (#6…
PlamenaMiteva Nov 12, 2019
3c41e3b
Merge branch 'master' into SKrastev/fix-date-picker
ChronosSF Nov 12, 2019
33da794
fix(overlay): prevent extra position calls on scroll using absolute #…
damyanpetev Nov 6, 2019
70f86c9
Merge pull request #6115 from IgniteUI/SKrastev/fix-date-picker
ChronosSF Nov 12, 2019
97f3bea
Merge branch 'master' into dpetev/overlay-absolute-scroll-calls
Lipata Nov 13, 2019
f996da9
Merge pull request #6165 from IgniteUI/dpetev/overlay-absolute-scroll…
Lipata Nov 13, 2019
51ed8ac
Merge branch 'master' into mdragnev/fix-6058-master
ChronosSF Nov 13, 2019
d2cfd8c
feat(carousel): add carousel indicators template and animations #4268…
nrobakova Nov 13, 2019
063df28
fix(col): Added RowIslApiSer to HGrid #6004
Nov 13, 2019
c3a5b37
Merge branch 'master' into mdragnev/fix-6058-master
ChronosSF Nov 13, 2019
38ee97c
chore(*): Adding handling for scenario where column is initially pinn…
Nov 13, 2019
d21c5d6
chore(*): Fixing lint.
Nov 13, 2019
e22088b
feat(date-picker, time-picker, select): implement setDisableState #60…
PlamenaMiteva Nov 13, 2019
74dbab4
Merge pull request #6156 from IgniteUI/mdragnev/fix-6058-master
rkaraivanov Nov 13, 2019
9ae33cb
Merge branch 'master' into vmihalkov/fix-6004-master
ChronosSF Nov 13, 2019
4dec9b9
Merge branch 'master' into mkirova/fix-6132
ChronosSF Nov 13, 2019
214cfb5
Merge pull request #6155 from IgniteUI/vmihalkov/fix-6004-master
ChronosSF Nov 13, 2019
482cbd0
Merge branch 'master' into mkirova/fix-6132
ChronosSF Nov 13, 2019
ebc1f86
fix(carousel): When carousel is paused, do not paly on mauseleave #61…
nrobakova Nov 18, 2019
ba13443
Merge branch 'master' into mkirova/fix-6132
ChronosSF Nov 18, 2019
4020a9b
Merge pull request #6140 from IgniteUI/mkirova/fix-6132
kdinev Nov 18, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 29 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ All notable changes for each version of this project will be documented in this

- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
- **Behavioral Change** - Pinning columns is no longer automatically prevented when the pinning area would exceed the size of the grid.
- `IgxCarousel`:
- **Breaking Changes** -The carousel slides are no longer array, they are changed to QueryList.
- **Behavioural change** - When slides are more than 5, a label is shown instead of the indicators. The count limit of visible indicators can be changed with the input `maximumIndicatorsCount`


### New Features
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`:
Expand All @@ -25,11 +29,31 @@ All notable changes for each version of this project will be documented in this
- `sortingExpressionsChange` event emitter is added, which is fired whenever a change to the sorting expressions has occurred (prior to performing the actual sorting).
- `filteringExpressionsTreeChange` event emitter is added, which is fired whenever a change to the filtering expressions has occurred (prior to performing the actual filtering).
- `advancedFilteringExpressionsTreeChange` event emitter is added, which is fired whenever a change to the advanced filtering expressions has occurred (prior to performing the actual filtering).
- `IgxGridExcelStyleFilteringComponent` and `IgxAdvancedFilteringDialogComponent` can now be hosted outside of the grid in order to provide the same experience as the built-in filtering UI.
- `IgxOverlayService`:
- `setOffset` method added. It offsets the content along the corresponding axis by the provided amount.
- `IgxToggleDirective`:
- `setOffset` method added. It offsets the content along the corresponding axis by the provided amount.
- `IgxGridExcelStyleFilteringComponent` and `IgxAdvancedFilteringDialogComponent` can now be hosted outside of the grid in order to provide the same experience as the built-in filtering UI.
- `IgxOverlayService`:
- `setOffset` method added. It offsets the content along the corresponding axis by the provided amount.
- `IgxToggleDirective`:
- `setOffset` method added. It offsets the content along the corresponding axis by the provided amount.
- `IgxRowDragGhost` directive is added. It allows providing a custom template for the drag ghost when dragging a row.
```html
<igx-grid #grid1 [data]="remote | async" primaryKey="ProductID"
[rowDraggable]="true">
<igx-column field="ProductName"></igx-column>
<igx-column field="ProductID"></igx-column>
<igx-column field="UnitsInStock"></igx-column>
<ng-template let-data igxRowDragGhost>
<div>
Moving {{data.ProductName}}!
</div>
</ng-template>
</igx-grid>
```
- `IgxCarousel`:
- `keyboardSupport` input is added, which can be used to enable and disable keyboard navigation
- `maximumIndicatorsCount` input is added, which can be used to set the number of visible indicators
- `indicatorsOrientation` input is added, which can be used to set the position of indicators it can be top or bottom
- `animationType` input is added, which can be used to set animation when changing slides
- `indicatorTemplate` directive is added, which can be used to provide a custom indicator for carousel. If this property is not provided, a default indicator template will be used instead.

## 8.2.6

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ describe('Update 8.2.6', () => {
it('should update igx-grid-paginator-theme', done => {
appTree.create(
'/testSrc/appPrefix/component/test.component.scss',
`$dark-grid-paginator: igx-grid-paginator-theme($color: black);
`@import '~igniteui-angular/lib/core/styles/components/grid-paginator/grid-paginator-component';
@import '~igniteui-angular/lib/core/styles/components/grid-paginator/grid-paginator-theme';
$dark-grid-paginator: igx-grid-paginator-theme($color: black);
@include igx-grid-paginator($dark-grid-paginator);
.igx-grid-paginator__pager {
@include igx-button($dark-button);
Expand All @@ -77,7 +79,9 @@ describe('Update 8.2.6', () => {
const tree = schematicRunner.runSchematic('migration-12', {}, appTree);
expect(tree.readContent('/testSrc/appPrefix/component/test.component.scss'))
.toEqual(
`$dark-grid-paginator: igx-paginator-theme($color: black);
`@import '~igniteui-angular/lib/core/styles/components/paginator/paginator-component';
@import '~igniteui-angular/lib/core/styles/components/paginator/paginator-theme';
$dark-grid-paginator: igx-paginator-theme($color: black);
@include igx-paginator($dark-grid-paginator);
.igx-grid-paginator__pager {
@include igx-button($dark-button);
Expand Down
15 changes: 14 additions & 1 deletion projects/igniteui-angular/migrations/update-8_2_6/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,17 @@ export default function(): Rule {
'$_square-shape-pagination'];

let globalStyleExt: string;
const gridPaginatorComponentImport = '~igniteui-angular/lib/core/styles/components/grid-paginator/grid-paginator-component';
const gridPaginatorThemeImport = '~igniteui-angular/lib/core/styles/components/grid-paginator/grid-paginator-theme';
const paginatorComponentImport = '~igniteui-angular/lib/core/styles/components/paginator/paginator-component';
const paginatorThemeImport = '~igniteui-angular/lib/core/styles/components/paginator/paginator-theme';
const config = getWorkspace(host);
const projects = getProjects(config);

context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);

const update = new UpdateChanges(__dirname, host, context);

if (config.schematics && config.schematics['@schematics/angular:component']) {
// updated projects have global prefix rather than per-project:
globalStyleExt = config.schematics['@schematics/angular:component'].styleext;
Expand All @@ -56,12 +62,19 @@ export default function(): Rule {
content = content.split(n).join(newThemes[i]);
}
});
if (content.indexOf(gridPaginatorComponentImport) !== -1) {
content = content.replace(gridPaginatorComponentImport, paginatorComponentImport);
host.overwrite(path, content);
}
if (content.indexOf(gridPaginatorThemeImport) !== -1) {
content = content.replace(gridPaginatorThemeImport, paginatorThemeImport);
host.overwrite(path, content);
}
host.overwrite(path, content);
}
});
}

const update = new UpdateChanges(__dirname, host, context);
update.applyChanges();
};
}

This file was deleted.

54 changes: 28 additions & 26 deletions projects/igniteui-angular/schematics/ng-add/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,19 @@ describe('ng-add schematics', () => {
const collectionPath = path.join(__dirname, '../collection.json');
const runner: SchematicTestRunner = new SchematicTestRunner('cli-schematics', collectionPath);
let tree: UnitTestTree;
const sourceRoot = 'testSrc';
const ngJsonConfig = {
defaultProject: 'testProj',
projects: {
testProj: {
sourceRoot: 'src',
sourceRoot: sourceRoot,
projectType: ProjectType.Application,
architect: {
serve: {},
build: {
options: {
main: 'src/main.ts',
main: `${sourceRoot}/main.ts`,
polyfills: `${sourceRoot}/polyfills.ts`,
scripts: []
}
}
Expand All @@ -42,7 +44,7 @@ describe('ng-add schematics', () => {
tree = new UnitTestTree(new EmptyTree());
tree.create('/angular.json', JSON.stringify(ngJsonConfig));
tree.create('/package.json', JSON.stringify(pkgJsonConfig));
tree.create('src/main.ts', '// test comment');
tree.create(`${sourceRoot}/main.ts`, '// test comment');
});

it('should create the needed files correctly', () => {
Expand Down Expand Up @@ -71,7 +73,7 @@ describe('ng-add schematics', () => {

it('should add hammer.js to the main.ts file', () => {
runner.runSchematic('ng-add', { normalizeCss: false }, tree);
const mainTs = tree.read('src/main.ts').toString();
const mainTs = tree.read(`${sourceRoot}/main.ts`).toString();
expect(mainTs).toContain('import \'hammerjs\';');
});

Expand All @@ -82,12 +84,12 @@ describe('ng-add schematics', () => {
tree.overwrite('angular.json', JSON.stringify(workspace));
runner.runSchematic('ng-add', { normalizeCss: false }, tree);

const newContent = tree.read('src/main.ts').toString();
const newContent = tree.read(`${sourceRoot}/main.ts`).toString();
expect(newContent.split('import \'hammerjs\';\n// test comment').length).toEqual(1);
});

it('should not add hammer.js if it exists in main.ts', () => {
const mainTsPath = 'src/main.ts';
const mainTsPath = `${sourceRoot}/main.ts`;
const content = tree.read(mainTsPath).toString();
tree.overwrite(mainTsPath, 'import \'hammerjs\';\n' + content);
runner.runSchematic('ng-add', { normalizeCss: false }, tree);
Expand Down Expand Up @@ -138,54 +140,54 @@ import 'core-js/es6/set';
import 'web-animations-js'; // Run \`npm install --save web-animations-js\`.
`;

tree.create('src/polyfills.ts', polyfills);
tree.create(`${sourceRoot}/polyfills.ts`, polyfills);
runner.runSchematic('ng-add', { polyfills: true, normalizeCss: false }, tree);
expect(tree.readContent('src/polyfills.ts').replace(/\r\n/g, '\n')).toEqual(result.replace(/\r\n/g, '\n'));
expect(tree.readContent(`${sourceRoot}/polyfills.ts`).replace(/\r\n/g, '\n')).toEqual(result.replace(/\r\n/g, '\n'));
});

it('should properly add css reset', () => {
tree.create('src/styles.scss', '');
tree.create(`${sourceRoot}/styles.scss`, '');
runner.runSchematic('ng-add', { normalizeCss: true }, tree);
let pkgJsonData = JSON.parse(tree.readContent('/package.json'));
expect(tree.readContent('src/styles.scss')).toEqual(scssImport);
expect(tree.readContent(`${sourceRoot}/styles.scss`)).toEqual(scssImport);
expect(pkgJsonData.dependencies['minireset.css']).toBeTruthy();
resetJsonConfigs(tree);
tree.delete('src/styles.scss');
tree.delete(`${sourceRoot}/styles.scss`);

tree.create('src/styles.sass', '');
tree.create(`${sourceRoot}/styles.sass`, '');
runner.runSchematic('ng-add', { normalizeCss: true }, tree);
pkgJsonData = JSON.parse(tree.readContent('/package.json'));
expect(tree.readContent('src/styles.sass')).toEqual(scssImport);
expect(tree.readContent(`${sourceRoot}/styles.sass`)).toEqual(scssImport);
expect(pkgJsonData.dependencies['minireset.css']).toBeTruthy();
resetJsonConfigs(tree);
tree.delete('src/styles.sass');
tree.delete(`${sourceRoot}/styles.sass`);

tree.create('src/styles.css', '');
tree.create(`${sourceRoot}/styles.css`, '');
runner.runSchematic('ng-add', { normalizeCss: true }, tree);
pkgJsonData = JSON.parse(tree.readContent('/package.json'));
expect(tree.readContent('src/styles.css')).toBe('');
expect(tree.readContent(`${sourceRoot}/styles.css`)).toBe('');
expect(pkgJsonData.dependencies['minireset.css']).toBeTruthy();
expect(JSON.parse(tree.readContent('/angular.json')).projects['testProj'].architect.build.options.styles).toContain(cssImport);
resetJsonConfigs(tree);
tree.delete('src/styles.css');
tree.delete(`${sourceRoot}/styles.css`);

tree.create('src/styles.less', '');
tree.create(`${sourceRoot}/styles.less`, '');
runner.runSchematic('ng-add', { normalizeCss: true }, tree);
pkgJsonData = JSON.parse(tree.readContent('/package.json'));
expect(tree.readContent('src/styles.less')).toBe('');
expect(tree.readContent(`${sourceRoot}/styles.less`)).toBe('');
expect(pkgJsonData.dependencies['minireset.css']).toBeTruthy();
expect(JSON.parse(tree.readContent('/angular.json')).projects['testProj'].architect.build.options.styles).toContain(cssImport);
resetJsonConfigs(tree);
tree.delete('src/styles.less');
tree.delete(`${sourceRoot}/styles.less`);

tree.create('src/styles.styl', '');
tree.create(`${sourceRoot}/styles.styl`, '');
runner.runSchematic('ng-add', { normalizeCss: true }, tree);
pkgJsonData = JSON.parse(tree.readContent('/package.json'));
expect(tree.readContent('src/styles.styl')).toBe('');
expect(tree.readContent(`${sourceRoot}/styles.styl`)).toBe('');
expect(pkgJsonData.dependencies['minireset.css']).toBeTruthy();
expect(JSON.parse(tree.readContent('/angular.json')).projects['testProj'].architect.build.options.styles).toContain(cssImport);
resetJsonConfigs(tree);
tree.delete('src/styles.styl');
tree.delete(`${sourceRoot}/styles.styl`);
});

it('should properly add web animations', () => {
Expand All @@ -202,7 +204,7 @@ import 'web-animations-js'; // Run \`npm install --save web-animations-js\`.
* that is built with AngularCLI v7.3 or above. All else are considered below v7.3.
*/
it('should enable es5BrowserSupport on projects with ng cli version >= 7.3', () => {
tree.create('src/polyfills.ts', '');
tree.create(`${sourceRoot}/polyfills.ts`, '');
const newJson: any = JSON.parse(tree.read('/angular.json').toString());
newJson.projects['testProj'].architect.build.options['es5BrowserSupport'] = false;
tree.overwrite('/angular.json', JSON.stringify(newJson));
Expand All @@ -226,11 +228,11 @@ import 'web-animations-js'; // Run \`npm install --save web-animations-js\`.
import 'web-animations-js'; // Run \`npm install --save web-animations-js\`.
`;

tree.create('src/polyfills.ts', polyfills);
tree.create(`${sourceRoot}/polyfills.ts`, polyfills);
const newJson: any = JSON.parse(tree.read('/angular.json').toString());
newJson.projects['testProj'].architect.build.options['es5BrowserSupport'] = false;
tree.overwrite('/angular.json', JSON.stringify(newJson));
runner.runSchematic('ng-add', { polyfills: true }, tree);
expect(tree.readContent('src/polyfills.ts').replace(/\r\n/g, '\n')).toEqual(result.replace(/\r\n/g, '\n'));
expect(tree.readContent(`${sourceRoot}/polyfills.ts`).replace(/\r\n/g, '\n')).toEqual(result.replace(/\r\n/g, '\n'));
});
});
12 changes: 8 additions & 4 deletions projects/igniteui-angular/schematics/ng-add/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { chain, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
import { Options } from '../interfaces/options';
import { installPackageJsonDependencies } from '../utils/package-handler';
import { logSuccess, addDependencies, overwriteJsonFile, getPropertyFromWorkspace } from '../utils/dependency-handler';
import { logSuccess, addDependencies, overwriteJsonFile,
getPropertyFromWorkspace, getConfigFile } from '../utils/dependency-handler';

import { addResetCss } from './add-normalize';
import { getWorkspace } from '@schematics/angular/utility/config';
import { getWorkspace, getConfig } from '@schematics/angular/utility/config';
import { WorkspaceSchema } from '@schematics/angular/utility/workspace-models';


Expand All @@ -17,7 +18,9 @@ function propertyExistsInWorkspace(targetProp: string, workspace: WorkspaceSchem
}

function enablePolyfills(tree: Tree, context: SchematicContext): string {
const targetFile = 'src/polyfills.ts';
const workspace = getWorkspace(tree);
const project = workspace.projects[workspace.defaultProject];
const targetFile = getConfigFile(project, 'polyfills');
if (!tree.exists(targetFile)) {
context.logger.warn(`${targetFile} not found. You may need to update polyfills.ts manually.`);
return;
Expand Down Expand Up @@ -50,7 +53,8 @@ function readInput(options: Options): Rule {
if (options.polyfills) {
const workspace = getWorkspace(tree);
const targetProperty = 'es5BrowserSupport';
const polyfillsFile = 'src/polyfills.ts';
const project = workspace.projects[workspace.defaultProject];
const polyfillsFile = getConfigFile(project, 'polyfills');
const propertyExists = propertyExistsInWorkspace(targetProperty, workspace);
let polyfillsData = tree.read(polyfillsFile).toString();
if (propertyExists) {
Expand Down
10 changes: 5 additions & 5 deletions projects/igniteui-angular/schematics/utils/dependency-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ function getTargetedProjectOptions(project: WorkspaceProject<ProjectType>, targe
throw new SchematicsException(`Cannot determine the project's configuration for: ${target}`);
}

function getMainFile(project: WorkspaceProject<ProjectType>): string {
export function getConfigFile(project: WorkspaceProject<ProjectType>, option: string): string {
const buildOptions = getTargetedProjectOptions(project, 'build');
if (!buildOptions.main) {
throw new SchematicsException(`Could not find the project main file inside of the ` +
if (!buildOptions[option]) {
throw new SchematicsException(`Could not find the project ${option} file inside of the ` +
`workspace config (${project.sourceRoot})`);
}

return buildOptions.main;
return buildOptions[option];
}

export function overwriteJsonFile(tree: Tree, targetFile: string, data: any) {
Expand Down Expand Up @@ -113,7 +113,7 @@ function includeDependencies(pkgJson: any, context: SchematicContext, tree: Tree
const workspace = getWorkspace(tree);
const project = workspace.projects[workspace.defaultProject];
const projectOptions = getTargetedProjectOptions(project, 'build');
const mainTsPath = getMainFile(project);
const mainTsPath = getConfigFile(project, 'main');
const hammerImport = 'import \'hammerjs\';\n';
const mainTsContent = tree.read(mainTsPath).toString();
// if there are no elements in the architect.build.options.scripts array that contain hammerjs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ <h2 class="igx-calendar__header-date">
[@animateChange]="animationAction"
(@animateChange.done)="animationDone($event)">
<igx-days-view *ngFor="let view of dayViews; index as i;" [changeDaysView]="true" #days
[selection]="selection"
[locale]="locale"
[value]="value"
[viewDate]="getViewDate(i)"
[weekStart]="weekStart"
[formatOptions]="formatOptions"
[formatViews]="formatViews"
[selection]="selection"
[disabledDates]="disabledDates"
[specialDates]="specialDates"
[hideOutsideDays]="hideOutsideDays"
Expand Down
Loading