* Copies stylesheets of secondary entry-points to the root of the release output
* Better deduping for the `_theming.scss` file (currently includes multiple `cdk-a11y` mixins)
* Removes unused `cdk-a11y` import in the `button-toggle` component.
* Moves some logic out of the `BuildPackage` class (in favor of readability)
Removes the screenshot timeout check, which will cancel the screenshot diff if the last action took longer than 6 minutes. Travis CI will automatically cancel the job if there was no console output for 10 minutes.
* The demo-app no longer builds every secondary entry-point separately. Now the everything of a package is built at the same time (as for the tests). This is significantly faster than before.
* No longer builds the CDK package twice when building the tests or demo-app.
This also required creating a module file for every component because
the max re-export can't be in the same file as the module definition or
else ngc will *only* export the alias.
* Due to the recent changes in the Material package, the payload is no longer calculated correctly. All components have been moved into different bundles instead of a single bundle.
Currently when trying to serve the devapp, the `build-bundles` task seems to be broken. Rollup is not able to properly read the source files from the disk because the `.js` file extension is missing.
* build: cancel screenshot diff if there is no activity
* No longer just gives the screenshot diff task 8 minutes to pass, because the run time can vary. Now it just exits the process if the last action in the task takes longer than 6 minutes.
* Instead of just closing the firebase connection, the process will be exited with an error code. Just closing the connection is not helpful and breaks the screenshot diff Web Interface.
* Add comments
Before this change, all of `@angular/material` was bundled into a
single, flat JS file.
After this change, each top-level component (i.e., each directory under
`src/lib`) will be have its own JS file (and d.ts and metadata.json).
The benefit of this change is that current versions of webpack will be
able to do a much better job of only including the code an app is using.
It also allows (but does not require) people to explicitly import from specific components,
e.g.
```
import {MdButtonModule} from '@angular/material/button';
``
For development _within Angular Material itself_ we have to use these
deeper imports because the root `@angular/material` doesn't exist until
we build the relase package.
Additionally, this PR adds a `tsconfig.json` for each dir under `src/`
with the correct path mappings for that directory, so that IDEs will
correctly generate imports.
Closure Compiler CI check is also disabled by this PR; it cannot work
with the new package structure until a release with
https://github.com/google/closure-compiler/pull/2600 is made available.
* create moment adapter
* add Moment to karma.conf.js
* use MAT_DATE_LOCALE
* tests are now running
* add in tests
* WIP: demo
* add synthetic default imports for moment
* add locale switching to demo
* fix moment import issues with tests
* fix aot
* address comments
* fix closure issue
* add additional explanation of rollup issue
* remove moment adapter demo since it is preventing sync into g3 (will add
back as a docs example in future PR).
* fix bad rebase
* docs: sort class properties and methods
- Properties are sorted in the order of [Inputs, Outputs, neither]. Secondary sorting done alphabetically.
- Methods are sorted alphabetically.
- All deprecated members are sorted to the end.
* Use the same sort for methods and properties
* Reworks the `noViewEncapsulationRule` to turn into a more generic rule that allows us to validate multiple properties and decorators.
* Fixes a few components that were caught without a `moduleId` after implementing the new rule.
* Adds validation that all components have a `moduleId`.
Fixes#6778.
With the recent change of the CDK entry points the copy glob in `build-release.ts` has been updated accidentally to no longer include the ".umd.min.js" files.
Fixes#6796
Fixes our custom tslint rules not executing IDEs, because they're written in TypeScript. This is the preferred option over switching them back to ES6, because some rules require access to TS files from other parts of the build (e.g. the Rollup globals rule).
Currently only variables that don't start with an underscore will be checked by TSLint.
This doesn't make sense, because variables get prefixed with an underscore to indicate that they are not part of the public API, but still need to be public in favor of AOT compilation for example. This means that those properties are having the public modifier set (explicitly or automatically) and therefore won't be treated as unused anyway.
**TL;DR**: With this change, prefixed variables will be checked by the `no-unused-variable` TSLint rule and those which are marked as `private` and are unused will be catched by TSLint.
On Windows, if someone runs the `gulp build-examples-module` task, the `example-module.ts` file will be generated incorrectly. Path delimiters are missing in the TypeScript imports because the Windows path delimiters are being removed accidentally.
Currently the secondary entry-points are resolved by running `grep` as a child process. This works fine on MacOS, Linux and on Windows if Git Bash is installed.
With this change, the secondary entry-points will be resolved on Windows using the `findstr` command. The `findstr` command is always available on Windows and therefore Git Bash is no longer a requirement.
Closes#6211
Currently the custom TSLint rules of the repository had to be pushed as JavaScript files because TSLint was only able to run them as JavaScript files.
Recently with TSLint 5.7.0 (https://github.com/palantir/tslint/commit/90dd3f472199c68662eaecc47663969cb8ea6ed1), custom rules can be also loaded directly as TypeScript files in combination with ts-node.
* 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)