{"version":3,"sources":["kendo.view.js"],"names":["f","define","$","undefined","parseTransition","transition","matches","match","transitionRegExp","type","direction","reverse","kendo","window","Observable","SCRIPT","INIT","SHOW","HIDE","TRANSITION_START","TRANSITION_END","ATTACH","DETACH","sizzleErrorRegExp","View","extend","init","content","options","that","this","fn","call","id","guid","tagName","model","_wrap","wrap","_evalTemplate","evalTemplate","_fragments","bind","render","container","notInitialized","element","_createElement","append","trigger","_eachFragment","clone","ViewClone","triggerBeforeShow","triggerBeforeHide","showStart","css","showEnd","hideEnd","hide","beforeTransition","afterTransition","detach","destroy","unbind","remove","fragments","methodName","placeholder","result","wrapper","document","getElementById","html","e","test","message","replace","template","contents","contains","replaceWith","wrapAll","parent","Class","view","noop","Layout","containers","selector","_createContainer","showIn","show","root","find","length","is","Error","ViewContainer","Fragment","attach","history","running","after","end","previous","locationID","current","previousEntry","back","theTransition","transitionData","effect","stop","pop","push","effects","enabled","addClass","fx","setReverse","run","then","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.view.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.view', [\n 'kendo.core',\n 'kendo.binder',\n 'kendo.fx'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'view',\n name: 'View',\n category: 'framework',\n description: 'The View class instantiates and handles the events of a certain screen from the application.',\n depends: [\n 'core',\n 'binder',\n 'fx'\n ],\n hidden: false\n };\n (function ($, undefined) {\n var kendo = window.kendo, Observable = kendo.Observable, SCRIPT = 'SCRIPT', INIT = 'init', SHOW = 'show', HIDE = 'hide', TRANSITION_START = 'transitionStart', TRANSITION_END = 'transitionEnd', ATTACH = 'attach', DETACH = 'detach', sizzleErrorRegExp = /unrecognized expression/;\n var View = Observable.extend({\n init: function (content, options) {\n var that = this;\n options = options || {};\n Observable.fn.init.call(that);\n that.content = content;\n that.id = kendo.guid();\n that.tagName = options.tagName || 'div';\n that.model = options.model;\n that._wrap = options.wrap !== false;\n this._evalTemplate = options.evalTemplate || false;\n that._fragments = {};\n that.bind([\n INIT,\n SHOW,\n HIDE,\n TRANSITION_START,\n TRANSITION_END\n ], options);\n },\n render: function (container) {\n var that = this, notInitialized = !that.element;\n if (notInitialized) {\n that.element = that._createElement();\n }\n if (container) {\n $(container).append(that.element);\n }\n if (notInitialized) {\n kendo.bind(that.element, that.model);\n that.trigger(INIT);\n }\n if (container) {\n that._eachFragment(ATTACH);\n that.trigger(SHOW);\n }\n return that.element;\n },\n clone: function () {\n return new ViewClone(this);\n },\n triggerBeforeShow: function () {\n return true;\n },\n triggerBeforeHide: function () {\n return true;\n },\n showStart: function () {\n this.element.css('display', '');\n },\n showEnd: function () {\n },\n hideEnd: function () {\n this.hide();\n },\n beforeTransition: function (type) {\n this.trigger(TRANSITION_START, { type: type });\n },\n afterTransition: function (type) {\n this.trigger(TRANSITION_END, { type: type });\n },\n hide: function () {\n this._eachFragment(DETACH);\n this.element.detach();\n this.trigger(HIDE);\n },\n destroy: function () {\n var element = this.element;\n if (element) {\n kendo.unbind(element);\n kendo.destroy(element);\n element.remove();\n }\n },\n fragments: function (fragments) {\n $.extend(this._fragments, fragments);\n },\n _eachFragment: function (methodName) {\n for (var placeholder in this._fragments) {\n this._fragments[placeholder][methodName](this, placeholder);\n }\n },\n _createElement: function () {\n var that = this, wrapper = '<' + that.tagName + ' />', element, content;\n try {\n content = $(document.getElementById(that.content) || that.content);\n if (content[0].tagName === SCRIPT) {\n content = content.html();\n }\n } catch (e) {\n if (sizzleErrorRegExp.test(e.message)) {\n content = that.content;\n }\n }\n if (typeof content === 'string') {\n content = content.replace(/^\\s+|\\s+$/g, '');\n if (that._evalTemplate) {\n content = kendo.template(content)(that.model || {});\n }\n element = $(wrapper).append(content);\n if (!that._wrap) {\n element = element.contents();\n }\n } else {\n element = content;\n if (that._evalTemplate) {\n var result = $(kendo.template($('
').append(element.clone(true)).html())(that.model || {}));\n if ($.contains(document, element[0])) {\n element.replaceWith(result);\n }\n element = result;\n }\n if (that._wrap) {\n element = element.wrapAll(wrapper).parent();\n }\n }\n return element;\n }\n });\n var ViewClone = kendo.Class.extend({\n init: function (view) {\n $.extend(this, {\n element: view.element.clone(true),\n transition: view.transition,\n id: view.id\n });\n view.element.parent().append(this.element);\n },\n hideEnd: function () {\n this.element.remove();\n },\n beforeTransition: $.noop,\n afterTransition: $.noop\n });\n var Layout = View.extend({\n init: function (content, options) {\n View.fn.init.call(this, content, options);\n this.containers = {};\n },\n container: function (selector) {\n var container = this.containers[selector];\n if (!container) {\n container = this._createContainer(selector);\n this.containers[selector] = container;\n }\n return container;\n },\n showIn: function (selector, view, transition) {\n this.container(selector).show(view, transition);\n },\n _createContainer: function (selector) {\n var root = this.render(), element = root.find(selector), container;\n if (!element.length && root.is(selector)) {\n if (root.is(selector)) {\n element = root;\n } else {\n throw new Error('can\\'t find a container with the specified ' + selector + ' selector');\n }\n }\n container = new ViewContainer(element);\n container.bind('accepted', function (e) {\n e.view.render(element);\n });\n return container;\n }\n });\n var Fragment = View.extend({\n attach: function (view, placeholder) {\n view.element.find(placeholder).replaceWith(this.render());\n },\n detach: function () {\n }\n });\n var transitionRegExp = /^(\\w+)(:(\\w+))?( (\\w+))?$/;\n function parseTransition(transition) {\n if (!transition) {\n return {};\n }\n var matches = transition.match(transitionRegExp) || [];\n return {\n type: matches[1],\n direction: matches[3],\n reverse: matches[5] === 'reverse'\n };\n }\n var ViewContainer = Observable.extend({\n init: function (container) {\n Observable.fn.init.call(this);\n this.container = container;\n this.history = [];\n this.view = null;\n this.running = false;\n },\n after: function () {\n this.running = false;\n this.trigger('complete', { view: this.view });\n this.trigger('after');\n },\n end: function () {\n this.view.showEnd();\n this.previous.hideEnd();\n this.after();\n },\n show: function (view, transition, locationID) {\n if (!view.triggerBeforeShow() || this.view && !this.view.triggerBeforeHide()) {\n this.trigger('after');\n return false;\n }\n locationID = locationID || view.id;\n var that = this, current = view === that.view ? view.clone() : that.view, history = that.history, previousEntry = history[history.length - 2] || {}, back = previousEntry.id === locationID, theTransition = transition || (back ? history[history.length - 1].transition : view.transition), transitionData = parseTransition(theTransition);\n if (that.running) {\n that.effect.stop();\n }\n if (theTransition === 'none') {\n theTransition = null;\n }\n that.trigger('accepted', { view: view });\n that.view = view;\n that.previous = current;\n that.running = true;\n if (!back) {\n history.push({\n id: locationID,\n transition: theTransition\n });\n } else {\n history.pop();\n }\n if (!current) {\n view.showStart();\n view.showEnd();\n that.after();\n return true;\n }\n if (!theTransition || !kendo.effects.enabled) {\n view.showStart();\n that.end();\n } else {\n view.element.addClass('k-fx-hidden');\n view.showStart();\n if (back && !transition) {\n transitionData.reverse = !transitionData.reverse;\n }\n that.effect = kendo.fx(view.element).replace(current.element, transitionData.type).beforeTransition(function () {\n view.beforeTransition('show');\n current.beforeTransition('hide');\n }).afterTransition(function () {\n view.afterTransition('show');\n current.afterTransition('hide');\n }).direction(transitionData.direction).setReverse(transitionData.reverse);\n that.effect.run().then(function () {\n that.end();\n });\n }\n return true;\n }\n });\n kendo.ViewContainer = ViewContainer;\n kendo.Fragment = Fragment;\n kendo.Layout = Layout;\n kendo.View = View;\n kendo.ViewClone = ViewClone;\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/"}