Angular
Компоненти Wink є Angular Elements — вони природно інтегруються в Angular додатки. Єдина необхідна налаштування — повідомити компілятору Angular дозволити невідомі імена елементів.
Встановлення
Section titled “Встановлення”npm install @wink/elementsBootstrap — завантажте CDN один раз
Section titled “Bootstrap — завантажте CDN один раз”Викличте load() перед bootstrapApplication (або всередині APP_INITIALIZER):
import { bootstrapApplication } from '@angular/platform-browser';import { AppComponent } from './portal/app.component';import { load } from '@wink/elements';
load({ clientId: import.meta.env['NG_APP_WINK_CLIENT_ID'] });
bootstrapApplication(AppComponent).catch(console.error);Дозвіл імен кастомних елементів
Section titled “Дозвіл імен кастомних елементів”Додайте CUSTOM_ELEMENTS_SCHEMA до кожного standalone компонента (або модуля), який рендерить теги <wink-*>:
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
@Component({ selector: 'app-hotels', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: ` <wink-content-loader layout="HOTEL" [id]="layoutId" /> <wink-lookup /> `,})export class HotelsComponent { layoutId = 'YOUR_LAYOUT_ID';}Прив’язка атрибутів
Section titled “Прив’язка атрибутів”Синтаксис шаблонів Angular працює безпосередньо з рядковими атрибутами кастомних елементів:
<!-- Статичний --><wink-content-loader layout="HOTEL" id="abc123" />
<!-- Динамічна прив’язка --><wink-content-loader [attr.layout]="layout" [attr.id]="layoutId" />Використовуйте прив’язку [attr.name], коли значення динамічне — звичайна прив’язка [property] Angular орієнтована на DOM-властивості, а не на HTML-атрибути, від яких залежать кастомні елементи.
Змінні середовища
Section titled “Змінні середовища”Для проєктів @angular/cli 16+ використовуйте environment.ts або префікс NG_APP_* з @ngx-env/builder:
export const environment = { winkClientId: 'YOUR_CLIENT_ID',};import { environment } from './environments/environment';load({ clientId: environment.winkClientId });Типи TypeScript
Section titled “Типи TypeScript”Пакет @wink/elements експортує типізовані інтерфейси для всіх атрибутів компонентів:
import type { WinkContentLoaderAttributes, WinkLayout } from '@wink/elements';
const attrs: WinkContentLoaderAttributes = { layout: 'HOTEL' as WinkLayout, id: 'abc123',};