SDK de Angular
@bailaya/angular proporciona un servicio y componentes standalone para Angular 17+.
Instalación
npm install @bailaya/angular @bailaya/core
Configuración
Registra el proveedor en app.config.ts:
import { ApplicationConfig } from '@angular/core';
import { provideBailaya } from '@bailaya/angular';
export const appConfig: ApplicationConfig = {
providers: [
provideBailaya({ studioId: 'your-studio-id' }),
],
};
BailayaService
Inyecta BailayaService para acceso directo mediante Observable a todos los métodos de la API:
import { Component, inject, OnInit } from '@angular/core';
import { AsyncPipe } from '@angular/common';
import { BailayaService } from '@bailaya/angular';
import { Observable } from 'rxjs';
import type { StudioClass } from '@bailaya/angular';
@Component({
standalone: true,
imports: [AsyncPipe],
template: `
<ul>
@for (cls of classes$ | async; track cls.id) {
<li>{{ cls.name }}</li>
}
</ul>
`,
})
export class ScheduleComponent implements OnInit {
private bailaya = inject(BailayaService);
classes$!: Observable<StudioClass[]>;
ngOnInit() {
this.classes$ = this.bailaya.getClasses();
}
}
Componentes
Todos los componentes son standalone y utilizan el flujo de control @if/@for de Angular 17.
| Selector | Descripción |
|---|---|
<bailaya-studio-profile-card> | Logo, nombre, descripción y dirección del estudio |
<bailaya-studio-description> | Párrafos de descripción localizada |
<bailaya-instructor-list> | Fotos y biografías de instructores |
<bailaya-user-profile-card> | Perfil de un usuario individual |
<bailaya-class-schedule> | Clases próximas con CTA de reserva |
<bailaya-class-schedule-by-type> | Clases filtradas por tipo de baile |
<bailaya-event-schedule> | Eventos próximos con CTA de reserva |
<bailaya-studio-types-list> | Tipos de baile como lista |
<bailaya-studio-types-grid> | Tipos de baile como cuadrícula |
<bailaya-private-lesson-list> | Instructores de clases privadas con precios |
<bailaya-package-list> | Paquetes disponibles con CTA de compra |
Ejemplo de uso
<!-- app.component.html -->
<bailaya-class-schedule
locale="en"
currency="USD"
bookNowText="Book This Class"
bookBaseUrl="https://www.bailaya.com/book/"
/>
<bailaya-private-lesson-list
locale="en"
bookBaseUrl="https://www.bailaya.com/en/book/private-lesson/"
/>
Importar componentes
import {
ClassScheduleComponent,
PrivateLessonListComponent,
PackageListComponent,
} from '@bailaya/angular';
@Component({
standalone: true,
imports: [ClassScheduleComponent, PrivateLessonListComponent],
templateUrl: './my.component.html',
})
export class MyComponent {}