UNPKG

outsystems-ui

Version:
69 lines (64 loc) 1.99 kB
/* eslint-disable @typescript-eslint/no-unused-vars */ namespace OSFramework.OSUI.Patterns.AccordionItem { /** * Class that represents the custom configurations received by AccordionItem. * * @export * @class AccordionItemConfig * @extends {AbstractConfiguration} */ export class AccordionItemConfig extends AbstractConfiguration { public Icon: string; public IconPosition: string; public IsDisabled: boolean; public StartsExpanded: boolean; public ToggleWithIcon: boolean; constructor(config: JSON) { super(config); this.ToggleWithIcon = false; } /** * Method used to check if a given property can be changed! * * @param isBuilt if pattern is already built * @param key key name to be checked * @returns {boolean} * @memberof OSFramework.Patterns.AccordionItem.AccordionItemConfig */ public validateCanChange(isBuilt: boolean, key: string): boolean { if (isBuilt) { return key !== Enum.Properties.StartsExpanded; } return true; } /** * Method used to validate default value before apply it's change! * * @param key property name * @param value value to be set * @returns {*} * @memberof OSFramework.Patterns.AccordionItem.AccordionItemConfig */ public validateDefault(key: string, value: unknown): unknown { let validatedValue = undefined; switch (key) { case Enum.Properties.IsDisabled: validatedValue = this.validateBoolean(value as boolean, false); break; case Enum.Properties.Icon: validatedValue = this.validateString(value as string, Enum.IconType.Caret); break; case Enum.Properties.IconPosition: validatedValue = this.validateString(value as string, GlobalEnum.Direction.Right); break; case Enum.Properties.ToggleWithIcon: validatedValue = this.validateBoolean(value as boolean, false); break; default: validatedValue = super.validateDefault(key, value); break; } return validatedValue; } } }