import { EventEmitter, Injector, OnInit, TemplateRef } from '@angular/core'; import { FormControl } from '@angular/forms'; import { ValidationAlerts } from '../../../form/validation-alert/validation-alert'; import { ArrayPropertySchemaFieldLoaderComponent } from '../../../schema/schema-field-host.component'; import { SmeInternalFormFieldComponent } from '../form-field.component'; import { FormFieldIsolatorComponent } from '../isolator/isolator.component'; import { ArrayFormFieldAccessibilityManagerService } from './array-form-field-accessibility-manager.service'; import * as i0 from "@angular/core"; export interface AskForNewItemEventArgs { item: any; } export interface AskForItemHeaderArgs { headerEvalFunc: MsftSme.Func2; } export interface AskForRemoveEvalFuncArgs { removeEvalFunc: MsftSme.Func2; } export declare class ArrayFormFieldLoaderComponent extends ArrayPropertySchemaFieldLoaderComponent { private arrayFormFieldComponent; askForNewItem($event: any): void; shouldAdjustControlButtonLocation(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Accessible Implementation of a form field for .sme-array */ export declare class ArrayFormFieldComponent extends SmeInternalFormFieldComponent implements OnInit { protected arrayFormFieldAccessibilityManagerService: ArrayFormFieldAccessibilityManagerService; private _itemTitle; /** * The source name to use for logging */ protected get logSourceName(): string; /** * Gets the item template from either the subFormTemplate or subFieldIsolator if provided. */ get itemTemplate(): TemplateRef; /** * If provided, the sub field isolator prevents child ngmodels from registering with the form. * Instead, we will use it to manage our own validity */ subFieldIsolator: FormFieldIsolatorComponent; /** * When no "newItem" is provided. This output will be called anytime a new item is required. */ askForNewItem: EventEmitter; askForItemHeader: EventEmitter; askForRemoveEvaluator: EventEmitter; /** * Indicates that the array item button locations should be adjusted to account for no item label. */ adjustControlButtonLocation: boolean; /** * Input for generating a new item from an existing object */ newItem: any; /** * Indicates if the add and remove actions should be shown */ showAdd: boolean; /** * Indicates if the remove actions should be shown for all items */ showRemove: boolean; /** * Indicates if the move actions should be shown */ showMove: boolean; canCloseAll: boolean; canCloseAny: boolean; canOpenMultiple: boolean; /** * Maximum number of items in the array */ maxItems: number; addButtonText: string; headerTemplate: TemplateRef; set itemTitle(value: string); get itemTitle(): string; /** * The aria label for this instance. */ get ariaLabel(): string; /** * When updated, the screen reader will announce this string */ screenReaderEvent: string; private addButton; /** * Initializes a new instance of the JsonFormFieldComponent */ constructor(injector: Injector, arrayFormFieldAccessibilityManagerService: ArrayFormFieldAccessibilityManagerService); /** * The method called after the component is initialized. */ ngOnInit(): void; /** * Updates a hidden aria-live region with information about changes to the page; if the same event is being repeated, the event string * is set in lowercase, so the screen reader thinks it's a new string. Clearing and re-setting the field does not prompt the screen * reader to read the aria-live region. * @param event the string to be announced */ private updateScreenReaderEvent; /** * Adds an item to the array */ add(): void; /** * Deletes an item from the array */ delete(item: any): void; /** * Decreases the index of an item by 1 */ moveUp(item: any): void; /** * Increases the index of an item by 1 */ moveDown(item: any): void; /** * The method called when a