UNPKG

outsystems-ui

Version:
163 lines (140 loc) 5.13 kB
// eslint-disable-next-line @typescript-eslint/no-unused-vars namespace OutSystems.OSUI.Patterns.AnimatedLabelAPI { const _animatedLabelsMap = new Map<string, OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel>(); //animatedlabel.uniqueId -> AnimatedLabel obj /** * Function that will change the property of a given animatedLabel. * * @export * @param {string} animatedLabelId ID of the AnimatedLabel where the property will be changed. * @param {string} propertyName Property name that will be updated * @param {unknown} propertyValue Value that will be set to the property */ export function ChangeProperty(animatedLabelId: string, propertyName: string, propertyValue: unknown): string { const result = OutSystems.OSUI.Utils.CreateApiResponse({ errorCode: ErrorCodes.AnimatedLabel.FailChangeProperty, callback: () => { const animatedlabel = GetAnimatedLabelById(animatedLabelId); animatedlabel.changeProperty(propertyName, propertyValue); }, }); return result; } /** * Create the new AnimatedLabel instance and add it to the animatedLabelsMap * * @export * @param {string} animatedLabelId ID of the Pattern that a new instance will be created. * @param {string} configs Configurations for the Pattern in JSON format. * @return {*} {OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel} */ export function Create( animatedLabelId: string, configs: string ): OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel { if (_animatedLabelsMap.has(animatedLabelId)) { throw new Error( `There is already an ${OSFramework.OSUI.GlobalEnum.PatternName.AnimatedLabel} registered under id: ${animatedLabelId}` ); } const _newAnimatedLabel = new OSFramework.OSUI.Patterns.AnimatedLabel.AnimatedLabel( animatedLabelId, JSON.parse(configs) ); _animatedLabelsMap.set(animatedLabelId, _newAnimatedLabel); return _newAnimatedLabel; } /** * Function that will dispose the instance of the given AnimatedLabel * * @export * @param {string} animatedLabelId */ export function Dispose(animatedLabelId: string): string { const result = OutSystems.OSUI.Utils.CreateApiResponse({ errorCode: ErrorCodes.AnimatedLabel.FailDispose, callback: () => { const animatedlabel = GetAnimatedLabelById(animatedLabelId); animatedlabel.dispose(); _animatedLabelsMap.delete(animatedlabel.uniqueId); }, }); return result; } /** * Fucntion that will return the Map with all the Animatedlabels instances at the page * * @export * @return {*} {Map<string, OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel>} */ export function GetAllAnimatedLabels(): Array<string> { return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_animatedLabelsMap); } /** * Function that gets the instance of AnimatedLabel, by a given ID. * * @export * @param {string} animatedLabelId ID of the AnimatedLabel that will be looked for. * @return {*} {OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel;} */ export function GetAnimatedLabelById( animatedLabelId: string ): OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel { return OSFramework.OSUI.Helper.MapOperation.FindInMap( OSFramework.OSUI.GlobalEnum.PatternName.AnimatedLabel, animatedLabelId, _animatedLabelsMap ) as OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel; } /** * Function that will initialize the pattern instance. * * @export * @param {string} animatedLabelId ID of the Animatedlabel that will be initialized. * @return {*} {OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel} */ export function Initialize(animatedLabelId: string): OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel { const animatedlabel = GetAnimatedLabelById(animatedLabelId); animatedlabel.build(); return animatedlabel; } /** * Function to register a provider callback * * @export * @param {string} dropdownId * @param {string} eventName * @param {OSFramework.OSUI.GlobalCallbacks.OSGeneric} callback * @return {*} {string} */ export function RegisterCallback( dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric ): string { const result = OutSystems.OSUI.Utils.CreateApiResponse({ errorCode: ErrorCodes.AnimatedLabel.FailRegisterCallback, callback: () => { const animatedlabel = this.GetAnimatedLabelById(dropdownId); animatedlabel.registerCallback(eventName, callback); }, }); return result; } /** * Fucntion that will update the Label text according text has been changed inside the input * * @export * @param {string} animatedLabelId ID of the Animatedlabel that will be updated. * @return {*} {OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel} */ export function UpdateOnRender(animatedLabelId: string): string { const result = OutSystems.OSUI.Utils.CreateApiResponse({ errorCode: ErrorCodes.AnimatedLabel.FailUpdate, callback: () => { const animatedlabel = GetAnimatedLabelById(animatedLabelId); animatedlabel.updateOnRender(); }, }); return result; } }