UNPKG

@abgov/angular-components

Version:

Government of Alberta - UI components for Angular

1 lines 190 kB
{"version":3,"file":"abgov-angular-components.mjs","sources":["../../../../libs/angular-components/src/lib/value-directive.ts","../../../../libs/angular-components/src/lib/checked-directive.ts","../../../../libs/angular-components/src/lib/angular-components.module.ts","../../../../libs/angular-components/src/lib/components/base.component.ts","../../../../libs/angular-components/src/lib/components/accordion/accordion.ts","../../../../libs/angular-components/src/lib/components/badge/badge.ts","../../../../libs/angular-components/src/lib/components/block/block.ts","../../../../libs/angular-components/src/lib/components/button/button.ts","../../../../libs/angular-components/src/lib/components/button-group/button-group.ts","../../../../libs/angular-components/src/lib/components/callout/callout.ts","../../../../libs/angular-components/src/lib/components/card/card.ts","../../../../libs/angular-components/src/lib/components/card-content/card-content.ts","../../../../libs/angular-components/src/lib/components/card-actions/card-actions.ts","../../../../libs/angular-components/src/lib/components/card-image/card-image.ts","../../../../libs/angular-components/src/lib/components/checkbox/checkbox.ts","../../../../libs/angular-components/src/lib/components/chip/chip.ts","../../../../libs/angular-components/src/lib/components/circular-progress/circular-progress.ts","../../../../libs/angular-components/src/lib/components/column-layout/column-layout.ts","../../../../libs/angular-components/src/lib/components/container/container.ts","../../../../libs/angular-components/src/lib/components/date-picker/date-picker.ts","../../../../libs/angular-components/src/lib/components/details/details.ts","../../../../libs/angular-components/src/lib/components/divider/divider.ts","../../../../libs/angular-components/src/lib/components/drawer/drawer.ts","../../../../libs/angular-components/src/lib/components/dropdown/dropdown.ts","../../../../libs/angular-components/src/lib/components/dropdown-item/dropdown-item.ts","../../../../libs/angular-components/src/lib/components/file-upload-card/file-upload-card.ts","../../../../libs/angular-components/src/lib/components/file-upload-input/file-upload-input.ts","../../../../libs/angular-components/src/lib/components/filter-chip/filter-chip.ts","../../../../libs/angular-components/src/lib/components/footer/footer.ts","../../../../libs/angular-components/src/lib/components/footer-meta-section/footer-meta-section.ts","../../../../libs/angular-components/src/lib/components/footer-nav-section/footer-nav-section.ts","../../../../libs/angular-components/src/lib/components/form/public-form.ts","../../../../libs/angular-components/src/lib/components/form/public-form-page.ts","../../../../libs/angular-components/src/lib/components/form/public-form-summary.ts","../../../../libs/angular-components/src/lib/components/form/public-subform.ts","../../../../libs/angular-components/src/lib/components/form/public-subform-index.ts","../../../../libs/angular-components/src/lib/components/form/task.ts","../../../../libs/angular-components/src/lib/components/form/task-list.ts","../../../../libs/angular-components/src/lib/components/form/fieldset.ts","../../../../libs/angular-components/src/lib/components/form-item/form-item.ts","../../../../libs/angular-components/src/lib/components/form-item/form-item-slot.ts","../../../../libs/angular-components/src/lib/components/form-step/form-step.ts","../../../../libs/angular-components/src/lib/components/form-stepper/form-stepper.ts","../../../../libs/angular-components/src/lib/components/grid/grid.ts","../../../../libs/angular-components/src/lib/components/header/header.ts","../../../../libs/angular-components/src/lib/components/header-menu/header-menu.ts","../../../../libs/angular-components/src/lib/components/hero-banner/hero-banner.ts","../../../../libs/angular-components/src/lib/components/icon/icon.ts","../../../../libs/angular-components/src/lib/components/icon-button/icon-button.ts","../../../../libs/angular-components/src/lib/components/input/input.ts","../../../../libs/angular-components/src/lib/components/input-number/input-number.ts","../../../../libs/angular-components/src/lib/components/link/link.ts","../../../../libs/angular-components/src/lib/components/microsite-header/microsite-header.ts","../../../../libs/angular-components/src/lib/components/modal/modal.ts","../../../../libs/angular-components/src/lib/components/notification/notification.ts","../../../../libs/angular-components/src/lib/components/page-block/page-block.ts","../../../../libs/angular-components/src/lib/components/pages/pages.ts","../../../../libs/angular-components/src/lib/components/pagination/pagination.ts","../../../../libs/angular-components/src/lib/components/popover/popover.ts","../../../../libs/angular-components/src/lib/components/radio-group/radio-group.ts","../../../../libs/angular-components/src/lib/components/radio-item/radio-item.ts","../../../../libs/angular-components/src/lib/components/side-menu/side-menu.ts","../../../../libs/angular-components/src/lib/components/side-menu-group/side-menu-group.ts","../../../../libs/angular-components/src/lib/components/side-menu-heading/side-menu-heading.ts","../../../../libs/angular-components/src/lib/components/skeleton/skeleton.ts","../../../../libs/angular-components/src/lib/components/spacer/spacer.ts","../../../../libs/angular-components/src/lib/components/tab/tab.ts","../../../../libs/angular-components/src/lib/components/table/table.ts","../../../../libs/angular-components/src/lib/components/table-sort-header/table-sort-header.ts","../../../../libs/angular-components/src/lib/components/tabs/tabs.ts","../../../../libs/angular-components/src/lib/components/temporary-notification/temporary-notification.ts","../../../../libs/angular-components/src/lib/components/temporary-notification-ctrl/temporary-notification-ctrl.ts","../../../../libs/angular-components/src/lib/components/text/text.ts","../../../../libs/angular-components/src/lib/components/textarea/textarea.ts","../../../../libs/angular-components/src/lib/components/tooltip/tooltip.ts","../../../../libs/angular-components/src/abgov-angular-components.ts"],"sourcesContent":["import { forwardRef, Directive, ElementRef, HostListener } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n// @deprecated: Use the new <goab-input .. /> component\n@Directive({\n selector: \"[goaValue]\", providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ValueDirective),\n multi: true,\n }],\n})\nexport class ValueDirective implements ControlValueAccessor {\n private _value = \"\";\n private _disabled = false;\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n onChange: any = () => { /* default implementation */ };\n onTouched: any = () => { /* default implementation */ };\n\n get value(): string {\n return this._value;\n }\n\n set value(val: string) {\n this._value = val;\n this.onChange(this._value);\n this.onTouched();\n this.elementRef.nativeElement.value = val;\n }\n\n writeValue(value: string) {\n this.value = value;\n }\n\n registerOnChange(fn: () => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.elementRef.nativeElement.disabled = isDisabled;\n }\n\n constructor(protected elementRef: ElementRef) { }\n\n @HostListener(\"_change\", [\"$event.detail.value\"])\n listenForValueChange(value: string) {\n this.value = value;\n }\n @HostListener(\"disabledChange\", [\"$event.detail.disabled\"])\n listenForDisabledChange(isDisabled: boolean) {\n this.setDisabledState(isDisabled);\n }\n}\n\n@Directive({\n selector: \"[goaValueList]\",\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ValueListDirective),\n multi: true,\n }],\n})\nexport class ValueListDirective implements ControlValueAccessor {\n private _value?: string[] = [];\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get value(): string[] | undefined {\n return this._value;\n }\n\n set value(val: string[] | undefined) {\n if (val && val !== this._value) {\n this._setValue(val);\n this.elementRef.nativeElement.value = JSON.stringify(val);\n }\n }\n\n writeValue(value?: string[]) {\n if (value) {\n this.value = value;\n }\n }\n\n registerOnChange(fn: () => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n constructor(protected elementRef: ElementRef) { }\n\n @HostListener(\"_change\", [\"$event.detail.value\"])\n listenForValueChange(value: string) {\n if (!value) {\n this._setValue(undefined);\n return;\n }\n\n try {\n this.value = JSON.parse(value);\n } catch (e) {\n // we still need to trigger the events to prevent any previous valid value to remain set.\n const v = value.match(/^[\\w\\s,]*$/) ? value.split(\",\") : undefined;\n this._setValue(v);\n }\n }\n\n _setValue(value?: string[]) {\n this._value = value;\n this.onChange(value);\n this.onTouched();\n }\n}\n","import {\n forwardRef,\n Directive,\n ElementRef,\n HostListener,\n Renderer2,\n} from \"@angular/core\";\nimport {\n CheckboxControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from \"@angular/forms\";\n\n// @deprecated: Use the new <goab-checkbox .. /> component\n@Directive({\n selector: \"[goaChecked]\",\n providers: [\n {\n useExisting: forwardRef(() => CheckedDirective),\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n },\n ],\n})\nexport class CheckedDirective extends CheckboxControlValueAccessor {\n private _checked = false;\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n override onChange: any = () => {/** No implementation **/ };\n override onTouched: any = () => {/** No implementation **/ };\n\n constructor(protected renderer: Renderer2, protected elementRef: ElementRef) {\n super(renderer, elementRef);\n }\n\n get value(): string {\n return this._checked ? \"checked\" : \"\";\n }\n\n set value(checked: any) {\n this._checked = !!checked;\n this.onChange(this._checked);\n this.onTouched();\n this.elementRef.nativeElement.checked = checked;\n }\n\n override writeValue(checked: any) {\n this.value = checked;\n }\n\n override registerOnChange(fn: (_: any) => void) {\n this.onChange = fn;\n }\n\n override registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n @HostListener(\"_change\", [\"$event.detail.checked\"])\n listenForValueChange(checked: any) {\n this.value = checked;\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { ValueDirective, ValueListDirective } from \"./value-directive\";\nimport { CheckedDirective } from \"./checked-directive\";\n\n@NgModule({\n declarations: [ValueDirective, ValueListDirective, CheckedDirective],\n exports: [ValueDirective, ValueListDirective, CheckedDirective],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class AngularComponentsModule {}\n\nexport { ValueDirective, ValueListDirective, CheckedDirective };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Spacing } from \"@abgov/ui-components-common\";\nimport { booleanAttribute, Component, Input } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\n\n@Component({\n standalone: true,\n template: ``, //** IMPLEMENT IN SUBCLASS\n})\nexport abstract class GoabBaseComponent {\n @Input() mt?: Spacing;\n @Input() mb?: Spacing;\n @Input() ml?: Spacing;\n @Input() mr?: Spacing;\n @Input() testId?: string;\n}\n\n@Component({\n standalone: true,\n template: ``, //** IMPLEMENT IN SUBCLASS\n})\n/**\n * An abstract base class that extends `GoabBaseComponent` and implements the `ControlValueAccessor` interface.\n * This class provides a foundation for creating custom form controls in Angular, enabling them to integrate\n * seamlessly with Angular forms. It includes support for handling value changes, touch events, and disabled states.\n *\n * ## Features\n * - Supports `disabled=\"true\"` and `error=\"true` attribute bindings for convenience.\n * - Handles form control value changes and touch events via `ControlValueAccessor` methods.\n * - Allows for flexible value types (`unknown`), making it suitable for various data types like integers, dates, or booleans.\n *\n * ## Usage\n * Extend this class to create custom form controls. Implement additional functionality as needed for your specific use case.\n *\n * ## Properties\n * - `id?`: An optional identifier for the component.\n * - `disabled?`: A boolean indicating whether the component is disabled.\n * - `error?`: A boolean indicating whether the component is in an error state.\n * - `value?`: The current value of the component, which can be of any type.\n *\n * ## Methods\n * - `markAsTouched()`: Marks the component as touched and triggers the `fcTouched` callback if defined.\n * - `writeValue(value: unknown)`: Writes a new value to the form control.\n * - `registerOnChange(fn: any)`: Registers a function to handle changes in the form control value.\n * - `registerOnTouched(fn: any)`: Registers a function to handle touch events on the form control.\n * - `setDisabledState?(isDisabled: boolean)`: Sets the disabled state of the component.\n *\n * ## Callbacks\n * - `fcChange?`: A function to handle changes in the form control value.\n * - `fcTouched?`: A function to handle touch events on the form control.\n */\nexport abstract class GoabControlValueAccessor\n extends GoabBaseComponent\n implements ControlValueAccessor\n{\n @Input() id?: string;\n // supports disabled=\"true\" instead of [disabled]=\"true\"\n @Input({ transform: booleanAttribute }) public disabled?: boolean;\n // supports error=\"true\" instead of [error]=\"true\"\n @Input({ transform: booleanAttribute }) public error?: boolean;\n // this should be unknown (not string) as it might be an integer or a date or a boolean\n @Input() value?: unknown | null | undefined;\n\n // implement ControlValueAccessor\n\n /**\n * Function to handle changes in the form control value.\n * @param {unknown} value - The new value.\n */\n public fcChange?: (value: unknown) => void;\n\n /**\n * Function to handle touch events on the form control.\n */\n public fcTouched?: () => unknown;\n\n private touched = false;\n\n /**\n * Marks the component as touched. If the component is not already marked as touched,\n * it triggers the `fcTouched` callback (if defined) and sets the `touched` property to `true`.\n */\n public markAsTouched() {\n if (!this.touched) {\n this.fcTouched?.();\n this.touched = true;\n }\n }\n\n /**\n * Writes a new value to the form control.\n * @param {unknown} value - The value to write.\n */\n public writeValue(value: unknown): void {\n this.value = value;\n }\n\n /**\n * Registers a function to call when the form control value changes.\n * @param {function} fn - The function to call.\n */\n public registerOnChange(fn: any): void {\n this.fcChange = fn;\n }\n\n /**\n * Registers a function to call when the form control is touched.\n * @param {function} fn - The function to call.\n */\n public registerOnTouched(fn: any): void {\n this.fcTouched = fn;\n }\n\n /**\n * Sets the disabled state of the component.\n *\n * @param isDisabled - A boolean indicating whether the component should be disabled.\n */\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import {\n GoabAccordionHeadingSize,\n GoabAccordionIconPosition,\n} from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n Input,\n TemplateRef,\n Output,\n EventEmitter,\n booleanAttribute,\n} from \"@angular/core\";\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-accordion\",\n imports: [NgTemplateOutlet],\n template: `\n <goa-accordion\n [attr.heading]=\"heading\"\n [attr.secondarytext]=\"secondaryText\"\n [attr.open]=\"open\"\n [attr.headingsize]=\"headingSize\"\n [attr.maxwidth]=\"maxWidth\"\n [attr.testid]=\"testId\"\n [attr.iconposition]=\"iconPosition\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n (_change)=\"_onChange($event)\"\n >\n <div slot=\"headingcontent\">\n <ng-container [ngTemplateOutlet]=\"headingContent\"></ng-container>\n </div>\n <ng-content></ng-content>\n </goa-accordion>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabAccordion extends GoabBaseComponent {\n @Input() heading?: string;\n @Input() secondaryText?: string;\n @Input({ transform: booleanAttribute }) open?: boolean;\n @Input() headingSize?: GoabAccordionHeadingSize;\n @Input() headingContent!: TemplateRef<any>;\n @Input() maxWidth?: string;\n @Input() iconPosition?: GoabAccordionIconPosition;\n\n @Output() onChange = new EventEmitter<boolean>();\n\n _onChange(e: Event) {\n const detail = (e as CustomEvent).detail;\n this.onChange.emit(detail.open as boolean);\n }\n}\n","import { GoabBadgeType } from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n Input,\n booleanAttribute,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-badge\",\n template: `\n <goa-badge\n [attr.type]=\"type\"\n [attr.icon]=\"icon\"\n [attr.arialabel]=\"ariaLabel\"\n [attr.content]=\"content\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n </goa-badge>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n styles: [\n `\n :host {\n display: contents;\n }\n `,\n ],\n})\nexport class GoabBadge extends GoabBaseComponent {\n @Input() type?: GoabBadgeType;\n @Input() content?: string;\n @Input({ transform: booleanAttribute }) icon?: boolean;\n @Input() ariaLabel?: string;\n}\n","import {\n GoabBlockAlignment,\n GoabBlockDirection,\n Spacing,\n} from \"@abgov/ui-components-common\";\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-block\",\n template: `\n <goa-block\n [attr.gap]=\"gap\"\n [attr.direction]=\"direction\"\n [attr.alignment]=\"alignment\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n <ng-content />\n </goa-block>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabBlock extends GoabBaseComponent {\n @Input() gap?: Spacing;\n @Input() direction?: GoabBlockDirection;\n @Input() alignment?: GoabBlockAlignment;\n}\n","import {\n GoabButtonSize,\n GoabButtonType,\n GoabButtonVariant,\n GoabIconType,\n} from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n EventEmitter,\n Input,\n Output,\n booleanAttribute,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-button\",\n template: `\n <goa-button\n [attr.type]=\"type\"\n [attr.size]=\"size\"\n [attr.variant]=\"variant\"\n [disabled]=\"disabled\"\n [attr.leadingicon]=\"leadingIcon\"\n [attr.trailingicon]=\"trailingIcon\"\n [attr.width]=\"width\"\n [attr.testid]=\"testId\"\n [attr.action]=\"action\"\n [attr.action-arg]=\"actionArg\"\n [attr.action-args]=\"JSON.stringify(actionArgs)\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n (_click)=\"_onClick()\"\n >\n <ng-content />\n </goa-button>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabButton extends GoabBaseComponent {\n @Input() type?: GoabButtonType = \"primary\";\n @Input() size?: GoabButtonSize;\n @Input() variant?: GoabButtonVariant;\n @Input({ transform: booleanAttribute }) disabled?: boolean;\n @Input() leadingIcon?: GoabIconType;\n @Input() trailingIcon?: GoabIconType;\n @Input() width?: string;\n @Input() action?: string;\n @Input() actionArg?: string;\n @Input() actionArgs?: Record<string, unknown>;\n\n @Output() onClick = new EventEmitter();\n\n _onClick() {\n this.onClick.emit();\n }\n\n protected readonly JSON = JSON;\n}\n","import {\n GoabButtonGroupAlignment,\n GoabButtonGroupGap,\n} from \"@abgov/ui-components-common\";\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-button-group\",\n template: `\n <goa-button-group\n [attr.alignment]=\"alignment\"\n [attr.gap]=\"gap\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n <ng-content />\n </goa-button-group>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabButtonGroup extends GoabBaseComponent {\n @Input() alignment?: GoabButtonGroupAlignment;\n @Input() gap?: GoabButtonGroupGap;\n}\n","import {\n GoabCalloutAriaLive,\n GoabCalloutSize,\n GoabCalloutType,\n GoabCalloutIconTheme,\n} from \"@abgov/ui-components-common\";\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-callout\",\n template: `\n <goa-callout\n [attr.type]=\"type\"\n [attr.heading]=\"heading\"\n [attr.size]=\"size\"\n [attr.maxwidth]=\"maxWidth\"\n [attr.arialive]=\"ariaLive\"\n [attr.icontheme]=\"iconTheme\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n <ng-content />\n </goa-callout>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabCallout extends GoabBaseComponent {\n @Input() type?: GoabCalloutType = \"information\";\n @Input() heading?: string = \"\";\n @Input() size?: GoabCalloutSize = \"large\";\n @Input() maxWidth?: string;\n @Input() ariaLive?: GoabCalloutAriaLive = \"off\";\n @Input() iconTheme?: GoabCalloutIconTheme = \"outline\";\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, numberAttribute } from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-card\",\n template: `\n <goa-card\n [attr.elevation]=\"elevation\"\n [attr.width]=\"width\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n <ng-content />\n </goa-card>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabCard extends GoabBaseComponent {\n @Input({ transform: numberAttribute }) elevation?: number;\n @Input() width?: string;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-card-content\",\n template: `\n <goa-card-content>\n <ng-content />\n </goa-card-content>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabCardContent {\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-card-actions\",\n template: `\n <goa-card-actions>\n <ng-content />\n </goa-card-actions>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabCardActions {\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-card-image\",\n template: `\n <goa-card-image\n [attr.src]=\"src\"\n [attr.height]=\"height\"\n >\n <ng-content />\n </goa-card-image>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabCardImage {\n @Input({ required: true }) src!: string;\n @Input({ required: true }) height!: string;\n}\n","import { GoabCheckboxOnChangeDetail } from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n TemplateRef,\n booleanAttribute,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { NgIf, NgTemplateOutlet } from \"@angular/common\";\nimport { GoabControlValueAccessor } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-checkbox\",\n template: ` <goa-checkbox\n [attr.name]=\"name\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.error]=\"error\"\n [attr.text]=\"text\"\n [value]=\"value\"\n [attr.testid]=\"testId\"\n [attr.arialabel]=\"ariaLabel\"\n [attr.description]=\"getDescriptionAsString()\"\n [attr.revealarialabel]=\"revealArialLabel\"\n [id]=\"id\"\n [attr.maxwidth]=\"maxWidth\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n (_change)=\"_onChange($event)\"\n >\n <ng-content />\n <div slot=\"description\">\n <ng-container [ngTemplateOutlet]=\"getDescriptionAsTemplate()\"></ng-container>\n </div>\n <div slot=\"reveal\">\n <ng-container *ngIf=\"reveal\" [ngTemplateOutlet]=\"reveal\"></ng-container>\n </div>\n </goa-checkbox>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => GoabCheckbox),\n },\n ],\n imports: [NgTemplateOutlet, NgIf],\n})\nexport class GoabCheckbox extends GoabControlValueAccessor {\n @Input() name?: string;\n @Input({ transform: booleanAttribute }) checked?: boolean;\n @Input() text?: string;\n // ** NOTE: can we just use the base component for this?\n @Input() override value?: string | number | boolean;\n @Input() ariaLabel?: string;\n @Input() description!: string | TemplateRef<any>;\n @Input() reveal?: TemplateRef<any>;\n @Input() revealArialLabel?: string;\n @Input() maxWidth?: string;\n\n @Output() onChange = new EventEmitter<GoabCheckboxOnChangeDetail>();\n\n getDescriptionAsString(): string {\n return typeof this.description === \"string\" ? this.description : \"\";\n }\n\n getDescriptionAsTemplate(): TemplateRef<any> | null {\n if (this.description) {\n return typeof this.description === \"string\" ? null : this.description;\n }\n return null;\n }\n\n _onChange(e: Event) {\n const detail = (e as CustomEvent<GoabCheckboxOnChangeDetail>).detail;\n this.onChange.emit(detail);\n this.markAsTouched();\n this.fcChange?.(detail.binding === \"check\" ? detail.checked : detail.value || \"\");\n }\n}\n","import {\n GoabChipTheme,\n GoabChipVariant,\n GoabIconType,\n} from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n Input,\n Output,\n EventEmitter,\n booleanAttribute,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-chip\",\n template: `<goa-chip\n [attr.leadingicon]=\"leadingIcon\"\n [attr.variant]=\"variant\"\n [attr.error]=\"error\"\n [attr.deletable]=\"deletable\"\n [attr.icontheme]=\"iconTheme\"\n [attr.content]=\"content\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n (_click)=\"_onClick()\"\n >\n <ng-content />\n </goa-chip>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabChip extends GoabBaseComponent {\n @Input() leadingIcon?: GoabIconType | null;\n @Input({ transform: booleanAttribute }) error?: boolean;\n @Input({ transform: booleanAttribute }) deletable?: boolean;\n @Input() content?: string = \"\";\n @Input() variant?: GoabChipVariant;\n @Input() iconTheme?: GoabChipTheme;\n\n @Output() onClick = new EventEmitter();\n\n _onClick() {\n this.onClick.emit();\n }\n}\n","import {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n Input,\n booleanAttribute,\n numberAttribute,\n} from \"@angular/core\";\n\nimport {\n GoabCircularProgressSize,\n GoabCircularProgressVariant,\n} from \"@abgov/ui-components-common\";\n\n@Component({\n standalone: true,\n selector: \"goab-circular-progress\",\n template: `\n <goa-circular-progress\n [attr.variant]=\"variant\"\n [attr.size]=\"size\"\n [attr.message]=\"message\"\n [attr.visible]=\"visible\"\n [attr.progress]=\"progress\"\n [attr.testid]=\"testId\"\n >\n </goa-circular-progress>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabCircularProgress {\n @Input() variant?: GoabCircularProgressVariant;\n @Input() size?: GoabCircularProgressSize;\n @Input() message?: string;\n @Input({ transform: booleanAttribute }) visible?: boolean;\n @Input({ transform: numberAttribute }) progress?: number;\n @Input() testId?: string;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-column-layout\",\n template: `\n <goa-one-column-layout>\n <ng-content />\n </goa-one-column-layout>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabColumnLayout {\n /** no props **/\n}\n","import {\n GoabContainerAccent,\n GoabContainerPadding,\n GoabContainerType,\n GoabContainerWidth,\n} from \"@abgov/ui-components-common\";\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, Input, TemplateRef } from \"@angular/core\";\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-container\",\n imports: [NgTemplateOutlet],\n template: `<goa-container\n [attr.type]=\"type\"\n [attr.accent]=\"accent\"\n [attr.padding]=\"padding\"\n [attr.width]=\"width\"\n [attr.maxwidth]=\"maxWidth\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n <div slot=\"title\">\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n </div>\n <ng-content />\n <div slot=\"actions\">\n <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n </div>\n </goa-container>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabContainer extends GoabBaseComponent {\n @Input() type?: GoabContainerType = \"interactive\";\n @Input() accent?: GoabContainerAccent = \"filled\";\n @Input() padding?: GoabContainerPadding = \"relaxed\";\n @Input() width?: GoabContainerWidth = \"full\";\n @Input() maxWidth?: string;\n @Input() title!: TemplateRef<any>;\n @Input() actions!: TemplateRef<any>;\n}\n","import { GoabDatePickerInputType, GoabDatePickerOnChangeDetail } from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n ElementRef,\n HostListener,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { GoabControlValueAccessor } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-date-picker\",\n template: ` <goa-date-picker\n [attr.name]=\"name\"\n [attr.value]=\"formatValue(value)\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.error]=\"error\"\n [attr.disabled]=\"disabled\"\n [attr.relative]=\"relative\"\n [attr.type]=\"type\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n (_change)=\"_onChange($event)\"\n >\n </goa-date-picker>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => GoabDatePicker),\n },\n ],\n})\nexport class GoabDatePicker extends GoabControlValueAccessor {\n @Input() name?: string;\n // ** NOTE: can we just use the base component for this?\n @Input() override value?: Date | string | null | undefined;\n @Input() min?: Date | string;\n @Input() max?: Date | string;\n @Input() type?: GoabDatePickerInputType;\n /***\n * @deprecated This property has no effect and will be removed in a future version\n */\n @Input() relative?: boolean;\n\n @Output() onChange = new EventEmitter<GoabDatePickerOnChangeDetail>();\n\n formatValue(val: Date | string | null | undefined): string {\n if (!val) return \"\";\n\n if (val instanceof Date) {\n return val.toISOString();\n }\n\n return val;\n }\n\n _onChange(e: Event) {\n const detail = (e as CustomEvent<GoabDatePickerOnChangeDetail>).detail;\n this.onChange.emit(detail);\n this.markAsTouched();\n this.fcChange?.(detail.value);\n }\n\n constructor(protected elementRef: ElementRef) {\n super();\n }\n\n override setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.elementRef.nativeElement.disabled = isDisabled;\n }\n\n @HostListener(\"disabledChange\", [\"$event.detail.disabled\"])\n listenDisabledChange(isDisabled: boolean) {\n this.setDisabledState(isDisabled);\n }\n\n override writeValue(value: Date | null): void {\n this.value = value;\n\n const datePickerEl = this.elementRef?.nativeElement?.querySelector(\"goa-date-picker\");\n\n if (datePickerEl) {\n if (!value) {\n datePickerEl.setAttribute(\"value\", \"\");\n } else {\n datePickerEl.setAttribute(\n \"value\",\n value instanceof Date ? value.toISOString() : value,\n );\n }\n }\n }\n}\n","import {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n Input,\n booleanAttribute,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-details\",\n template: `\n <goa-details\n [attr.heading]=\"heading\"\n [attr.testid]=\"testId\"\n [attr.open]=\"open\"\n [attr.maxwidth]=\"maxWidth\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n <ng-content />\n </goa-details>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabDetails extends GoabBaseComponent {\n @Input({ required: true }) heading!: string;\n @Input({ transform: booleanAttribute }) open?: boolean;\n @Input() maxWidth?: string;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-divider\",\n template: `\n <goa-divider\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n >\n </goa-divider>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabDivider extends GoabBaseComponent {}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport {\n booleanAttribute,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n} from \"@angular/core\";\nimport { GoabDrawerPosition, GoabDrawerSize } from \"@abgov/ui-components-common\";\n\n@Component({\n standalone: true,\n selector: \"goab-drawer\",\n imports: [NgTemplateOutlet],\n template: `\n <goa-drawer\n [open]=\"open\"\n [attr.position]=\"position\"\n [attr.heading]=\"getHeadingAsString()\"\n [attr.maxsize]=\"maxSize\"\n [attr.testid]=\"testId\"\n (_close)=\"_onClose()\"\n >\n <ng-content></ng-content>\n <div slot=\"heading\">\n <ng-container [ngTemplateOutlet]=\"getHeadingAsTemplate()\"></ng-container>\n </div>\n <div slot=\"actions\">\n <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n </div>\n </goa-drawer>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabDrawer {\n @Input({ required: true, transform: booleanAttribute }) open!: boolean;\n @Input({ required: true }) position!: GoabDrawerPosition;\n @Input() heading!: string | TemplateRef<any>;\n @Input() maxSize?: GoabDrawerSize;\n @Input() testId?: string;\n @Input() actions!: TemplateRef<any>;\n @Output() onClose = new EventEmitter();\n\n _onClose() {\n this.onClose.emit();\n }\n\n getHeadingAsString(): string {\n return this.heading instanceof TemplateRef ? \"\" : this.heading;\n }\n\n getHeadingAsTemplate(): TemplateRef<any> | null {\n if (!this.heading) return null;\n return this.heading instanceof TemplateRef ? this.heading : null;\n }\n}\n","import { GoabDropdownOnChangeDetail, GoabIconType } from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n EventEmitter,\n Input,\n Output,\n booleanAttribute,\n forwardRef,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { GoabControlValueAccessor } from \"../base.component\";\n\n// \"disabled\", \"value\", \"id\" is an exposed property of HTMLInputElement, no need to bind with attr\n@Component({\n standalone: true,\n selector: \"goab-dropdown\",\n template: `\n <goa-dropdown\n [attr.name]=\"name\"\n [value]=\"value\"\n [attr.arialabel]=\"ariaLabel\"\n [attr.arialabelledby]=\"ariaLabelledBy\"\n [disabled]=\"disabled\"\n [attr.error]=\"error\"\n [attr.filterable]=\"filterable\"\n [attr.leadingicon]=\"leadingIcon\"\n [attr.maxheight]=\"maxHeight\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n [attr.mt]=\"mt\"\n [attr.multiselect]=\"multiselect\"\n [attr.native]=\"native\"\n [attr.placeholder]=\"placeholder\"\n [attr.testid]=\"testId\"\n [attr.width]=\"width\"\n [attr.relative]=\"relative\"\n [attr.autocomplete]=\"autoComplete\"\n [id]=\"id\"\n (_change)=\"_onChange($event)\"\n >\n <ng-content />\n </goa-dropdown>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => GoabDropdown),\n },\n ],\n})\nexport class GoabDropdown extends GoabControlValueAccessor {\n @Input() name?: string;\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input({ transform: booleanAttribute }) filterable?: boolean;\n @Input() leadingIcon?: GoabIconType;\n @Input() maxHeight?: string;\n @Input({ transform: booleanAttribute }) multiselect?: boolean;\n @Input({ transform: booleanAttribute }) native?: boolean;\n @Input() placeholder?: string;\n @Input() width?: string;\n @Input() autoComplete?: string;\n /***\n * @deprecated This property has no effect and will be removed in a future version\n */\n @Input() relative?: boolean;\n\n @Output() onChange = new EventEmitter<GoabDropdownOnChangeDetail>();\n\n _onChange(e: Event) {\n const detail = (e as CustomEvent<GoabDropdownOnChangeDetail>).detail;\n this.onChange.emit(detail);\n\n this.markAsTouched();\n this.fcChange?.(detail.value || \"\");\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\nimport { GoabDropdownItemMountType } from \"@abgov/ui-components-common\";\n\n@Component({\n standalone: true,\n selector: \"goab-dropdown-item\",\n template: `\n <goa-dropdown-item\n [value]=\"value\"\n [label]=\"label\"\n [attr.filter]=\"filter\"\n [attr.name]=\"name\"\n [attr.mount]=\"mountType\"\n >\n </goa-dropdown-item>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabDropdownItem {\n @Input() value?: string;\n @Input() filter?: string;\n @Input() label?: string;\n @Input() name?: string;\n @Input() mountType?: GoabDropdownItemMountType;\n}\n\n\n","import {\n GoabFileUploadOnCancelDetail,\n GoabFileUploadOnDeleteDetail,\n} from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n EventEmitter,\n Input,\n Output,\n numberAttribute,\n} from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-file-upload-card\",\n template: `<goa-file-upload-card\n [attr.filename]=\"filename\"\n [attr.size]=\"size\"\n [attr.type]=\"type\"\n [attr.progress]=\"progress\"\n [attr.error]=\"error\"\n [attr.testid]=\"testId\"\n (_cancel)=\"_onCancel()\"\n (_delete)=\"_onDelete()\"\n >\n </goa-file-upload-card>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabFileUploadCard {\n @Input({ required: true }) filename!: string;\n @Input({ transform: numberAttribute }) size?: number;\n @Input() type?: string;\n @Input({ transform: numberAttribute }) progress?: number;\n @Input() error?: string;\n @Input() testId?: string;\n\n @Output() onCancel = new EventEmitter<GoabFileUploadOnCancelDetail>();\n @Output() onDelete = new EventEmitter<GoabFileUploadOnDeleteDetail>();\n\n _onCancel() {\n this.onCancel.emit({ filename: this.filename });\n }\n\n _onDelete() {\n this.onDelete.emit({ filename: this.filename });\n }\n}\n","import {\n GoabFileUploadInputOnSelectFileDetail,\n GoabFileUploadInputVariant,\n} from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n EventEmitter,\n Input,\n Output,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-file-upload-input\",\n template: `<goa-file-upload-input\n [attr.variant]=\"variant\"\n [attr.accept]=\"accept\"\n [attr.maxfilesize]=\"maxFileSize\"\n [attr.testid]=\"testId\"\n [id]=\"id\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.mr]=\"mr\"\n [attr.ml]=\"ml\"\n (_selectFile)=\"_onSelectFile($event)\"\n >\n </goa-file-upload-input>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabFileUploadInput extends GoabBaseComponent {\n @Input() id?: string = \"\";\n @Input({ required: true }) variant!: GoabFileUploadInputVariant;\n @Input() maxFileSize?: string = \"5MB\";\n @Input() accept?: string;\n\n @Output() onSelectFile = new EventEmitter<GoabFileUploadInputOnSelectFileDetail>();\n\n _onSelectFile(e: Event) {\n const detail = (e as CustomEvent<GoabFileUploadInputOnSelectFileDetail>).detail;\n this.onSelectFile.emit(detail);\n }\n}\n","import { GoabChipTheme } from \"@abgov/ui-components-common\";\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n Input,\n Output,\n EventEmitter,\n booleanAttribute,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n standalone: true,\n selector: \"goab-filter-chip\",\n template: `<goa-filter-chip\n [attr.error]=\"error\"\n [attr.icontheme]=\"iconTheme\"\n [attr.content]=\"content\"\n [attr.testid]=\"testId\"\n [attr.mt]=\"mt\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n [attr.mr]=\"mr\"\n (_click)=\"_onClick()\"\n >\n <ng-content />\n </goa-filter-chip>`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabFilterChip extends GoabBaseComponent {\n @Input({ transform: booleanAttribute }) error?: boolean;\n @Input({ transform: booleanAttribute }) deletable?: boolean;\n @Input() content?: string = \"\";\n @Input() iconTheme?: GoabChipTheme;\n\n @Output() onClick = new EventEmitter();\n\n _onClick() {\n this.onClick.emit();\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-app-footer\",\n template: `\n <goa-app-footer\n [attr.maxcontentwidth]=\"maxContentWidth\"\n [attr.url]=\"url\"\n [attr.testid]=\"testId\"\n >\n <ng-content select=\"[slot=nav]\" />\n <ng-content select=\"goab-app-footer-meta-section\"></ng-content>\n <ng-content></ng-content>\n </goa-app-footer>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabAppFooter {\n @Input() maxContentWidth?: string;\n @Input() testId?: string;\n @Input() url?: string;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-app-footer-meta-section\",\n template: `\n <goa-app-footer-meta-section [attr.testid]=\"testId\">\n <ng-content />\n </goa-app-footer-meta-section>\n `,\n styles: [\":host { width: 100%; }\"],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class GoabAppFooterMetaSection {\n @Input() testId?: string;\n /** \"slot\" is required and must equal to \"meta\" so it can be rendered in the correct position **/\n @Input({ required: true }) slot!: \"meta\";\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"goab-app-footer-nav-section\",\n template: `\n <goa-app-footer-nav-section\n [attr.maxcolumncount]=\"maxColumnCount\"\n [attr.heading]=\"heading\"\n [attr.testid]=\"testId\"\n >\n <ng-content />\n </goa-app-footer-nav-section>\n `,\n styles: [\":host { width: 100%; }\"],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabAppFooterNavSection {\n @Input() heading?: string;\n @Input() maxColumnCount? = 1;\n @Input() testId?: string;\n /** \"slot\" is required and must equal to \"nav\" so it can be rendered in the correct position **/\n @Input({ required: true }) slot!: \"nav\";\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from \"@angular/core\";\nimport { GoabFormState, GoabPublicFormStatus } from \"@abgov/ui-components-common\";\n\n@Component({\n selector: \"goab-public-form\",\n standalone: true,\n template: `\n <goa-public-form\n [attr.status]=\"status\"\n [attr.name]=\"name\"\n (_init)=\"_onInit($event)\"\n (_complete)=\"_onComplete($event)\"\n (_stateChange)=\"_onStateChange($event)\"\n >\n <ng-content />\n </goa-public-form>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabPublicForm {\n @Input() status?: GoabPublicFormStatus = \"complete\";\n @Input() name?: string;\n\n @Output() onInit = new EventEmitter<Event>();\n @Output() onComplete = new EventEmitter<GoabFormState>();\n @Output() onStateChange = new EventEmitter<GoabFormState>();\n\n\n _onInit(e: Event) {\n this.onInit.emit(e);\n }\n\n _onComplete(e: Event) {\n const detail = (e as CustomEvent).detail;\n this.onComplete.emit(detail);\n }\n\n _onStateChange(e: Event) {\n const detail = (e as CustomEvent).detail;\n this.onStateChange.emit(detail.data);\n }\n}\n","import {\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n EventEmitter,\n Input,\n Output,\n} from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\nimport {\n GoabPublicFormPageButtonVisibility,\n GoabPublicFormPageStep,\n} from \"@abgov/ui-components-common\";\n\n@Component({\n selector: \"goab-public-form-page\",\n standalone: true,\n template: `\n <goa-public-form-page\n [id]=\"id\"\n [attr.heading]=\"heading\"\n [attr.sub-heading]=\"subHeading\"\n [attr.section-title]=\"sectionTitle\"\n [attr.back-url]=\"backUrl\"\n [attr.type]=\"type\"\n [attr.button-text]=\"buttonText\"\n [attr.button-visibility]=\"buttonVisibility\"\n [attr.summary-heading]=\"summaryHeading\"\n [attr.mt]=\"mt\"\n [attr.mr]=\"mr\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n (_continue)=\"_onContinue($event)\"\n >\n <ng-content></ng-content>\n </goa-public-form-page>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabPublicFormPage extends GoabBaseComponent {\n @Input() id = \"\";\n @Input() heading = \"\";\n @Input() subHeading = \"\";\n @Input() summaryHeading = \"\";\n @Input() sectionTitle = \"\";\n @Input() backUrl = \"\";\n @Input() type: GoabPublicFormPageStep = \"step\";\n @Input() buttonText = \"\";\n @Input() buttonVisibility : GoabPublicFormPageButtonVisibility = \"visible\";\n\n /**\n * triggers when the form page continues to the next step\n */\n @Output() onContinue = new EventEmitter<Event>();\n\n _onContinue(event: Event) {\n this.onContinue.emit(event);\n }\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from \"@angular/core\";\n\n@Component({\n selector: \"goab-public-form-summary\",\n standalone: true,\n template: `\n <goa-public-form-summary\n [attr.heading]=\"heading\"\n >\n <ng-content />\n </goa-public-form-summary>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabPublicFormSummary {\n @Input() heading?: string;\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from \"@angular/core\";\nimport { GoabBaseComponent } from \"../base.component\";\n\n@Component({\n selector: \"goab-public-subform\",\n standalone: true,\n template: `\n <goa-public-subform\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.continue-msg]=\"continueMsg\"\n [attr.mt]=\"mt\"\n [attr.mr]=\"mr\"\n [attr.mb]=\"mb\"\n [attr.ml]=\"ml\"\n (_init)=\"_onInit($event)\"\n (_stateChange)=\"_onStateChange($event)\"\n >\n <ng-content />\n </goa-public-subform>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class GoabPublicSubform extends GoabBaseComponent {\n @Input() id?: string = \"\";\n @Input() name?: string = \"\";\n @Input() continueMsg?: string = \"\";\n\n @Output() onInit = new EventEmit