import { EventEmitter } from '@stencil/core'; import { CheckboxOption } from './checkbox-option.interface'; import { HintExpander } from '../ontario-hint-expander/hint-expander.interface'; import { Base, Hint } from '../../utils/common/common.interface'; import { Caption } from '../../utils/common/input-caption/caption.interface'; import { Language } from '../../utils/common/language-types'; import { InputFocusBlurEvent, RadioAndCheckboxChangeEvent } from '../../utils/events/event-handler.interface'; export interface Checkboxes extends Base { /** * The text to display for the checkbox legend. * * @example * * */ hintExpander?: HintExpander | string; /** * The currently selected checkbox option values. * * The component keeps the host `value` in sync as users interact with the checkbox group. * If `value` is provided, it takes precedence over any `checked` flags passed through `options`. * * In HTML, pass `value` as a JSON string array. * * @example * * */ value?: string[] | string; /** * The options for the checkbox group. * * Each property will be passed in through an object in the options array. * This can either be passed in as an object directly (if using react), or as a string in HTML. * If there are multiple checkboxes in a fieldset, each checkbox will be displayed as an option. * * In the example below, the options are being passed in as a string and there are two checkboxes to be displayed in the fieldset. * * @example * * */ options: string | CheckboxOption[]; /** * This is used to determine whether the checkbox is required or not. * This prop also gets passed to the InputCaption utility to display either an optional or required flag in the label. * If no prop is set, it will default to false (optional). */ required?: boolean; /** * Used to add a custom function to the checkbox onChange event. */ customOnChange?: (event: globalThis.Event) => void; /** * Used to add a custom function to the checkbox onBlur event. */ customOnBlur?: (event: globalThis.Event) => void; /** * Used to add a custom function to the checkbox onFocus event. */ customOnFocus?: (event: globalThis.Event) => void; /** * Emitted when a keyboard input or mouse event occurs when a checkbox option has been changed. */ checkboxOnChange: EventEmitter; /** * Emitted when a keyboard input event occurs when a checkbox option has lost focus. */ checkboxOnBlur: EventEmitter; /** * Emitted when a keyboard input event occurs when a checkbox option has gained focus. */ checkboxOnFocus: EventEmitter; }