-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
feat(stepper): Merge initial prototype of stepper into the upstream stepper branch. #5742
Conversation
src/cdk/stepper/step.ts
Outdated
templateUrl: 'step.html', | ||
}) | ||
export class CdkStep { | ||
@ContentChild(CdkStepLabel) stepLabel: CdkStepLabel; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\n (and comment what these are)
src/cdk/stepper/step.ts
Outdated
label: string; | ||
|
||
/** Whether the step is optional or not. */ | ||
@Input() optional: boolean = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
split into setter & getter, and use coerceBooleanProperty
src/cdk/stepper/step.ts
Outdated
@Input() optional: boolean = false; | ||
|
||
/** Whether the step is editable or not. */ | ||
@Input() editable: boolean = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use coerceBooleanProperty
src/cdk/stepper/step.ts
Outdated
/** Whether the step is the last one in the list. */ | ||
isLast: boolean = false; | ||
|
||
// /** Whether the step is active. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no longer needed?
src/cdk/stepper/step.ts
Outdated
@Input() editable: boolean = true; | ||
|
||
/** Whether the step is the last one in the list. */ | ||
isLast: boolean = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this something we want to be part of the public API? (I asusme probably not, but we can't make it private since its referenced in a template file, so instead check to _isLast
)
src/cdk/stepper/stepper.ts
Outdated
} | ||
|
||
/** Selects and focuses the provided step. */ | ||
selectStep(step: CdkStep): void { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this similar to what tabs does? From an API perspective I would rather CdkStep
have a select
method, but I could see maybe not wanting a dependency from child to parent
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it seems like tabs doesn't have a separate method for selecting. It just updates and sets the selectedIndex
in the html file. Since the CdkStepper
already takes care of all the logic regarding the selection and selectedIndex
tracking, I was thinking about just getting rid of the selected
attribute completely from CdkStep
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm saying that as an API I prefer: step.select()
to stepper.select(step)
, but this would require the step to know about its parent stepper, so maybe not worth it. @jelbourn do you have any opinion?
src/cdk/stepper/stepper.ts
Outdated
private _selectedStep: CdkStep; | ||
|
||
/** The index of the step that the focus is currently on. */ | ||
get focusIndex(): number {return this._focusIndex; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need a public API for this? seems like an internal detail
src/cdk/stepper/stepper.ts
Outdated
} | ||
|
||
/** Selects and focuses the next step in list. */ | ||
nextStep(): void { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would just call it next
and previous
src/cdk/stepper/stepper.ts
Outdated
_onKeydown(event: KeyboardEvent) { | ||
switch (event.keyCode) { | ||
case RIGHT_ARROW: | ||
if (this._focusIndex != this._steps.length - 1) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just call nextStep
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This wouldn't be equivalent to nextStep
because RIGHT_ARROW
does not mean that the next step
has been chosen. Only the focus has changed. The user would need to press ENTER
to make the actual selection change.
src/cdk/stepper/stepper.ts
Outdated
return `mat-step-content-${this._groupId}-${i}`; | ||
} | ||
|
||
private _emitStepEvent(index: number): CdkStepEvent { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
name is deceptive since this method doesn't actually cause an emit
src/cdk/stepper/stepper.ts
Outdated
newIndex: number; | ||
|
||
/** The index of the step that was previously selected. */ | ||
oldIndex: number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about selectedIndex
and previouslySelectedIndex
(and selectedStep
and previouslySelectedStep
)?
src/cdk/stepper/stepper.ts
Outdated
@ContentChildren(CdkStep) _steps: QueryList<CdkStep>; | ||
|
||
/** The list of step headers of the steps in the stepper. */ | ||
@ViewChildren('stepHeader') _stepHeader: QueryList<ElementRef>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, requiring a specific template variable to exist isn't a great API
src/cdk/stepper/stepper.ts
Outdated
@Directive({ | ||
selector: 'cdk-stepper', | ||
host: { | ||
'(focus)': '_setStepfocused()', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_setStepFocused
src/cdk/stepper/stepper.ts
Outdated
set selectedIndex(index: number) { | ||
if (this._selectedIndex == index) { return; } | ||
this._emitStepperSelectionEvent(index); | ||
this._setStepFocused(this._selectedIndex); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than using a return
, I'd structure it like
if (this._selectedIndex != index) {
this._emitStepperSelectionEvent(index);
this._setStepFocused(this._selectedIndex);
}
(I find return
to be weird inside of a setter
)
src/cdk/stepper/stepper.ts
Outdated
/** Selects and focuses the next step in list. */ | ||
next(): void { | ||
if (this._selectedIndex == this._steps.length - 1) { return; } | ||
this.selectedIndex++; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this._selectedIndex = Math.min(this._selectedIndex + 1, this._steps.length - 1);
src/cdk/stepper/stepper.ts
Outdated
_onKeydown(event: KeyboardEvent) { | ||
switch (event.keyCode) { | ||
case RIGHT_ARROW: | ||
this._setStepFocused((this._focusIndex + 1) % this._steps.length); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you file an issue on github to track creating something like a TabsKeyManager
to reduce duplication between tabs and stepper?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
<div class="mat-stepper-label"> | ||
<!-- If there is a label template, use it. --> | ||
<ng-container *ngIf="step.stepLabel"[ngTemplateOutlet]="step.stepLabel.template"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing space between attributes
</div> | ||
<div> | ||
<button md-button (click)="previous()">Back</button> | ||
<button md-button (click)="next()">Next</button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these buttons just here for testing / development?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR doesn't include stepper-button
directives that will be used by users to add the buttons themselves. The stepper component in this initial PR inserts the buttons instead. The stepper-button
directives will come in the next PR since this is already too big, and these buttons will be removed in that PR as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, just add a comment mentioning that
'class': 'mat-stepper-horizontal', | ||
'role': 'tablist', | ||
}, | ||
providers: [{ provide: MdStepper, useExisting: forwardRef(() => MdHorizontalStepper) }] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the forwardRef necessary here?
<ng-container [ngTemplateOutlet]="step.content"></ng-container> | ||
<div> | ||
<button md-button (click)="previous()">Back</button> | ||
<button md-button (click)="next()">Next</button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same question for these buttons
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same plan for these buttons as well.
Changes have been made; ready for review. |
src/cdk/stepper/stepper.ts
Outdated
|
||
/** Returns the step that is selected. */ | ||
get selected() { return this._steps[this.selectedIndex]; } | ||
/** Sets selectedIndex as the index of the provided step. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: can just put 1 comment for set & get since they represent the same property
src/cdk/stepper/stepper.ts
Outdated
_stepHeader: QueryList<ElementRef>; | ||
|
||
/** The index of the selected step. */ | ||
get selectedIndex() { return this._selectedIndex; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we want this to be an @Input()
right?
src/cdk/stepper/stepper.ts
Outdated
private _selectedIndex: number = 0; | ||
|
||
/** Returns the step that is selected. */ | ||
get selected() { return this._steps[this.selectedIndex]; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same, should be @Input()
<div *ngIf="!step.stepLabel">{{step.label}}</div> | ||
</div> | ||
|
||
</ng-template> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't see a corresponding opening tag for this?
@@ -0,0 +1,35 @@ | |||
<div *ngFor="let step of _steps; let i = index; let isLast = last"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we need this wrapper div, is it supposed to contain all of the headers?
src/cdk/stepper/index.ts
Outdated
import {PortalModule} from '../portal'; | ||
|
||
@NgModule({ | ||
imports: [CommonModule, PortalModule], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you can remove PortalModule
since it doesn't look to be used anywhere
src/cdk/stepper/step-label.ts
Outdated
import {Directive, TemplateRef} from '@angular/core'; | ||
|
||
@Directive({ | ||
selector: 'cdk-step-label', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this has to be an attribute because it needs to be applied to an ng-template
element. As an attribute it would be cdkStepLabel
src/cdk/stepper/stepper.ts
Outdated
|
||
/** Change event emitted on selection changes. */ | ||
export class CdkStepperSelectionEvent { | ||
/** The index of the step that is newly selected during this change event. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can be shortened to
/** Index of the step now selected. */
src/cdk/stepper/stepper.ts
Outdated
/** The index of the step that is newly selected during this change event. */ | ||
selectedIndex: number; | ||
|
||
/** The index of the step that was previously selected. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Index of the step previously selected."
src/cdk/stepper/stepper.ts
Outdated
/** The index of the step that was previously selected. */ | ||
previouslySelectedIndex: number; | ||
|
||
/** The new step component that is selected ruing this change event. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"The step instance now selected"
src/cdk/stepper/stepper.ts
Outdated
/** The new step component that is selected ruing this change event. */ | ||
selectedStep: CdkStep; | ||
|
||
/** The step component that was previously selected. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"The step instance previously selected"
src/cdk/stepper/stepper.ts
Outdated
event.preventDefault(); | ||
} | ||
|
||
private _setStepFocused(index: number) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since you're actually calling focus, I'd just call this method _focusStep
</div> | ||
<div> | ||
<button md-button (click)="previous()">Back</button> | ||
<button md-button (click)="next()">Next</button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, just add a comment mentioning that
src/lib/stepper/stepper-vertical.ts
Outdated
'class': 'mat-stepper-vertical', | ||
'role': 'tablist', | ||
}, | ||
providers: [{ provide: MdStepper, useExisting: MdVerticalStepper }] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Omit spaces inside braces, e.g.,
[{provide: MdStepper, useExisting: MdVerticalStepper}]
Ready for review again. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few last minor comments
<input mdInput placeholder="Answer" [(ngModel)]="step.content"> | ||
</md-input-container> | ||
</mat-step> | ||
</mat-horizontal-stepper> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noticed that the stepper selectors need to be added to the compatibility mode list as well
(which enforces that you use either md-
or mat-
and not both)
src/lib/stepper/step.ts
Outdated
templateUrl: 'step.html', | ||
}) | ||
export class MdStep extends CdkStep { | ||
/** Content for the step label given by <ng-template mat-step-label>. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Select in comment still uses dashes
}) | ||
export class MdHorizontalStepper extends MdStepper { | ||
/** Steps that the horizontal stepper holds. */ | ||
@ContentChildren(MdStep) _steps: QueryList<MdStep>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both MdHorizontalStepper
and MdVerticalStepper
have
@ContentChildren(MdStep) _steps: QueryList<MdStep>;
Could that go in the MdStepper
base class?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I moved _steps
to MdStepper
base class. However, this resulted in circular dependency between MdStepper
and MdStep
, so I moved MdStep into stepper.ts as it's done for CdkStep
.
src/lib/stepper/stepper.scss
Outdated
@@ -0,0 +1,7 @@ | |||
.mat-stepper-content[aria-expanded='false'] { | |||
display:none; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing space
Thank you for all the comments on this big PR. Comments were addressed; ready for another review. |
…tepper branch. (#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (angular#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (angular#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (angular#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency
…tepper branch. (#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency feat(stepper): Create stepper button directives to enable adding buttons to stepper (#5951) * Create stepper button directives to enable adding buttons to stepper * Changes made based on review * Minor changes with click handlers Build changes feat(stepper): Add initial styles to stepper based on Material guidelines (#6242) * Add initial styles to stepper based on Material guidelines * Fix flex-shrink and min-width * Changes made based on review * Fix alignment * Margin modifications feat(stepper): Add support for linear stepper (#6116) * Add form controls and custom error state matcher * Modify form controls for stepper-demo and add custom validator * Move custom step validation function so that users can simply import and use * Implement @input() stepControl for each step * Add linear attribute to stepper * Add enabling/disabling linear state of demo feat(stepper): Add animation to stepper (#6361) * Add animation * Implement Angular animation * Clean up unnecessary code * Generalize animation so that vertical and horizontal steppers can use the same function Rebase onto upstream/master feat(stepper): Add unit tests for stepper (#6428) * Add unit tests for stepper * Changes made based on review * More changes based on review feat(stepper): Add support for linear stepper #2 - each step as its own form. (#6117) * Add form control - consider each step as its own form group * Comment edits * Add 'valid' to MdStep for form validation * Add [stepControl] to each step based on merging * Changes based on review Fix focus logic and CSS changes (#6507) feat(stepper): Add documentation for stepper (#6533) * Documentation for stepper * Revision based on review + add accessibility section feat(stepper): Support additional properties for step (#6509) * Additional properties for step * Unit tests * Code changes based on review + test name changes * Refactor code for shared functionality between vertical and horizontal stepper * Refactor md-step-header and md-step-content + optional step change * Simplify code based on review * Changes to step-header based on review * Minor changes Fix host style and demo page (#6592) Revert package.json and package-lock.json Changes made along with BUILD changes in google3 Add typography mixin Changes to address aot compiler failures fix rtl bugs
…tepper branch. (angular#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency feat(stepper): Create stepper button directives to enable adding buttons to stepper (angular#5951) * Create stepper button directives to enable adding buttons to stepper * Changes made based on review * Minor changes with click handlers Build changes feat(stepper): Add initial styles to stepper based on Material guidelines (angular#6242) * Add initial styles to stepper based on Material guidelines * Fix flex-shrink and min-width * Changes made based on review * Fix alignment * Margin modifications feat(stepper): Add support for linear stepper (angular#6116) * Add form controls and custom error state matcher * Modify form controls for stepper-demo and add custom validator * Move custom step validation function so that users can simply import and use * Implement @input() stepControl for each step * Add linear attribute to stepper * Add enabling/disabling linear state of demo feat(stepper): Add animation to stepper (angular#6361) * Add animation * Implement Angular animation * Clean up unnecessary code * Generalize animation so that vertical and horizontal steppers can use the same function Rebase onto upstream/master feat(stepper): Add unit tests for stepper (angular#6428) * Add unit tests for stepper * Changes made based on review * More changes based on review feat(stepper): Add support for linear stepper angular#2 - each step as its own form. (angular#6117) * Add form control - consider each step as its own form group * Comment edits * Add 'valid' to MdStep for form validation * Add [stepControl] to each step based on merging * Changes based on review Fix focus logic and CSS changes (angular#6507) feat(stepper): Add documentation for stepper (angular#6533) * Documentation for stepper * Revision based on review + add accessibility section feat(stepper): Support additional properties for step (angular#6509) * Additional properties for step * Unit tests * Code changes based on review + test name changes * Refactor code for shared functionality between vertical and horizontal stepper * Refactor md-step-header and md-step-content + optional step change * Simplify code based on review * Changes to step-header based on review * Minor changes Fix host style and demo page (angular#6592) Revert package.json and package-lock.json Changes made along with BUILD changes in google3 Add typography mixin Changes to address aot compiler failures fix rtl bugs
…tepper branch. (angular#5742) * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Adding "selectedIndex" attribute to stepper and working on TemplateOulet. * Prototyping * Further work * Further prototyping * Further prototyping * Further work * Adding event emitters * Template rendering and selectIndex control done. * Work in progress for accessibility * Added functionalities based on the tentative API doc. * Refactor code for cdk-stepper and cdk-step * Add support for templated label * Added support for keyboard events and focus changes for accessibility. * Updated vertical stepper + added comments * Fix package-lock.json * Fix indention * Changes made based on the review * Changes based on review - event properties, selectors, SPACE support, etc. + demo * Add select() for step component + refactor to avoid circular dependency + support cycling using arrow keys * API change based on review * Minor code clean up based on review. * Several name changes, etc based on review * Add to compatibility mode list and refactor to avoid circular dependency feat(stepper): Create stepper button directives to enable adding buttons to stepper (angular#5951) * Create stepper button directives to enable adding buttons to stepper * Changes made based on review * Minor changes with click handlers Build changes feat(stepper): Add initial styles to stepper based on Material guidelines (angular#6242) * Add initial styles to stepper based on Material guidelines * Fix flex-shrink and min-width * Changes made based on review * Fix alignment * Margin modifications feat(stepper): Add support for linear stepper (angular#6116) * Add form controls and custom error state matcher * Modify form controls for stepper-demo and add custom validator * Move custom step validation function so that users can simply import and use * Implement @input() stepControl for each step * Add linear attribute to stepper * Add enabling/disabling linear state of demo feat(stepper): Add animation to stepper (angular#6361) * Add animation * Implement Angular animation * Clean up unnecessary code * Generalize animation so that vertical and horizontal steppers can use the same function Rebase onto upstream/master feat(stepper): Add unit tests for stepper (angular#6428) * Add unit tests for stepper * Changes made based on review * More changes based on review feat(stepper): Add support for linear stepper angular#2 - each step as its own form. (angular#6117) * Add form control - consider each step as its own form group * Comment edits * Add 'valid' to MdStep for form validation * Add [stepControl] to each step based on merging * Changes based on review Fix focus logic and CSS changes (angular#6507) feat(stepper): Add documentation for stepper (angular#6533) * Documentation for stepper * Revision based on review + add accessibility section feat(stepper): Support additional properties for step (angular#6509) * Additional properties for step * Unit tests * Code changes based on review + test name changes * Refactor code for shared functionality between vertical and horizontal stepper * Refactor md-step-header and md-step-content + optional step change * Simplify code based on review * Changes to step-header based on review * Minor changes Fix host style and demo page (angular#6592) Revert package.json and package-lock.json Changes made along with BUILD changes in google3 Add typography mixin Changes to address aot compiler failures fix rtl bugs
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
No description provided.