* feat: update to Angular 4.3
* Bumps the Angular requirement to 4.3. This is also a prerequisite to the Angular 5 update since we encountered the same errors there.
* Refactors the sidenav not to use a `Promise.resolve` for toggling the initial animation, because it was making it impossible to flush the animations in unit tests. The new simplified approach uses a property to pass the animation state.
* Fixes the nested menu test failures.
* Fixes a "changed after checked" error in the autocomplete demo app.
Relates to #6454.
* fix: e2e failures
* Makes the `openDialog` public.
* Adds a unique id to each `MdDialogRef`, as well as the option to override the id and to look dialogs by id.
* The `afterAllClosed` stream now emits on subscribe if there are no open dialogs.
Fixes#6272.
For the version placeholde replacement a Grep statement is used as well. For Windows environments there is an alternative called `Findstr` which can be used to avoid having a dependency on ported Unix-tools.
The Google Cloud functions for the screenshot-test tool can't be deployed on the CI because there appear to be some errors that indicate that the types for the `jsonwebtoken` package are not installed.
This commit adds the types for the `jsonwebtoken` package to the dependencies (similar as for the dashboard)
Currently developers using Windows are not able to serve the devapp because the secondary entry-points can't be resolved. This can happen because of two things:
* `egrep`, which is an alias for `grep -E` is not part of the global `$PATH` variable on Windows
* The Regular Expression for the `grep` call is ambiguous and expects zero-width characters to be present.
This commit changes the `spawnSync` call to use `grep -E` and also changes the Regular Expression to be more explicit about what characters to match after the `from`.
Recently some utilities have been moved from the Material package to the CDK package. At this point Material added the CDK as a peer dependency.
The screenshot-test application uses the most recent (released) Angular Material version (due to the caret in the semver expression) but doesn't have a dependency on the CDK yet.
This commit adds the CDK as a dependency and also switches Material and the CDK to the latest build artifcats on GitHub (as same as for the dashboard).
A few custom TSLint rules already accept an option array that can be used to whitelist specific files. These whitelists are based on normal Regular Expressions which do not work very well for path matching.
This commit changes the existing whitelists to use minimatch, which is a package that allows matching strings/paths against globs. For rules like `requireLicenseBanner` where the whitelist is hardcoded right now, the whitelist has been introduced as well.
A few rules are not implemented properly because their associated walker is overwriting hooks from the `SyntaxWalker` superclass. Those custom hooks need to invoke the method on the superclass as well.
See https://palantir.github.io/tslint/develop/custom-rules/
* Now the rollup globals for the CDK secondary entry-points are no longer hard-coded. There is already a method called `getSecondaryEntryPointsForPackage` which can be used.
* Makes the packaging more flexible by no longer including checks that are specific to the Angular Material project (e.g `material` => `lib` mapping)
* Updates the code to be more readable by making the packaging more object orientated (TS compilation helpers shouldn't be part of the gulp task generation)
* The pure annotations are no longer added to ES5 bundles of Angular Material or the CDK. The pure annotations should be added by the new build optimizer which is part of the CLI.
Updates tslint to 5.5.0 and resolves some errors that weren't being caught before. This version also has the advantage of printing out the full stack trace if one of the rules throws an error.
Recently the version placeholders had been replaced with hardcoded versions because it was necessary to be able to release the CDK.
But now the version placeholders are replaced in every file and therefore they can be used instead of the hardcoded values.
Adds a custom tslint rule that ensures that we've added all of the necessary external modules to the Rollup config. This is helpful, because forgetting to add a module will log a warning, but it won't break the build necessarily, which is why we occasionally need PRs like #5930.
* In releases there will be a constant called `VERSION` that holds the current version of the installed package (material or cdk)
* This is similar as for every @angular package like core, forms, compiler.
* Switches madge to the programmatic API usage which also allows us to ignore warnings about the dependency on `@angular/cdk` which could not be found by Madge (since it's not a node module)
* This also allows us to reduce the amount of messages that Madge prints. Currently the CI output is not readable because the spinner of the Madge CLI spams everything.
* Currently we always limit the difference in kilobytes to two digits after the decimal point. This also needs to be done for the full package size to avoid super long numbers.
* build: properly lint tooling source code
* Fixes a glob that is responsible for IDE's TypeScript service and also for TSLint
* Fixes strict null check errors in the screenshot app. Currently the app can't be compiled properly since strict null checks had been introduced there as well.
* Address feedback
* Fixes the screenshot functions deploying by properly resolving the path to the Firebase CLI binary.
* Also cleans up the script to be aligned with the dashboard deployment script.
* Removes firebase-tools as dependency from the dashboard since it's not used there anymore
Ocassionally when serving the dev-app, SaSS errors will show up and complain about imports of other SaSS files. This happens because the dev-app builds the theme using SaSS (no prebuilt theme) and every time something changes in the theming files of Material, the dev-app needs to re-build their custom theme. At this point, the dev-app task just watches for changes and rebuilds the dev-app theme. This is problematic because the watch task is not debounced and it will start building the dev-app theme while the SaSS files are not ready yet.
Attempt to make the screenshot task more readable and easier to understand. The screenshot task includes a lot of magic (due to the Firebase functions JWT solution) and we should try our best to make it as readable as possible.
* Updates the dashboard and screenshot deploy script to exit the process immediately if the Firebase token is not set.
* Fixes that the error message of the dashboard still shows the old name of the token variable
* Renames the screenshot variables to follow the dashboard environment variables
* Explicitly specifies the project that will be uploaded in the screenshot deploy script (same as for dashboard)
* Fixes the stylelint deprecation warning
* Fixes that stylelint lints the compiled bundles from `dist/` folders of the `dashboard` or `screenshot` app
* Updates the package-lock with NPM@5.1
Recently the rollup globals have been changed because the operators are no longer applied to the prototype (using `/add/` imports).
This now causes some warnigns and invalid id's in the bundles of the Material examples because those still use the `/add/` imports in some examples.
* Fixes the dashboard deployment to Firebase. Currently the deployment is being cancelled because the functions are having compilation errors (due to TypeScript definition updates of `express`)
The dashboard payload size chart showed invalid curves for the Material and CDK package size. This happened because there were multiple different values for the same day (multiple PRs merged into master at the same day). Removing the duplicate values and only taking the last result of the day ensures that the curve is always correct and also makes the chart way better in performance.
* Now TSLint starts reporting unused variables again (Rule has been un-deprecated and now uses the type checker
* In favor of linting the whole project the tsconfig file inside of `src/` needs to live in the project root.
* With #5429 dgeni runs twice when running the `gulp docs` command. This is because the dgeni generate function has been added to the `dgeni/index.js` file.