{"version":3,"file":"kendo.window.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendowindow","js","this","$","undefined$1","templates","kendo","window","Widget","ui","TabKeyTrap","Popup","Draggable","isPlainObject","activeElement","_activeElement","outerWidth","_outerWidth","outerHeight","_outerHeight","extend","each","template","BODY","NS","MODAL_NS","KWINDOW","KWINDOWTITLE","KWINDOWTITLEBAR","KWINDOWCONTENT","KWINDOWRESIZEHANDLES","KOVERLAY","KWINDOWMINIMIZED","KCONTENTFRAME","LOADINGICONCLASS","KHOVERSTATE","KFOCUSEDSTATE","MAXIMIZEDSTATE","INLINE_FLEX","VISIBLE","KHIDDEN","HIDDEN","CURSOR","OPEN","ACTIVATE","DEACTIVATE","CLOSE","REFRESH","RESIZESTART","RESIZEEND","DRAGSTART","DRAGEND","RESTORE","ERROR","OVERFLOW","DATADOCOVERFLOWRULE","ZINDEX","MINIMIZE_MAXIMIZEICONSELECTORS","KPINICONCLASSSELECTOR","KUNPINICONCLASSSELECTOR","PIN_UNPINICONCLASSSELECTOR","TITLEBAR_BUTTONSSELECTOR","REFRESHICONSELECTOR","WINDOWEVENTSHANDLED","zero","isLocalUrl","SIZE","small","medium","large","defined","x","toInt","element","property","parseInt","css","constrain","value","low","high","isNaN","toString","indexOf","Math","max","min","Infinity","executableScript","type","toLowerCase","getPosition","elem","result","top","offsetTop","left","offsetLeft","parent","offsetParent","parentOverflowX","parentOverflowY","scrollTop","scrollLeft","Window","init","options","wrapper","visibility","display","position","content","windowContent","globalWindow","id","that","offset","suppressActions","actions","length","fn","call","appendTo","containment","draggable","first","url","find","filter","remove","is","document","body","contains","visible","closest","themeColor","addClass","getValidCssClass","attr","_createWindow","title","_dimensions","_footerTemplate","append","_footerMessages","minTop","minLeft","maxTop","maxLeft","_position","refresh","toFront","modal","children","_overlay","opacity","on","_buttonEnter","bind","_buttonLeave","_windowActionHandler","_keydown","_focus","_blur","_keydownContent","data","widgetInstance","not","i","_resizable","_draggable","pinned","pin","role","add","support","mousedown","touchScroller","_resizeHandler","_onDocumentResize","_marker","guid","substring","trigger","notify","_tabKeyTrap","trap","shouldTrap","_showWatermarkOverlay","e","currentTarget","removeClass","width","height","maxHeight","sizeClass","size","dimensions","contentBoxSizing","lrBorderWidth","tbBorderWidth","paddingTop","_isPinned","_updateBoundaries","maxWidth","minWidth","minHeight","hide","containmentTop","containmentLeft","parseFloat","Number","replace","innerWidth","innerHeight","clientWidth","scrollbar","clientHeight","_animationOptions","animation","open","effects","close","_resize","resize","resizable","resizing","off","destroy","target","toggleMaximization","split","index","handler","resizeHandle","WindowResizing","dragging","WindowDragging","dragHandle","clickMoveClick","_actions","icon","container","windowSpecificCommands","icons","maximize","custom","map","action","name","html","render","setOptions","doc","cachedOptions","JSON","parse","stringify","_containerScrollTop","_containerScrollLeft","scrollable","restore","_enableDocumentScrolling","events","zoom","direction","fade","duration","properties","scale","autoFocus","isMaximized","isMinimized","_closable","inArray","keys","keyCode","ESC","stopPropagation","_close","handled","newWidth","newHeight","w","h","distance","_closing","altKey","unpin","UP","DOWN","minimize","getOffset","ctrlKey","LEFT","RIGHT","preventDefault","overlay","zIndex","insertBefore","preventScroll","_stopDocumentScrolling","_actionForIcon","exec","className","_modals","windowInstance","windowElements","modals","_object","push","sort","a","b","style","widget","center","newTop","newLeft","documentWindow","_scrollIsAppended","encoded","titleBar","titleElement","arguments","text","htmlEncode","prepend","titlebar","scrollContainer","empty","otherModalsVisible","showOptions","contentElement","kendoStop","Fade","overlayFx","fx","fadeIn","endValue","play","show","kendoAnimate","complete","_activate","_removeOverlay","suppressAnimation","hideOverlay","hideOptions","fadeOut","startValue","last","systemTriggered","defaultPrevented","userTriggered","reverse","_deactivate","iframe","lastModal","_actionable","_shouldFocus","active","avoidFocus","currentWindow","containmentContext","openAnimation","originalZIndex","windowObject","zIndexNew","setTimeout","focus","windowTop","restoreOptions","end","removeAttr","_sizingAction","actionId","callback","eq","before","toggle","_storeOverflowRule","$body","$html","_restoreOverflowRule","$element","_isOverflowStored","overflowRule","get","overflow","removeData","win","pinIcon","wnd","zoomLevel","showIframe","initOptions","src","contentFrame","_triggerRefresh","_ajaxRequest","toggleClass","_ajaxComplete","clearTimeout","_loadingIconTimeout","_ajaxError","xhr","status","_ajaxSuccess","contentTemplate","prop","_showLoading","ajax","dataType","cache","error","success","_destroy","unbind","iframeSrcAttributes","contentHtml","isRtl","getAttribute","hasClass","editor","owner","_preventDragging","group","dragstart","drag","dragend","userEvents","addOverlay","removeOverlay","dragcancel","iconName","renderButton","fillMode","prototype","elementPadding","initialPosition","resizeDirection","initialSize","containerOffset","marginTop","marginLeft","test","wrapperPosition","relativeElMarginLeft","relativeElMarginTop","_relativeElMarginLeft","_relativeElMarginTop","windowBottom","windowRight","rtl","leftRtlOffset","scrollOffset","location","y","newWindowTop","reset","initialWindowPosition","initialPointerPosition","startPosition","client","axis","transforms","_finishDrag","plugin","jQuery"],"sources":["kendo.window.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.draganddrop.js'), require('kendo.popup.js'), require('kendo.icons.js'), require('kendo.html.button.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.draganddrop', 'kendo.popup', 'kendo.icons', 'kendo.html.button'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendowindow = global.kendowindow || {}, global.kendowindow.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"window\",\n name: \"Window\",\n category: \"web\",\n description: \"The Window widget displays content in a modal or non-modal HTML window.\",\n depends: [ \"draganddrop\", \"popup\", \"icons\" ],\n features: [ {\n id: \"window-fx\",\n name: \"Animation\",\n description: \"Support for animation\",\n depends: [ \"fx\" ]\n } ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n TabKeyTrap = kendo.ui.Popup.TabKeyTrap,\n Draggable = kendo.ui.Draggable,\n isPlainObject = $.isPlainObject,\n activeElement = kendo._activeElement,\n outerWidth = kendo._outerWidth,\n outerHeight = kendo._outerHeight,\n extend = $.extend,\n each = $.each,\n template = kendo.template,\n BODY = \"body\",\n templates,\n NS = \".kendoWindow\",\n MODAL_NS = \".kendoWindowModal\",\n // classNames\n KWINDOW = \".k-window\",\n KWINDOWTITLE = \".k-window-title\",\n KWINDOWTITLEBAR = KWINDOWTITLE + \"bar\",\n KWINDOWCONTENT = \".k-window-content\",\n KDIALOGCONTENT = \".k-dialog-content\",\n KWINDOWRESIZEHANDLES = \".k-resize-handle\",\n KOVERLAY = \".k-overlay\",\n KWINDOWMINIMIZED = \"k-window-minimized\",\n KCONTENTFRAME = \"k-content-frame\",\n LOADINGICONCLASS = \"k-i-loading\",\n KHOVERSTATE = \"k-hover\",\n KFOCUSEDSTATE = \"k-focus\",\n MAXIMIZEDSTATE = \"k-window-maximized\",\n INLINE_FLEX = \"k-display-inline-flex\",\n // constants\n VISIBLE = \":visible\",\n KHIDDEN = \"k-hidden\",\n HIDDEN = \"hidden\",\n CURSOR = \"cursor\",\n // events\n OPEN = \"open\",\n ACTIVATE = \"activate\",\n DEACTIVATE = \"deactivate\",\n CLOSE = \"close\",\n REFRESH = \"refresh\",\n MINIMIZE = \"minimize\",\n MAXIMIZE = \"maximize\",\n RESIZESTART = \"resizeStart\",\n RESIZE = \"resize\",\n RESIZEEND = \"resizeEnd\",\n DRAGSTART = \"dragstart\",\n DRAGEND = \"dragend\",\n RESTORE = \"restore\",\n KENDOKEYDOWN = \"kendoKeydown\",\n ERROR = \"error\",\n OVERFLOW = \"overflow\",\n DATADOCOVERFLOWRULE = \"original-overflow-rule\",\n ZINDEX = \"zIndex\",\n MINIMIZE_MAXIMIZEICONSELECTORS = \".k-window-titlebar-actions .k-i-window-minimize,.k-window-titlebar-actions .k-i-window,.k-window-titlebar-actions .k-svg-i-window-minimize,.k-window-titlebar-actions .k-svg-i-window\",\n KPINICONCLASSSELECTOR = \".k-i-pin,.k-svg-i-pin\",\n KUNPINICONCLASSSELECTOR = \".k-i-unpin,.k-svg-i-unpin\",\n PIN_UNPINICONCLASSSELECTOR = KPINICONCLASSSELECTOR + \",\" + KUNPINICONCLASSSELECTOR,\n TITLEBAR_BUTTONSSELECTOR = \".k-window-titlebar .k-window-titlebar-action\",\n REFRESHICONSELECTOR = \".k-window-titlebar .k-i-arrow-rotate-cw,.k-window-titlebar .k-svg-i-arrow-rotate-cw\",\n WINDOWEVENTSHANDLED = \"WindowEventsHandled\",\n zero = /^0[a-z]*$/i,\n isLocalUrl = kendo.isLocalUrl,\n SIZE = {\n small: \"k-window-sm\",\n medium: \"k-window-md\",\n large: \"k-window-lg\"\n };\n\n function defined(x) {\n return (typeof x != \"undefined\");\n }\n\n function toInt(element, property) {\n return parseInt(element.css(property), 10) || 0;\n }\n\n function constrain(value, low, high) {\n var normalizedValue;\n\n if (value && isNaN(value) && value.toString().indexOf(\"px\") < 0) {\n normalizedValue = value;\n } else {\n normalizedValue = Math.max(\n Math.min(parseInt(value, 10), high === Infinity ? high : parseInt(high, 10)),\n low === -Infinity ? low : parseInt(low, 10)\n );\n }\n\n return normalizedValue;\n }\n\n function executableScript() {\n return !this.type || this.type.toLowerCase().indexOf(\"script\") >= 0;\n }\n\n\n function getPosition(elem) {\n var result = { top: elem.offsetTop, left: elem.offsetLeft },\n parent = elem.offsetParent;\n\n while (parent) {\n result.top += parent.offsetTop;\n result.left += parent.offsetLeft;\n\n var parentOverflowX = $(parent).css(\"overflowX\");\n var parentOverflowY = $(parent).css(\"overflowY\");\n\n if (parentOverflowY === \"auto\" || parentOverflowY === \"scroll\") {\n result.top -= parent.scrollTop;\n }\n\n if (parentOverflowX === \"auto\" || parentOverflowX === \"scroll\") {\n result.left -= parent.scrollLeft;\n }\n\n parent = parent.offsetParent;\n }\n\n return result;\n }\n\n var Window = Widget.extend({\n init: function(element, options) {\n var that = this,\n wrapper,\n offset = {},\n visibility, display, position,\n isVisible = false,\n content,\n windowContent,\n windowFrame,\n globalWindow,\n suppressActions = options && options.actions && !options.actions.length,\n id;\n\n Widget.fn.init.call(that, element, options);\n options = that.options;\n position = options.position;\n element = that.element;\n content = options.content;\n globalWindow = $(window);\n\n if (suppressActions) {\n options.actions = [];\n }\n\n that.appendTo = $(options.appendTo);\n\n that.containment = options.draggable.containment ? $(options.draggable.containment).first() : null;\n\n if (content && !isPlainObject(content)) {\n content = options.content = { url: content };\n }\n\n // remove script blocks to prevent double-execution\n element.find(\"script\").filter(executableScript).remove();\n\n if (!element.parent().is(that.appendTo) && !that.containment && (position.top === undefined$1 || position.left === undefined$1)) {\n if (element.is(VISIBLE)) {\n offset = element.offset();\n isVisible = true;\n } else {\n visibility = element.css(\"visibility\");\n display = element.css(\"display\");\n\n element.css({ visibility: HIDDEN, display: \"\" });\n\n if (document.body.contains(element[0])) {\n offset = element.offset();\n } else {\n offset = { top: 0, left: 0 };\n }\n\n element.css({ visibility: visibility, display: display });\n }\n\n if (position.top === undefined$1) {\n position.top = offset.top;\n }\n if (position.left === undefined$1) {\n position.left = offset.left;\n }\n }\n\n if (!defined(options.visible) || options.visible === null) {\n options.visible = element.is(VISIBLE);\n }\n\n wrapper = that.wrapper = element.closest(KWINDOW);\n\n if (options.themeColor && options.themeColor !== \"none\") {\n wrapper.addClass(kendo.getValidCssClass(\"k-window-\", \"themeColor\", options.themeColor));\n }\n\n if (!element.is(\".k-window-content\") || !wrapper[0]) {\n element.addClass(\"k-window-content\");\n element.attr(\"tabindex\", 0);\n that._createWindow(element, options);\n wrapper = that.wrapper = element.closest(KWINDOW);\n\n that.title(that.options.title);\n that._dimensions();\n\n if (options._footerTemplate) {\n that.wrapper.append(kendo.template(options._footerTemplate)(options._footerMessages));\n }\n }\n\n that.minTop = that.minLeft = -Infinity;\n that.maxTop = that.maxLeft = Infinity;\n that._position();\n\n if (content) {\n that.refresh(content);\n }\n\n if (options.visible) {\n that.toFront(null, !options.modal);\n }\n\n windowContent = wrapper.children(KWINDOWCONTENT);\n\n if (options.visible && options.modal) {\n that._overlay(wrapper.is(VISIBLE)).css({ opacity: 0.5 });\n }\n\n wrapper\n .on(\"mouseenter\" + NS, TITLEBAR_BUTTONSSELECTOR, that._buttonEnter.bind(that))\n .on(\"mouseleave\" + NS, TITLEBAR_BUTTONSSELECTOR, that._buttonLeave.bind(that))\n .on(\"click\" + NS, \"> \" + TITLEBAR_BUTTONSSELECTOR, that._windowActionHandler.bind(that))\n .on(\"keydown\" + NS, that, that._keydown.bind(that))\n .on(\"focus\" + NS, that._focus.bind(that))\n .on(\"blur\" + NS, that._blur.bind(that));\n\n windowContent\n .on(\"keydown\" + NS, that, that._keydownContent.bind(that));\n\n windowFrame = windowContent.find(\".\" + KCONTENTFRAME)[0];\n\n if (windowFrame && !globalWindow.data(WINDOWEVENTSHANDLED)) {\n\n globalWindow.on(\"blur\" + NS, function() {\n var element = $(document.activeElement).parent(KWINDOWCONTENT);\n if (element.length) {\n var windowInstance = kendo.widgetInstance(element);\n windowInstance._focus();\n }\n });\n\n globalWindow.on(\"focus\" + NS, function() {\n $(KWINDOWCONTENT).not(KDIALOGCONTENT).each(function(i, element) {\n kendo.widgetInstance($(element))._blur();\n });\n });\n\n globalWindow.data(WINDOWEVENTSHANDLED, true);\n }\n\n this._resizable();\n\n this._draggable();\n\n if (options.pinned && this.wrapper.is(\":visible\")) {\n that.pin();\n }\n\n id = element.attr(\"id\");\n if (id) {\n id = id + \"_wnd_title\";\n wrapper.attr({\n \"role\": \"dialog\",\n \"aria-labelledby\": id\n }).children(KWINDOWTITLEBAR)\n .children(KWINDOWTITLE)\n .attr(\"id\", id);\n }\n\n wrapper.add(wrapper.children(\".k-resize-handle,\" + KWINDOWTITLEBAR))\n .on(kendo.support.mousedown + NS, that.toFront.bind(that));\n\n that.touchScroller = kendo.touchScroller(element);\n\n that._resizeHandler = that._onDocumentResize.bind(that);\n\n that._marker = kendo.guid().substring(0, 8);\n\n $(window).on(\"resize\" + NS + that._marker, that._resizeHandler);\n\n if (options.visible) {\n that.trigger(OPEN);\n that.trigger(ACTIVATE);\n }\n\n kendo.notify(that);\n\n if (this.options.modal) {\n this._tabKeyTrap = new TabKeyTrap(wrapper);\n this._tabKeyTrap.trap();\n this._tabKeyTrap.shouldTrap = function() {\n return wrapper.data(\"isFront\");\n };\n }\n\n if (that._showWatermarkOverlay) {\n that._showWatermarkOverlay(that.wrapper[0]);\n }\n },\n\n _buttonEnter: function(e) {\n $(e.currentTarget).addClass(KHOVERSTATE);\n },\n\n _buttonLeave: function(e) {\n $(e.currentTarget).removeClass(KHOVERSTATE);\n },\n\n _focus: function() {\n this.wrapper.addClass(KFOCUSEDSTATE);\n },\n\n _blur: function() {\n this.wrapper.removeClass(KFOCUSEDSTATE);\n },\n\n _dimensions: function() {\n var wrapper = this.wrapper;\n var options = this.options;\n var width = options.width;\n var height = options.height;\n var maxHeight = options.maxHeight;\n var sizeClass = options.size;\n var dimensions = [\"minWidth\",\"minHeight\",\"maxWidth\",\"maxHeight\"];\n var contentBoxSizing = wrapper.css(\"box-sizing\") == \"content-box\";\n\n var lrBorderWidth = contentBoxSizing ? toInt(wrapper, \"border-left-width\") + toInt(wrapper, \"border-right-width\") : 0;\n var tbBorderWidth = contentBoxSizing ? toInt(wrapper, \"border-top-width\") + toInt(wrapper, \"border-bottom-width\") : 0;\n var paddingTop = contentBoxSizing ? toInt(wrapper, \"padding-top\") : 0;\n\n if (this.containment && !this._isPinned) {\n this._updateBoundaries();\n options.maxHeight = Math.min(this.containment.height - (tbBorderWidth + paddingTop), maxHeight);\n options.maxWidth = Math.min(this.containment.width - lrBorderWidth, options.maxWidth);\n }\n\n for (var i = 0; i < dimensions.length; i++) {\n var value = options[dimensions[i]] || \"\";\n if (value != Infinity) {\n wrapper.css(dimensions[i], value);\n }\n }\n\n if (maxHeight != Infinity) {\n this.element.css(\"maxHeight\", maxHeight);\n }\n\n if (width) {\n wrapper.outerWidth(constrain(width, options.minWidth, options.maxWidth));\n }\n else {\n wrapper.outerWidth(\"\");\n }\n\n if (height) {\n wrapper.outerHeight(constrain(height, options.minHeight, options.maxHeight));\n }\n else {\n wrapper.outerHeight(\"\");\n }\n\n if (!options.visible) {\n wrapper.removeClass(INLINE_FLEX).hide();\n }\n\n if (sizeClass && SIZE[sizeClass]) {\n wrapper.addClass(SIZE[sizeClass]);\n }\n },\n\n _position: function() {\n var wrapper = this.wrapper,\n position = this.options.position,\n containmentTop, containmentLeft;\n\n this._updateBoundaries();\n\n if (this.containment) {\n position.top = position.top || 0;\n position.left = position.left || 0;\n\n containmentTop = position.top.toString().indexOf(\"%\") > 0 ?\n parseInt(this.containment.height * (parseFloat(position.top) / 100), 10) :\n position.top;\n\n containmentLeft = position.left.toString().indexOf(\"%\") > 0 ?\n parseInt(this.containment.width * (parseFloat(position.left) / 100), 10) :\n position.left;\n\n position.top = constrain(containmentTop, this.minTop, this.maxTop);\n position.left = constrain(containmentLeft, this.minLeft, this.maxLeft);\n }\n\n if (position.top && position.top.toString().indexOf(\"px\") > 0) {\n position.top = Number(position.top.replace(\"px\", \"\"));\n }\n\n if (position.left && position.left.toString().indexOf(\"px\") > 0) {\n position.left = Number(position.left.replace(\"px\", \"\"));\n }\n\n if (position.top === 0) {\n position.top = position.top.toString();\n }\n\n if (position.left === 0) {\n position.left = position.left.toString();\n }\n\n wrapper.css({\n top: position.top || \"\",\n left: position.left || \"\"\n });\n },\n\n _updateBoundaries: function() {\n var containment = this.containment;\n\n if (!containment) {\n return null;\n }\n\n containment.width = containment.innerWidth();\n containment.height = containment.innerHeight();\n\n if (parseInt(containment.width, 10) > containment[0].clientWidth) {\n containment.width -= kendo.support.scrollbar();\n }\n\n if (parseInt(containment.height, 10) > containment[0].clientHeight) {\n containment.height -= kendo.support.scrollbar();\n }\n\n containment.position = getPosition(containment[0]);\n\n if (this._isPinned) {\n this.minTop = this.minLeft = -Infinity;\n this.maxTop = this.maxLeft = Infinity;\n } else {\n this.minTop = containment.scrollTop();\n this.minLeft = containment.scrollLeft();\n this.maxLeft = this.minLeft + containment.width - outerWidth(this.wrapper, true);\n this.maxTop = this.minTop + containment.height - outerHeight(this.wrapper, true);\n }\n },\n\n _animationOptions: function(id) {\n var animation = this.options.animation;\n var basicAnimation = {\n open: { effects: {} },\n close: { hide: true, effects: {} }\n };\n\n return animation && animation[id] || basicAnimation[id];\n },\n\n _resize: function() {\n kendo.resize(this.element.children());\n },\n\n _resizable: function() {\n var resizable = this.options.resizable;\n var wrapper = this.wrapper;\n\n if (this.resizing) {\n wrapper\n .off(\"dblclick\" + NS)\n .children(KWINDOWRESIZEHANDLES).remove();\n\n this.resizing.destroy();\n this.resizing = null;\n }\n\n if (resizable) {\n wrapper.on(\"dblclick\" + NS, KWINDOWTITLEBAR, (function(e) {\n if (!$(e.target).closest(\".k-window-titlebar-action\").length) {\n this.toggleMaximization();\n }\n }).bind(this));\n\n each(\"n e s w se sw ne nw\".split(\" \"), function(index, handler) {\n wrapper.append(templates.resizeHandle(handler));\n });\n\n this.resizing = new WindowResizing(this);\n }\n\n wrapper = null;\n },\n\n _draggable: function() {\n var draggable = this.options.draggable;\n\n if (this.dragging) {\n this.dragging.destroy();\n this.dragging = null;\n }\n if (draggable) {\n this.dragging = new WindowDragging(this, draggable.dragHandle || KWINDOWTITLEBAR, draggable.clickMoveClick);\n }\n },\n\n _actions: function() {\n var options = this.options;\n var actions = options.actions;\n var pinned = options.pinned;\n var titlebar = this.wrapper.children(KWINDOWTITLEBAR);\n var container = titlebar.find(\".k-window-titlebar-actions\");\n var windowSpecificCommands = [ \"minimize\", \"maximize\" ];\n var icons = {\n \"maximize\": \"window\",\n \"refresh\": \"arrow-rotate-cw\",\n \"custom\": \"gear\"\n };\n var icon;\n\n actions = $.map(actions, function(action) {\n action = pinned && action.toLowerCase() === \"pin\" ? \"unpin\" : action;\n icon = icons[action.toLowerCase()] || \"\";\n return { name: (windowSpecificCommands.indexOf(action.toLowerCase()) > - 1) ? \"window-\" + action : action, icon: action.toLowerCase() == \"close\" ? \"x\" : icon };\n });\n\n container.html(kendo.render(templates.action, actions));\n },\n\n setOptions: function(options) {\n var that = this;\n var sizeClass = that.options.size;\n var doc = this.containment && !that._isPinned ? this.containment : $(document);\n // make a deep extend over options.position telerik/kendo-ui-core#844\n var cachedOptions = JSON.parse(JSON.stringify(options));\n\n that.wrapper.removeClass(kendo.getValidCssClass(\"k-window-\", \"themeColor\", that.options.themeColor));\n\n extend(options.position, that.options.position);\n extend(options.position, cachedOptions.position);\n\n that._containerScrollTop = doc.scrollTop();\n that._containerScrollLeft = doc.scrollLeft();\n\n Widget.fn.setOptions.call(that, options);\n var scrollable = that.options.scrollable !== false;\n\n that.restore();\n\n if (typeof options.title !== \"undefined\") {\n that.title(options.title);\n }\n\n that.wrapper.removeClass(SIZE[sizeClass]);\n that._dimensions();\n\n that._position();\n that._resizable();\n that._draggable();\n that._actions();\n\n if (that.options.themeColor && that.options.themeColor !== \"none\") {\n that.wrapper.addClass(kendo.getValidCssClass(\"k-window-\", \"themeColor\", that.options.themeColor));\n }\n\n if (typeof options.modal !== \"undefined\") {\n var visible = that.options.visible !== false;\n that._enableDocumentScrolling();\n that._overlay(options.modal && visible);\n }\n\n that.element.css(OVERFLOW, scrollable ? \"\" : \"hidden\");\n },\n\n events: [\n OPEN,\n ACTIVATE,\n DEACTIVATE,\n CLOSE,\n MINIMIZE,\n MAXIMIZE,\n REFRESH,\n RESTORE,\n RESIZESTART,\n RESIZE,\n RESIZEEND,\n DRAGSTART,\n DRAGEND,\n KENDOKEYDOWN,\n ERROR\n ],\n\n options: {\n name: \"Window\",\n animation: {\n open: {\n effects: { zoom: { direction: \"in\" }, fade: { direction: \"in\" } },\n duration: 350\n },\n close: {\n effects: { zoom: { direction: \"out\", properties: { scale: 0.7 } }, fade: { direction: \"out\" } },\n duration: 350,\n hide: true\n }\n },\n title: \"\",\n themeColor: \"\",\n actions: [\"Close\"],\n autoFocus: true,\n modal: false,\n size: \"auto\",\n resizable: true,\n draggable: true,\n minWidth: 90,\n minHeight: 50,\n maxWidth: Infinity,\n maxHeight: Infinity,\n pinned: false,\n scrollable: true,\n position: {},\n content: null,\n visible: null,\n height: null,\n width: null,\n appendTo: \"body\",\n isMaximized: false,\n isMinimized: false\n },\n\n _closable: function() {\n return $.inArray(\"close\", $.map(this.options.actions, function(x) { return x.toLowerCase(); })) > -1;\n },\n\n _keydownContent: function(e) {\n var that = this,\n keys = kendo.keys,\n keyCode = e.keyCode;\n\n if (keyCode == keys.ESC && that._closable()) {\n e.stopPropagation();\n that._close(false);\n }\n },\n\n _keydown: function(e) {\n var that = this,\n options = that.options,\n keys = kendo.keys,\n keyCode = e.keyCode,\n wrapper = that.wrapper,\n offset, handled,\n distance = 10,\n isMaximized = options.isMaximized,\n isMinimized = options.isMinimized,\n newWidth, newHeight, w, h;\n\n if (keyCode == keys.ESC && that._closable()) {\n e.stopPropagation();\n that._close(false);\n }\n\n if (e.target != e.currentTarget || that._closing) {\n return;\n }\n\n // Refresh\n if (e.altKey && keyCode == 82) {// Alt + R\n that.refresh();\n }\n\n // Pin/Unpin\n if (e.altKey && keyCode == 80) {// Alt + P\n if (that.options.pinned) {\n that.unpin();\n } else {\n that.pin();\n }\n }\n\n // Maximize/Restore/Miminimize\n if (e.altKey && keyCode == keys.UP) {\n if (isMinimized) {\n that.restore();\n that.wrapper.trigger(\"focus\");\n } else if (!isMaximized) {\n that.maximize();\n that.wrapper.trigger(\"focus\");\n }\n } else if (e.altKey && keyCode == keys.DOWN) {\n if (!isMinimized && !isMaximized) {\n that.minimize();\n that.wrapper.trigger(\"focus\");\n } else if (isMaximized) {\n that.restore();\n that.wrapper.trigger(\"focus\");\n }\n }\n\n offset = kendo.getOffset(wrapper);\n\n if (that.containment && !that._isPinned) {\n offset = that.options.position;\n }\n\n if (options.draggable && !e.ctrlKey && !e.altKey && !isMaximized) {\n that._updateBoundaries();\n if (keyCode == keys.UP) {\n offset.top = constrain(offset.top - distance, that.minTop, that.maxTop);\n handled = wrapper.css(\"top\", offset.top);\n } else if (keyCode == keys.DOWN) {\n offset.top = constrain(offset.top + distance, that.minTop, that.maxTop);\n handled = wrapper.css(\"top\", offset.top);\n } else if (keyCode == keys.LEFT) {\n offset.left = constrain(offset.left - distance, that.minLeft, that.maxLeft);\n handled = wrapper.css(\"left\", offset.left);\n } else if (keyCode == keys.RIGHT) {\n offset.left = constrain(offset.left + distance, that.minLeft, that.maxLeft);\n handled = wrapper.css(\"left\", offset.left);\n }\n }\n\n if (options.resizable && e.ctrlKey && !isMaximized && !isMinimized) {\n if (keyCode == keys.UP) {\n handled = true;\n newHeight = wrapper.outerHeight() - distance;\n } else if (keyCode == keys.DOWN) {\n handled = true;\n if (that.containment && !that._isPinned) {\n newHeight = Math.min(wrapper.outerHeight() + distance,\n that.containment.height - offset.top - toInt(wrapper, \"padding-top\") -\n toInt(wrapper, \"borderBottomWidth\") - toInt(wrapper, \"borderTopWidth\"));\n } else {\n newHeight = wrapper.outerHeight() + distance;\n }\n } if (keyCode == keys.LEFT) {\n handled = true;\n newWidth = wrapper.outerWidth() - distance;\n } else if (keyCode == keys.RIGHT) {\n handled = true;\n if (that.containment && !that._isPinned) {\n newWidth = Math.min(wrapper.outerWidth() + distance,\n that.containment.width - offset.left -\n toInt(wrapper, \"borderLeftWidth\") - toInt(wrapper, \"borderRightWidth\"));\n } else {\n newWidth = wrapper.outerWidth() + distance;\n }\n }\n\n if (handled) {\n w = constrain(newWidth, options.minWidth, options.maxWidth);\n h = constrain(newHeight, options.minHeight, options.maxHeight);\n\n if (!isNaN(w)) {\n wrapper.outerWidth(w);\n that.options.width = w + \"px\";\n }\n if (!isNaN(h)) {\n wrapper.outerHeight(h);\n that.options.height = h + \"px\";\n }\n\n that.resize();\n }\n }\n\n if (handled) {\n e.preventDefault();\n }\n },\n\n _overlay: function(visible) {\n var overlay = this.containment ? this.containment.children(KOVERLAY) : this.appendTo.children(KOVERLAY),\n wrapper = this.wrapper,\n display = visible ? \"inline-flex\" : \"none\",\n zIndex = parseInt(wrapper.css(ZINDEX), 10) - 1;\n\n if (!overlay.length) {\n overlay = $(\"
\");\n }\n\n overlay\n .insertBefore(wrapper[0])\n .css({\n zIndex: zIndex,\n display: display\n });\n\n if (this.options.modal.preventScroll && !this.containment) {\n this._stopDocumentScrolling();\n }\n\n return overlay;\n },\n\n _actionForIcon: function(icon) {\n var iconClass = /\\bk(-svg)?-i(-\\w+)+\\b/.exec(icon[0].className)[0];\n return {\n \"x\": \"_close\",\n \"window\": \"maximize\",\n \"window-minimize\": \"minimize\",\n \"window-restore\": \"restore\",\n \"arrow-rotate-cw\": \"refresh\",\n \"pin\": \"pin\",\n \"unpin\": \"unpin\"\n }[iconClass.replace(/(k-i-|k-svg-i-)/, \"\")];\n },\n\n _windowActionHandler: function(e) {\n if (this._closing) {\n return;\n }\n var icon = $(e.target).closest(\".k-window-titlebar-action\").find(\".k-icon,.k-svg-icon\");\n var action = this._actionForIcon(icon);\n\n if (action) {\n e.preventDefault();\n this[action]();\n return false;\n }\n },\n\n _modals: function() {\n var that = this,\n windowElements = $(KWINDOW + VISIBLE),\n windowInstance,\n modals = [];\n\n for (var i = 0; i < windowElements.length; i += 1) {\n windowInstance = that._object($(windowElements[i]));\n\n if (windowInstance &&\n windowInstance.options &&\n windowInstance.options.modal &&\n windowInstance.options.visible &&\n windowInstance.options.appendTo === that.options.appendTo &&\n (!windowInstance.containment || (that.containment && windowInstance.containment[0] === that.containment[0]))) {\n modals.push(windowInstance.wrapper[0]);\n }\n }\n\n modals.sort(function(a, b) {\n return a.style.zIndex - b.style.zIndex;\n });\n\n that = null;\n\n return $(modals);\n },\n\n _object: function(element) {\n var content = element.children(KWINDOWCONTENT);\n var widget = kendo.widgetInstance(content);\n\n if (widget) {\n return widget;\n }\n\n return undefined$1;\n },\n\n center: function() {\n var that = this,\n position = that.options.position,\n wrapper = that.wrapper,\n documentWindow = $(window),\n scrollTop = 0,\n scrollLeft = 0,\n newTop, newLeft;\n\n if (that.options.isMaximized) {\n return that;\n }\n\n if (that.options.pinned && !that._isPinned) {\n that.pin();\n }\n\n if (!that.options.pinned) {\n scrollTop = documentWindow.scrollTop();\n scrollLeft = documentWindow.scrollLeft();\n }\n\n if (this.containment && !that.options.pinned) {\n newTop = this.minTop + (this.maxTop - this.minTop) / 2;\n newLeft = this.minLeft + (this.maxLeft - this.minLeft) / 2;\n } else {\n that._scrollIsAppended = true;\n newLeft = scrollLeft + Math.max(0, (documentWindow.width() - wrapper.outerWidth()) / 2);\n newTop = scrollTop + Math.max(0, (documentWindow.height() - wrapper.outerHeight() - toInt(wrapper, \"paddingTop\")) / 2);\n }\n\n wrapper.css({\n left: newLeft,\n top: newTop\n });\n\n position.top = newTop;\n position.left = newLeft;\n\n return that;\n },\n\n title: function(title) {\n var that = this,\n value,\n encoded = true,\n wrapper = that.wrapper,\n titleBar = wrapper.children(KWINDOWTITLEBAR),\n titleElement = titleBar.children(KWINDOWTITLE);\n\n if (!arguments.length) {\n return titleElement.html();\n }\n\n if ($.isPlainObject(title)) {\n value = typeof title.text !== \"undefined\" ? title.text : \"\";\n encoded = title.encoded !== false;\n } else {\n value = title;\n }\n\n if (value === false) {\n wrapper.addClass(\"k-window-titleless\");\n wrapper.css(\"padding-top\", 0);\n titleBar.remove();\n } else {\n if (!titleBar.length) {\n wrapper.prepend(templates.titlebar({\n title: encoded ? kendo.htmlEncode(value) : value\n }));\n that._actions();\n titleBar = wrapper.children(KWINDOWTITLEBAR);\n } else {\n titleElement.html(encoded ? kendo.htmlEncode(value) : value);\n }\n }\n\n that.options.title = value;\n\n return that;\n },\n\n content: function(html, data) {\n var content = this.wrapper.children(KWINDOWCONTENT),\n scrollContainer = content.children(\".km-scroll-container\");\n\n content = scrollContainer[0] ? scrollContainer : content;\n\n if (!defined(html)) {\n return content.html();\n }\n\n kendo.destroy(this.element.children());\n\n content.empty().html(html);\n\n return this;\n },\n\n open: function() {\n var that = this,\n wrapper = that.wrapper,\n options = that.options,\n showOptions = this._animationOptions(\"open\"),\n contentElement = wrapper.children(KWINDOWCONTENT),\n overlay, otherModalsVisible,\n containmentContext = this.containment && !that._isPinned,\n doc = containmentContext ? this.containment : $(document);\n\n if (!that.trigger(OPEN)) {\n if (that._closing) {\n wrapper.kendoStop(true, true);\n }\n\n that._closing = false;\n\n that.toFront();\n\n if (options.autoFocus) {\n that.wrapper.trigger(\"focus\");\n }\n\n options.visible = true;\n\n if (options.modal) {\n otherModalsVisible = !!that._modals().length;\n overlay = that._overlay(otherModalsVisible);\n\n overlay.kendoStop(true, true);\n\n if (showOptions.duration && kendo.effects.Fade && !otherModalsVisible) {\n var overlayFx = kendo.fx(overlay).fadeIn();\n overlayFx.duration(showOptions.duration || 0);\n overlayFx.endValue(0.5);\n overlayFx.play();\n } else {\n overlay.css(\"opacity\", 0.5);\n }\n\n overlay.show();\n\n $(window).on(\"focus\" + MODAL_NS, function() {\n if (wrapper.data(\"isFront\") && !$(document.activeElement).closest(wrapper).length) {\n that.wrapper.trigger(\"focus\");\n }\n });\n }\n\n if (!wrapper.is(VISIBLE)) {\n contentElement.css(OVERFLOW, HIDDEN);\n\n that.wrapper.find(TITLEBAR_BUTTONSSELECTOR).addClass(\"k-button-flat\");\n\n wrapper.css({ display: \"inline-flex\" });\n wrapper.kendoStop().kendoAnimate({\n effects: showOptions.effects,\n duration: showOptions.duration,\n complete: this._activate.bind(this)\n });\n }\n }\n\n if (options.isMaximized) {\n that._containerScrollTop = doc.scrollTop();\n that._containerScrollLeft = doc.scrollLeft();\n that._stopDocumentScrolling();\n }\n\n if (this.options.pinned && !this._isPinned) {\n this.pin();\n }\n\n return that;\n },\n\n _activate: function() {\n var scrollable = this.options.scrollable !== false;\n\n if (this.options.autoFocus) {\n this.wrapper.trigger(\"focus\");\n }\n\n this.element.css(OVERFLOW, scrollable ? \"\" : \"hidden\");\n kendo.resize(this.element.children());\n\n this.trigger(ACTIVATE);\n },\n\n _removeOverlay: function(suppressAnimation) {\n var modals = this._modals();\n var options = this.options;\n var hideOverlay = options.modal && !modals.length;\n var hideOptions = this._animationOptions(\"close\");\n\n if (hideOverlay) {\n if (!suppressAnimation && hideOptions.duration && kendo.effects.Fade) {\n var overlayFx = kendo.fx(options.modal ? this._overlay(true) : $(undefined$1)).fadeOut();\n overlayFx.duration(hideOptions.duration || 0);\n overlayFx.startValue(0.5);\n overlayFx.play();\n } else {\n this._overlay(false).remove();\n }\n if (options.modal.preventScroll) {\n this._enableDocumentScrolling();\n }\n } else if (modals.length) {\n this._object(modals.last())._overlay(true);\n\n if (options.modal.preventScroll) {\n this._stopDocumentScrolling();\n }\n }\n },\n\n _close: function(systemTriggered) {\n var that = this,\n wrapper = that.wrapper,\n options = that.options,\n showOptions = this._animationOptions(\"open\"),\n hideOptions = this._animationOptions(\"close\"),\n containmentContext = this.containment && !that._isPinned,\n doc = containmentContext ? this.containment : $(document),\n defaultPrevented;\n\n if (that._closing) {\n return;\n }\n\n defaultPrevented = that.trigger(CLOSE, { userTriggered: !systemTriggered });\n that._closing = !defaultPrevented;\n\n if (wrapper.is(VISIBLE) && !defaultPrevented) {\n options.visible = false;\n\n $(KWINDOW).each(function(i, element) {\n var contentElement = $(element).children(KWINDOWCONTENT);\n\n // Remove overlay set by toFront\n if (element != wrapper && contentElement.find(\"> .\" + KCONTENTFRAME).length > 0) {\n contentElement.children(KOVERLAY).remove();\n }\n });\n\n this._removeOverlay();\n\n // Prevent close animation from stopping\n that.wrapper.find(TITLEBAR_BUTTONSSELECTOR).removeClass(\"k-button-flat\");\n\n wrapper.kendoStop().kendoAnimate({\n effects: hideOptions.effects || showOptions.effects,\n reverse: hideOptions.reverse === true,\n duration: hideOptions.duration,\n complete: this._deactivate.bind(this)\n });\n $(window).off(MODAL_NS);\n }\n\n if (that.options.isMaximized) {\n that._enableDocumentScrolling();\n if (that._containerScrollTop && that._containerScrollTop > 0) {\n doc.scrollTop(that._containerScrollTop);\n }\n if (that._containerScrollLeft && that._containerScrollLeft > 0) {\n doc.scrollLeft(that._containerScrollLeft);\n }\n }\n\n if (that.options.iframe) {\n that.wrapper.trigger(\"blur\");\n }\n },\n\n _deactivate: function() {\n var that = this;\n\n that.wrapper\n .removeClass(INLINE_FLEX)\n .hide()\n .css(\"opacity\", \"\");\n\n that.trigger(DEACTIVATE);\n\n if (that.options.modal) {\n var lastModal = that._object(that._modals().last());\n if (lastModal) {\n lastModal.toFront();\n }\n }\n },\n\n close: function() {\n this._close(true);\n return this;\n },\n\n _actionable: function(element) {\n return $(element).is(`${TITLEBAR_BUTTONSSELECTOR}, :input, a, .k-input, .k-icon, .k-svg-icon, .k-svg-icon>svg, .k-svg-icon>svg>path, .k-icon-button, [role='gridcell'], .k-input-inner, .k-input-value-text`);\n },\n\n _shouldFocus: function(target) {\n var active = activeElement(),\n element = this.wrapper;\n\n return this.options.autoFocus &&\n !$(active).is(element) &&\n !this._actionable(target) &&\n (!element.find(active).length || !element.find(target).length);\n },\n\n toFront: function(e, avoidFocus) {\n var that = this,\n wrapper = that.wrapper,\n currentWindow = wrapper[0],\n containmentContext = that.containment && !that._isPinned,\n openAnimation = this._animationOptions(\"open\"),\n zIndex = +wrapper.css(ZINDEX),\n originalZIndex = zIndex,\n target = (e && e.target) || null;\n\n $(KWINDOW).each(function(i, element) {\n var windowObject = $(element),\n zIndexNew = windowObject.css(ZINDEX),\n contentElement = windowObject.children(KWINDOWCONTENT);\n\n if (!isNaN(zIndexNew)) {\n zIndex = Math.max(+zIndexNew, zIndex);\n }\n\n wrapper.data(\"isFront\", element == currentWindow);\n // Add overlay to windows with iframes and lower z-index to prevent\n // trapping of events when resizing / dragging\n\n if (element != currentWindow &&\n contentElement.find(\".\" + KCONTENTFRAME).length &&\n !contentElement.find(KOVERLAY).length) {\n contentElement.append(templates.overlay);\n }\n });\n\n if (!wrapper[0].style.zIndex || originalZIndex < zIndex) {\n wrapper.css(ZINDEX, zIndex + 2);\n }\n that.element.find(\"> .k-overlay\").remove();\n\n if (that._shouldFocus(target)) {\n if (!avoidFocus) {\n setTimeout(function() {\n that.wrapper.focus();\n }, openAnimation ? openAnimation.duration : 0);\n }\n\n var scrollTop = containmentContext ? that.containment.scrollTop() : $(window).scrollTop(),\n windowTop = parseInt(wrapper.position().top, 10);\n\n if (!that.options.pinned && windowTop > 0 && windowTop < scrollTop) {\n if (scrollTop > 0) {\n $(window).scrollTop(windowTop);\n } else {\n wrapper.css(\"top\", scrollTop);\n }\n }\n }\n\n wrapper = null;\n\n return that;\n },\n\n toggleMaximization: function() {\n if (this._closing) {\n return this;\n }\n\n return this[this.options.isMaximized ? \"restore\" : \"maximize\"]();\n },\n\n restore: function() {\n var that = this;\n var options = that.options;\n var minHeight = options.minHeight;\n var restoreOptions = that.restoreOptions;\n var shouldRestrictTop;\n var container = that.containment && !that._isPinned ? that.containment : $(document);\n\n if (!options.isMaximized && !options.isMinimized) {\n return that;\n }\n\n if (minHeight && minHeight != Infinity) {\n that.wrapper.css(\"min-height\", minHeight);\n }\n\n if (restoreOptions && !options.isMaximized) {\n restoreOptions.height = constrain(restoreOptions.height, that.options.minHeight, that.options.maxHeight);\n\n shouldRestrictTop = options.position.top + parseInt(restoreOptions.height, 10) > that.maxTop;\n\n if (shouldRestrictTop) {\n options.position.top = constrain(options.position.top, that.minTop, that.maxTop - parseInt(restoreOptions.height, 10));\n\n extend(restoreOptions, {\n left: options.position.left,\n top: options.position.top\n });\n }\n }\n\n that.wrapper\n .css({\n position: options.pinned ? \"fixed\" : \"absolute\",\n left: restoreOptions.left,\n top: restoreOptions.top,\n width: restoreOptions.width,\n height: restoreOptions.height\n })\n .removeClass(MAXIMIZEDSTATE)\n .removeClass(KWINDOWMINIMIZED)\n .find(\".k-window-content,.k-resize-handle\").show().end()\n .find(\".k-window-titlebar .k-i-window-restore,.k-window-titlebar .k-svg-i-window-restore\").parent().remove().end().end()\n .find(MINIMIZE_MAXIMIZEICONSELECTORS).parent().show().end().end()\n .find(PIN_UNPINICONCLASSSELECTOR).parent().show();\n\n if (options.isMaximized) {\n that.wrapper.find(\".k-i-window,.k-svg-i-window\").parent().trigger(\"focus\");\n } else if (options.isMinimized) {\n that.wrapper.find(\".k-i-window-minimize,.k-svg-i-window-minimize\").parent().trigger(\"focus\");\n }\n\n that.options.width = restoreOptions.width;\n that.options.height = restoreOptions.height;\n\n if (!that.options.modal.preventScroll) {\n that._enableDocumentScrolling();\n }\n\n if (that._containerScrollTop && that._containerScrollTop > 0) {\n container.scrollTop(that._containerScrollTop);\n }\n if (that._containerScrollLeft && that._containerScrollLeft > 0) {\n container.scrollLeft(that._containerScrollLeft);\n }\n\n options.isMaximized = options.isMinimized = false;\n\n that.wrapper.removeAttr(\"aria-labelled-by\");\n\n that.resize();\n\n that.trigger(RESTORE);\n\n return that;\n },\n\n _sizingAction: function(actionId, callback) {\n var that = this,\n wrapper = that.wrapper,\n style = wrapper[0].style,\n options = that.options;\n\n if (options.isMaximized || options.isMinimized) {\n return that;\n }\n\n that.restoreOptions = {\n width: style.width,\n height: style.height\n };\n\n wrapper\n .children(KWINDOWRESIZEHANDLES).hide().end()\n .children(KWINDOWTITLEBAR).find(MINIMIZE_MAXIMIZEICONSELECTORS).parent().hide()\n .eq(0).before(templates.action({ name: \"window-restore\" }));\n\n callback.call(that);\n\n that.wrapper.children(KWINDOWTITLEBAR).find(PIN_UNPINICONCLASSSELECTOR).parent().toggle(actionId !== \"maximize\");\n\n that.trigger(actionId);\n\n wrapper.find(\".k-i-window-restore,.k-svg-i-window-restore\").parent().trigger(\"focus\");\n\n return that;\n },\n\n maximize: function() {\n this._sizingAction(\"maximize\", function() {\n var that = this,\n wrapper = that.wrapper,\n containmentContext = this.containment && !that._isPinned,\n position = wrapper.position(),\n doc = $(document);\n\n extend(that.restoreOptions, {\n left: position.left + (containmentContext ? this.containment.scrollLeft() : 0),\n top: position.top + (containmentContext ? this.containment.scrollTop() : 0)\n });\n\n this._containerScrollTop = containmentContext ? this.containment.scrollTop() : doc.scrollTop();\n this._containerScrollLeft = containmentContext ? this.containment.scrollLeft() : doc.scrollLeft();\n\n that._stopDocumentScrolling();\n\n wrapper\n .css({\n top: containmentContext ? this.containment.scrollTop() : 0,\n left: containmentContext ? this.containment.scrollLeft() : 0,\n position: containmentContext ? \"absolute\" : \"fixed\"\n })\n .addClass(MAXIMIZEDSTATE);\n\n that.options.isMaximized = true;\n\n that._onDocumentResize();\n });\n\n return this;\n },\n\n _stopDocumentScrolling: function() {\n var that = this;\n var containment = that.containment;\n\n if (containment && !that._isPinned) {\n that._storeOverflowRule(containment);\n containment.css(OVERFLOW, HIDDEN);\n that.wrapper.css({\n maxWidth: containment.innerWidth(),\n maxHeight: containment.innerHeight()\n });\n return;\n }\n\n var $body = $(\"body\");\n that._storeOverflowRule($body);\n $body.css(OVERFLOW, HIDDEN);\n\n var $html = $(\"html\");\n that._storeOverflowRule($html);\n $html.css(OVERFLOW, HIDDEN);\n },\n\n _enableDocumentScrolling: function() {\n var that = this;\n var containment = that.containment;\n\n if (containment && !that._isPinned) {\n that._restoreOverflowRule(containment);\n that.wrapper.css({\n maxWidth: containment.width,\n maxHeight: containment.height\n });\n return;\n }\n\n that._restoreOverflowRule($(document.body));\n that._restoreOverflowRule($(\"html\"));\n },\n\n _storeOverflowRule: function($element) {\n if (this._isOverflowStored($element)) {\n return;\n }\n\n var overflowRule = $element.get(0).style.overflow;\n\n if (typeof overflowRule === \"string\") {\n $element.data(DATADOCOVERFLOWRULE, overflowRule);\n }\n },\n\n _isOverflowStored: function($element) {\n return typeof $element.data(DATADOCOVERFLOWRULE) === \"string\";\n },\n\n _restoreOverflowRule: function($element) {\n var overflowRule = $element.data(DATADOCOVERFLOWRULE);\n\n if (overflowRule !== null && overflowRule !== undefined$1) {\n $element.css(OVERFLOW, overflowRule);\n $element.removeData(DATADOCOVERFLOWRULE);\n } else {\n $element.css(OVERFLOW, \"\");\n }\n },\n\n isMaximized: function() {\n return this.options.isMaximized;\n },\n\n minimize: function() {\n this._sizingAction(\"minimize\", function() {\n var that = this;\n\n that.wrapper.css({\n height: \"\",\n minHeight: \"\"\n });\n\n that.element.hide();\n\n that.options.isMinimized = true;\n });\n\n this.wrapper.attr(\"aria-labelled-by\", this.element.attr(\"aria-labelled-by\"));\n this.wrapper.addClass(KWINDOWMINIMIZED);\n\n this._updateBoundaries();\n\n return this;\n },\n\n isMinimized: function() {\n return this.options.isMinimized;\n },\n\n pin: function() {\n var that = this,\n win = $(window),\n wrapper = that.wrapper,\n options = that.options,\n position = options.position,\n top = this.containment ? getPosition(wrapper[0]).top + toInt(this.containment, \"borderTopWidth\") : toInt(wrapper, \"top\"),\n left = this.containment ? getPosition(wrapper[0]).left + toInt(this.containment, \"borderLeftWidth\") : toInt(wrapper, \"left\");\n\n if (!that.options.isMaximized) {\n position.top = top;\n position.left = left;\n\n if (that._scrollIsAppended && (!this.containment || this.containment.css(\"position\") !== \"fixed\")) {\n\n position.top -= win.scrollTop();\n position.left -= win.scrollLeft();\n that._scrollIsAppended = false;\n }\n\n wrapper.css(extend(position, { position: \"fixed\" }));\n var pinIcon = wrapper.children(KWINDOWTITLEBAR).find(KPINICONCLASSSELECTOR).eq(0);\n if (pinIcon.length > 0) {\n kendo.ui.icon(pinIcon, { icon: \"unpin\" });\n }\n\n that._isPinned = true;\n that.options.pinned = true;\n\n if (this.containment) {\n options.maxWidth = options.maxHeight = Infinity;\n wrapper.css({\n maxWidth: \"\",\n maxHeight: \"\"\n });\n }\n }\n },\n\n unpin: function() {\n var that = this,\n win = $(window),\n wrapper = that.wrapper,\n options = that.options,\n position = that.options.position,\n containment = that.containment,\n top = parseInt(wrapper.css(\"top\"), 10) + win.scrollTop(),\n left = parseInt(wrapper.css(\"left\"), 10) + win.scrollLeft();\n\n if (!that.options.isMaximized) {\n that._isPinned = false;\n that._scrollIsAppended = true;\n that.options.pinned = false;\n\n if (containment) {\n that._updateBoundaries();\n\n options.maxWidth = Math.min(containment.width, options.maxWidth);\n options.maxHeight = Math.min(containment.height - toInt(wrapper, \"padding-top\"), options.maxHeight);\n\n wrapper.css({\n maxWidth: options.maxWidth,\n maxHeight: options.maxHeight\n });\n\n if (top < containment.position.top) {\n top = that.minTop;\n } else if (top > containment.position.top + containment.height) {\n top = that.maxTop;\n } else {\n top = top + containment.scrollTop() - (containment.position.top + toInt(containment, \"border-top-width\"));\n }\n\n if (left < containment.position.left) {\n left = that.minLeft;\n } else if (left > containment.position.left + containment.width) {\n left = that.maxLeft;\n } else {\n left = left + containment.scrollLeft() - (containment.position.left + toInt(containment, \"border-left-width\"));\n }\n\n }\n\n position.top = constrain(top, that.minTop, that.maxTop);\n position.left = constrain(left, that.minLeft, that.maxLeft);\n\n wrapper.css(extend(position, { position: \"\" }));\n var pinIcon = wrapper.children(KWINDOWTITLEBAR).find(KUNPINICONCLASSSELECTOR).eq(0);\n if (pinIcon.length > 0) {\n kendo.ui.icon(pinIcon, { icon: \"pin\" });\n }\n }\n },\n\n _onDocumentResize: function() {\n var that = this,\n wrapper = that.wrapper,\n wnd = $(window),\n zoomLevel = kendo.support.zoomLevel(),\n contentBoxSizing = wrapper.css(\"box-sizing\") == \"content-box\",\n w, h;\n\n if (!that.options.isMaximized) {\n return;\n }\n\n var lrBorderWidth = contentBoxSizing ? toInt(wrapper, \"border-left-width\") + toInt(wrapper, \"border-right-width\") : 0;\n var tbBorderWidth = contentBoxSizing ? toInt(wrapper, \"border-top-width\") + toInt(wrapper, \"border-bottom-width\") : 0;\n var paddingTop = contentBoxSizing ? toInt(wrapper, \"padding-top\") : 0;\n\n if (that.containment && !that._isPinned) {\n w = that.containment.innerWidth() - lrBorderWidth;\n h = that.containment.innerHeight() - (tbBorderWidth + paddingTop);\n } else {\n w = wnd.width() / zoomLevel - lrBorderWidth;\n h = wnd.height() / zoomLevel - (tbBorderWidth + paddingTop);\n }\n\n wrapper.css({\n width: w,\n height: h\n });\n that.options.width = w;\n that.options.height = h;\n\n that.resize();\n },\n\n refresh: function(options) {\n var that = this,\n initOptions = that.options,\n element = $(that.element),\n iframe,\n showIframe,\n url;\n\n if (!isPlainObject(options)) {\n options = { url: options };\n }\n\n options = extend(initOptions.content, options);\n\n showIframe = defined(initOptions.iframe) ? initOptions.iframe : options.iframe;\n\n url = options.url;\n\n if (url) {\n if (!defined(showIframe)) {\n showIframe = !isLocalUrl(url);\n }\n\n if (!showIframe) {\n // perform AJAX request\n that._ajaxRequest(options);\n } else {\n iframe = element.find(\".\" + KCONTENTFRAME)[0];\n\n if (iframe) {\n // refresh existing iframe\n iframe.src = url || iframe.src;\n } else {\n // render new iframe\n element.html(templates.contentFrame(extend({}, initOptions, { content: options })));\n }\n\n element.find(\".\" + KCONTENTFRAME)\n .off(\"load\" + NS)\n .on(\"load\" + NS, this._triggerRefresh.bind(this));\n }\n } else {\n if (options.template) {\n // refresh template\n that.content(template(options.template)({}));\n }\n\n that.trigger(REFRESH);\n }\n\n element.toggleClass(\"k-window-iframecontent\", !!showIframe);\n\n return that;\n },\n\n _triggerRefresh: function() {\n this.trigger(REFRESH);\n },\n\n _ajaxComplete: function() {\n clearTimeout(this._loadingIconTimeout);\n this.wrapper.find(REFRESHICONSELECTOR).removeClass(LOADINGICONCLASS);\n },\n\n _ajaxError: function(xhr, status) {\n this.trigger(ERROR, { status: status, xhr: xhr });\n },\n\n _ajaxSuccess: function(contentTemplate) {\n return function(data) {\n var html = data;\n if (contentTemplate) {\n html = template(contentTemplate)(data || {});\n }\n\n this.content(html, data);\n this.element.prop(\"scrollTop\", 0);\n\n this.trigger(REFRESH);\n };\n },\n\n _showLoading: function() {\n this.wrapper.find(REFRESHICONSELECTOR).addClass(LOADINGICONCLASS);\n },\n\n _ajaxRequest: function(options) {\n this._loadingIconTimeout = setTimeout(this._showLoading.bind(this), 100);\n\n $.ajax(extend({\n type: \"GET\",\n dataType: \"html\",\n cache: false,\n error: this._ajaxError.bind(this),\n complete: this._ajaxComplete.bind(this),\n success: this._ajaxSuccess(options.template).bind(this)\n }, options));\n },\n\n _destroy: function() {\n if (this.resizing) {\n this.resizing.destroy();\n }\n\n if (this.dragging) {\n this.dragging.destroy();\n }\n\n this.wrapper.off(NS)\n .children(KWINDOWCONTENT).off(NS).end()\n .find(\".k-resize-handle,.k-window-titlebar\").off(NS);\n\n $(window).off(\"resize\" + NS + this._marker);\n $(window).off(MODAL_NS);\n $(window).off(NS);\n\n clearTimeout(this._loadingIconTimeout);\n\n Widget.fn.destroy.call(this);\n\n this.unbind(undefined$1);\n\n kendo.destroy(this.wrapper);\n },\n\n destroy: function() {\n this._destroy();\n\n if (this.options.modal) {\n this._removeOverlay(true);\n }\n\n this.wrapper.empty().remove();\n\n this.wrapper = this.appendTo = this.element = $();\n },\n\n _createWindow: function() {\n var contentHtml = this.element,\n options = this.options,\n iframeSrcAttributes,\n wrapper,\n isRtl = kendo.support.isRtl(contentHtml);\n\n if (options.scrollable === false) {\n contentHtml.css(\"overflow\", \"hidden\");\n }\n\n wrapper = $(templates.wrapper(options));\n\n // Collect the src attributes of all iframes and then set them to empty string.\n // This seems to fix this IE9 \"feature\": http://msdn.microsoft.com/en-us/library/gg622929%28v=VS.85%29.aspx?ppud=4\n iframeSrcAttributes = contentHtml.find(\"iframe:not(.k-content-frame)\").map(function() {\n var src = this.getAttribute(\"src\");\n this.src = \"\";\n return src;\n });\n\n // Make sure the wrapper is appended to the body only once. IE9+ will throw exceptions if you move iframes in DOM\n wrapper\n .toggleClass(\"k-rtl\", isRtl)\n .attr(\"tabindex\", 0)\n .append(contentHtml)\n .find(\"iframe:not(.k-content-frame)\").each(function(index) {\n // Restore the src attribute of the iframes when they are part of the live DOM tree\n this.src = iframeSrcAttributes[index];\n });\n\n if (this.containment) {\n this.containment.prepend(wrapper);\n } else if (this.appendTo) {\n wrapper.appendTo(this.appendTo);\n }\n\n wrapper.find(\".k-window-title\")\n .css(isRtl ? \"left\" : \"right\", outerWidth(wrapper.find(\".k-window-titlebar-actions\")) + 10);\n\n contentHtml.css(\"visibility\", \"\").show();\n\n if ($(contentHtml).hasClass(KHIDDEN))\n {\n $(contentHtml).removeClass(KHIDDEN);\n }\n contentHtml.find(\"[data-role=editor]\").each(function() {\n var editor = $(this).data(\"kendoEditor\");\n\n if (editor) {\n editor.refresh();\n }\n });\n\n wrapper = contentHtml = null;\n }\n });\n\n templates = {\n wrapper: template(() => \"
\"),\n action: template(({ name, icon }) => {\n let iconName = (icon || \"\").toLowerCase() || name.toLowerCase();\n if (iconName == \"restore\") { iconName = \"window-restore\"; }\n\n return kendo.html.renderButton(``, { icon: iconName, fillMode: \"flat\" });\n }),\n titlebar: template(({ title }) =>\n \"
\" +\n `${title}` +\n \"
\" +\n \"
\"\n ),\n overlay: \"
\",\n contentFrame: template(({ title, content }) =>\n `\"\n ),\n resizeHandle: template((data) => ``)\n };\n\n\n function WindowResizing(wnd) {\n var that = this;\n that.owner = wnd;\n that._preventDragging = false;\n that._draggable = new Draggable(wnd.wrapper, {\n filter: \">\" + KWINDOWRESIZEHANDLES,\n group: wnd.wrapper.id + \"-resizing\",\n dragstart: that.dragstart.bind(that),\n drag: that.drag.bind(that),\n dragend: that.dragend.bind(that)\n });\n\n that._draggable.userEvents.bind(\"press\", that.addOverlay.bind(that));\n that._draggable.userEvents.bind(\"release\", that.removeOverlay.bind(that));\n }\n\n WindowResizing.prototype = {\n addOverlay: function() {\n this.owner.wrapper.append(templates.overlay);\n },\n removeOverlay: function() {\n this.owner.wrapper.find(KOVERLAY).remove();\n },\n dragstart: function(e) {\n var that = this;\n var wnd = that.owner;\n var wrapper = wnd.wrapper;\n\n that._preventDragging = wnd.trigger(RESIZESTART);\n if (that._preventDragging) {\n return;\n }\n\n that.elementPadding = parseInt(wrapper.css(\"padding-top\"), 10);\n that.initialPosition = kendo.getOffset(wrapper, \"position\");\n\n that.resizeDirection = e.currentTarget.prop(\"className\").replace(\"k-resize-handle k-resize-\", \"\");\n\n that.initialSize = {\n width: wrapper.outerWidth(),\n height: wrapper.outerHeight()\n };\n\n wnd._updateBoundaries();\n\n that.containerOffset = wnd.containment ? wnd.containment.position : kendo.getOffset(wnd.appendTo);\n\n var offsetParent = wrapper.offsetParent();\n\n if (offsetParent.is(\"html\")) {\n that.containerOffset.top = that.containerOffset.left = 0;\n } else {\n var marginTop = offsetParent.css(\"margin-top\");\n var marginLeft = offsetParent.css(\"margin-left\");\n var hasMargin = !zero.test(marginTop) || !zero.test(marginLeft);\n if (hasMargin) {\n var wrapperPosition = getPosition(wrapper[0]);\n var relativeElMarginLeft = wrapperPosition.left - that.containerOffset.left - that.initialPosition.left;\n var relativeElMarginTop = wrapperPosition.top - that.containerOffset.top - that.initialPosition.top;\n\n that._relativeElMarginLeft = relativeElMarginLeft > 1 ? relativeElMarginLeft : 0;\n that._relativeElMarginTop = relativeElMarginTop > 1 ? relativeElMarginTop : 0;\n\n that.initialPosition.left += that._relativeElMarginLeft;\n that.initialPosition.top += that._relativeElMarginTop;\n }\n }\n\n wrapper\n .children(KWINDOWRESIZEHANDLES).not(e.currentTarget).hide();\n\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function(e) {\n if (this._preventDragging) {\n return;\n }\n var that = this,\n wnd = that.owner,\n wrapper = wnd.wrapper,\n options = wnd.options,\n position = options.position,\n direction = that.resizeDirection,\n containerOffset = that.containerOffset,\n initialPosition = that.initialPosition,\n initialSize = that.initialSize,\n containmentContext = wnd.containment && !wnd._isPinned,\n rtl = kendo.support.isRtl(wnd.containment),\n leftRtlOffset = containmentContext && rtl && wnd.containment.innerWidth() > wnd.containment.width ? kendo.support.scrollbar() : 0,\n scrollOffset = containmentContext ? { top: wnd.containment.scrollTop(), left: wnd.containment.scrollLeft() } : { top: 0, left: 0 },\n newWidth, newHeight,\n windowBottom, windowRight,\n x = Math.max(e.x.location, 0),\n y = Math.max(e.y.location, 0);\n\n if (direction.indexOf(\"e\") >= 0) {\n\n if (wnd.containment && x - initialSize.width >= wnd.maxLeft - scrollOffset.left + containerOffset.left + leftRtlOffset) {\n newWidth = wnd.maxLeft + leftRtlOffset - initialPosition.left + initialSize.width - scrollOffset.left;\n } else {\n newWidth = x - initialPosition.left - containerOffset.left;\n }\n\n wrapper.outerWidth(constrain(newWidth, options.minWidth, options.maxWidth));\n } else if (direction.indexOf(\"w\") >= 0) {\n windowRight = initialPosition.left + initialSize.width + containerOffset.left;\n newWidth = constrain(windowRight - x, options.minWidth, options.maxWidth);\n position.left = windowRight - newWidth - containerOffset.left - leftRtlOffset - (that._relativeElMarginLeft || 0) + scrollOffset.left;\n\n if (wnd.containment && position.left <= wnd.minLeft) {\n position.left = wnd.minLeft;\n newWidth = constrain(windowRight - leftRtlOffset - position.left - containerOffset.left + scrollOffset.left, options.minWidth, options.maxWidth);\n }\n\n wrapper.css({\n left: position.left,\n width: newWidth\n });\n }\n\n var newWindowTop = y;\n if (wnd.options.pinned) {\n newWindowTop -= $(window).scrollTop();\n }\n if (direction.indexOf(\"s\") >= 0) {\n newHeight = newWindowTop - initialPosition.top - that.elementPadding - containerOffset.top;\n\n if (newWindowTop - initialSize.height - that.elementPadding >= wnd.maxTop + containerOffset.top - scrollOffset.top) {\n newHeight = wnd.maxTop - initialPosition.top + initialSize.height - scrollOffset.top;\n }\n\n wrapper.outerHeight(constrain(newHeight, options.minHeight, options.maxHeight));\n } else if (direction.indexOf(\"n\") >= 0) {\n windowBottom = initialPosition.top + initialSize.height + containerOffset.top;\n newHeight = constrain(windowBottom - newWindowTop, options.minHeight, options.maxHeight);\n position.top = windowBottom - newHeight - containerOffset.top - (that._relativeElMarginTop || 0) + scrollOffset.top;\n\n if (position.top <= wnd.minTop && wnd.containment) {\n position.top = wnd.minTop;\n newHeight = constrain(windowBottom - position.top - containerOffset.top + scrollOffset.top, options.minHeight, options.maxHeight);\n }\n\n wrapper.css({\n top: position.top,\n height: newHeight\n });\n }\n\n if (newWidth) {\n wnd.options.width = newWidth + \"px\";\n }\n if (newHeight) {\n wnd.options.height = newHeight + \"px\";\n }\n\n wnd.resize();\n },\n dragend: function(e) {\n if (this._preventDragging) {\n return;\n }\n\n var that = this,\n wnd = that.owner,\n wrapper = wnd.wrapper;\n\n wrapper\n .children(KWINDOWRESIZEHANDLES).not(e.currentTarget).show();\n\n $(BODY).css(CURSOR, \"\");\n\n if (wnd.touchScroller) {\n wnd.touchScroller.reset();\n }\n\n if (e.keyCode == 27) {\n wrapper.css(that.initialPosition)\n .css(that.initialSize);\n }\n\n wnd.trigger(RESIZEEND);\n\n return false;\n },\n destroy: function() {\n if (this._draggable) {\n this._draggable.destroy();\n }\n\n this._draggable = this.owner = null;\n }\n };\n\n function WindowDragging(wnd, dragHandle, clickMoveClick) {\n var that = this,\n filter = dragHandle;\n\n if (clickMoveClick) {\n filter += \",.k-overlay\";\n }\n\n that.owner = wnd;\n that._preventDragging = false;\n that._draggable = new Draggable(wnd.wrapper, {\n filter: dragHandle,\n group: wnd.wrapper.id + \"-moving\",\n clickMoveClick: clickMoveClick,\n dragstart: that.dragstart.bind(that),\n drag: that.drag.bind(that),\n dragend: that.dragend.bind(that),\n dragcancel: that.dragcancel.bind(that)\n });\n\n that._draggable.userEvents.stopPropagation = false;\n }\n\n WindowDragging.prototype = {\n dragstart: function(e) {\n var wnd = this.owner,\n draggable = wnd.options.draggable,\n element = wnd.element,\n actions = element.find(\".k-window-titlebar-actions\"),\n containerOffset = kendo.getOffset(wnd.appendTo);\n\n this._preventDragging = wnd.trigger(DRAGSTART) || !draggable;\n if (this._preventDragging || wnd.isMaximized()) {\n return;\n }\n\n wnd.initialWindowPosition = kendo.getOffset(wnd.wrapper, \"position\");\n\n wnd.initialPointerPosition = {\n left: wnd.options.position.left,\n top: wnd.options.position.top\n };\n\n wnd.startPosition = {\n left: e.x.client - wnd.initialWindowPosition.left,\n top: e.y.client - wnd.initialWindowPosition.top\n };\n\n wnd._updateBoundaries();\n if (!wnd.containment) {\n if (actions.length > 0) {\n wnd.minLeft = outerWidth(actions) + parseInt(actions.css(\"right\"), 10) - outerWidth(element);\n } else {\n wnd.minLeft = 20 - outerWidth(element); // at least 20px remain visible\n }\n\n wnd.minLeft -= containerOffset.left;\n wnd.minTop = -containerOffset.top;\n }\n\n $(templates.overlay).appendTo(wnd.wrapper).css({ opacity: 0 });\n\n wnd.wrapper.children(KWINDOWRESIZEHANDLES).hide();\n\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n\n drag: function(e) {\n var wnd = this.owner;\n var position = wnd.options.position;\n var axis = wnd.options.draggable.axis;\n var left;\n var top;\n\n if (this._preventDragging || wnd.isMaximized()) {\n return;\n }\n\n if (!axis || axis.toLowerCase() === \"x\") {\n left = e.x.client - wnd.startPosition.left;\n\n if (wnd.containment && !wnd._isPinned) {\n left += wnd.containment.scrollLeft();\n }\n\n position.left = constrain(left, wnd.minLeft, wnd.maxLeft);\n }\n\n if (!axis || axis.toLowerCase() === \"y\") {\n top = e.y.client - wnd.startPosition.top;\n\n if (wnd.containment && !wnd._isPinned) {\n top += wnd.containment.scrollTop();\n }\n\n position.top = constrain(top, wnd.minTop, wnd.maxTop);\n }\n\n if (kendo.support.transforms) {\n $(wnd.wrapper).css(\n \"transform\", \"translate(\" +\n (position.left - wnd.initialPointerPosition.left) + \"px, \" +\n (position.top - wnd.initialPointerPosition.top) + \"px)\"\n );\n } else {\n $(wnd.wrapper).css(position);\n }\n\n },\n\n _finishDrag: function() {\n var wnd = this.owner;\n\n wnd.wrapper\n .children(KWINDOWRESIZEHANDLES).toggle(!wnd.options.isMinimized).end()\n .find(KOVERLAY).remove();\n\n $(BODY).css(CURSOR, \"\");\n },\n\n dragcancel: function(e) {\n if (this._preventDragging) {\n return;\n }\n this._finishDrag();\n\n e.currentTarget.closest(KWINDOW).css(this.owner.initialWindowPosition);\n },\n\n dragend: function() {\n var wnd = this.owner;\n\n if (this._preventDragging || wnd.isMaximized()) {\n return;\n }\n\n $(wnd.wrapper)\n .css(wnd.options.position)\n .css(\"transform\", \"\");\n\n this._finishDrag();\n\n wnd.trigger(DRAGEND);\n\n return false;\n },\n destroy: function() {\n if (this._draggable) {\n this._draggable.destroy();\n }\n\n this._draggable = this.owner = null;\n }\n };\n\n kendo.ui.plugin(Window);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}