src/app/shared/bulk-validation-modal/bulk-validation-modal.component.ts

Metadata

Relationships

Used by

Depends on

No results matching.

import { Component, EventEmitter, Input, Output } from '@angular/core'

@Component({
  selector: 'app-bulk-validation-modal',
  templateUrl: './bulk-validation-modal.component.html',
  styleUrls: ['./bulk-validation-modal.component.scss'],
  standalone: false
})
export class BulkValidationModalComponent {
  @Input() open = false
  @Input() done = 0
  @Input() total = 0

  @Output() cancel = new EventEmitter<void>()

  onCancel() {
    this.cancel.emit()
  }
}
<clr-modal
  [clrModalOpen]="open"
  [clrModalClosable]="false"
  [clrModalStaticBackdrop]="true"
  [clrModalSize]="'sm'"
>
  <h3 class="modal-title">Validating cells</h3>
  <div class="modal-body bulk-validation-body">
    <div class="bulk-validation-row">
      <clr-spinner clrSmall></clr-spinner>
      <span class="bulk-validation-text">
        Validating {{ done }} / {{ total }}…
      </span>
    </div>
    <clr-progress-bar
      class="bulk-validation-progress"
      [clrValue]="done"
      [clrMax]="total"
    ></clr-progress-bar>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-outline" (click)="onCancel()">
      Cancel
    </button>
  </div>
</clr-modal>

./bulk-validation-modal.component.scss

.bulk-validation-body {
  display: flex;
  flex-direction: column;
  gap: 10px;

  .bulk-validation-row {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .bulk-validation-text {
    flex: 1 1 auto;
  }

  .bulk-validation-progress {
    margin: 0;
  }
}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""