import { ViewArrayImpl } from "static/js/services/view-array/view-array.impl"; /** * Specialized wrapper around array which provides a toggle() method for viewing the contents of the * array in a manner that is asynchronously filled in over a short time period. This prevents long * pauses in the UI for ngRepeat's when the array is significant in size. */ export abstract class ViewArray { /** * The stored entries. */ public abstract entries: any; /** * If the entries are displayed. */ public abstract isVisible: boolean; /** * The displayed entries. */ public abstract visibleEntries: any[]; /** * If there are stored entries. */ public abstract hasEntries: boolean; /** * If there are entries not visible. */ public abstract hasHiddenEntries: boolean; /** * Get the number of entries stored. * @return number The number of entries. */ public abstract length(): number; /** * Get a specific entry. * @param index The index of the entry. * @return element The element at the given index. */ public abstract get(index: number): any; /** * Add a new element. * @param elem The new element. */ public abstract push(elem: any): void; /** * Toggle whether the elements are visible. */ public abstract toggle(): void; /** * Set whether the elements are visible. * @param newState True/False if the contents are visible. */ public abstract setVisible(newState: boolean): void; /** * Factory function to create a new ViewArray. * @return viewArray New ViewArray instance. */ public abstract create(): ViewArrayImpl; }