@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
182 lines (181 loc) • 6.21 kB
TypeScript
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<SmeResponsiveWindowManagerComponent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<SmeResponsiveWindowManagerComponent, never, never, {}, {}, never, never, false, never>;
}