import { Layout } from './layout'; import * as i0 from "@angular/core"; /** * It defines the number of breakpoints that WAC currently support. * add more scenarios when WAC is going to support scenarios like tablet etc. */ export declare enum SmeResponsiveWindowBreakpointsValue { Reflow = 399.98, PhoneDown = 767.98, PhoneUp } /** * It defines the current supported scenario for window sizes. */ export declare enum SmeResponsiveWindowBreakpoints { Reflow = "Reflow", PhoneDown = "PhoneDown", PhoneUp = "PhoneUp" } /** * It defines an object to communicate among controls. */ export interface SmeResponsiveWindowData { width: number; height: number; size: SmeResponsiveWindowBreakpoints; reflowMode: boolean; phoneDown: boolean; phoneUp: boolean; } export declare class SmeResponsiveWindowManagerComponent { private layout?; /** * It defines whether the current window size is for super small window. */ protected internalReflowMode: boolean; /** * It defines whether the current window size is phone down. */ protected internalPhoneDown: boolean; /** * It defines whether the current window size is phone up. */ protected internalPhoneUp: boolean; /** * It defines whether the current solution/tool is using css v2 to support responsive window. */ protected internalCssV2: boolean; /** * the internal current window responsive mode. */ private internalResponsiveWindowMode; /** * The array for subscription. */ private subscriptions; /** * The most recent memory for the last known window information. */ private internalPrevSize; /** * Gets the current window responsive state. */ get responsiveWindowState(): SmeResponsiveWindowBreakpoints; /** * Sets the current window responsive state. */ set responsiveWindowState(input: SmeResponsiveWindowBreakpoints); /** * Gets the value indicating whether css v2 should be used. */ get cssV2(): boolean; /** * It sets the value for whether the current tool/solution is using css v2 for window responsiveness. */ set cssV2(input: boolean); /** * Gets the phone down mode. */ get phoneDown(): boolean; /** * Sets the phone down mode. */ set phoneDown(input: boolean); /** * Gets the phone up mode. */ get phoneUp(): boolean; /** * Set the phone up mode. */ set phoneUp(input: boolean); /** * Gets the reflow mode. */ get reflowMode(): boolean; /** * Sets the reflow mode. */ set reflowMode(input: boolean); /** * Gets the width of the window from the window object. * Should only be called on layout or window size change. */ get width(): number; /** * Gets the height of the window from the window object. * Should only be called on layout or window size change. */ get height(): number; /** * Gets the last known window responsive data. */ get prevSize(): SmeResponsiveWindowData; /** * Gets the window responsive break points. */ get size(): SmeResponsiveWindowBreakpoints; /** * The manager supports layout component and in the meantime listening to the window size change event. * @param layout the layout component. */ constructor(layout?: Layout); /** * It sets whether the current solution/tool is using the css v2 for window responsiveness. */ setIsCssV2Enabled(): void; /** * The implementation for checking whether the styles are being set. * @returns true if the current tool/solution is using css v2 for window responsiveness. */ private isUsingCssV2; /** * The functionality to update the core variables for window responsive data. * @returns The SmeResponsiveWindowData object */ getSmeResponsiveWindowData(): SmeResponsiveWindowData; /** * On layout changed event handler, occurs every time the layout has been changed. */ private onLayoutChanged; /** * The deferred layout changed handler. */ deferredOnLayoutChanged(): void; /** * To respond to a layout breakpoint changed event. * @returns void */ onWindowBreakpointChanged(): void; /** * Gets the parent element by html tag. By default, go up 10 levels for enhanced performance. * @param inputElement The input element. * @returns The targeted html element get by the html tag */ getParentElementByTag(inputElement: HTMLElement, parentHtmlTags?: string[], levelExternal?: number, customKeywords?: string, untilTagName?: string): HTMLElement; /** * The core algorithm for adding and removing classes based on window size and window size settings. * @param settings the settings object * @param curSettings the current setting * @param element the html element for setting up classes. * @returns void. */ updateClassArrayOnWindowSize(settings: any, curSettings: string, element: HTMLElement): void; /** * Merge two arrays with unique items. * @param arrayA the input array A * @param arrayB the input array B * @returns an array that contains unique items from array A and array B */ private uniqueArray; /** * Guarantees will not remove the classes that needs to be added. * @param toBeRemovedClassList the list of classes that needs to be removed. * @param toBeAddedClassList the list of classes that needs to be added. * @returns the list of classes that needs to be removed and doesn't overlap with the classes that needs to be added. */ private removeExistedItem; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }