UNPKG

@ngx-uk-frontend/core

Version:

Core utilities and shared functionality for ngx-uk-frontend libraries

38 lines 1.84 kB
import { Directive, input } from '@angular/core'; import * as i0 from "@angular/core"; /** * Base directive for details components across different design systems. * Provides common functionality for disclosure/collapsible content components. * * This directive serves as the foundation for design system-specific details * implementations, ensuring consistent behavior and API across different * design systems (GOV.UK, Scottish Government, NHS, etc.). * * @example * ```typescript * @Component({ * selector: 'my-details', * template: ` * <details> * <summary>{{ summary() }}</summary> * <ng-content></ng-content> * </details> * ` * }) * export class MyDetailsComponent extends DetailsDirective {} * ``` */ export class DetailsDirective { /** * The text displayed in the details summary element. * This serves as the clickable trigger that shows/hides the content. * This input is required. */ summary = input.required(...(ngDevMode ? [{ debugName: "summary" }] : [])); static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DetailsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: DetailsDirective, isStandalone: true, inputs: { summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DetailsDirective, decorators: [{ type: Directive }], propDecorators: { summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: true }] }] } }); //# sourceMappingURL=details.directive.js.map