{"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","_draggable","Draggable","wrapper","filter","KWINDOWRESIZEHANDLES","group","id","dragstart","proxy","drag","dragend","userEvents","bind","addOverlay","removeOverlay","WindowDragging","dragHandle","dragcancel","stopPropagation","kendo","window","Widget","ui","isPlainObject","activeElement","_activeElement","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","RESIZE","RESIZEEND","DRAGSTART","DRAGEND","ERROR","OVERFLOW","ZINDEX","MINIMIZE_MAXIMIZE","KPIN","KUNPIN","PIN_UNPIN","TITLEBAR_BUTTONS","REFRESHICON","isLocalUrl","Window","init","element","options","visibility","display","position","content","windowContent","offset","isVisible","suppressActions","actions","length","fn","call","appendTo","url","find","remove","parent","is","top","left","css","visible","closest","addClass","_createWindow","_dimensions","_position","pinned","pin","refresh","toFront","children","_tabindex","modal","_overlay","opacity","on","_buttonEnter","_buttonLeave","_windowActionHandler","_keydown","_focus","_blur","_resizable","attr","role","aria-labelledby","add","touchScroller","_resizeHandler","_onDocumentResize","_marker","guid","substring","trigger","notify","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","map","action","name","html","render","setOptions","scrollable","restore","events","zoom","direction","fade","duration","properties","scale","autoFocus","_closable","inArray","handled","newWidth","newHeight","w","h","keys","keyCode","distance","isMaximized","_closing","ESC","_close","ctrlKey","getOffset","UP","DOWN","LEFT","RIGHT","isNaN","preventDefault","overlay","insertBefore","toggle","_actionForIcon","icon","iconClass","exec","className","k-i-close","k-i-maximize","k-i-minimize","k-i-restore","k-i-refresh","k-i-pin","k-i-unpin","_modals","zStack","dom","object","_object","sort","a","b","widget","widgetInstance","center","newTop","newLeft","documentWindow","scrollTop","scrollLeft","text","titleBarHeight","titleBar","arguments","prepend","outerHeight","data","scrollContainer","angular","elements","empty","push","dataItem","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","isMinimized","end","_sizingAction","actionId","callback","eq","before","maximize","minimize","force","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","outerWidth","editor","prototype","elementPadding","initialPosition","resizeDirection","replace","initialSize","containerOffset","not","windowBottom","windowRight","location","y","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', ['kendo.draganddrop'], 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: ['draganddrop']\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, Draggable = kendo.ui.Draggable, isPlainObject = $.isPlainObject, activeElement = kendo._activeElement, 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-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', RESIZE = 'resize', RESIZEEND = 'resizeEnd', DRAGSTART = 'dragstart', DRAGEND = 'dragend', ERROR = 'error', OVERFLOW = 'overflow', ZINDEX = 'zIndex', MINIMIZE_MAXIMIZE = '.k-window-actions .k-i-minimize,.k-window-actions .k-i-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', 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 (options.pinned) {\n that.pin(true);\n }\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 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 },\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 && value != Infinity) {\n wrapper.css(dimensions[i], value);\n }\n }\n if (maxHeight && 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 }\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 }\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 actions = this.options.actions;\n var titlebar = this.wrapper.children(KWINDOWTITLEBAR);\n var container = titlebar.find('.k-window-actions');\n actions = $.map(actions, function (action) {\n return { name: 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 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 },\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 (e.target != e.currentTarget || that._closing) {\n return;\n }\n if (keyCode == keys.ESC && that._closable()) {\n that._close(false);\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-maximize': 'maximize',\n 'k-i-minimize': 'minimize',\n 'k-i-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 instanceof Window) {\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(text);\n }\n titleBarHeight = titleBar.outerHeight();\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, 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 overlay = that._overlay(false);\n overlay.kendoStop(true, true);\n if (showOptions.duration && kendo.effects.Fade) {\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 }\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 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 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 (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-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: '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 },\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 },\n pin: function (force) {\n var that = this, win = $(window), wrapper = that.wrapper, top = parseInt(wrapper.css('top'), 10), left = parseInt(wrapper.css('left'), 10);\n if (force || !that.options.pinned && !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 }\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.pinned && !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 }\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.attr('style', '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', wrapper.find('.k-window-actions').outerWidth() + 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('' + '#= name #' + ''),\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._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 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.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 wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\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, containerOffset.left), y = Math.max(e.y.location, containerOffset.top);\n if (direction.indexOf('e') >= 0) {\n newWidth = x - initialPosition.left;\n wrapper.width(constrain(newWidth, options.minWidth, options.maxWidth));\n } else if (direction.indexOf('w') >= 0) {\n windowRight = initialPosition.left + initialSize.width;\n newWidth = constrain(windowRight - x, options.minWidth, options.maxWidth);\n wrapper.css({\n left: windowRight - newWidth - containerOffset.left,\n width: newWidth\n });\n }\n if (direction.indexOf('s') >= 0) {\n newHeight = y - initialPosition.top - that.elementPadding;\n wrapper.height(constrain(newHeight, options.minHeight, options.maxHeight));\n } else if (direction.indexOf('n') >= 0) {\n windowBottom = initialPosition.top + initialSize.height;\n newHeight = constrain(windowBottom - y, options.minHeight, options.maxHeight);\n wrapper.css({\n top: windowBottom - newHeight - containerOffset.top,\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 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._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 wnd.trigger(DRAGSTART);\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 = actions.outerWidth() + parseInt(actions.css('right'), 10) - element.outerWidth();\n } else {\n wnd.minLeftPosition = 20 - element.outerWidth();\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 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 this._finishDrag();\n e.currentTarget.closest(KWINDOW).css(this.owner.initialWindowPosition);\n },\n dragend: function () {\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}));"],"sourceRoot":"/source/"}