{"version":3,"file":"kendo.view.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoview","js","this","$","undefined$1","kendo","window","attr","ui","attrValue","directiveSelector","Observable","Widget","roleSelector","INIT","TRANSITION_START","TRANSITION_END","SHOW","HIDE","sizzleErrorRegExp","bodyRegExp","SHOW_START","SAME_VIEW_REQUESTED","VIEW_SHOW","VIEW_TYPE_DETERMINED","AFTER","classNames","View","extend","init","content","options","that","id","guid","fn","call","renderOnInit","_createElement","wrapInSections","_renderSections","tagName","model","_wrap","wrap","_evalTemplate","evalTemplate","_useWithBlock","useWithBlock","_fragments","bind","name","detachOnHide","detachOnDestroy","render","container","notInitialized","element","append","trigger","_eachFragment","clone","ViewClone","triggerBeforeShow","triggerBeforeHide","showStart","css","view","showEnd","hideEnd","hide","beforeTransition","type","afterTransition","detach","destroy","unbind","remove","purge","add","wrapper","off","fragments","methodName","placeholder","document","getElementById","html","e","test","message","replace","template","contents","result","contains","replaceWith","wrapAll","parent","_wrapper","_createContent","_createHeader","_createFooter","is","ns","addClass","contentSelector","children","filter","child","contentElement","header","footer","Class","transition","noop","Layout","containers","selector","_createContainer","showIn","show","root","find","length","Error","ViewContainer","Fragment","attach","transitionRegExp","history","running","after","end","previous","locationID","current","back","theTransition","transitionData","matches","match","direction","reverse","parseTransition","effect","stop","pop","push","effects","enabled","fx","setReverse","run","then","ViewEngine","views","sandbox","_hideViews","rootView","first","layouts","viewContainer","params","events","showView","url","RegExp","remoteViewURLPrefix","_findViewElement","widgetInstance","reload","remote","_createView","urlPath","split","$1","innerHTML","wrapInner","_locate","selectors","$angular","indexOf","charAt","_findViewElementById","_createSpaView","_createMobileView","initWidget","defaultTransition","loader","getLayout","getLayoutProxy","modelScope","roles","viewOptions","jQuery"],"sources":["kendo.view.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.binder.js'), require('kendo.fx.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.binder', 'kendo.fx'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoview = global.kendoview || {}, global.kendoview.js = factory()));\n})(this, (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: [ \"core\", \"binder\", \"fx\" ],\n hidden: false\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n attr = kendo.attr,\n ui = kendo.ui,\n attrValue = kendo.attrValue,\n directiveSelector = kendo.directiveSelector,\n Observable = kendo.Observable,\n Widget = kendo.ui.Widget,\n roleSelector = kendo.roleSelector,\n\n SCRIPT = \"SCRIPT\",\n INIT = \"init\",\n TRANSITION_START = \"transitionStart\",\n TRANSITION_END = \"transitionEnd\",\n SHOW = \"show\",\n HIDE = \"hide\",\n ATTACH = \"attach\",\n DETACH = \"detach\",\n sizzleErrorRegExp = /unrecognized expression/;\n\n var bodyRegExp = /
]*>(([\\u000a\\u000d\\u2028\\u2029]|.)*)<\\/body>/i;\n var LOAD_START = \"loadStart\";\n var LOAD_COMPLETE = \"loadComplete\";\n var SHOW_START = \"showStart\";\n var SAME_VIEW_REQUESTED = \"sameViewRequested\";\n var VIEW_SHOW = \"viewShow\";\n var VIEW_TYPE_DETERMINED = \"viewTypeDetermined\";\n var AFTER = \"after\";\n var classNames = {\n content: \"k-content\",\n view: \"k-view\",\n stretchedView: \"k-stretched-view\",\n widget: \"k-widget\",\n header: \"k-header\",\n footer: \"k-footer\"\n };\n\n var View = kendo.ui.Widget.extend({\n init: function(content, options) {\n var that = this;\n options = options || {};\n that.id = kendo.guid();\n\n Observable.fn.init.call(that);\n this.options = $.extend({}, this.options, options);\n\n that.content = content;\n\n if (that.options.renderOnInit) {\n Widget.fn.init.call(that, that._createElement(), options);\n }\n\n if (that.options.wrapInSections) {\n that._renderSections();\n }\n\n that.tagName = options.tagName || \"div\";\n that.model = options.model;\n that._wrap = options.wrap !== false;\n this._evalTemplate = options.evalTemplate || false;\n this._useWithBlock = options.useWithBlock;\n that._fragments = {};\n\n that.bind([ INIT, SHOW, HIDE, TRANSITION_START, TRANSITION_END ], options);\n },\n\n options: {\n name: \"View\",\n renderOnInit: false,\n wrapInSections: false,\n detachOnHide: true,\n detachOnDestroy: true\n },\n\n render: function(container) {\n var that = this,\n notInitialized = !that.element;\n\n // The order below matters - kendo.bind should happen when the element is in the DOM, and show should be triggered after init.\n\n if (notInitialized) {\n that.element = that._createElement();\n }\n\n if (container) {\n $(container).append(that.element);\n }\n\n if (notInitialized) {\n kendo.bind(that.element, that.model);\n that.trigger(INIT);\n }\n\n if (container) {\n that._eachFragment(ATTACH);\n that.trigger(SHOW);\n }\n\n return that.element;\n },\n\n clone: function() {\n return new ViewClone(this);\n },\n\n triggerBeforeShow: function() {\n return true;\n },\n\n triggerBeforeHide: function() {\n return true;\n },\n\n showStart: function() {\n var that = this;\n var element = that.render();\n\n if (element) {\n element.css(\"display\", \"\");\n }\n\n this.trigger(SHOW_START, { view: this });\n },\n\n showEnd: function() {\n },\n\n hideEnd: function() {\n this.hide();\n },\n\n beforeTransition: function(type) {\n this.trigger(TRANSITION_START, { type: type });\n },\n\n afterTransition: function(type) {\n this.trigger(TRANSITION_END, { type: type });\n },\n\n hide: function() {\n if (this.options.detachOnHide) {\n this._eachFragment(DETACH);\n $(this.element).detach();\n }\n\n this.trigger(HIDE);\n },\n\n destroy: function() {\n var that = this;\n var element = that.element;\n\n if (element) {\n Widget.fn.destroy.call(that);\n\n kendo.unbind(element);\n kendo.destroy(element);\n\n if (that.options.detachOnDestroy) {\n element.remove();\n }\n }\n },\n\n // ported from mobile view\n purge: function() {\n var that = this;\n\n that.destroy();\n $(that.element).add(that.content).add(that.wrapper).off().remove();\n },\n\n fragments: function(fragments) {\n $.extend(this._fragments, fragments);\n },\n\n _eachFragment: function(methodName) {\n for (var placeholder in this._fragments) {\n this._fragments[placeholder][methodName](this, placeholder);\n }\n },\n\n _createElement: function() {\n var that = this,\n wrapper = \"<\" + that.tagName + \">\",\n element,\n content;\n\n try {\n content = $(document.getElementById(that.content) || that.content); // support passing id without #\n\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\n if (typeof content === \"string\") {\n content = content.replace(/^\\s+|\\s+$/g, '');\n if (that._evalTemplate) {\n content = kendo.template(content, { useWithBlock: that._useWithBlock })(that.model || {});\n }\n\n element = $(wrapper).append(content);\n // drop the wrapper if asked - this seems like the easiest (although not very intuitive) way to avoid messing up templates with questionable content, like this one for instance:\n // \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(), { useWithBlock: that._useWithBlock })(that.model || {}));\n\n // template uses DOM\n if ($.contains(document, element[0])) {\n element.replaceWith(result);\n }\n\n element = result;\n }\n if (that._wrap) {\n element = element.wrapAll(wrapper).parent();\n }\n }\n\n return element;\n },\n\n _renderSections: function() {\n var that = this;\n\n if (that.options.wrapInSections) {\n that._wrapper();\n that._createContent();\n that._createHeader();\n that._createFooter();\n }\n },\n\n _wrapper: function() {\n var that = this;\n var content = that.content;\n\n if (content.is(roleSelector(\"view\"))) {\n that.wrapper = that.content;\n } else {\n that.wrapper = content\n .wrap('')\n .parent();\n }\n\n var wrapper = that.wrapper;\n\n wrapper.attr(\"id\", that.id);\n\n wrapper.addClass(classNames.view);\n wrapper.addClass(classNames.widget);\n wrapper.attr(\"role\", \"view\");\n },\n\n _createContent: function() {\n var that = this;\n var wrapper = $(that.wrapper);\n var contentSelector = roleSelector(\"content\");\n\n if (!wrapper.children(contentSelector)[0]) {\n var ccontentElements = wrapper.children().filter(function() {\n var child = $(this);\n if (!child.is(roleSelector(\"header\")) && !child.is(roleSelector(\"footer\"))) {\n return child;\n }\n });\n\n ccontentElements.wrap(\"');\n }\n\n // use contentElement instead of content as view.content can be a string\n this.contentElement = wrapper.children(roleSelector(\"content\"));\n\n this.contentElement\n .addClass(classNames.stretchedView)\n .addClass(classNames.content);\n },\n\n _createHeader: function() {\n var that = this;\n var wrapper = that.wrapper;\n\n this.header = wrapper.children(roleSelector(\"header\")).addClass(classNames.header);\n },\n\n _createFooter: function() {\n var that = this;\n var wrapper = that.wrapper;\n\n this.footer = wrapper.children(roleSelector(\"footer\")).addClass(classNames.footer);\n }\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\n view.element.parent().append(this.element);\n },\n\n hideEnd: function() {\n this.element.remove();\n },\n\n beforeTransition: $.noop,\n afterTransition: $.noop\n });\n\n var Layout = View.extend({\n init: function(content, options) {\n View.fn.init.call(this, content, options);\n this.containers = {};\n },\n\n container: function(selector) {\n var container = this.containers[selector];\n\n if (!container) {\n container = this._createContainer(selector);\n this.containers[selector] = container;\n }\n\n return container;\n },\n\n showIn: function(selector, view, transition) {\n this.container(selector).show(view, transition);\n },\n\n _createContainer: function(selector) {\n var root = this.render(),\n element = root.find(selector),\n container;\n\n if (!element.length && root.is(selector)) {\n if (root.is(selector)) {\n element = root;\n } else {\n\n throw new Error(\"can't find a container with the specified \" + selector + \" selector\");\n }\n }\n\n container = new ViewContainer(element);\n\n container.bind(\"accepted\", function(e) {\n e.view.render(element);\n });\n\n return container;\n }\n });\n\n var Fragment = View.extend({\n attach: function(view, placeholder) {\n view.element.find(placeholder).replaceWith(this.render());\n },\n\n detach: function() {\n }\n });\n\n var transitionRegExp = /^(\\w+)(:(\\w+))?( (\\w+))?$/;\n\n function parseTransition(transition) {\n if (!transition) {\n return {};\n }\n\n var matches = transition.match(transitionRegExp) || [];\n\n return {\n type: matches[1],\n direction: matches[3],\n reverse: matches[5] === \"reverse\"\n };\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\n after: function() {\n this.running = false;\n this.trigger(\"complete\", { view: this.view });\n this.trigger(\"after\");\n },\n\n end: function() {\n this.view.showEnd();\n this.previous.hideEnd();\n this.after();\n },\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\n locationID = locationID || view.id;\n\n var that = this,\n current = (view === that.view) ? view.clone() : that.view,\n history = that.history,\n previousEntry = history[history.length - 2] || {},\n back = previousEntry.id === locationID,\n // If explicit transition is set, it will be with highest priority\n // Next we will try using the history record transition or the view transition configuration\n theTransition = transition || ( back ? history[history.length - 1].transition : view.transition ),\n transitionData = parseTransition(theTransition);\n\n if (that.running) {\n that.effect.stop();\n }\n\n if (theTransition === \"none\") {\n theTransition = null;\n }\n\n that.trigger(\"accepted\", { view: view });\n that.view = view;\n that.previous = current;\n that.running = true;\n\n if (!back) {\n history.push({ id: locationID, transition: theTransition });\n } else {\n history.pop();\n }\n\n if (!current) {\n view.showStart();\n view.showEnd();\n that.after();\n return true;\n }\n\n if (!theTransition || !kendo.effects.enabled) {\n view.showStart();\n that.end();\n } else {\n // hide the view element before init/show - prevents blinks on iPad\n // the replace effect will remove this class\n view.element.addClass(\"k-fx-hidden\");\n view.showStart();\n // do not reverse the explicit transition\n if (back && !transition) {\n transitionData.reverse = !transitionData.reverse;\n }\n\n that.effect = kendo.fx(view.element).replace(current.element, transitionData.type)\n .beforeTransition(function() {\n view.beforeTransition(\"show\");\n current.beforeTransition(\"hide\");\n })\n .afterTransition(function() {\n view.afterTransition(\"show\");\n current.afterTransition(\"hide\");\n })\n .direction(transitionData.direction)\n .setReverse(transitionData.reverse);\n\n that.effect.run().then(function() { that.end(); });\n }\n\n return true;\n },\n\n destroy: function() {\n var that = this;\n var view = that.view;\n\n if (view && view.destroy) {\n view.destroy();\n }\n }\n });\n\n var ViewEngine = Observable.extend({\n init: function(options) {\n var that = this,\n views,\n container;\n\n Observable.fn.init.call(that);\n that.options = options;\n\n $.extend(that, options);\n that.sandbox = $(\"\");\n container = that.container;\n\n views = that._hideViews(container);\n that.rootView = views.first();\n that.layouts = {};\n\n that.viewContainer = new kendo.ViewContainer(that.container);\n\n that.viewContainer.bind(\"accepted\", function(e) {\n e.view.params = that.params;\n });\n\n that.viewContainer.bind(\"complete\", function(e) {\n that.trigger(VIEW_SHOW, { view: e.view });\n });\n\n that.viewContainer.bind(AFTER, function() {\n that.trigger(AFTER);\n });\n\n this.bind(this.events, options);\n },\n\n events: [\n SHOW_START,\n AFTER,\n VIEW_SHOW,\n LOAD_START,\n LOAD_COMPLETE,\n SAME_VIEW_REQUESTED,\n VIEW_TYPE_DETERMINED\n ],\n\n destroy: function() {\n var that = this;\n var viewContainer = that.viewContainer;\n\n kendo.destroy(that.container);\n\n for (var id in that.layouts) {\n this.layouts[id].destroy();\n }\n\n if (viewContainer) {\n viewContainer.destroy();\n }\n },\n\n view: function() {\n return this.viewContainer.view;\n },\n\n showView: function(url, transition, params) {\n url = url.replace(new RegExp(\"^\" + this.remoteViewURLPrefix), \"\");\n if (url === \"\" && this.remoteViewURLPrefix) {\n url = \"/\";\n }\n\n if (url.replace(/^#/, \"\") === this.url) {\n this.trigger(SAME_VIEW_REQUESTED);\n return false;\n }\n\n this.trigger(SHOW_START);\n\n var that = this,\n element = that._findViewElement(url),\n view = kendo.widgetInstance(element);\n\n that.url = url.replace(/^#/, \"\");\n\n that.params = params;\n\n if (view && view.reload) {\n view.purge();\n element = [];\n }\n\n this.trigger(VIEW_TYPE_DETERMINED, { remote: element.length === 0, url: url });\n\n if (element[0]) {\n if (!view) {\n view = that._createView(element);\n }\n\n return that.viewContainer.show(view, transition, url);\n } else {\n return true;\n }\n },\n\n append: function(html, url) {\n var sandbox = this.sandbox,\n urlPath = (url || \"\").split(\"?\")[0],\n container = this.container,\n views,\n view;\n\n if (bodyRegExp.test(html)) {\n html = RegExp.$1;\n }\n\n sandbox[0].innerHTML = html;\n\n container.append(sandbox.children(\"script, style\"));\n\n views = this._hideViews(sandbox);\n view = views.first();\n\n // Generic HTML content found as remote view - no remote view markers\n if (!view.length) {\n views = view = sandbox.wrapInner(\"\").children(); // one element\n }\n\n if (urlPath) {\n view.hide().attr(attr(\"url\"), urlPath);\n }\n\n container.append(views);\n\n return this._createView(view);\n },\n\n _locate: function(selectors) {\n return this.$angular ? directiveSelector(selectors) : roleSelector(selectors);\n },\n\n _findViewElement: function(url) {\n var element,\n urlPath = url.split(\"?\")[0];\n\n if (!urlPath) {\n return this.rootView;\n }\n\n element = this.container.children(\"[\" + attr(\"url\") + \"='\" + urlPath + \"']\");\n\n // do not try to search for \"#/foo/bar\" id, jQuery throws error\n if (!element[0] && urlPath.indexOf(\"/\") === -1) {\n element = this.container.children(urlPath.charAt(0) === \"#\" ? urlPath : \"#\" + urlPath);\n }\n\n if (!element[0]) {\n element = this._findViewElementById(url);\n }\n\n return element;\n },\n\n _findViewElementById: function(id) {\n var element = this.container.children(\"[id='\" + id + \"']\");\n return element;\n },\n\n _createView: function(element) {\n //return this._createMobileView(element);\n return this._createSpaView(element);\n },\n\n _createMobileView: function(element) {\n return kendo.initWidget(element, {\n defaultTransition: this.transition,\n loader: this.loader,\n container: this.container,\n getLayout: this.getLayoutProxy,\n modelScope: this.modelScope,\n reload: attrValue(element, \"reload\")\n }, ui.roles);\n },\n\n _createSpaView: function(element) {\n var viewOptions = (this.options || {}).viewOptions || {};\n return new kendo.View(element, {\n renderOnInit: viewOptions.renderOnInit,\n wrap: viewOptions.wrap || false,\n wrapInSections: viewOptions.wrapInSections,\n detachOnHide: viewOptions.detachOnHide,\n detachOnDestroy: viewOptions.detachOnDestroy\n });\n },\n\n _hideViews: function(container) {\n return container.children(this._locate(\"view\")).hide();\n }\n });\n\n kendo.ViewEngine = ViewEngine;\n\n kendo.ViewContainer = ViewContainer;\n kendo.Fragment = Fragment;\n kendo.Layout = Layout;\n kendo.View = View;\n kendo.ViewClone = ViewClone;\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}