{"version":3,"sources":["webpack:///./node_modules/@syncfusion/ej2-base/src/browser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/base.js"],"names":["REGX_MOBILE","REGX_IE","REGX_IE11","REGX_IOS","REGX_IOS7","REGX_ANDROID","REGX_WINDOWS","REGX_VERSION","REGX_BROWSER","OPERA","EDGE","CHROME","PANTHOMEJS","SAFARI","WEBKIT","MSIE","MOZILLA","window","browserDetails","Browser","extractBrowserDetail","browserInfo","culture","keys","Object","clientInfo","_i","keys_1","length","key","userAgent","match","name","toLowerCase","version","language","navigator","getEvent","event","events","start","isPointer","isTouch","isDevice","move","end","cancel","getTouchStartEvent","getTouchEndEvent","getTouchMoveEvent","getTouchCancelEvent","isSafari","isIos","indexOf","getValue","regX","platform","maxTouchPoints","test","defineProperty","get","uA","set","enumerable","configurable","info","isMSPointer","isWebView","cordova","PhoneGap","phonegap","forge","touchStartEvent","touchMoveEvent","touchEndEvent","touchCancelEvent","isColEName","RegExp","Base","options","element","this","isRendered","isComplexArraySetter","isServerRendered","allowServerDataBinding","isProtectedOnChange","properties","changedProperties","oldProperties","bulkChanges","refreshing","ignoreCollectionWatch","finalUpdate","childChangedProperties","modelObserver","document","querySelector","addInstance","setProperties","isDestroyed","prototype","prop","muteOnChange","prevDetection","dataBind","serverDataBind","callChildDataBind","obj","parent","Array","_a","_b","obj_1","undefined","clearChanges","getOwnPropertyNames","newChanges","oldChanges","onPropertyChanged","sfBlazor","updateModel","saveChanges","newValue","oldValue","bind","addEventListener","eventName","handler","on","removeEventListener","off","trigger","eventProp","successHandler","errorHandler","_this","data","notify","blazor","promise","call","then","isJson","JSON","parse","catch","moduleClass","getModuleName","ej2_instances","push","destroy","filter","i"],"mappings":"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","file":"js/chunk-vendors~ecc0b625.2bb82fa1.4.2.0.js","sourcesContent":["import { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n // eslint-disable-next-line\n if (!!Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {boolean}\n */\n Browser.getEvent = function (event) {\n // eslint-disable-next-line\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/* tslint:enable:no-any */\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n // tslint:disable-next-line:no-any\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n /* tslint:disable:no-any */\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n /* tslint:enable:no-any */\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n // tslint:disable-next-line:no-any\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line\n this.element.ej2_instances =\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\n// tslint:disable-next-line:no-any\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n // tslint:disable-next-line:no-any\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @return {void}\n * @private\n */\n// tslint:disable-next-line:no-any\nexport function removeChildInstance(element) {\n // tslint:disable-next-line:no-any\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n // tslint:disable-next-line:no-any\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\n"],"sourceRoot":""}