smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
1 lines • 83.7 kB
Source Map (JSON)
{"version":3,"file":"smart-webcomponents-angular-window.mjs","sources":["../../window/src/smart.element.ts","../../window/src/smart.window.ts","../../window/src/smart.window.module.ts","../../window/src/smart-webcomponents-angular-window.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\n@Directive()\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the license. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\t\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nlet Smart: any;\nif (typeof window !== \"undefined\") {\n\tSmart = window.Smart;\n}\nexport { Smart };\n\n","import { Window } from './../index';\nimport { Animation, WindowAutoCapitalize, WindowDisplayMode, WindowDropPosition, WindowFooterPosition, TabPosition, WindowResizeMode, TabSelectionMode, WindowTabCloseButtonMode, Overflow, LayoutPosition, Orientation, WindowWrap, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { Animation, WindowAutoCapitalize, WindowDisplayMode, WindowDropPosition, WindowFooterPosition, TabPosition, WindowResizeMode, TabSelectionMode, WindowTabCloseButtonMode, Overflow, LayoutPosition, Orientation, WindowWrap, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { Window } from './../index';\n\n\n@Directive({\n\texportAs: 'smart-window',\tselector: 'smart-window, [smart-window], smart-tabs-window, smart-prompt-window, smart-multiline-prompt-window, smart-dialog-window, smart-alert-window, smart-progress-window, smart-wait-window'\n})\n\nexport class WindowComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n\tconstructor(ref: ElementRef<Window>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as Window;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic declare nativeElement: Window;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <Window>document.createElement('smart-window');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n\t/** @description Determines if 'Add New' Tab inside the Tabs element is visible. Applicable only to TabsWindow */\n\t@Input()\n\tget addNewTab(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.addNewTab : undefined;\n\t}\n\tset addNewTab(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.addNewTab = value : undefined;\n\t}\n\n\t/** @description Sets or gets the animation mode. Animation is disabled when the property is set to 'none' */\n\t@Input()\n\tget animation(): Animation | string {\n\t\treturn this.nativeElement ? this.nativeElement.animation : undefined;\n\t}\n\tset animation(value: Animation | string) {\n\t\tthis.nativeElement ? this.nativeElement.animation = value : undefined;\n\t}\n\n\t/** @description Determines whether and how the value should be automatically capitalized as it is entered/edited by the user. Applicable only to MultilinePromptWindow. */\n\t@Input()\n\tget autoCapitalize(): WindowAutoCapitalize | string {\n\t\treturn this.nativeElement ? this.nativeElement.autoCapitalize : undefined;\n\t}\n\tset autoCapitalize(value: WindowAutoCapitalize | string) {\n\t\tthis.nativeElement ? this.nativeElement.autoCapitalize = value : undefined;\n\t}\n\n\t/** @description Determines whether element will auto expand when the input overflows vertically. Applicable only to MultilinePromptWindow. */\n\t@Input()\n\tget autoExpand(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoExpand : undefined;\n\t}\n\tset autoExpand(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoExpand = value : undefined;\n\t}\n\n\t/** @description Determines the label for the 'cancel' button inside the Prompt Window. */\n\t@Input()\n\tget cancelLabel(): string {\n\t\treturn this.nativeElement ? this.nativeElement.cancelLabel : undefined;\n\t}\n\tset cancelLabel(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.cancelLabel = value : undefined;\n\t}\n\n\t/** @description Determines the label for the 'Complete' button insinde the Progress Window. */\n\t@Input()\n\tget completeLabel(): string {\n\t\treturn this.nativeElement ? this.nativeElement.completeLabel : undefined;\n\t}\n\tset completeLabel(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.completeLabel = value : undefined;\n\t}\n\n\t/** @description Determines the label for the 'Confirm' button insinde the Prompt Window. */\n\t@Input()\n\tget confirmLabel(): string {\n\t\treturn this.nativeElement ? this.nativeElement.confirmLabel : undefined;\n\t}\n\tset confirmLabel(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.confirmLabel = value : undefined;\n\t}\n\n\t/** @description Determines if the window is collapsed or not. When collapsed the only the header of the window is visible. */\n\t@Input()\n\tget collapsed(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.collapsed : undefined;\n\t}\n\tset collapsed(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.collapsed = value : undefined;\n\t}\n\n\t/** @description When a modal window is opened, thid property determines if clicking on the mask closes the window or not. */\n\t@Input()\n\tget closeOnMaskClick(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.closeOnMaskClick : undefined;\n\t}\n\tset closeOnMaskClick(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.closeOnMaskClick = value : undefined;\n\t}\n\n\t/** @description Determines the data source that will be loaded to the TabsWindow. Applicable only to TabsWindow. */\n\t@Input()\n\tget dataSource(): {label: string, content: string}[] {\n\t\treturn this.nativeElement ? this.nativeElement.dataSource : undefined;\n\t}\n\tset dataSource(value: {label: string, content: string}[]) {\n\t\tthis.nativeElement ? this.nativeElement.dataSource = value : undefined;\n\t}\n\n\t/** @description Enables or disables the window. */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description Enables or disables the window snapping feature. */\n\t@Input()\n\tget disableSnap(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableSnap : undefined;\n\t}\n\tset disableSnap(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableSnap = value : undefined;\n\t}\n\n\t/** @description By default the window is closing after the 'Escape' key is pressed. Set this property to true, if you want to disable that. */\n\t@Input()\n\tget disableEscape(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableEscape : undefined;\n\t}\n\tset disableEscape(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableEscape = value : undefined;\n\t}\n\n\t/** @description By default the window is handling keyboard keys like 'Arrows', 'Escape', etc. Set this property to true, if you want to disable that. */\n\t@Input()\n\tget disableKeyboard(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableKeyboard : undefined;\n\t}\n\tset disableKeyboard(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableKeyboard = value : undefined;\n\t}\n\n\t/** @description Determines how the characters are displayed inside the input. Applicable to Prompt Window. */\n\t@Input()\n\tget displayMode(): WindowDisplayMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.displayMode : undefined;\n\t}\n\tset displayMode(value: WindowDisplayMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.displayMode = value : undefined;\n\t}\n\n\t/** @description Applicable to TabsWindow when docked inside a DockingLayout Custom Element. Determines where the window(it's tab items as well) can be dropped inside the DockingLayout. The property is an array that accepts multiple positions. Note: Positions with prefix 'layout-' are applied to the Tab item children of the TabsWidnow owner that is being dragged. The rest of the positions indicate the allowed drop position inside the hovered target(TabsWindow). Used only by jqxDockingLayout custom elements. Determines the possible drop position inside the DockingLayout. The following values are allowed. */\n\t@Input()\n\tget dropPosition(): WindowDropPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.dropPosition : undefined;\n\t}\n\tset dropPosition(value: WindowDropPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.dropPosition = value : undefined;\n\t}\n\n\t/** @description A callback function defining the new format for the label of the Progress Bar. Applicable only to ProgressWindow. */\n\t@Input()\n\tget formatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.formatFunction : undefined;\n\t}\n\tset formatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.formatFunction = value : undefined;\n\t}\n\n\t/** @description Determines the position of the footer of the window element. */\n\t@Input()\n\tget footerPosition(): WindowFooterPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.footerPosition : undefined;\n\t}\n\tset footerPosition(value: WindowFooterPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.footerPosition = value : undefined;\n\t}\n\n\t/** @description Determines the template for the Dialog section of the window. By default footerTemplate is null. */\n\t@Input()\n\tget footerTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.footerTemplate : undefined;\n\t}\n\tset footerTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.footerTemplate = value : undefined;\n\t}\n\n\t/** @description Set's the buttons that will be visible in the header section. */\n\t@Input()\n\tget headerButtons(): string[] {\n\t\treturn this.nativeElement ? this.nativeElement.headerButtons : undefined;\n\t}\n\tset headerButtons(value: string[]) {\n\t\tthis.nativeElement ? this.nativeElement.headerButtons = value : undefined;\n\t}\n\n\t/** @description Determines the template for the Dialog section of the window. By default headerTemplate is null. */\n\t@Input()\n\tget headerTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.headerTemplate : undefined;\n\t}\n\tset headerTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.headerTemplate = value : undefined;\n\t}\n\n\t/** @description Determines the position of the header of the window element. */\n\t@Input()\n\tget headerPosition(): TabPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.headerPosition : undefined;\n\t}\n\tset headerPosition(value: TabPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.headerPosition = value : undefined;\n\t}\n\n\t/** @description Sets additional helper text below the text box. The hint is visible only when the text box is focued. Applicable to Prompt Window. */\n\t@Input()\n\tget hint(): any {\n\t\treturn this.nativeElement ? this.nativeElement.hint : undefined;\n\t}\n\tset hint(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.hint = value : undefined;\n\t}\n\n\t/** @description Sets the value of the Progress bar to indeterminate state(null) and starts the animation. Applicable only to ProgressWindow. */\n\t@Input()\n\tget indeterminate(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.indeterminate : undefined;\n\t}\n\tset indeterminate(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.indeterminate = value : undefined;\n\t}\n\n\t/** @description Sets the filling direction of the Progress Bar. Applicable only to ProgressWindow. */\n\t@Input()\n\tget inverted(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.inverted : undefined;\n\t}\n\tset inverted(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.inverted = value : undefined;\n\t}\n\n\t/** @description The label of the window that appears in the header area. */\n\t@Input()\n\tget label(): string {\n\t\treturn this.nativeElement ? this.nativeElement.label : undefined;\n\t}\n\tset label(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.label = value : undefined;\n\t}\n\n\t/** @description When enabled the resizing operation happens live. By default it's not enabled and during resizing a highlighter around the edges of the window appears to outline the current size of the element. */\n\t@Input()\n\tget liveResize(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.liveResize : undefined;\n\t}\n\tset liveResize(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.liveResize = value : undefined;\n\t}\n\n\t/** @description Applicable only to TabsWindow when used with a DockingLayout custom element.Used only by jqxDockingLayout. Determines the owner jqxDockingLayout that the window belongs to. When the tabsWindow has been removed from a DockingLayout element, the property is used to indicate that it belongs to that particular Dockinglayout. Accepts a string, representing the ID of a jqxDockingLayout on the page, or an instance of jqxDokcingLayout. */\n\t@Input()\n\tget layout(): any {\n\t\treturn this.nativeElement ? this.nativeElement.layout : undefined;\n\t}\n\tset layout(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.layout = value : undefined;\n\t}\n\n\t/** @description Sets or gets the license which unlocks the product. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\n\t/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Applicable only to TabsWindow when docked inside a DockingLayout Custom Element.Determines of the item can be resized or not. */\n\t@Input()\n\tget locked(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.locked : undefined;\n\t}\n\tset locked(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.locked = value : undefined;\n\t}\n\n\t/** @description Callback, related to localization module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Determines if the window is maximized or not. When maximized the window covers the whole viewport. */\n\t@Input()\n\tget maximized(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.maximized : undefined;\n\t}\n\tset maximized(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.maximized = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Determines if the window is modal or not. If true the user can only interact with the window and nothing else on the page. */\n\t@Input()\n\tget modal(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.modal : undefined;\n\t}\n\tset modal(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.modal = value : undefined;\n\t}\n\n\t/** @description Applicable to TabsWindow when docked inside a DockingLayout Custom Element. Determines the max size of the item. Applicable to Progress Window by allowing the user to specify the maximum of the ProgressBar. */\n\t@Input()\n\tget max(): string | number | null {\n\t\treturn this.nativeElement ? this.nativeElement.max : undefined;\n\t}\n\tset max(value: string | number | null) {\n\t\tthis.nativeElement ? this.nativeElement.max = value : undefined;\n\t}\n\n\t/** @description Applicable to TabsWindow when docked inside DockingLayout Custom Element. Determines the min size of the item. Applicable to Progress Window by allowing the user to specify the minimu of the ProgressBar. */\n\t@Input()\n\tget min(): string | number | null {\n\t\treturn this.nativeElement ? this.nativeElement.min : undefined;\n\t}\n\tset min(value: string | number | null) {\n\t\tthis.nativeElement ? this.nativeElement.min = value : undefined;\n\t}\n\n\t/** @description Determines if the window is minimized or not. When minimized the window is docked at the bottom left corner of the viewport. */\n\t@Input()\n\tget minimized(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.minimized : undefined;\n\t}\n\tset minimized(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.minimized = value : undefined;\n\t}\n\n\t/** @description Sets or gets the maximum number of characters that the user can enter. Applicable to Prompt/MultilinePrompt Window. */\n\t@Input()\n\tget maxLength(): number {\n\t\treturn this.nativeElement ? this.nativeElement.maxLength : undefined;\n\t}\n\tset maxLength(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.maxLength = value : undefined;\n\t}\n\n\t/** @description Sets or gets the minimum number of characters that the user have to enter to trigger the auto complete functionality. Applicable to Prompt/MultilinePrompt Window. */\n\t@Input()\n\tget minLength(): number {\n\t\treturn this.nativeElement ? this.nativeElement.minLength : undefined;\n\t}\n\tset minLength(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.minLength = value : undefined;\n\t}\n\n\t/** @description Determines if the window is visible or not. */\n\t@Input()\n\tget opened(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.opened : undefined;\n\t}\n\tset opened(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.opened = value : undefined;\n\t}\n\n\t/** @description Determines if the window is pinned or not. Pinned window is a window that can't be dragged but can be resized. */\n\t@Input()\n\tget pinned(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.pinned : undefined;\n\t}\n\tset pinned(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.pinned = value : undefined;\n\t}\n\n\t/** @description Determines the input's placeholder. Applicable to Prompt Window. */\n\t@Input()\n\tget placeholder(): string {\n\t\treturn this.nativeElement ? this.nativeElement.placeholder : undefined;\n\t}\n\tset placeholder(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.placeholder = value : undefined;\n\t}\n\n\t/** @description Determines the label for the Input insinde the PromptWindow. */\n\t@Input()\n\tget promptLabel(): string {\n\t\treturn this.nativeElement ? this.nativeElement.promptLabel : undefined;\n\t}\n\tset promptLabel(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.promptLabel = value : undefined;\n\t}\n\n\t/** @description If the element is readonly, users cannot interact with it. */\n\t@Input()\n\tget readonly(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.readonly : undefined;\n\t}\n\tset readonly(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.readonly = value : undefined;\n\t}\n\n\t/** @description When applied a resize indicator is displayed in the bottom right corner of the window and resizing operation can be initiated only from its position. */\n\t@Input()\n\tget resizeIndicator(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.resizeIndicator : undefined;\n\t}\n\tset resizeIndicator(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.resizeIndicator = value : undefined;\n\t}\n\n\t/** @description Determines the resizing mode of the window. Several modes are available: none - resizing is disabled. vertical - vertical resizing is allowed. horizontal - horizontal resizing is allowed. both - horizontal and vertical resizing is allowed. top - the window can only be resized from the top side. bottom - the window is resizable only from the bottom side. left - the window can be resized only from the left side. right - the window can be resized only from the right side. */\n\t@Input()\n\tget resizeMode(): WindowResizeMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.resizeMode : undefined;\n\t}\n\tset resizeMode(value: WindowResizeMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.resizeMode = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Specifies that the user must fill the input before submitting a form with the text box.Applicable to Prompt Window. */\n\t@Input()\n\tget required(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.required : undefined;\n\t}\n\tset required(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.required = value : undefined;\n\t}\n\n\t/** @description Specifies the message that will appear if required is set and no value is provided in the input. Applicable to Prompt Window. */\n\t@Input()\n\tget requiredMessage(): string {\n\t\treturn this.nativeElement ? this.nativeElement.requiredMessage : undefined;\n\t}\n\tset requiredMessage(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.requiredMessage = value : undefined;\n\t}\n\n\t/** @description Determines whether the content of the input will be selected on focus or not. Applicable to Prompt Window. */\n\t@Input()\n\tget selectAllOnFocus(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.selectAllOnFocus : undefined;\n\t}\n\tset selectAllOnFocus(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.selectAllOnFocus = value : undefined;\n\t}\n\n\t/** @description Sets or gets which tab is selected. Applicable only to TabsWindow. */\n\t@Input()\n\tget selectedIndex(): number | null {\n\t\treturn this.nativeElement ? this.nativeElement.selectedIndex : undefined;\n\t}\n\tset selectedIndex(value: number | null) {\n\t\tthis.nativeElement ? this.nativeElement.selectedIndex = value : undefined;\n\t}\n\n\t/** @description Determines the way the user can switch between tabs. Applicable only to TabsWindow. */\n\t@Input()\n\tget selectionMode(): TabSelectionMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.selectionMode : undefined;\n\t}\n\tset selectionMode(value: TabSelectionMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.selectionMode = value : undefined;\n\t}\n\n\t/** @description Indicates the index of the last character in the current selection. Applicable only to MultilinePromptWindow. */\n\t@Input()\n\tget selectionEnd(): number {\n\t\treturn this.nativeElement ? this.nativeElement.selectionEnd : undefined;\n\t}\n\tset selectionEnd(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.selectionEnd = value : undefined;\n\t}\n\n\t/** @description Indicates the index to the first character in the current selection. Applicable only to MultilinePromptWindow. */\n\t@Input()\n\tget selectionStart(): number {\n\t\treturn this.nativeElement ? this.nativeElement.selectionStart : undefined;\n\t}\n\tset selectionStart(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.selectionStart = value : undefined;\n\t}\n\n\t/** @description Enables/Disabled the label for the Progress Bar. Applicable only to Progress Window. */\n\t@Input()\n\tget showProgressValue(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.showProgressValue : undefined;\n\t}\n\tset showProgressValue(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.showProgressValue = value : undefined;\n\t}\n\n\t/** @description A getter that returns the siblings (that share the same parent) of a LayoutPanel item that is docked inside a DockingLayout. The siblings are also DockingLayout items ( LayoutPanels).Applicable only to TabsWindow when docked inside a DockingLayout. */\n\t@Input()\n\tget siblings(): any {\n\t\treturn this.nativeElement ? this.nativeElement.siblings : undefined;\n\t}\n\tset siblings(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.siblings = value : undefined;\n\t}\n\n\t/** @description Applicable to TabsWindow when nested inside a DockingLayout Custom Element. Determines the size of the item. */\n\t@Input()\n\tget size(): string {\n\t\treturn this.nativeElement ? this.nativeElement.size : undefined;\n\t}\n\tset size(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.size = value : undefined;\n\t}\n\n\t/** @description Specifies whether the element is to have its spelling and grammar checked or not. Applicable only to MultilinePromptWindow. */\n\t@Input()\n\tget spellCheck(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.spellCheck : undefined;\n\t}\n\tset spellCheck(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.spellCheck = value : undefined;\n\t}\n\n\t/** @description Sets or gets whether close buttons are displayed inside the Tab Strip of the TabsWindow. Applicable only to TabsWindow. */\n\t@Input()\n\tget tabCloseButtons(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.tabCloseButtons : undefined;\n\t}\n\tset tabCloseButtons(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.tabCloseButtons = value : undefined;\n\t}\n\n\t/** @description Determines if the close button is visible on select or always. Applicable only to TabsWindow. */\n\t@Input()\n\tget tabCloseButtonMode(): WindowTabCloseButtonMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.tabCloseButtonMode : undefined;\n\t}\n\tset tabCloseButtonMode(value: WindowTabCloseButtonMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.tabCloseButtonMode = value : undefined;\n\t}\n\n\t/** @description Sets or gets the Tabs scroll buttons behavior. Applicable only when tabLayout is 'scroll'. Applicable only to TabsWindow. */\n\t@Input()\n\tget tabOverflow(): Overflow | string {\n\t\treturn this.nativeElement ? this.nativeElement.tabOverflow : undefined;\n\t}\n\tset tabOverflow(value: Overflow | string) {\n\t\tthis.nativeElement ? this.nativeElement.tabOverflow = value : undefined;\n\t}\n\n\t/** @description Detetmines Tab Strip is positioned of the TabsWindow. Applicable only to TabsWindow. */\n\t@Input()\n\tget tabPosition(): TabPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.tabPosition : undefined;\n\t}\n\tset tabPosition(value: TabPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.tabPosition = value : undefined;\n\t}\n\n\t/** @description Sets or gets the position of the scroll buttons inside the Tab header of the TabsWindow. Applicable only to TabsWindow. */\n\t@Input()\n\tget tabScrollButtonsPosition(): LayoutPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.tabScrollButtonsPosition : undefined;\n\t}\n\tset tabScrollButtonsPosition(value: LayoutPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.tabScrollButtonsPosition = value : undefined;\n\t}\n\n\t/** @description Sets or gets the orientation of the text in the tabs labels of the TabsWindow. Applicable only to TabsWindow. */\n\t@Input()\n\tget tabTextOrientation(): Orientation | string {\n\t\treturn this.nativeElement ? this.nativeElement.tabTextOrientation : undefined;\n\t}\n\tset tabTextOrientation(value: Orientation | string) {\n\t\tthis.nativeElement ? this.nativeElement.tabTextOrientation = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description If is set to true, the element cannot be focused. */\n\t@Input()\n\tget unfocusable(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.unfocusable : undefined;\n\t}\n\tset unfocusable(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.unfocusable = value : undefined;\n\t}\n\n\t/** @description Determines the value of the TextBox/ProgressBar inside the Dialog/Prompt/Progress Window */\n\t@Input()\n\tget value(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.value : undefined;\n\t}\n\tset value(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.value = value : undefined;\n\t}\n\n\t/** @description Determines the actual parent of the element. The window can size and move only in the area of that element. */\n\t@Input()\n\tget windowParent(): any {\n\t\treturn this.nativeElement ? this.nativeElement.windowParent : undefined;\n\t}\n\tset windowParent(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.windowParent = value : undefined;\n\t}\n\n\t/** @description Indicates how the input wraps text. Applicable only to MultilinePromptWindow. */\n\t@Input()\n\tget wrap(): WindowWrap | string {\n\t\treturn this.nativeElement ? this.nativeElement.wrap : undefined;\n\t}\n\tset wrap(value: WindowWrap | string) {\n\t\tthis.nativeElement ? this.nativeElement.wrap = value : undefined;\n\t}\n\n\t/** @description This event is triggered just before the window starts opening.\n\t* @param event. The custom event. \t*/\n\t@Output() onOpening: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is opened( visible ).\n\t* @param event. The custom event. \t*/\n\t@Output() onOpen: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered just before the window starts closing.\n\t* @param event. The custom event. \t*/\n\t@Output() onClosing: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is closed( hidden )\n\t* @param event. The custom event. \t*/\n\t@Output() onClose: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is collapsed.\n\t* @param event. The custom event. \t*/\n\t@Output() onCollapse: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when window's dragging is ended.\n\t* @param event. The custom event. \t*/\n\t@Output() onDragEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when window's dragging is started.\n\t* @param event. The custom event. \t*/\n\t@Output() onDragStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is expanded.\n\t* @param event. The custom event. \t*/\n\t@Output() onExpand: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is maximized.\n\t* @param event. The custom event. \t*/\n\t@Output() onMaximize: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is minimized.\n\t* @param event. The custom event. \t*/\n\t@Output() onMinimize: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when window's resizing is ended.\n\t* @param event. The custom event. \t*/\n\t@Output() onResizeEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when window's resizing is started.\n\t* @param event. The custom event. \t*/\n\t@Output() onResizeStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window is restored to it's previous state before maximization.\n\t* @param event. The custom event. \t*/\n\t@Output() onRestore: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description Appends a tabitem to the end of the list of tab items inside element. \n\t* @param {Node} node. A TabItem element that should be added to the rest of the items as the last item.\n\t* @returns {Node}\n */\n\tpublic async appendChild(node): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.appendChild(node);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Sets the window to the top level so the user can interact with it. \n\t*/\n public bringToFront(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.bringToFront();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.bringToFront();\n });\n }\n }\n\n\t/** @description Clears the content of the Window. \n\t*/\n public clear(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clear();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clear();\n });\n }\n }\n\n\t/** @description Closes the window. \n\t*/\n public close(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.close();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.close();\n });\n }\n }\n\n\t/** @description Collapses the window. \n\t* @returns {HTMLElement}\n */\n\tpublic async collapse(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.collapse();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Makes sure a tab item is visible by scrolling to it. Applicable only to TabsWindow. \n\t* @param {number} index. The index of the tab to scroll to.\n\t*/\n public ensureVisible(index: number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.ensureVisible(index);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.ensureVisible(index);\n });\n }\n }\n\n\t/** @description Expands the window after being collapsed. \n\t* @returns {any[]}\n */\n\tpublic async expand(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.expand();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Inserts a new tab and an associated content section. Applicable only to TabsWindow. \n\t* @param {number} index. The index to insert a new tab at.\n\t* @param {any} details. An Object with the fields \"label\", \"labelSize\", \"content\" and \"group\".\n\t*/\n public insert(index: number, details: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.insert(index, details);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.insert(index, details);\n });\n }\n }\n\n\t/** @description Inserts the specified \"smart-tab-item\" node before the reference \"smart-tab-item\" node. Applicable only to TabsWindow. \n\t* @param {Node} newNode. The \"smart-tab-item\" node to insert.\n\t* @param {Node | null} referenceNode?. The \"smart-tab-item\" node before which newNode is inserted.\n\t* @returns {Node}\n */\n\tpublic async insertBefore(newNode, referenceNode?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.insertBefore(newNode, referenceNode);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Moves the window to a new position \n\t* @param {string | number} left. Left position. For example: '100px'. \n\t* @param {string | number} top. Top position. For example: '100px'. \n\t*/\n public move(left: string | number, top: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.move(left, top);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.move(left, top);\n });\n }\n }\n\n\t/** @description Maximizes the window to fill the area. \n\t*/\n public maximize(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.maximize();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.maximize();\n });\n }\n }\n\n\t/** @description Minimizes the window. \n\t*/\n public minimize(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.minimize();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.minimize();\n });\n }\n }\n\n\t/** @description Opens the window \n\t*/\n public open(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.open();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.open();\n });\n }\n }\n\n\t/** @description Pins the window. Disables window dragging. \n\t*/\n public pin(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.pin();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.pin();\n });\n }\n }\n\n\t/** @description Removes a tab and its associated content section. Applicable only to TabsWindow. \n\t* @param {number} index. The index of the tab to remove.\n\t*/\n public removeAt(index: number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.removeAt(index);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.removeAt(index);\n });\n }\n }\n\n\t/** @description Removes a child \"smart-tab-item\" node. Applicable only to TabsWindow. \n\t* @param {Node} node. The \"smart-tab-item\" node to remove.\n\t* @returns {Node}\n */\n\tpublic async removeChild(node): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.removeChild(node);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Restores the window to it's previous size before maximization/minimization. \n\t*/\n public restore(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.restore();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.restore();\n });\n }\n }\n\n\t/** @description Selects a tab. Applicalbe only to TabsWindow elements. \n\t* @param {number} index. The index of the tab to select.\n\t*/\n public select(index: number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.select(index);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.select(index);\n });\n }\n }\n\n\t/** @description Unpins the window. Enables window dragging. \n\t*/\n public unpin(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.unpin();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.unpin();\n });\n }\n }\n\n\t/** @description Updates the header label. \n\t* @param {string} label. The new label of the Header.\n\t*/\n public updateLabel(label: string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.updateLabel(label);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.updateLabel(label);\n });\n }\n }\n\n\t/** @description Updates the content. \n\t* @param {string | HTMLElement} content. The new content of the window.\n\t*/\n public updateContent(content: string | HTMLElement): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.updateContent(content);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.updateContent(content);\n });\n }\n }\n\n\t/** @description Updates a TAB in TAB Window and its associated content section. Applies only to TabsWindow elements. \n\t* @param {number} index. The index of the tab to update.\n\t* @param {string} label. The new label of the tab. The value can be the id of an HTMLTemplateElement\n\t* @param {string | HTMLElement} content. The new content of the tab.\n\t*/\n public update(index: number, label: string, content: string | HTMLElement): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.update(index, label, content);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.update(index, label, content);\n });\n }\n }\n\n\n\tget isRendered(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.isRendered : false;\n\t}\n\n\tngOnInit() {\n\t}\n\n ngAfterViewInit() {\n const that = this;\n\n that.onCreate.emit(that.nativeElement);\n\n\t\tif (Smart) Smart.Render();\n\n\t\tthis.nativeElement.classList.add('smart-angular');\n\n\t\tif (this.nativeElement.whenRendered) this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });\n\t\tthis.listen();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unlisten();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.nativeElement && this.nativeElement.isRendered) {\n\t\t\tfor (const propName in changes) {\n\t\t\t\tif (changes.hasOwnProperty(propName)) {\n\t\t\t\t\tthis.nativeElement[propName] = changes[propName].currentValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @description Add event listeners. */\n\tprivate listen(): void {\n const that = this;\n\t\tthat.eventHandlers['openingHandler'] = (event: CustomEvent) => { that.onOpening.emit(event); }\n\t\tthat.nativeElement.addEventListener('opening', that.eventHandlers['openingHandler']);\n\n\t\tthat.eventHandlers['openHandler'] = (event: CustomEvent) => { that.onOpen.emit(event); }\n\t\tthat.nativeElement.addEventListener('open', that.eventHandlers['openHandler']);\n\n\t\tthat.eventHandlers['closingHandler'] = (event: CustomEvent) => { that.onClosing.emit(event); }\n\t\tthat.nativeElement.addEventListener('closing', that.eventHandlers['closingHandler']);\n\n\t\tthat.eventHandlers['closeHandler'] = (event: CustomEvent) => { that.onClose.emit(event); }\n\t\tthat.nativeElement.addEventListener('close', that.eventHandlers['closeHandler']);\n\n\t\tthat.eventHandlers['collapseHandler'] = (event: CustomEvent) => { that.onCollapse.emit(event); }\n\t\tthat.nativeElement.addEventListener('collapse', that.eventHandlers['collapseHandler']);\n\n\t\tthat.eventHandlers['dragEndHandler'] = (event: CustomEvent) => { that.onDragEnd.emit(event); }\n\t\tthat.nativeElement.addEventListener('dragEnd', that.eventHandlers['dragEndHandler']);\n\n\t\tthat.eventHandlers['dragStartHandler'] = (event: CustomEvent) => { that.onDragStart.emit(event); }\n\t\tthat.nativeElement.addEventListener('dragStart', that.eventHandlers['dragStartHandler']);\n\n\t\tthat.eventHandlers['expandHandler'] = (event: CustomEvent) => { that.onExpand.emit(event); }\n\t\tthat.nativeElement.addEventListener('expand', that.eventHandlers['expandHandler']);\n\n\t\tthat.eventHandlers['maximizeHandler'] = (event: CustomEvent) => { that.onMaximize.emit(event); }\n\t\tthat.nativeElement.addEventListener('maximize', that.eventHandlers['maximizeHandler']);\n\n\t\tthat.eventHandlers['minimizeHandler'] = (event: CustomEvent) => { that.onMinimize.emit(event); }\n\t\tthat.nativeElement.addEventListener('minimize', that.eventHandlers['minimizeHandler']);\n\n\t\tthat.eventHandlers['resizeEndHandler'] = (event: CustomEvent) => { that.onResizeEnd.emit(event); }\n\t\tthat.native