diff --git a/projects/addon-doc/components/api/api-item.component.ts b/projects/addon-doc/components/api/api-item.component.ts index 7838ce591cac..4f790d2df73a 100644 --- a/projects/addon-doc/components/api/api-item.component.ts +++ b/projects/addon-doc/components/api/api-item.component.ts @@ -12,8 +12,9 @@ import {FormsModule} from '@angular/forms'; import type {Params} from '@angular/router'; import {ActivatedRoute, UrlSerializer} from '@angular/router'; import {TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens'; -import {tuiCoerceValue} from '@taiga-ui/addon-doc/utils'; +import {tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils'; import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous'; +import {TuiAlertService} from '@taiga-ui/core/components/alert'; import {TuiIcon} from '@taiga-ui/core/components/icon'; import {TuiTextfield} from '@taiga-ui/core/components/textfield'; import {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper'; @@ -55,6 +56,7 @@ export class TuiDocAPIItem implements OnInit { private readonly activatedRoute = inject(ActivatedRoute); private readonly urlSerializer = inject(UrlSerializer); private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER); + private readonly alerts = inject(TuiAlertService); @Input() public name = ''; @@ -81,6 +83,12 @@ export class TuiDocAPIItem implements OnInit { this.setQueryParam(value); } + public emitEvent(event: unknown): void { + this.alerts + .open(event ?? tuiInspectAny(event, 2), {label: this.name}) + .subscribe(); + } + private clearBrackets(value: string): string { return value.replaceAll(/[()[\]]/g, ''); } diff --git a/projects/demo/src/modules/components/input-card/index.html b/projects/demo/src/modules/components/input-card/index.html index 54ea47424148..9500f7a33f83 100644 --- a/projects/demo/src/modules/components/input-card/index.html +++ b/projects/demo/src/modules/components/input-card/index.html @@ -43,5 +43,76 @@ - + + + + + + + + + + Card number (also works with a reactive control) + + + Browser autocomplete of card + + + Card icon + + + BIN value (card first 6 symbols) + + + + +
+
+ + diff --git a/projects/demo/src/modules/components/input-card/index.ts b/projects/demo/src/modules/components/input-card/index.ts index a6af1afa2f68..c8c3482fd813 100644 --- a/projects/demo/src/modules/components/input-card/index.ts +++ b/projects/demo/src/modules/components/input-card/index.ts @@ -1,11 +1,43 @@ import {Component} from '@angular/core'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {TuiDocControl} from '@demo/components/control'; +import {TuiDocIcons} from '@demo/components/icons'; +import {TuiDocTextfield} from '@demo/components/textfield'; import {changeDetection} from '@demo/emulate/change-detection'; import {TuiDemo} from '@demo/utils'; +import {TuiInputCard} from '@taiga-ui/addon-commerce'; +import {TuiTextfield} from '@taiga-ui/core'; @Component({ standalone: true, - imports: [TuiDemo], + imports: [ + FormsModule, + ReactiveFormsModule, + TuiDemo, + TuiDocControl, + TuiDocIcons, + TuiDocTextfield, + TuiInputCard, + TuiTextfield, + ], templateUrl: './index.html', changeDetection, }) -export default class Page {} +export default class Page { + protected card = ''; + protected iconSelected: string | null = null; + protected autocomplete = false; + + protected readonly cards: Record = { + common: 'https://ng-web-apis.github.io/dist/assets/images/common.svg', + universal: 'https://ng-web-apis.github.io/dist/assets/images/universal.svg', + mutation: + 'https://ng-web-apis.github.io/dist/assets/images/mutation-observer.svg', + }; + + protected readonly iconVariants: readonly string[] = Object.keys(this.cards); + + protected get icon(): string | null { + return (this.iconSelected && this.cards[this.iconSelected]) || null; + } +}