{"version":3,"sources":["kendo.window.js"],"names":["f","define","$","undefined","defined","x","constrain","value","low","high","Math","max","min","parseInt","Infinity","executableScript","this","type","toLowerCase","indexOf","WindowResizing","wnd","that","owner","_preventDragging","_draggable","Draggable","wrapper","filter","KWINDOWRESIZEHANDLES","group","id","dragstart","proxy","drag","dragend","userEvents","bind","addOverlay","removeOverlay","getPosition","elem","parentOverflowX","parentOverflowY","result","top","offsetTop","left","offsetLeft","parent","offsetParent","css","scrollTop","scrollLeft","WindowDragging","dragHandle","dragcancel","stopPropagation","kendo","window","Widget","ui","TabKeyTrap","Popup","isPlainObject","activeElement","_activeElement","outerWidth","_outerWidth","outerHeight","_outerHeight","extend","each","template","BODY","NS","KWINDOW","KWINDOWTITLE","KWINDOWTITLEBAR","KWINDOWCONTENT","KOVERLAY","KCONTENTFRAME","LOADING","KHOVERSTATE","KFOCUSEDSTATE","MAXIMIZEDSTATE","VISIBLE","HIDDEN","CURSOR","OPEN","ACTIVATE","DEACTIVATE","CLOSE","REFRESH","MINIMIZE","MAXIMIZE","RESIZESTART","RESIZE","RESIZEEND","DRAGSTART","DRAGEND","ERROR","OVERFLOW","ZINDEX","MINIMIZE_MAXIMIZE","KPIN","KUNPIN","PIN_UNPIN","TITLEBAR_BUTTONS","REFRESHICON","zero","isLocalUrl","Window","init","element","options","visibility","display","position","content","windowContent","offset","isVisible","suppressActions","actions","length","fn","call","appendTo","url","find","remove","is","visible","closest","addClass","_createWindow","_dimensions","_position","refresh","toFront","children","_tabindex","modal","_overlay","opacity","on","_buttonEnter","_buttonLeave","_windowActionHandler","_keydown","_focus","_blur","_resizable","pinned","pin","attr","role","aria-labelledby","add","touchScroller","_resizeHandler","_onDocumentResize","_marker","guid","substring","trigger","notify","_tabKeyTrap","trap","shouldTrap","data","e","currentTarget","removeClass","i","width","height","maxHeight","dimensions","title","minWidth","maxWidth","minHeight","hide","_animationOptions","animation","basicAnimation","open","effects","close","_resize","resize","resizable","resizing","off","destroy","target","toggleMaximization","split","index","handler","append","templates","resizeHandle","draggable","dragging","_actions","titlebar","container","windowSpecificCommands","map","action","name","html","render","setOptions","scrollable","restore","events","zoom","direction","fade","duration","properties","scale","autoFocus","isMaximized","isMinimized","_closable","inArray","handled","newWidth","newHeight","w","h","keys","keyCode","distance","ESC","_close","_closing","ctrlKey","getOffset","UP","DOWN","LEFT","RIGHT","isNaN","preventDefault","overlay","insertBefore","toggle","_actionForIcon","icon","iconClass","exec","className","k-i-close","k-i-window-maximize","k-i-window-minimize","k-i-window-restore","k-i-refresh","k-i-pin","k-i-unpin","_modals","zStack","dom","object","_object","sort","a","b","widget","widgetInstance","center","newTop","newLeft","documentWindow","text","titleBarHeight","titleBar","arguments","htmlEncode","prepend","scrollContainer","angular","elements","empty","push","dataItem","otherModalsVisible","overlayFx","showOptions","contentElement","doc","document","kendoStop","focus","Fade","fx","fadeIn","endValue","play","show","kendoAnimate","complete","_activate","_documentScrollTop","_documentScrollLeft","_removeOverlay","suppressAnimation","modals","hideOverlay","hideOptions","fadeOut","startValue","last","systemTriggered","userTriggered","reverse","_deactivate","lastModal","_actionable","_shouldFocus","active","windowTop","currentWindow","zIndex","originalZIndex","windowObject","zIndexNew","style","restoreOptions","end","_sizingAction","actionId","callback","eq","before","maximize","minimize","win","unpin","zoomLevel","support","iframe","showIframe","initOptions","src","contentFrame","unbind","_triggerRefresh","_ajaxRequest","toggleClass","_ajaxComplete","clearTimeout","_loadingIconTimeout","_ajaxError","xhr","status","_ajaxSuccess","contentTemplate","prop","_showLoading","setTimeout","ajax","dataType","cache","error","success","_destroy","iframeSrcAttributes","contentHtml","isRtl","getAttribute","editor","prototype","marginTop","marginLeft","hasMargin","wrapperPosition","relativeElMarginLeft","relativeElMarginTop","elementPadding","initialPosition","resizeDirection","replace","initialSize","containerOffset","test","_relativeElMarginLeft","_relativeElMarginTop","not","windowBottom","windowRight","y","newWindowTop","location","reset","initialWindowPosition","initialPointerPosition","client","startPosition","minLeftPosition","minTopPosition","transforms","_finishDrag","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.window.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.window', [\n 'kendo.draganddrop',\n 'kendo.popup'\n ], f);\n}(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: [\n 'draganddrop',\n 'popup'\n ],\n features: [{\n id: 'window-fx',\n name: 'Animation',\n description: 'Support for animation',\n depends: ['fx']\n }]\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, TabKeyTrap = kendo.ui.Popup.TabKeyTrap, Draggable = kendo.ui.Draggable, isPlainObject = $.isPlainObject, activeElement = kendo._activeElement, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, proxy = $.proxy, extend = $.extend, each = $.each, template = kendo.template, BODY = 'body', templates, NS = '.kendoWindow', KWINDOW = '.k-window', KWINDOWTITLE = '.k-window-title', KWINDOWTITLEBAR = KWINDOWTITLE + 'bar', KWINDOWCONTENT = '.k-window-content', KWINDOWRESIZEHANDLES = '.k-resize-handle', KOVERLAY = '.k-overlay', KCONTENTFRAME = 'k-content-frame', LOADING = 'k-i-loading', KHOVERSTATE = 'k-state-hover', KFOCUSEDSTATE = 'k-state-focused', MAXIMIZEDSTATE = 'k-window-maximized', VISIBLE = ':visible', HIDDEN = 'hidden', CURSOR = 'cursor', OPEN = 'open', ACTIVATE = 'activate', DEACTIVATE = 'deactivate', CLOSE = 'close', REFRESH = 'refresh', MINIMIZE = 'minimize', MAXIMIZE = 'maximize', RESIZESTART = 'resizeStart', RESIZE = 'resize', RESIZEEND = 'resizeEnd', DRAGSTART = 'dragstart', DRAGEND = 'dragend', ERROR = 'error', OVERFLOW = 'overflow', ZINDEX = 'zIndex', MINIMIZE_MAXIMIZE = '.k-window-actions .k-i-window-minimize,.k-window-actions .k-i-window-maximize', KPIN = '.k-i-pin', KUNPIN = '.k-i-unpin', PIN_UNPIN = KPIN + ',' + KUNPIN, TITLEBAR_BUTTONS = '.k-window-titlebar .k-window-action', REFRESHICON = '.k-window-titlebar .k-i-refresh', zero = /^0[a-z]*$/i, isLocalUrl = kendo.isLocalUrl;\n function defined(x) {\n return typeof x != 'undefined';\n }\n function constrain(value, low, high) {\n return Math.max(Math.min(parseInt(value, 10), high === Infinity ? high : parseInt(high, 10)), parseInt(low, 10));\n }\n function executableScript() {\n return !this.type || this.type.toLowerCase().indexOf('script') >= 0;\n }\n var Window = Widget.extend({\n init: function (element, options) {\n var that = this, wrapper, offset = {}, visibility, display, position, isVisible = false, content, windowContent, suppressActions = options && options.actions && !options.actions.length, id;\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 if (suppressActions) {\n options.actions = [];\n }\n that.appendTo = $(options.appendTo);\n if (content && !isPlainObject(content)) {\n content = options.content = { url: content };\n }\n element.find('script').filter(executableScript).remove();\n if (!element.parent().is(that.appendTo) && (position.top === undefined || position.left === undefined)) {\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 element.css({\n visibility: HIDDEN,\n display: ''\n });\n offset = element.offset();\n element.css({\n visibility: visibility,\n display: display\n });\n }\n if (position.top === undefined) {\n position.top = offset.top;\n }\n if (position.left === undefined) {\n position.left = offset.left;\n }\n }\n if (!defined(options.visible) || options.visible === null) {\n options.visible = element.is(VISIBLE);\n }\n wrapper = that.wrapper = element.closest(KWINDOW);\n if (!element.is('.k-content') || !wrapper[0]) {\n element.addClass('k-window-content k-content');\n that._createWindow(element, options);\n wrapper = that.wrapper = element.closest(KWINDOW);\n that._dimensions();\n }\n that._position();\n if (content) {\n that.refresh(content);\n }\n if (options.visible) {\n that.toFront();\n }\n windowContent = wrapper.children(KWINDOWCONTENT);\n that._tabindex(windowContent);\n if (options.visible && options.modal) {\n that._overlay(wrapper.is(VISIBLE)).css({ opacity: 0.5 });\n }\n wrapper.on('mouseenter' + NS, TITLEBAR_BUTTONS, proxy(that._buttonEnter, that)).on('mouseleave' + NS, TITLEBAR_BUTTONS, proxy(that._buttonLeave, that)).on('click' + NS, '> ' + TITLEBAR_BUTTONS, proxy(that._windowActionHandler, that));\n windowContent.on('keydown' + NS, proxy(that._keydown, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that));\n this._resizable();\n this._draggable();\n if (options.pinned) {\n that.pin();\n }\n id = element.attr('id');\n if (id) {\n id = id + '_wnd_title';\n wrapper.children(KWINDOWTITLEBAR).children(KWINDOWTITLE).attr('id', id);\n windowContent.attr({\n 'role': 'dialog',\n 'aria-labelledby': id\n });\n }\n wrapper.add(wrapper.children('.k-resize-handle,' + KWINDOWTITLEBAR)).on('mousedown' + NS, proxy(that.toFront, that));\n that.touchScroller = kendo.touchScroller(element);\n that._resizeHandler = proxy(that._onDocumentResize, that);\n that._marker = kendo.guid().substring(0, 8);\n $(window).on('resize' + NS + that._marker, that._resizeHandler);\n if (options.visible) {\n that.trigger(OPEN);\n that.trigger(ACTIVATE);\n }\n kendo.notify(that);\n if (this.options.modal) {\n this._tabKeyTrap = new TabKeyTrap(wrapper);\n this._tabKeyTrap.trap();\n this._tabKeyTrap.shouldTrap = function () {\n return windowContent.data('isFront');\n };\n }\n },\n _buttonEnter: function (e) {\n $(e.currentTarget).addClass(KHOVERSTATE);\n },\n _buttonLeave: function (e) {\n $(e.currentTarget).removeClass(KHOVERSTATE);\n },\n _focus: function () {\n this.wrapper.addClass(KFOCUSEDSTATE);\n },\n _blur: function () {\n this.wrapper.removeClass(KFOCUSEDSTATE);\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 dimensions = [\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight'\n ];\n this.title(options.title);\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 if (maxHeight != Infinity) {\n this.element.css('maxHeight', maxHeight);\n }\n if (width) {\n if (width.toString().indexOf('%') > 0) {\n wrapper.width(width);\n } else {\n wrapper.width(constrain(width, options.minWidth, options.maxWidth));\n }\n } else {\n wrapper.width('');\n }\n if (height) {\n if (height.toString().indexOf('%') > 0) {\n wrapper.height(height);\n } else {\n wrapper.height(constrain(height, options.minHeight, options.maxHeight));\n }\n } else {\n wrapper.height('');\n }\n if (!options.visible) {\n wrapper.hide();\n }\n },\n _position: function () {\n var wrapper = this.wrapper, position = this.options.position;\n if (position.top === 0) {\n position.top = position.top.toString();\n }\n if (position.left === 0) {\n position.left = position.left.toString();\n }\n wrapper.css({\n top: position.top || '',\n left: position.left || ''\n });\n },\n _animationOptions: function (id) {\n var animation = this.options.animation;\n var basicAnimation = {\n open: { effects: {} },\n close: {\n hide: true,\n effects: {}\n }\n };\n return animation && animation[id] || basicAnimation[id];\n },\n _resize: function () {\n kendo.resize(this.element.children());\n },\n _resizable: function () {\n var resizable = this.options.resizable;\n var wrapper = this.wrapper;\n if (this.resizing) {\n wrapper.off('dblclick' + NS).children(KWINDOWRESIZEHANDLES).remove();\n this.resizing.destroy();\n this.resizing = null;\n }\n if (resizable) {\n wrapper.on('dblclick' + NS, KWINDOWTITLEBAR, proxy(function (e) {\n if (!$(e.target).closest('.k-window-action').length) {\n this.toggleMaximization();\n }\n }, this));\n each('n e s w se sw ne nw'.split(' '), function (index, handler) {\n wrapper.append(templates.resizeHandle(handler));\n });\n this.resizing = new WindowResizing(this);\n }\n wrapper = null;\n },\n _draggable: function () {\n var draggable = this.options.draggable;\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);\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-actions');\n var windowSpecificCommands = [\n 'maximize',\n 'minimize'\n ];\n actions = $.map(actions, function (action) {\n action = pinned && action.toLowerCase() === 'pin' ? 'unpin' : action;\n return { name: windowSpecificCommands.indexOf(action.toLowerCase()) > -1 ? 'window-' + action : action };\n });\n container.html(kendo.render(templates.action, actions));\n },\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n var scrollable = this.options.scrollable !== false;\n this.restore();\n this._dimensions();\n this._position();\n this._resizable();\n this._draggable();\n this._actions();\n if (typeof options.modal !== 'undefined') {\n var visible = this.options.visible !== false;\n this._overlay(options.modal && visible);\n }\n this.element.css(OVERFLOW, scrollable ? '' : 'hidden');\n },\n events: [\n OPEN,\n ACTIVATE,\n DEACTIVATE,\n CLOSE,\n MINIMIZE,\n MAXIMIZE,\n REFRESH,\n RESIZESTART,\n RESIZE,\n RESIZEEND,\n DRAGSTART,\n DRAGEND,\n ERROR\n ],\n options: {\n name: 'Window',\n animation: {\n open: {\n effects: {\n zoom: { direction: 'in' },\n fade: { direction: 'in' }\n },\n duration: 350\n },\n close: {\n effects: {\n zoom: {\n direction: 'out',\n properties: { scale: 0.7 }\n },\n fade: { direction: 'out' }\n },\n duration: 350,\n hide: true\n }\n },\n title: '',\n actions: ['Close'],\n autoFocus: true,\n modal: false,\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 _closable: function () {\n return $.inArray('close', $.map(this.options.actions, function (x) {\n return x.toLowerCase();\n })) > -1;\n },\n _keydown: function (e) {\n var that = this, options = that.options, keys = kendo.keys, keyCode = e.keyCode, wrapper = that.wrapper, offset, handled, distance = 10, isMaximized = that.options.isMaximized, newWidth, newHeight, w, h;\n if (keyCode == keys.ESC && that._closable()) {\n that._close(false);\n }\n if (e.target != e.currentTarget || that._closing) {\n return;\n }\n if (options.draggable && !e.ctrlKey && !isMaximized) {\n offset = kendo.getOffset(wrapper);\n if (keyCode == keys.UP) {\n handled = wrapper.css('top', offset.top - distance);\n } else if (keyCode == keys.DOWN) {\n handled = wrapper.css('top', offset.top + distance);\n } else if (keyCode == keys.LEFT) {\n handled = wrapper.css('left', offset.left - distance);\n } else if (keyCode == keys.RIGHT) {\n handled = wrapper.css('left', offset.left + distance);\n }\n }\n if (options.resizable && e.ctrlKey && !isMaximized) {\n if (keyCode == keys.UP) {\n handled = true;\n newHeight = wrapper.height() - distance;\n } else if (keyCode == keys.DOWN) {\n handled = true;\n newHeight = wrapper.height() + distance;\n }\n if (keyCode == keys.LEFT) {\n handled = true;\n newWidth = wrapper.width() - distance;\n } else if (keyCode == keys.RIGHT) {\n handled = true;\n newWidth = wrapper.width() + distance;\n }\n if (handled) {\n w = constrain(newWidth, options.minWidth, options.maxWidth);\n h = constrain(newHeight, options.minHeight, options.maxHeight);\n if (!isNaN(w)) {\n wrapper.width(w);\n that.options.width = w + 'px';\n }\n if (!isNaN(h)) {\n wrapper.height(h);\n that.options.height = h + 'px';\n }\n that.resize();\n }\n }\n if (handled) {\n e.preventDefault();\n }\n },\n _overlay: function (visible) {\n var overlay = this.appendTo.children(KOVERLAY), wrapper = this.wrapper;\n if (!overlay.length) {\n overlay = $('
');\n }\n overlay.insertBefore(wrapper[0]).toggle(visible).css(ZINDEX, parseInt(wrapper.css(ZINDEX), 10) - 1);\n return overlay;\n },\n _actionForIcon: function (icon) {\n var iconClass = /\\bk-i(-\\w+)+\\b/.exec(icon[0].className)[0];\n return {\n 'k-i-close': '_close',\n 'k-i-window-maximize': 'maximize',\n 'k-i-window-minimize': 'minimize',\n 'k-i-window-restore': 'restore',\n 'k-i-refresh': 'refresh',\n 'k-i-pin': 'pin',\n 'k-i-unpin': 'unpin'\n }[iconClass];\n },\n _windowActionHandler: function (e) {\n if (this._closing) {\n return;\n }\n var icon = $(e.target).closest('.k-window-action').find('.k-icon');\n var action = this._actionForIcon(icon);\n if (action) {\n e.preventDefault();\n this[action]();\n return false;\n }\n },\n _modals: function () {\n var that = this;\n var zStack = $(KWINDOW).filter(function () {\n var dom = $(this);\n var object = that._object(dom);\n var options = object && object.options;\n return options && options.modal && options.visible && options.appendTo === that.options.appendTo && dom.is(VISIBLE);\n }).sort(function (a, b) {\n return +$(a).css('zIndex') - +$(b).css('zIndex');\n });\n that = null;\n return zStack;\n },\n _object: function (element) {\n var content = element.children(KWINDOWCONTENT);\n var widget = kendo.widgetInstance(content);\n if (widget) {\n return widget;\n }\n return undefined;\n },\n center: function () {\n var that = this, position = that.options.position, wrapper = that.wrapper, documentWindow = $(window), scrollTop = 0, scrollLeft = 0, newTop, newLeft;\n if (that.options.isMaximized) {\n return that;\n }\n if (!that.options.pinned) {\n scrollTop = documentWindow.scrollTop();\n scrollLeft = documentWindow.scrollLeft();\n }\n newLeft = scrollLeft + Math.max(0, (documentWindow.width() - wrapper.width()) / 2);\n newTop = scrollTop + Math.max(0, (documentWindow.height() - wrapper.height() - parseInt(wrapper.css('paddingTop'), 10)) / 2);\n wrapper.css({\n left: newLeft,\n top: newTop\n });\n position.top = newTop;\n position.left = newLeft;\n return that;\n },\n title: function (text) {\n var that = this, wrapper = that.wrapper, options = that.options, titleBar = wrapper.children(KWINDOWTITLEBAR), title = titleBar.children(KWINDOWTITLE), titleBarHeight;\n if (!arguments.length) {\n return title.html();\n }\n if (text === false) {\n wrapper.addClass('k-window-titleless');\n titleBar.remove();\n } else {\n if (!titleBar.length) {\n wrapper.prepend(templates.titlebar(options));\n that._actions();\n titleBar = wrapper.children(KWINDOWTITLEBAR);\n } else {\n title.html(kendo.htmlEncode(text));\n }\n titleBarHeight = parseInt(outerHeight(titleBar), 10);\n wrapper.css('padding-top', titleBarHeight);\n titleBar.css('margin-top', -titleBarHeight);\n }\n that.options.title = text;\n return that;\n },\n content: function (html, data) {\n var content = this.wrapper.children(KWINDOWCONTENT), scrollContainer = content.children('.km-scroll-container');\n content = scrollContainer[0] ? scrollContainer : content;\n if (!defined(html)) {\n return content.html();\n }\n this.angular('cleanup', function () {\n return { elements: content.children() };\n });\n kendo.destroy(this.element.children());\n content.empty().html(html);\n this.angular('compile', function () {\n var a = [];\n for (var i = content.length; --i >= 0;) {\n a.push({ dataItem: data });\n }\n return {\n elements: content.children(),\n data: a\n };\n });\n return this;\n },\n open: function () {\n var that = this, wrapper = that.wrapper, options = that.options, showOptions = this._animationOptions('open'), contentElement = wrapper.children(KWINDOWCONTENT), overlay, otherModalsVisible, doc = $(document);\n if (!that.trigger(OPEN)) {\n if (that._closing) {\n wrapper.kendoStop(true, true);\n }\n that._closing = false;\n that.toFront();\n if (options.autoFocus) {\n that.element.focus();\n }\n options.visible = true;\n if (options.modal) {\n otherModalsVisible = !!that._modals().length;\n overlay = that._overlay(otherModalsVisible);\n overlay.kendoStop(true, true);\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 overlay.show();\n $(window).on('focus', function () {\n if (contentElement.data('isFront')) {\n that.element.focus();\n }\n });\n }\n if (!wrapper.is(VISIBLE)) {\n contentElement.css(OVERFLOW, HIDDEN);\n wrapper.show().kendoStop().kendoAnimate({\n effects: showOptions.effects,\n duration: showOptions.duration,\n complete: proxy(this._activate, this)\n });\n }\n }\n if (options.isMaximized) {\n that._documentScrollTop = doc.scrollTop();\n that._documentScrollLeft = doc.scrollLeft();\n $('html, body').css(OVERFLOW, HIDDEN);\n }\n return that;\n },\n _activate: function () {\n var scrollable = this.options.scrollable !== false;\n if (this.options.autoFocus) {\n this.element.focus();\n }\n this.element.css(OVERFLOW, scrollable ? '' : 'hidden');\n kendo.resize(this.element.children());\n this.trigger(ACTIVATE);\n },\n _removeOverlay: function (suppressAnimation) {\n var modals = this._modals();\n var options = this.options;\n var hideOverlay = options.modal && !modals.length;\n var overlay = options.modal ? this._overlay(true) : $(undefined);\n var hideOptions = this._animationOptions('close');\n if (hideOverlay) {\n if (!suppressAnimation && hideOptions.duration && kendo.effects.Fade) {\n var overlayFx = kendo.fx(overlay).fadeOut();\n overlayFx.duration(hideOptions.duration || 0);\n overlayFx.startValue(0.5);\n overlayFx.play();\n } else {\n this._overlay(false).remove();\n }\n } else if (modals.length) {\n this._object(modals.last())._overlay(true);\n }\n },\n _close: function (systemTriggered) {\n var that = this, wrapper = that.wrapper, options = that.options, showOptions = this._animationOptions('open'), hideOptions = this._animationOptions('close'), doc = $(document);\n if (wrapper.is(VISIBLE) && !that.trigger(CLOSE, { userTriggered: !systemTriggered })) {\n if (that._closing) {\n return;\n }\n that._closing = true;\n options.visible = false;\n $(KWINDOW).each(function (i, element) {\n var contentElement = $(element).children(KWINDOWCONTENT);\n if (element != wrapper && contentElement.find('> .' + KCONTENTFRAME).length > 0) {\n contentElement.children(KOVERLAY).remove();\n }\n });\n this._removeOverlay();\n wrapper.kendoStop().kendoAnimate({\n effects: hideOptions.effects || showOptions.effects,\n reverse: hideOptions.reverse === true,\n duration: hideOptions.duration,\n complete: proxy(this._deactivate, this)\n });\n }\n if (that.options.isMaximized) {\n $('html, body').css(OVERFLOW, '');\n if (that._documentScrollTop && that._documentScrollTop > 0) {\n doc.scrollTop(that._documentScrollTop);\n }\n if (that._documentScrollLeft && that._documentScrollLeft > 0) {\n doc.scrollLeft(that._documentScrollLeft);\n }\n }\n },\n _deactivate: function () {\n var that = this;\n that.wrapper.hide().css('opacity', '');\n that.trigger(DEACTIVATE);\n if (that.options.modal) {\n var lastModal = that._object(that._modals().last());\n if (lastModal) {\n lastModal.toFront();\n }\n }\n },\n close: function () {\n this._close(true);\n return this;\n },\n _actionable: function (element) {\n return $(element).is(TITLEBAR_BUTTONS + ',' + TITLEBAR_BUTTONS + ' .k-icon,:input,a');\n },\n _shouldFocus: function (target) {\n var active = activeElement(), element = this.element;\n return this.options.autoFocus && !$(active).is(element) && !this._actionable(target) && (!element.find(active).length || !element.find(target).length);\n },\n toFront: function (e) {\n var that = this, wrapper = that.wrapper, currentWindow = wrapper[0], zIndex = +wrapper.css(ZINDEX), originalZIndex = zIndex, target = e && e.target || null;\n $(KWINDOW).each(function (i, element) {\n var windowObject = $(element), zIndexNew = windowObject.css(ZINDEX), contentElement = windowObject.children(KWINDOWCONTENT);\n if (!isNaN(zIndexNew)) {\n zIndex = Math.max(+zIndexNew, zIndex);\n }\n contentElement.data('isFront', element == currentWindow);\n if (element != currentWindow && contentElement.find('> .' + KCONTENTFRAME).length > 0) {\n contentElement.append(templates.overlay);\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 if (that._shouldFocus(target)) {\n that.element.focus();\n var scrollTop = $(window).scrollTop(), windowTop = parseInt(wrapper.position().top, 10);\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 wrapper = null;\n return that;\n },\n toggleMaximization: function () {\n if (this._closing) {\n return this;\n }\n return this[this.options.isMaximized ? 'restore' : 'maximize']();\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 doc = $(document);\n if (!options.isMaximized && !options.isMinimized) {\n return that;\n }\n if (minHeight && minHeight != Infinity) {\n that.wrapper.css('min-height', minHeight);\n }\n that.wrapper.css({\n position: options.pinned ? 'fixed' : 'absolute',\n left: restoreOptions.left,\n top: restoreOptions.top,\n width: restoreOptions.width,\n height: restoreOptions.height\n }).removeClass(MAXIMIZEDSTATE).find('.k-window-content,.k-resize-handle').show().end().find('.k-window-titlebar .k-i-window-restore').parent().remove().end().end().find(MINIMIZE_MAXIMIZE).parent().show().end().end().find(PIN_UNPIN).parent().show();\n that.options.width = restoreOptions.width;\n that.options.height = restoreOptions.height;\n $('html, body').css(OVERFLOW, '');\n if (this._documentScrollTop && this._documentScrollTop > 0) {\n doc.scrollTop(this._documentScrollTop);\n }\n if (this._documentScrollLeft && this._documentScrollLeft > 0) {\n doc.scrollLeft(this._documentScrollLeft);\n }\n options.isMaximized = options.isMinimized = false;\n that.resize();\n return that;\n },\n _sizingAction: function (actionId, callback) {\n var that = this, wrapper = that.wrapper, style = wrapper[0].style, options = that.options;\n if (options.isMaximized || options.isMinimized) {\n return that;\n }\n that.restoreOptions = {\n width: style.width,\n height: style.height\n };\n wrapper.children(KWINDOWRESIZEHANDLES).hide().end().children(KWINDOWTITLEBAR).find(MINIMIZE_MAXIMIZE).parent().hide().eq(0).before(templates.action({ name: 'window-restore' }));\n callback.call(that);\n that.wrapper.children(KWINDOWTITLEBAR).find(PIN_UNPIN).parent().toggle(actionId !== 'maximize');\n that.trigger(actionId);\n return that;\n },\n maximize: function () {\n this._sizingAction('maximize', function () {\n var that = this, wrapper = that.wrapper, position = wrapper.position(), doc = $(document);\n extend(that.restoreOptions, {\n left: position.left,\n top: position.top\n });\n wrapper.css({\n left: 0,\n top: 0,\n position: 'fixed'\n }).addClass(MAXIMIZEDSTATE);\n this._documentScrollTop = doc.scrollTop();\n this._documentScrollLeft = doc.scrollLeft();\n $('html, body').css(OVERFLOW, HIDDEN);\n that.options.isMaximized = true;\n that._onDocumentResize();\n });\n return this;\n },\n isMaximized: function () {\n return this.options.isMaximized;\n },\n minimize: function () {\n this._sizingAction('minimize', function () {\n var that = this;\n that.wrapper.css({\n height: '',\n minHeight: ''\n });\n that.element.hide();\n that.options.isMinimized = true;\n });\n return this;\n },\n isMinimized: function () {\n return this.options.isMinimized;\n },\n pin: function () {\n var that = this, win = $(window), wrapper = that.wrapper, top = parseInt(wrapper.css('top'), 10), left = parseInt(wrapper.css('left'), 10);\n if (!that.options.isMaximized) {\n wrapper.css({\n position: 'fixed',\n top: top - win.scrollTop(),\n left: left - win.scrollLeft()\n });\n wrapper.children(KWINDOWTITLEBAR).find(KPIN).addClass('k-i-unpin').removeClass('k-i-pin');\n that.options.pinned = true;\n that.options.draggable = false;\n }\n },\n unpin: function () {\n var that = this, win = $(window), wrapper = that.wrapper, top = parseInt(wrapper.css('top'), 10), left = parseInt(wrapper.css('left'), 10);\n if (!that.options.isMaximized) {\n wrapper.css({\n position: '',\n top: top + win.scrollTop(),\n left: left + win.scrollLeft()\n });\n wrapper.children(KWINDOWTITLEBAR).find(KUNPIN).addClass('k-i-pin').removeClass('k-i-unpin');\n that.options.pinned = false;\n that.options.draggable = true;\n }\n },\n _onDocumentResize: function () {\n var that = this, wrapper = that.wrapper, wnd = $(window), zoomLevel = kendo.support.zoomLevel(), w, h;\n if (!that.options.isMaximized) {\n return;\n }\n w = wnd.width() / zoomLevel;\n h = wnd.height() / zoomLevel - parseInt(wrapper.css('padding-top'), 10);\n wrapper.css({\n width: w,\n height: h\n });\n that.options.width = w;\n that.options.height = h;\n that.resize();\n },\n refresh: function (options) {\n var that = this, initOptions = that.options, element = $(that.element), iframe, showIframe, url;\n if (!isPlainObject(options)) {\n options = { url: options };\n }\n options = extend({}, initOptions.content, options);\n showIframe = defined(initOptions.iframe) ? initOptions.iframe : options.iframe;\n url = options.url;\n if (url) {\n if (!defined(showIframe)) {\n showIframe = !isLocalUrl(url);\n }\n if (!showIframe) {\n that._ajaxRequest(options);\n } else {\n iframe = element.find('.' + KCONTENTFRAME)[0];\n if (iframe) {\n iframe.src = url || iframe.src;\n } else {\n element.html(templates.contentFrame(extend({}, initOptions, { content: options })));\n }\n element.find('.' + KCONTENTFRAME).unbind('load' + NS).on('load' + NS, proxy(this._triggerRefresh, this));\n }\n } else {\n if (options.template) {\n that.content(template(options.template)({}));\n }\n that.trigger(REFRESH);\n }\n element.toggleClass('k-window-iframecontent', !!showIframe);\n return that;\n },\n _triggerRefresh: function () {\n this.trigger(REFRESH);\n },\n _ajaxComplete: function () {\n clearTimeout(this._loadingIconTimeout);\n this.wrapper.find(REFRESHICON).removeClass(LOADING);\n },\n _ajaxError: function (xhr, status) {\n this.trigger(ERROR, {\n status: status,\n 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 this.content(html, data);\n this.element.prop('scrollTop', 0);\n this.trigger(REFRESH);\n };\n },\n _showLoading: function () {\n this.wrapper.find(REFRESHICON).addClass(LOADING);\n },\n _ajaxRequest: function (options) {\n this._loadingIconTimeout = setTimeout(proxy(this._showLoading, this), 100);\n $.ajax(extend({\n type: 'GET',\n dataType: 'html',\n cache: false,\n error: proxy(this._ajaxError, this),\n complete: proxy(this._ajaxComplete, this),\n success: proxy(this._ajaxSuccess(options.template), this)\n }, options));\n },\n _destroy: function () {\n if (this.resizing) {\n this.resizing.destroy();\n }\n if (this.dragging) {\n this.dragging.destroy();\n }\n this.wrapper.off(NS).children(KWINDOWCONTENT).off(NS).end().find('.k-resize-handle,.k-window-titlebar').off(NS);\n $(window).off('resize' + NS + this._marker);\n clearTimeout(this._loadingIconTimeout);\n Widget.fn.destroy.call(this);\n this.unbind(undefined);\n kendo.destroy(this.wrapper);\n this._removeOverlay(true);\n },\n destroy: function () {\n this._destroy();\n this.wrapper.empty().remove();\n this.wrapper = this.appendTo = this.element = $();\n },\n _createWindow: function () {\n var contentHtml = this.element, options = this.options, iframeSrcAttributes, wrapper, isRtl = kendo.support.isRtl(contentHtml);\n if (options.scrollable === false) {\n contentHtml.css('overflow', 'hidden');\n }\n wrapper = $(templates.wrapper(options));\n iframeSrcAttributes = contentHtml.find('iframe:not(.k-content)').map(function () {\n var src = this.getAttribute('src');\n this.src = '';\n return src;\n });\n wrapper.toggleClass('k-rtl', isRtl).appendTo(this.appendTo).append(contentHtml).find('iframe:not(.k-content)').each(function (index) {\n this.src = iframeSrcAttributes[index];\n });\n wrapper.find('.k-window-title').css(isRtl ? 'left' : 'right', outerWidth(wrapper.find('.k-window-actions')) + 10);\n contentHtml.css('visibility', '').show();\n contentHtml.find('[data-role=editor]').each(function () {\n var editor = $(this).data('kendoEditor');\n if (editor) {\n editor.refresh();\n }\n });\n wrapper = contentHtml = null;\n }\n });\n templates = {\n wrapper: template('
'),\n action: template('' + '' + ''),\n titlebar: template('
 ' + '#: title #' + '
' + '
'),\n overlay: '
',\n contentFrame: template(''),\n resizeHandle: template('
')\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: proxy(that.dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that)\n });\n that._draggable.userEvents.bind('press', proxy(that.addOverlay, that));\n that._draggable.userEvents.bind('release', proxy(that.removeOverlay, that));\n }\n function getPosition(elem) {\n var result = {\n top: elem.offsetTop,\n left: elem.offsetLeft\n }, parent = elem.offsetParent;\n while (parent) {\n result.top += parent.offsetTop;\n result.left += parent.offsetLeft;\n var parentOverflowX = $(parent).css('overflowX');\n var parentOverflowY = $(parent).css('overflowY');\n if (parentOverflowY === 'auto' || parentOverflowY === 'scroll') {\n result.top -= parent.scrollTop;\n }\n if (parentOverflowX === 'auto' || parentOverflowX === 'scroll') {\n result.left -= parent.scrollLeft;\n }\n parent = parent.offsetParent;\n }\n return result;\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 that._preventDragging = wnd.trigger(RESIZESTART);\n if (that._preventDragging) {\n return;\n }\n that.elementPadding = parseInt(wrapper.css('padding-top'), 10);\n that.initialPosition = kendo.getOffset(wrapper, 'position');\n that.resizeDirection = e.currentTarget.prop('className').replace('k-resize-handle k-resize-', '');\n that.initialSize = {\n width: wrapper.width(),\n height: wrapper.height()\n };\n that.containerOffset = kendo.getOffset(wnd.appendTo, 'position');\n var offsetParent = wrapper.offsetParent();\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 that._relativeElMarginLeft = relativeElMarginLeft > 1 ? relativeElMarginLeft : 0;\n that._relativeElMarginTop = relativeElMarginTop > 1 ? relativeElMarginTop : 0;\n that.initialPosition.left += that._relativeElMarginLeft;\n that.initialPosition.top += that._relativeElMarginTop;\n }\n }\n wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\n if (this._preventDragging) {\n return;\n }\n var that = this, wnd = that.owner, wrapper = wnd.wrapper, options = wnd.options, direction = that.resizeDirection, containerOffset = that.containerOffset, initialPosition = that.initialPosition, initialSize = that.initialSize, newWidth, newHeight, windowBottom, windowRight, x = Math.max(e.x.location, 0), y = Math.max(e.y.location, 0);\n if (direction.indexOf('e') >= 0) {\n newWidth = x - initialPosition.left - containerOffset.left;\n wrapper.width(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 wrapper.css({\n left: windowRight - newWidth - containerOffset.left - (that._relativeElMarginLeft || 0),\n width: newWidth\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 wrapper.height(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 wrapper.css({\n top: windowBottom - newHeight - containerOffset.top - (that._relativeElMarginTop || 0),\n height: newHeight\n });\n }\n if (newWidth) {\n wnd.options.width = newWidth + 'px';\n }\n if (newHeight) {\n wnd.options.height = newHeight + 'px';\n }\n wnd.resize();\n },\n dragend: function (e) {\n if (this._preventDragging) {\n return;\n }\n var that = this, wnd = that.owner, wrapper = wnd.wrapper;\n wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).show();\n $(BODY).css(CURSOR, '');\n if (wnd.touchScroller) {\n wnd.touchScroller.reset();\n }\n if (e.keyCode == 27) {\n wrapper.css(that.initialPosition).css(that.initialSize);\n }\n wnd.trigger(RESIZEEND);\n return false;\n },\n destroy: function () {\n if (this._draggable) {\n this._draggable.destroy();\n }\n this._draggable = this.owner = null;\n }\n };\n function WindowDragging(wnd, dragHandle) {\n var that = this;\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 dragstart: proxy(that.dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that),\n dragcancel: proxy(that.dragcancel, that)\n });\n that._draggable.userEvents.stopPropagation = false;\n }\n WindowDragging.prototype = {\n dragstart: function (e) {\n var wnd = this.owner, element = wnd.element, actions = element.find('.k-window-actions'), containerOffset = kendo.getOffset(wnd.appendTo);\n this._preventDragging = wnd.trigger(DRAGSTART) || !wnd.options.draggable;\n if (this._preventDragging) {\n return;\n }\n wnd.initialWindowPosition = kendo.getOffset(wnd.wrapper, 'position');\n wnd.initialPointerPosition = {\n left: e.x.client,\n top: e.y.client\n };\n wnd.startPosition = {\n left: e.x.client - wnd.initialWindowPosition.left,\n top: e.y.client - wnd.initialWindowPosition.top\n };\n if (actions.length > 0) {\n wnd.minLeftPosition = outerWidth(actions) + parseInt(actions.css('right'), 10) - outerWidth(element);\n } else {\n wnd.minLeftPosition = 20 - outerWidth(element);\n }\n wnd.minLeftPosition -= containerOffset.left;\n wnd.minTopPosition = -containerOffset.top;\n wnd.wrapper.append(templates.overlay).children(KWINDOWRESIZEHANDLES).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\n if (this._preventDragging) {\n return;\n }\n var wnd = this.owner;\n var position = wnd.options.position;\n position.top = Math.max(e.y.client - wnd.startPosition.top, wnd.minTopPosition);\n position.left = Math.max(e.x.client - wnd.startPosition.left, wnd.minLeftPosition);\n if (kendo.support.transforms) {\n $(wnd.wrapper).css('transform', 'translate(' + (e.x.client - wnd.initialPointerPosition.left) + 'px, ' + (e.y.client - wnd.initialPointerPosition.top) + 'px)');\n } else {\n $(wnd.wrapper).css(position);\n }\n },\n _finishDrag: function () {\n var wnd = this.owner;\n wnd.wrapper.children(KWINDOWRESIZEHANDLES).toggle(!wnd.options.isMinimized).end().find(KOVERLAY).remove();\n $(BODY).css(CURSOR, '');\n },\n dragcancel: function (e) {\n if (this._preventDragging) {\n return;\n }\n this._finishDrag();\n e.currentTarget.closest(KWINDOW).css(this.owner.initialWindowPosition);\n },\n dragend: function () {\n if (this._preventDragging) {\n return;\n }\n $(this.owner.wrapper).css(this.owner.options.position).css('transform', '');\n this._finishDrag();\n this.owner.trigger(DRAGEND);\n return false;\n },\n destroy: function () {\n if (this._draggable) {\n this._draggable.destroy();\n }\n this._draggable = this.owner = null;\n }\n };\n kendo.ui.plugin(Window);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}