@@ -30,50 +30,56 @@ export enum ToggleState {
3030@Component ( {
3131 selector : "cds-toggle, ibm-toggle" ,
3232 template : `
33- <button
34- class="cds--toggle__button"
35- [disabled]="disabled"
36- [id]="id"
37- role="switch"
38- type="button"
39- [attr.aria-checked]="checked"
40- (click)="onClick($event)">
41- </button>
42- <label
43- class="cds--toggle__label"
44- [for]="id">
45- <span
46- class="cds--toggle__label-text"
47- [ngClass]="{
48- 'cds--visually-hidden': hideLabel
49- }">
50- <ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>
51- <ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>
52- </span>
53- <div
54- class="cds--toggle__appearance"
55- [ngClass]="{
56- 'cds--toggle__appearance--sm': size === 'sm'
57- }">
33+ <ng-container *ngIf="!skeleton; else skeletonTemplate;">
34+ <button
35+ class="cds--toggle__button"
36+ [disabled]="disabled"
37+ [id]="id"
38+ role="switch"
39+ type="button"
40+ [attr.aria-checked]="checked"
41+ (click)="onClick($event)">
42+ </button>
43+ <label
44+ class="cds--toggle__label"
45+ [for]="id">
46+ <span
47+ class="cds--toggle__label-text"
48+ [ngClass]="{
49+ 'cds--visually-hidden': hideLabel
50+ }">
51+ <ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>
52+ <ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>
53+ </span>
5854 <div
59- class="cds--toggle__switch "
55+ class="cds--toggle__appearance "
6056 [ngClass]="{
61- 'cds--toggle__switch--checked ': checked
57+ 'cds--toggle__appearance--sm ': size === 'sm'
6258 }">
63- <svg
64- *ngIf="size === 'sm'"
65- class='cds--toggle__check'
66- width="6px"
67- height="5px"
68- viewBox="0 0 6 5">
69- <path d="M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z" />
70- </svg>
59+ <div
60+ class="cds--toggle__switch"
61+ [ngClass]="{
62+ 'cds--toggle__switch--checked': checked
63+ }">
64+ <svg
65+ *ngIf="size === 'sm'"
66+ class='cds--toggle__check'
67+ width="6px"
68+ height="5px"
69+ viewBox="0 0 6 5">
70+ <path d="M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z" />
71+ </svg>
72+ </div>
73+ <span class="cds--toggle__text">
74+ {{(hideLabel ? label : (getCheckedText() | async))}}
75+ </span>
7176 </div>
72- <span class="cds--toggle__text">
73- {{(hideLabel ? label : (getCheckedText() | async))}}
74- </span>
75- </div>
76- </label>
77+ </label>
78+ </ng-container>
79+ <ng-template #skeletonTemplate>
80+ <div class="cds--toggle__skeleton-circle"></div>
81+ <div class="cds--toggle__skeleton-rectangle"></div>
82+ </ng-template>
7783 ` ,
7884 providers : [
7985 {
@@ -125,12 +131,16 @@ export class Toggle extends Checkbox {
125131 */
126132 @Input ( ) hideLabel = false ;
127133
134+ @HostBinding ( "class.cds--toggle--skeleton" ) @Input ( ) skeleton = false ;
135+
128136 @HostBinding ( "class.cds--toggle" ) toggleClass = true ;
129137 @HostBinding ( "class.cds--toggle--disabled" ) get disabledClass ( ) {
130138 return this . disabled ;
131139 }
132140
133- @HostBinding ( "class.cds--form-item" ) formItem = true ;
141+ @HostBinding ( "class.cds--form-item" ) get formItem ( ) {
142+ return ! this . skeleton ;
143+ }
134144
135145 /**
136146 * The unique id allocated to the `Toggle`.
0 commit comments