Skip to content

Commit 4ff2284

Browse files
committed
fix(toggle): Add label and update knobs
1 parent 0145ae1 commit 4ff2284

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

src/toggle/toggle.component.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,11 @@ export class ToggleChange {
3131
/**
3232
* Contains the `Toggle` that has been changed.
3333
* @type {Toggle}
34-
* @memberof ToggleChange
3534
*/
3635
source: Toggle;
3736
/**
3837
* The state of the `Toggle` encompassed in the `ToggleChange` class.
3938
* @type {boolean}
40-
* @memberof ToggleChange
4139
*/
4240
checked: boolean;
4341
}
@@ -54,6 +52,7 @@ export class ToggleChange {
5452
@Component({
5553
selector: "ibm-toggle",
5654
template: `
55+
<div *ngIf="labelText" class="bx--label" [id]="labelId">{{labelText}}</div>
5756
<input
5857
class="bx--toggle"
5958
type="checkbox"
@@ -67,6 +66,7 @@ export class ToggleChange {
6766
[required]="required"
6867
[checked]="checked"
6968
[disabled]="disabled"
69+
[attr.aria-labelledby]="labelId"
7070
[attr.aria-checked]="checked"
7171
(change)="onChange($event)"
7272
(click)="onClick($event)">
@@ -109,14 +109,12 @@ export class Toggle extends Checkbox {
109109
* Variable used for creating unique ids for toggle components.
110110
* @type {number}
111111
* @static
112-
* @memberof Toggle
113112
*/
114113
static toggleCount = 0;
115114

116115
/**
117116
* Text that is set on the left side of the toggle.
118117
* @type {(string)}
119-
* @memberof Toggle
120118
*/
121119
@Input()
122120
set offText(value) {
@@ -130,7 +128,6 @@ export class Toggle extends Checkbox {
130128
/**
131129
* Text that is set on the right side of the toggle.
132130
* @type {(string)}
133-
* @memberof Toggle
134131
*/
135132
@Input()
136133
set onText(value) {
@@ -140,27 +137,28 @@ export class Toggle extends Checkbox {
140137
get onText() {
141138
return this._onText;
142139
}
143-
144-
140+
/**
141+
* Text that is set as the label of the toggle.
142+
* @type {(string)}
143+
*/
144+
@Input() labelText: string;
145145
/**
146146
* Size of the toggle component.
147147
* @type {("sm" | "md" | "default")}
148-
* @memberof Toggle
149148
*/
150149
@Input() size: "sm" | "md" = "md";
151150
/**
152151
* Set to `true` for a loading toggle.
153152
* @type {(boolean)}
154-
* @memberof Toggle
155153
*/
156154
@Input() skeleton = false;
157155

158156
/**
159157
* The unique id allocated to the `Toggle`.
160158
* @type {string}
161-
* @memberof Toggle
162159
*/
163160
id = "toggle-" + Toggle.toggleCount;
161+
labelId = "toggle-" + Toggle.toggleCount + "-label";
164162

165163
/**
166164
* Emits event notifying other classes when a change in state occurs on a toggle after a
@@ -173,7 +171,6 @@ export class Toggle extends Checkbox {
173171
/**
174172
* Creates an instance of Toggle.
175173
* @param {ChangeDetectorRef} changeDetectorRef
176-
* @memberof Toggle
177174
*/
178175
constructor(protected changeDetectorRef: ChangeDetectorRef, protected i18n: I18n) {
179176
super(changeDetectorRef);

src/toggle/toggle.stories.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { storiesOf, moduleMetadata } from "@storybook/angular";
2-
import { withKnobs, boolean, select } from "@storybook/addon-knobs/angular";
2+
import { withKnobs, boolean, select, text } from "@storybook/addon-knobs/angular";
33

44
import { ToggleModule } from "../";
55

@@ -11,12 +11,22 @@ storiesOf("Toggle", module).addDecorator(
1111
.addDecorator(withKnobs)
1212
.add("Basic", () => ({
1313
template: `
14-
<ibm-toggle [disabled]="disabled" [checked]="checked" [size]="size"></ibm-toggle>
14+
<ibm-toggle
15+
[labelText]="labelText"
16+
[onText]="onText"
17+
[offText]="offText"
18+
[disabled]="disabled"
19+
[checked]="checked"
20+
[size]="size">
21+
</ibm-toggle>
1522
`,
1623
props: {
17-
disabled: boolean("disabled", false),
18-
checked: boolean("checked", false),
19-
size: select("size", ["md", "sm"], "md")
24+
disabled: boolean("Disabled", false),
25+
checked: boolean("Checked", false),
26+
size: select("Size", ["md", "sm"], "md"),
27+
labelText: text("Label text", ""),
28+
onText: text("On text", "On"),
29+
offText: text("Off text", "Off")
2030
}
2131
}))
2232
.add("Skeleton", () => ({

0 commit comments

Comments
 (0)