Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync from upstream #1

Merged
merged 492 commits into from
Apr 16, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
492 commits
Select commit Hold shift + click to select a range
b939cd8
fix(tabs): remove body and header from compatibility (#3168)
andrewseguin Feb 18, 2017
6595ad8
feat(ripple): expose ripple directive in template (#3165)
devversion Feb 21, 2017
bb2392f
feat(select): add floatingPlaceholder option (#2571)
crisbeto Feb 21, 2017
bd6feb3
feat(screenshot): Add a gulp to compare screenshot diffs, upload resu…
tinayuangao Feb 21, 2017
83b5842
feat(snack-bar): add `dismiss` method to `MdSnackBar` service (#3069)
crisbeto Feb 21, 2017
537ef17
Make slide toggle e2e test take screenshots when ripple disappeared (…
tinayuangao Feb 21, 2017
cc6635a
chore: update status of components, high level tasks (#3177)
kara Feb 21, 2017
7c1c220
docs(dialog): change then to subscribe (#3186)
comfroels Feb 21, 2017
85ba82a
fix(tooltip): avoid capturing the initial tap on mobile (#2423)
crisbeto Feb 21, 2017
0544deb
feat(button-toggle): Add a focus overlay for button-toggle (#3119)
tinayuangao Feb 21, 2017
634e414
Fix icon not found (#3129)
dominikstrasser Feb 21, 2017
1f19ef0
fix(pseudo-checkbox): alignment issue and border color (#3144)
crisbeto Feb 21, 2017
ceb472b
fix(button): square ripple in compatibility mode (#3167)
crisbeto Feb 21, 2017
e3b2486
refactor(autocomplete): merge optionSelections into single observable…
crisbeto Feb 21, 2017
5492225
feat(dialog): add enter/exit animations (#2825)
crisbeto Feb 22, 2017
194714a
test(e2e): Fix e2e flakes by setting default window size (#3234)
tinayuangao Feb 22, 2017
47cc025
chore: add button to toggle theme in demo-app (#3093)
devversion Feb 22, 2017
bbda25f
docs: Update theming-your-components.md (#3218)
trik Feb 22, 2017
3edf105
fix(checkbox): create ripple on label mousedown (#3206)
devversion Feb 23, 2017
f8fde13
feat(slide-toggle): add option to disable ripple (#3195)
devversion Feb 23, 2017
a306a8e
fix(connected-position): error if none of the initial positions fit i…
crisbeto Feb 23, 2017
d744a5f
fix(button-toggle): only show focus style when focused via keyboard (…
tinayuangao Feb 23, 2017
a4da08b
fix(autocomplete): prevent opening on load in IE (#3190)
crisbeto Feb 23, 2017
ca56ebb
Revert "update: add button to toggle theme in demo-app" (#3271)
mmalerba Feb 23, 2017
c203589
fix(compatibility): remove ink bar from compatibility check (#3267)
andrewseguin Feb 23, 2017
fda8de5
docs(list): use md-list-icon in example code (#3284)
irfanhudda Feb 26, 2017
4f101a1
chore(autocomplete): removed un-used "this" from html bindings (#3278)
dharmeshpipariya Feb 27, 2017
8482bbf
feat(autocomplete): support static placeholders (#3115)
kara Feb 27, 2017
cbd42f0
feat(overlay): allow theming overlay-based components (#2967)
crisbeto Feb 27, 2017
d97debe
fix(tabs): missing mat class on tab group (#3038)
andrewseguin Feb 27, 2017
369931e
fix(slide-toggle): ripple fade-in too slow (#3170)
devversion Feb 27, 2017
5ef3084
fix(menu): incorrect text alignment in IE/Edge (#3268)
crisbeto Feb 27, 2017
c21ff40
fix(autocomplete): fix key manager instantiation (#3274)
kara Feb 27, 2017
817dcfd
fix(connected-overlay): direction not being updated (#3293)
crisbeto Feb 27, 2017
9cfe603
test(): add testing utilities for components (#2943)
devversion Feb 27, 2017
cbd1ff9
fix(tabs): set tab body content to 100% (#3162)
andrewseguin Feb 27, 2017
d1abc9e
fix(toolbar): incorrect height for soft-keyboards (#3312)
devversion Feb 27, 2017
b062c9c
docs(autocomplete): copy over autocomplete example (#3340)
kara Feb 28, 2017
7d53acd
chore: fix autocomplete folder (#3344)
kara Feb 28, 2017
cb57660
fix(docs): only rewrite relative links (#3339)
devversion Mar 1, 2017
7a40ec7
docs(dialog): Add note about AOT compilation. (#3272)
topherfangio Mar 1, 2017
09c6386
fix(select): animation jump in Chrome and blurry text in IE (#3328)
crisbeto Mar 1, 2017
beb0edf
fix(slide-toggle): occasional element jumping (#3311)
devversion Mar 1, 2017
e3ba1e1
feat(ripple): add option for persistent ripples (#3315)
devversion Mar 1, 2017
00de2d7
fix(tabs): remove flex; bring ink into same parent as links (#3331)
andrewseguin Mar 1, 2017
4935b24
build: make app tasks optional (#3361)
devversion Mar 1, 2017
252db25
build: fix dgeni warning for component-groups (#3362)
devversion Mar 1, 2017
eba7641
fix(input): remove jitter that occurs on focus (#3343)
mmalerba Mar 1, 2017
8aa9857
fix(checkbox): switch checkbox behaviors for click and change events …
tinayuangao Mar 1, 2017
1491291
feat(screenshot): Update screenshot golds for merged PR (#3365)
tinayuangao Mar 1, 2017
f40b1b2
fix(input): fix chrome autofill style (#3366)
mmalerba Mar 2, 2017
4e4c6a6
refactor(focus-trap): convert to directive (#3184)
crisbeto Mar 2, 2017
bdbda71
chore: update default plunker link
kara Mar 3, 2017
324da5b
fix(sidenav): throw error when sidenav has 2 sidenavs on the same sid…
mmalerba Mar 3, 2017
0560eab
test(): cleanup screenshot files in e2e-app (#3367)
devversion Mar 3, 2017
d81445b
fix(focus-trap): enabled property not being coerced (#3417)
crisbeto Mar 3, 2017
1bf1df7
docs(autocomplete): fix a11y of autocomplete example
kara Mar 3, 2017
0ac6e18
docs(autocomplete): add guidance about filter criteria
kara Mar 4, 2017
5cc50d2
fix(ripple): fade-out-all should hide all ripples (#3400)
devversion Mar 4, 2017
f4323b2
fix(checkbox): show checkbox animation only if user click or indeterm…
tinayuangao Mar 4, 2017
fb565c0
feat(checkbox): add value attribute to md-checkbox (#2701)
tinayuangao Mar 4, 2017
c934753
fix(radio): add focus indication (#3402)
crisbeto Mar 4, 2017
738e9bf
fix(autocomplete): remove max width for autocomplete panel (#3297)
christikaes Mar 4, 2017
be167c9
fix(button-toggle): fix color for selected button toggle and selected…
tinayuangao Mar 4, 2017
63d4359
fix(input): make icons in prefix/suffix the right size (#3342)
mmalerba Mar 4, 2017
94adecd
refactor(focus-origin-monitor): complete stream when stopping monitor…
crisbeto Mar 4, 2017
b808256
docs(dialog): update dialog afterClosed (#3411)
Mar 4, 2017
9d4d692
docs(progress-spinner): fix typo in progress spinner example (#3299)
irfanhudda Mar 4, 2017
01188d9
fix(checkbox): add focus indication (#3403)
crisbeto Mar 4, 2017
3ff383c
feat(ripple): add way to globally disable ripples (#3383)
devversion Mar 4, 2017
02f4bc3
refactor: consistent module declaration (#3095)
crisbeto Mar 4, 2017
8b2ae0d
fix(focus-trap): avoid closure compiler issues when adding anchors (#…
crisbeto Mar 6, 2017
b135b64
chore(menu): switch menu-item to common coercion logic (#3065)
crisbeto Mar 7, 2017
842896b
fix(list-key-manager): exception when no initial active item (#3431)
crisbeto Mar 7, 2017
d06ad75
fix(focus-trap): exception when element contains SVG on IE (#3432)
crisbeto Mar 7, 2017
819fa0b
fix(select): initial value not being displayed with FormControl and O…
crisbeto Mar 7, 2017
4ee2aef
build: run tslint on tool files (#3436)
devversion Mar 7, 2017
d78a370
build: upgrade dev dependencies (#3440)
devversion Mar 7, 2017
c1004cb
perf(scroll-dispatcher): lazily subscribe to global events (#3270)
crisbeto Mar 9, 2017
bbe9519
build: upload coverage to firebase (#3435)
devversion Mar 9, 2017
58c5d17
fix(ripple): rename selector for the ripple (#3482)
andrewseguin Mar 9, 2017
cbdf1a9
docs(autocomplete): fix code snippet (#3509)
kara Mar 9, 2017
340a42a
docs(tabs): make non-exported comps as docs private (#3510)
andrewseguin Mar 9, 2017
e019f69
docs(card): remove internal classes from docs (#3511)
kara Mar 9, 2017
9b4be13
chore(): remove TODO from menu trigger desc (#3512)
kara Mar 9, 2017
12c2b61
docs(button): mark classes to exclude from docs (#3513)
kara Mar 9, 2017
79db43d
Add doc for MdCheckboxChange (#3514)
tinayuangao Mar 9, 2017
2f4e05c
chore(menu): update menu position attributes to be camelCase (#3515)
kara Mar 9, 2017
6367dc5
docs(slider): clean up docs (#3516)
mmalerba Mar 9, 2017
9c14332
docs(select): add docs for static placeholder (#3519)
kara Mar 9, 2017
d173eb1
docs(grid-list): improve basic grid-list example (#3520)
kara Mar 9, 2017
ce0e933
clean up button toggle docs (#3521)
tinayuangao Mar 9, 2017
dcc8576
feat(select): add multiple selection mode (#2722)
crisbeto Mar 9, 2017
5d6920d
fix(button): use FocusOriginMonitor for focus styles (#3294)
mmalerba Mar 9, 2017
84b5c3b
fix(menu,tooltip): Ensure subscription exists before unsubscribing. (…
trshafer Mar 9, 2017
0f28daf
fix(menu): not emitting close event when closing via the backdrop (#3…
crisbeto Mar 9, 2017
fc31717
chore: publish docs content under angular org (#3508)
jelbourn Mar 9, 2017
5960ade
class alias tags in html generated from markdown (#3525)
mmalerba Mar 9, 2017
9849c53
stop screenshot (#3506)
tinayuangao Mar 9, 2017
f27617a
fix(tab-nav): add constructor back for ripple (#3537)
andrewseguin Mar 9, 2017
f02af52
style(progress): added transition to color change (#3116)
EladBezalel Mar 10, 2017
2d16a24
fix(chips): Fix adding new chips on demo page (#3426)
dozingcat Mar 10, 2017
75b440a
Adding colon for consistency. (#3248)
adyavanapalli Mar 10, 2017
17bf5e5
fix(card): removed header height (#3450)
EladBezalel Mar 10, 2017
fb75a13
feat(ripple): support for global ripple options (#3463)
devversion Mar 10, 2017
11dec36
fix(select): unable to set a tabindex (#3479)
crisbeto Mar 10, 2017
23ee633
build: fix karma console log (#3484)
devversion Mar 10, 2017
359c9bb
fix(input): make all icons in input containers the correct size (#3489)
marshall007 Mar 10, 2017
0a7e293
docs: remove mat stylers from docs (#3517)
andrewseguin Mar 10, 2017
22668af
docs(getting-started): revise docs (#3523)
andrewseguin Mar 10, 2017
fe315ef
clean up radio docs (#3524)
tinayuangao Mar 10, 2017
675c9df
fix(autocomplete): "undefined" being displayed on empty control with …
crisbeto Mar 10, 2017
4d4a63e
fix: coverage issue with saucelabs (#3540)
devversion Mar 10, 2017
a4e2de7
fix(autocomplete): fix down arrow use with ngIf (#3493)
kara Mar 10, 2017
ee853b9
fix(tab): use MD_RIPPLE_GLOBAL_OPTIONS in tab (#3553)
tinayuangao Mar 10, 2017
cdb3763
chore(tools/gulp): add html minifying task to generated docs (#3476)
riavalon Mar 10, 2017
b9b014a
fix(slider): unable to reset tickInterval after it has been set (#3488)
crisbeto Mar 13, 2017
290f710
fix(tabs): change color for disabled tab label (#3483)
jefersonestevo Mar 13, 2017
bcb16c6
feat(slider): differentiate sliders focused via keyboard vs other mea…
mmalerba Mar 13, 2017
932b4a0
fix(autocomplete): aria-expanded should be updated when panel hides (…
kara Mar 13, 2017
f8cdd92
fix(input): label animation shifting sibling labels (#3568)
crisbeto Mar 13, 2017
7ffaf9e
fix(input): overflow-y scrollbar is displayed (IE) (#3571)
Mar 13, 2017
06fd08d
build: replace forbidden-identifiers with tslint (#3579)
devversion Mar 13, 2017
ef3aa65
bug(md-slide-toggle): slide toggle should fit to it's content width (…
jefersonestevo Mar 13, 2017
19c19c0
bug(md-select): change the arrow position to absolute (#3580)
jefersonestevo Mar 14, 2017
529eaf8
Revert "bug(md-select): change the arrow position to absolute (#3580)…
mmalerba Mar 14, 2017
0609e29
build: create a util directory (#3558)
devversion Mar 14, 2017
5346353
fix(slide-toggle): invalid change events with no new value (#3555)
devversion Mar 14, 2017
6915e8a
fix(autocomplete): update overlay ref width on menu trigger (#3573)
emoralesb05 Mar 14, 2017
bf2b615
fix(package.json): Fix failing `npm run api` command (#3462)
dalelotts Mar 14, 2017
05c865d
build: include license in docs-content (#3557)
devversion Mar 14, 2017
aa3360a
feat(list): add ripples to list items that are links (#930)
dozingcat Mar 15, 2017
91aafff
docs: Update README.md - add tree to feature status list (#3564)
esinek Mar 17, 2017
5f3abae
build: show inherited members in dgeni (#3599)
devversion Mar 17, 2017
e120e8d
fix(dialog): leaking component instance references (#2875)
crisbeto Mar 17, 2017
8f76f96
fix(interactivity-checker): cast node name to lowercase for isInputEl…
changLiuUNSW Mar 17, 2017
7cfece2
build: replace gulp-autoprefixer (#3563)
crisbeto Mar 17, 2017
4e38f69
feat(tooltip): allow tooltip be disabled (#3578)
andrewseguin Mar 17, 2017
6b6b392
bug(button): remove dotted border on firefox (#3583)
jefersonestevo Mar 17, 2017
f526c9d
build(tslint): disallow var keyword (#3625)
devversion Mar 17, 2017
b810e11
build: ship esm bundle (#3443)
devversion Mar 17, 2017
3ad6ff0
fix(button): persist theme color of button when leaving hover state (…
willshowell Mar 17, 2017
5197906
build(components): update TypeScript ScriptTarget option (#3663)
joshwiens Mar 20, 2017
03e88ff
build: update saucelabs tunnel binary (#3658)
devversion Mar 20, 2017
259ff5f
build: include scss files in releases (#3661)
devversion Mar 20, 2017
2dbf87c
build: don't run karma if typescript compilation fails (#3668)
devversion Mar 20, 2017
5c1474d
chore: remove dom projection service (#3656)
crisbeto Mar 20, 2017
22b0660
fix(core): log warning if doctype is missing (#2849)
crisbeto Mar 20, 2017
7fcb93b
fix(portal-host): unable to clear and portal reference not being set …
crisbeto Mar 20, 2017
c524438
chore: export ripple timing constants (#3650)
mertdeg2 Mar 20, 2017
cd55082
feat: angular 4 compatibility (#3608)
crisbeto Mar 23, 2017
a25e7bb
chore: bump to angular 4 final (#3752)
crisbeto Mar 24, 2017
7122975
build: update packaging to match angular/angular (#3751)
jelbourn Mar 24, 2017
de21d9e
build: fix build artifacts (#3771)
devversion Mar 24, 2017
5f360f9
build: package theming files into release output (#3776)
jelbourn Mar 25, 2017
23d18a8
test(screenshot): enable screenshot tests w/ Firebase Functions and J…
tinayuangao Mar 25, 2017
75996b5
fix(autocomplete): not showing panel on first focus in certain cases …
crisbeto Mar 25, 2017
5c2b449
perf(scroll-dispatcher): avoid triggering change detection on scroll …
crisbeto Mar 27, 2017
dc5c869
fix(input): don't animate label when value is set programmatically (#…
mmalerba Mar 27, 2017
220163e
fix(input): make sure injected NgControl belongs to the input (#3700)
mmalerba Mar 27, 2017
e964734
fix(select): show focus indicator even with validation errors (#3743)
jefersonestevo Mar 27, 2017
e482cb6
style(button): polished icon buttons ripples (#3208)
EladBezalel Mar 27, 2017
c29f8ca
feat(input): add directive for displaying error messages (#3560)
crisbeto Mar 27, 2017
aa5925b
fix(overlay): ensure proper stacking order when attaching (#3581)
crisbeto Mar 27, 2017
49c3675
add exportAs to focusTrap directive (#3688)
mmalerba Mar 27, 2017
cb85eeb
fix(input): fix blank aria-describedBy (#3713)
mmalerba Mar 27, 2017
7cff349
fix(input): baseline alignment on textarea (#3714)
mmalerba Mar 27, 2017
2ccf0ae
fix(input): change dividerColor to color (#3726)
mmalerba Mar 27, 2017
7a60489
fix(checkbox): focus origin for focus method (#3763)
devversion Mar 27, 2017
038a337
fix(select): allow custom aria-label (#3765)
devversion Mar 27, 2017
1ae81a4
fix(progress-spinner): not redrawing when changing modes (#3672)
crisbeto Mar 28, 2017
6108563
bug(autocomplete): deselect the other options when the user select an…
jefersonestevo Mar 28, 2017
68db6ba
fix(scroll-dispatcher): unable to unsubscribe from global listener (#…
crisbeto Mar 28, 2017
ccdd0f2
chore(progress-spinner): remove md-progress-circle alias (#3735)
crisbeto Mar 28, 2017
28f1ec3
feat(slider): add theme color support (#3766)
mmalerba Mar 28, 2017
3464011
fix(list): add font-family style to subheader (#3056)
chouclee Mar 29, 2017
cd0b853
fix(slide-toggle): remove host element margin (#3761)
devversion Mar 29, 2017
d7d2b16
fix(dialog): delay focus until animation is done (#3774)
crisbeto Mar 29, 2017
51cfb5f
build: run closure-compiler (#3789)
devversion Mar 29, 2017
becb7a8
build: tsconfig for editor warnings (#3791)
devversion Mar 29, 2017
07bc4ad
build: fix serve task (#3794)
devversion Mar 29, 2017
8e6720b
fix(dialog): leaking MdDialogContainer references (#2944)
crisbeto Mar 29, 2017
52ea7a3
fix(select): wrong item order in label in rtl (#3567)
crisbeto Mar 29, 2017
07793a4
fix(tabs): re-align ink bar on direction change (#3622)
crisbeto Mar 29, 2017
6d6c12d
fix(input): don't add empty prefix & suffix wrappers (#3724)
mmalerba Mar 29, 2017
bedf5a1
fix(autocomplete): do not trigger submit on ENTER (#3727)
jefersonestevo Mar 29, 2017
c4ec662
feat(slide-toggle): add ripple focus indicator (#3739)
devversion Mar 29, 2017
4282917
feat(theming): log a warning if core theme isn't loaded (#3781)
crisbeto Mar 29, 2017
e82457c
fix(select): exception if selected value is accessed on init (#3785)
crisbeto Mar 29, 2017
ab77fa9
build: fix closure tsconfig path (#3835)
devversion Mar 29, 2017
a71a5af
feat(dialog): allow for the dialog dimensions to be updated (#2940)
crisbeto Mar 31, 2017
2240b6c
refactor(focus-origin-monitor): rename unmonitor to stopMonitoring (#…
devversion Mar 31, 2017
a225b77
build: silent sass bundling (#3784)
devversion Mar 31, 2017
724170d
demo(slide-toggle): fix slide-toggle required demo (#3793)
devversion Mar 31, 2017
904c71e
fix(slide-toggle): fix unavailable unmonitor call (#3862)
devversion Mar 31, 2017
e7a4a03
fix: use correct access tokens for artifact publishing (#3860)
jelbourn Mar 31, 2017
f40296e
fix: aot runtime issues (#3807)
devversion Mar 31, 2017
c486cf8
test(select): various test inconsistencies (#3861)
crisbeto Apr 5, 2017
bc074a1
docs(dialog): fix misleading code comment (#3894)
johanb Apr 5, 2017
9361ced
chore: fix screenshot results to be per-sha (#3887)
tinayuangao Apr 5, 2017
4c407f0
docs(tabs): use two-way binding syntax in API doc (#3885)
M-a-c Apr 5, 2017
3f5894e
fix: deprecate MaterialModule (#3840)
jelbourn Apr 5, 2017
1d86564
docs(theming): list prebuilt themes (#3826)
M-a-c Apr 5, 2017
59c6289
docs(dialog): document viewContainerRef config option (#3825)
M-a-c Apr 5, 2017
98c0b1d
build: fix build script in package.json (#3915)
Apr 5, 2017
1326234
ci: run with LTS node version (#3906)
devversion Apr 6, 2017
f396657
chore: bump version to beta.3 and add changelog (#3953)
jelbourn Apr 7, 2017
94320c4
chore: update tslint to v5 and fix newly surfaced issues (#3958)
jelbourn Apr 7, 2017
3819cc6
chore: copy LICENSE to release package (#3957)
jelbourn Apr 7, 2017
8a02914
chore: fix typo in beta.3 changelog (#3962)
gkohen Apr 8, 2017
449b882
docs(guide): theme scss path update (for beta 3) (#3964)
Apr 8, 2017
b1e5ff6
docs: fix package paths (#3966)
devversion Apr 8, 2017
1da2b70
chore: add additional structure to generated docs (#3985)
jelbourn Apr 8, 2017
2a1a070
docs: fixed stylesheet path to match the relevant path that is produc…
Wo1v3r Apr 8, 2017
c38c9c3
chore: update getting-started guide for beta.3 (#3986)
jelbourn Apr 9, 2017
e0124bb
chore: publish examples assets for plunker with docs content (#3987)
jelbourn Apr 10, 2017
3b2f66d
chore: add api design section to coding standards (#4017)
jelbourn Apr 10, 2017
b1e31bd
chore: add more naming and inheritence guidance to coding standards (…
jelbourn Apr 10, 2017
9490c90
docs: clarify points to address common issues (#4021)
jelbourn Apr 11, 2017
cc8f871
fix(slider,slide-toggle): use the grab cursor (#3821)
crisbeto Apr 11, 2017
033fe8d
docs(sidenav): add "push" mode to api docs (#3803)
Apr 11, 2017
3796f69
fix(dialog): unable to press escape to close in lazy-loaded module (#…
crisbeto Apr 11, 2017
edf01c0
fix(tooltip): wrong position when using OnPush change detection (#3671)
crisbeto Apr 11, 2017
eef57f6
fix(snack-bar): allow multi-line text (#3626)
crisbeto Apr 11, 2017
da33c03
fix(overlay): Render the templates before placing them in the overlay…
trshafer Apr 11, 2017
7f65f31
fix(button): ripple color for raised buttons (#3829)
devversion Apr 11, 2017
e22b55e
fix(checkbox, radio): ripple error on focus event (#3869)
devversion Apr 11, 2017
eaf16c8
fix(select): wrong panel width if element is hidden initially (#3647)
crisbeto Apr 11, 2017
21cbf34
fix(input): make start and end hints interact well when their text ne…
mmalerba Apr 11, 2017
f412499
fix(list): icon size in dense mode (#3913)
crisbeto Apr 11, 2017
857c217
perf(dialog): switch dialog animations to translate3d (#3905)
devversion Apr 11, 2017
a65d2f4
fix(compatibility): error in theme check with angular universal (#3872)
crisbeto Apr 11, 2017
2d50044
fix(compatibility): throw better error when wrong prefix is used (#3871)
crisbeto Apr 11, 2017
9d719c5
fix(grid-list): export MdGridTile. Fixes #2408 (#4000)
jelbourn Apr 11, 2017
3545df7
build: fix karma pattern warnings (#4057)
devversion Apr 12, 2017
abd2ac6
build: create material-examples package (#4046)
devversion Apr 12, 2017
60ea218
build: use version placeholder in packages (#4065)
devversion Apr 13, 2017
205690f
build: publish material-examples package to docs content (#4064)
devversion Apr 13, 2017
fe9204e
chore: fix typos in coding standards (#4043)
M-a-c Apr 13, 2017
8b411ad
build: copy readme to releases (#4079)
devversion Apr 13, 2017
85391ca
chore: remove unused bash scripts (#4080)
devversion Apr 13, 2017
b5f15ad
build: dgeni add deprecated marker (#4028)
devversion Apr 13, 2017
0acd4d9
build: create sourcemap files (#4022)
devversion Apr 13, 2017
1de1f72
docs(theming): cleanup grammar on overlay theming (#4089)
willshowell Apr 13, 2017
a05aa7c
docs(guides): add guide for using compatibility mode (#4082)
epelc Apr 14, 2017
dbe2c33
chore: fix typo in closure compiler script (#4040)
M-a-c Apr 14, 2017
a773515
build: detect todos in public comments (#4059)
devversion Apr 14, 2017
02b2cc9
chore: remove public folder (#4061)
devversion Apr 14, 2017
efb39da
fix(checkbox): support OnPush for disabled with forms module (#4087)
tinayuangao Apr 14, 2017
21f8899
fix(input): incorrect height with autosize (#4084)
devversion Apr 14, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#### What are the steps to reproduce?

Providing a Plunker (or similar) is the *best* way to get the team to see your issue.
Plunker template: http://plnkr.co/edit/o077B6uEiiIgkC0S06dd
Plunker template: https://goo.gl/DlHd6U


#### What is the use-case or motivation for changing an existing behavior?
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/dist
/tmp
/deploy
/screenshots

# dependencies
/node_modules
Expand Down
25 changes: 12 additions & 13 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ language: node_js
sudo: false

node_js:
- '6.9.1'
- '6.10.2'

addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- libstdc++6
jwt:
# SAUCE_ACCESS_KEY<=secret for FIREBASE_ACCESS_TOKEN to work around travis-ci/travis-ci#7223, unencrypted value in valentine as FIREBASE_ACCESS_TOKEN>
# we alias FIREBASE_ACCESS_TOKEN to $SAUCE_ACCESS_KEY in env.sh and set the SAUCE_ACCESS_KEY there
- secure: "PKts/IbxuJRWWOEeiGbl8Z9zds0M+hIdCH/g/E4WbQ9yzSvSbdwzfmRfFccQFjxjsrY7+SJMVjsURZy+xUyBpzqgWYHUItnSVqjZb8DlyAU2IXyg8TM9BVLkGGe6k5k4PIFVmfMMMzQwWMM0X0W9w3oYmfHL5egxwSHvf9HIqLolLNXg8sqamIdS5d5KoCXf1c+oRjN/IMBktzNBR6N4OFOZQXVoepXNiIvTWAcTtOPBvFWdKP2n7RVioHKdm4a85aCUpDJp+LYGaLqiQZoRzmzfVTnAhTAPdd4ao5w/+jojrfZIHV55bqYF9rLnQMTneKsiyVNVYJzOLuxmARa/EEKfZld+J3rX4/o4cogrU38YSZF+T7J9g/7CTsnIZ3F6W6m+8iJbIBh55nGOQi5PVe458Q/nGb3fgQd2Z4+6lK9k479H4Ssh/Y7hbVQbepqEVIXzZKqWX6/ZE4iWoR/Q2dm0hySFmmB/R2etixX5JxhnHvgobTYIQ+1liJVp/3YFW1ru64Yg6yz/V291Bhh9g31znmTROCJ/usAmZZaLUqW1TDKnLIMP+M74MF9XERqcWKywXRFwxP4E5uDnx/vAyN49gL+SDfrBUxUtXrTkKZAlglwo9SgA7cOYEPWrionvKcGm87gCBYHFUmXZNQVzh212fpuJYXb/vy0sPDj8La4="

branches:
only:
Expand All @@ -19,30 +18,30 @@ env:
global:
- LOGS_DIR=/tmp/angular-material2-build/logs
- SAUCE_USERNAME=angular-ci
- SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
- BROWSER_STACK_USERNAME=angularteam1
- BROWSER_STACK_ACCESS_KEY=BWCd4SynLzdDcv8xtzsB
- ARCH=linux-x64
- BROWSER_PROVIDER_READY_FILE=/tmp/angular-material2-build/readyfile
- BROWSER_PROVIDER_ERROR_FILE=/tmp/angular-material2-build/errorfile
# GITHUB_TOKEN_ANGULAR
- secure: "fq/U7VDMWO8O8SnAQkdbkoSe2X92PVqg4d044HmRYVmcf6YbO48+xeGJ8yOk0pCBwl3ISO4Q2ot0x546kxfiYBuHkZetlngZxZCtQiFT9kyId8ZKcYdXaIW9OVdw3Gh3tQyUwDucfkVhqcs52D6NZjyE2aWZ4/d1V4kWRO/LMgo="

matrix:
# Order: a slower build first, so that we don't occupy an idle travis worker waiting for others to complete.
- MODE=lint
- MODE=extract_metadata
- MODE=aot
- MODE=closure-compiler
- MODE=payload
- MODE=e2e
- MODE=saucelabs_required
- MODE=browserstack_required
- MODE=saucelabs_optional
- MODE=browserstack_optional

matrix:
fast_finish: true
allow_failures:
- env: "MODE=saucelabs_optional"
- env: "MODE=browserstack_optional"

before_install:
- source ./scripts/ci/env.sh

install:
- npm install

Expand Down
354 changes: 352 additions & 2 deletions CHANGELOG.md

Large diffs are not rendered by default.

224 changes: 189 additions & 35 deletions CODING_STANDARDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@ ES6 or TypeScript.
### General

#### Write useful comments
Comments that explain what some block of code does are nice; they can tell you something in less time than it would take to follow through the code itself.
Comments that explain what some block of code does are nice; they can tell you something in less
time than it would take to follow through the code itself.

Comments that explain why some block of code exists at all, or does something the way it does,
are _invaluable_. The "why" is difficult, or sometimes impossible, to track down without seeking out
the original author. When collaborators are in the same room, this hurts productivity.
Comments that explain why some block of code exists at all, or does something the way it does,
are _invaluable_. The "why" is difficult, or sometimes impossible, to track down without seeking out
the original author. When collaborators are in the same room, this hurts productivity.
When collaborators are in different timezones, this can be devastating to productivity.

For example, this is a not-very-useful comment:
Expand All @@ -37,13 +38,18 @@ if (!$attrs['tabindex']) {
}
```

In TypeScript code, use JsDoc-style comments for descriptions (on classes, members, etc.) and
use `//` style comments for everything else (explanations, background info, etc.).

In SCSS code, always use `//` style comments.

#### Prefer more focused, granular components vs. complex, configurable components.

For example, rather than doing this:
```html
<md-button>Basic button</md-button>
<md-button class="md-fab">FAB</md-button>
<md-button class="md-icon-button">pony</md-button>
<md-button class="mat-fab">FAB</md-button>
<md-button class="mat-icon-button">pony</md-button>
```

do this:
Expand All @@ -54,47 +60,195 @@ do this:
```

#### Prefer small, focused modules
Keeping modules to a single responsibility makes the code easier to test, consume, and maintain.
ES6 modules offer a straightforward way to organize code into logical, granular units.
Keeping modules to a single responsibility makes the code easier to test, consume, and maintain.
ES6 modules offer a straightforward way to organize code into logical, granular units.
Ideally, individual files are 200 - 300 lines of code.

As a rule of thumb, once a file draws near 400 lines (barring abnormally long constants / comments),
start considering how to refactor into smaller pieces.

#### Less is more
Once a feature is released, it never goes away. We should avoid adding features that don't offer
high user value for price we pay both in maintenance, complexity, and payload size. When in doubt,
leave it out.
Once a feature is released, it never goes away. We should avoid adding features that don't offer
high user value for price we pay both in maintenance, complexity, and payload size. When in doubt,
leave it out.

This applies especially to providing two different APIs to accomplish the same thing. Always
prefer sticking to a _single_ API for accomplishing something.

### 100 column limit
All code and docs in the repo should be 100 columns or fewer. This applies to TypeScript, SCSS,
HTML, bash scripts, and markdown files.

### API Design

#### Boolean arguments
Avoid adding boolean arguments to a method in cases where that argument means "do something extra".
In these cases, prefer breaking the behavior up into different functions.

```ts
// AVOID
function getTargetElement(createIfNotFound = false) {
// ...
}
```

This applies especially so to providing two different APIs to accomplish the same thing. Always
prefer sticking to a _single_ API for accomplishing something.
```ts
// PREFER
function getExistingTargetElement() {
// ...
}

function createTargetElement() {
// ...
}
```

### TypeScript

#### Provide function descriptions
For functions that are more complicated than a simple getter/setter, provide at least a brief
sentence explaining what the function does and/or _why_ it does something.
#### Typing
Avoid `any` where possible. If you find yourself using `any`, consider whether a generic may be
appropriate in your case.

For methods and properties that are part of a component's public API, all types must be explicitly
specified because our documentation tooling cannot currently infer types in places where TypeScript
can.

#### Fluent APIs
When creating a fluent or builder-pattern style API, use the `this` return type for methods:
```
class ConfigBuilder {
withName(name: string): this {
this.config.name = name;
return this;
}
}
```

#### Access modifiers
* Omit the `public` keyword as it is the default behavior.
* Use `private` when appropriate and possible, prefixing the name with an underscore.
* Use `protected` when appropriate and possible with no prefix.
* Prefix *library-internal* properties and methods with an underscore without using the `private`
keyword. This is necessary for anything that must be public (to be used by Angular), but should not
be part of the user-facing API. This typically applies to symbols used in template expressions,
`@ViewChildren` / `@ContentChildren` properties, host bindings, and `@Input` / `@Output` properties
(when using an alias).

Additionally, the `@docs-private` JsDoc annotation can be used to hide any symbol from the public
API docs.

#### JsDoc comments

All public APIs must have user-facing comments. These are extracted and shown in the documation
on [material.angular.io](https://material.angular.io).

Private and internal APIs should have JsDoc when they are not obvious. Ultimately it is the purview
of the code reviewer as to what is "obvious", but the rule of thumb is that *most* classes,
properties, and methods should have a JsDoc description.

Properties should have a concise description of what the property means:
```ts
/** The label position relative to the checkbox. Defaults to 'after' */
@Input() labelPosition: 'before' | 'after' = 'after';
```

Methods blocks should describe what the function does and provide a description for each parameter
and the return value:
```ts
/**
* Opens a modal dialog containing the given component.
* @param component Type of the component to load into the dialog.
* @param config Dialog configuration options.
* @returns Reference to the newly-opened dialog.
*/
open<T>(component: ComponentType<T>, config?: MdDialogConfig): MdDialogRef<T> { ... }
```

Boolean properties and return values should use "Whether..." as opposed to "True if...":
```ts
/** Whether the button is disabled. */
disabled: boolean = false;
```

#### Naming

##### General
* Prefer writing out words instead of using abbreviations.
* Prefer *exact* names over short names (within reason). E.g., `labelPosition` is better than
`align` because the former much more exactly communicates what the property means.
* Except for `@Input` properties, use `is` and `has` prefixes for boolean properties / methods.

##### Classes
Classes should be named based on what they're responsible for. Names should capture what the code
*does*, not how it is used:
```
/** NO: */
class RadioService { }

/** YES: */
class UniqueSelectionDispatcher { }
```

Avoid suffixing a class with "Service", as it communicates nothing about what the class does. Try to
think of the class name as a person's job title.

Classes that correspond to a directive with an `md-` prefix should also be prefixed with `Md`.
CDK classes should not have a prefix.

##### Methods
The name of a method should capture the action that is performed *by* that method rather than
describing when the method will be called. For example,

```ts
/** AVOID: does not describe what the function does. */
handleClick() {
// ...
}

/** PREFER: describes the action performed by the function. */
activateRipple() {
// ...
}
```

#### Inheritance

Avoid using inheritence to apply reusable behaviors to multiple components. This limits how many
behaviors can be composed.

### Angular

#### Host bindings
Prefer using the `host` object in the directive configuration instead of `@HostBinding` and
`@HostListener`. We do this because TypeScript preserves the type information of methods with
decorators, and when one of the arguments for the method is a native `Event` type, this preserved
type information can lead to runtime errors in non-browser environments (e.g., server-side
pre-rendering).


### CSS

#### Be cautious with use of `display: flex`
* The [baseline calculation for flex elements](http://www.w3.org/TR/css-flexbox-1/#flex-baselines)
is different than other display values, making it difficult to align flex elements with standard
* The [baseline calculation for flex elements](http://www.w3.org/TR/css-flexbox-1/#flex-baselines)
is different than other display values, making it difficult to align flex elements with standard
elements like input and button.
* Component outermost elements are never flex (block or inline-block)
* Don't use `display: flex` on elements that will contain projected content.

#### Use lowest specificity possible
Always prioritize lower specificity over other factors. Most style definitions should consist of a
single element or css selector plus necessary state modifiers. Avoid SCSS nesting for the sake of
code organization. This will allow users to much more easily override styles.
Always prioritize lower specificity over other factors. Most style definitions should consist of a
single element or css selector plus necessary state modifiers. **Avoid SCSS nesting for the sake of
code organization.** This will allow users to much more easily override styles.

For example, rather than doing this:
```scss
md-calendar {
.mat-calendar {
display: block;

.md-month {
.mat-month {
display: inline-block;

.md-date.md-selected {
.mat-date.mat-selected {
font-weight: bold;
}
}
Expand All @@ -103,15 +257,15 @@ md-calendar {

do this:
```scss
md-calendar {
.mat-calendar {
display: block;
}

.md-calendar-month {
.mat-calendar-month {
display: inline-block;
}

.md-calendar-date.md-selected {
.mat-calendar-date.mat-selected {
font-weight: bold;
}
```
Expand All @@ -120,12 +274,12 @@ md-calendar {
The end-user of a component should be the one to decide how much margin a component has around it.

#### Prefer styling the host element vs. elements inside the template (where possible).
This makes it easier to override styles when necessary. For example, rather than
This makes it easier to override styles when necessary. For example, rather than

```scss
:host {
the-host-element {
// ...

.some-child-element {
color: red;
}
Expand All @@ -134,7 +288,7 @@ This makes it easier to override styles when necessary. For example, rather than

you can write
```scss
:host {
the-host-element {
// ...
color: red;
}
Expand All @@ -156,11 +310,11 @@ This is a low-effort task that makes a big difference for low-vision users. Exam
When it is not super obvious, include a brief description of what a class represents. For example:
```scss
// The calendar icon button used to open the calendar pane.
.md-datepicker-button { ... }
.mat-datepicker-button { ... }

// Floating pane that contains the calendar at the bottom of the input.
.md-datepicker-calendar-pane { ... }
.mat-datepicker-calendar-pane { ... }

// Portion of the floating panel that sits, invisibly, on top of the input.
.md-datepicker-input-mask { }
```
.mat-datepicker-input-mask { }
```
Loading