Chocobozzz/PeerTube

View on GitHub
client/src/app/shared/shared-forms/peertube-checkbox.component.html

Summary

Maintainability
Test Coverage
<div class="root flex-column">
  <div class="d-flex">
    <label>
      <input
        type="checkbox"
        [(ngModel)]="checked"
        (ngModelChange)="onModelChange()"
        [id]="inputName"
        [disabled]="disabled"
        [attr.aria-describedby]="inputName + '-description'"
      />
      <span></span>
      <span *ngIf="labelText">{{ labelText }}</span>
      <span
        *ngIf="!labelText && labelInnerHTML"
        [innerHTML]="labelInnerHTML"
      ></span>

      <span *ngIf="labelTemplate">
        <ng-container *ngTemplateOutlet="labelTemplate"></ng-container>
      </span>
    </label>

    <my-help
      *ngIf="helpTemplate"
      [tooltipPlacement]="helpPlacement"
      helpType="custom"
    >
      <ng-template ptTemplate="customHtml">
        <ng-template *ngTemplateOutlet="helpTemplate"></ng-template>
      </ng-template>
    </my-help>

    <div *ngIf="recommended" class="recommended" i18n>Recommended</div>
  </div>

  <div class="ms-4 d-flex flex-column">
    <div class="wrapper form-group-description" [id]="inputName + '-description'">
      <ng-content select="description"></ng-content>
    </div>

    <span class="wrapper mt-3">
      <ng-content select="extra"></ng-content>
    </span>
  </div>
</div>