@syncfusion/ej2-angular-base 20.4.42 → 20.4.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-angular-base.min.js","sources":["../../src/util.js","../../src/template.js","../../src/complex-array-base.js","../../src/component-base.js","../../src/form-base.js"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Angular Utility Module\n */\n/* tslint:disable */\nexport function applyMixins(derivedClass, baseClass) {\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (!derivedClass.prototype.hasOwnProperty(name) || baseClass.isFormBase) {\n derivedClass.prototype[name] = baseClass.prototype[name];\n }\n });\n });\n}\n/* tslint:disable */\nexport function ComponentMixins(baseClass) {\n return function (derivedClass) {\n applyMixins(derivedClass, baseClass);\n };\n}\n/**\n * @private\n */\nexport function registerEvents(eventList, obj, direct) {\n var ngEventsEmitter = {};\n if (eventList && eventList.length) {\n for (var _i = 0, eventList_1 = eventList; _i < eventList_1.length; _i++) {\n var event_1 = eventList_1[_i];\n if (direct === true) {\n obj.propCollection[event_1] = new EventEmitter(false);\n obj[event_1] = obj.propCollection[event_1];\n }\n else {\n ngEventsEmitter[event_1] = new EventEmitter(false);\n }\n }\n if (direct !== true) {\n obj.setProperties(ngEventsEmitter, true);\n }\n }\n}\n/**\n * @private\n */\nexport function clearTemplate(_this, templateNames, index) {\n var regTemplates = Object.keys(_this.registeredTemplate);\n if (regTemplates.length) {\n /* istanbul ignore next */\n var regProperties = templateNames && templateNames.filter(function (val) {\n return (/\\./g.test(val) ? false : true);\n });\n for (var _i = 0, _a = (regProperties && regProperties || regTemplates); _i < _a.length; _i++) {\n var registeredTemplate = _a[_i];\n /* istanbul ignore next */\n if (index && index.length) {\n for (var e = 0; e < index.length; e++) {\n for (var m = 0; m < _this.registeredTemplate.template.length; m++) {\n var value = _this.registeredTemplate.template[m].rootNodes[0];\n if (value === index[e]) {\n var rt = _this.registeredTemplate[registeredTemplate];\n rt[m].destroy();\n }\n }\n }\n }\n else {\n if (_this.registeredTemplate[registeredTemplate]) {\n for (var _b = 0, _c = _this.registeredTemplate[registeredTemplate]; _b < _c.length; _b++) {\n var rt = _c[_b];\n if (!rt.destroyed) {\n if (rt._view) {\n var pNode = rt._view.renderer.parentNode(rt.rootNodes[0]);\n if (!isNullOrUndefined(pNode)) {\n for (var m = 0; m < rt.rootNodes.length; m++) {\n pNode.appendChild(rt.rootNodes[m]);\n }\n }\n }\n rt.destroy();\n }\n }\n }\n }\n delete _this.registeredTemplate[registeredTemplate];\n }\n }\n var _loop_1 = function (tagObject) {\n if (tagObject.instance) {\n /* istanbul ignore next */\n tagObject.instance.clearTemplate((templateNames && templateNames.filter(function (val) {\n return (new RegExp(tagObject.name).test(val) ? true : false);\n })));\n }\n };\n for (var _d = 0, _e = _this.tagObjects; _d < _e.length; _d++) {\n var tagObject = _e[_d];\n _loop_1(tagObject);\n }\n}\n/**\n * To set value for the nameSpace in desired object.\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @return {void}\n * @private\n */\nexport function setValue(nameSpace, value, object) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n /* istanbul ignore next */\n var fromObj = object || {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (i + 1 === keys.length) {\n fromObj[key] = value === undefined ? {} : value;\n }\n else if (fromObj[key] === undefined) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return fromObj;\n}\n","import { setTemplateEngine, getTemplateEngine } from '@syncfusion/ej2-base';\nimport { setValue, getValue } from '@syncfusion/ej2-base';\nvar stringCompiler = getTemplateEngine();\n/**\n * Angular Template Compiler\n */\nexport function compile(templateEle, helper) {\n if (typeof templateEle === 'string') {\n return stringCompiler(templateEle, helper);\n }\n else {\n var contRef_1 = templateEle.elementRef.nativeElement._viewContainerRef;\n var pName_1 = templateEle.elementRef.nativeElement.propName;\n //tslint:disable-next-line \n return function (data, component, propName) {\n var context = { $implicit: data };\n /* istanbul ignore next */\n var conRef = contRef_1 ? contRef_1 : component.viewContainerRef;\n var viewRef = conRef.createEmbeddedView(templateEle, context);\n viewRef.markForCheck();\n /* istanbul ignore next */\n var viewCollection = (component && component.registeredTemplate) ?\n component.registeredTemplate : getValue('currentInstance.registeredTemplate', conRef);\n propName = (propName && component.registeredTemplate) ? propName : pName_1;\n if (typeof viewCollection[propName] === 'undefined') {\n viewCollection[propName] = [];\n }\n viewCollection[propName].push(viewRef);\n return viewRef.rootNodes;\n };\n }\n}\n/**\n * Property decorator for angular.\n */\nexport function Template(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: setter(key),\n get: getter(key, defaultValue),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, propertyDescriptor);\n };\n}\nfunction setter(key) {\n return function (val) {\n if (val === undefined) {\n return;\n }\n setValue(key + 'Ref', val, this);\n if (typeof val !== 'string') {\n val.elementRef.nativeElement._viewContainerRef = this.viewContainerRef;\n val.elementRef.nativeElement.propName = key;\n }\n else {\n if (this.saveChanges) {\n this.saveChanges(key, val, undefined);\n this.dataBind();\n }\n }\n };\n}\nfunction getter(key, defaultValue) {\n return function () {\n /* istanbul ignore next */\n return getValue(key + 'Ref', this) || defaultValue;\n };\n}\n//tslint:disable-next-line\nsetTemplateEngine({ compile: compile });\n","import { getValue, setValue, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { clearTemplate, registerEvents } from './util';\nvar refRegex = /Ref$/;\nvar ComplexBase = /** @class */ (function () {\n function ComplexBase() {\n this.hasChanges = false;\n this.propCollection = {};\n this.dataSource = {};\n this.tags = [];\n this.tagObjects = [];\n }\n ComplexBase.prototype.ngOnInit = function () {\n this.registeredTemplate = {};\n for (var _i = 0, _a = this.tags; _i < _a.length; _i++) {\n var tag = _a[_i];\n var objInstance = getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), this);\n if (objInstance) {\n this.tagObjects.push({ instance: objInstance, name: tag });\n }\n }\n var templateProperties = Object.keys(this);\n for (var i = 0; i < templateProperties.length; i++) {\n var tempProp = getValue(templateProperties[i], this);\n if (typeof tempProp === 'object' && tempProp && tempProp.elementRef) {\n if (!getValue(templateProperties[i].indexOf('Ref') !== -1 ? templateProperties[i] : templateProperties[i] + 'Ref', this)) {\n setValue(templateProperties[i].indexOf('Ref') !== -1 ? templateProperties[i] : templateProperties[i] + 'Ref', tempProp, this);\n }\n if (getValue(\"viewContainerRef\", this) && !getValue(\"_viewContainerRef\", tempProp.elementRef.nativeElement) && !getValue(\"propName\", tempProp.elementRef.nativeElement)) {\n setValue(\"_viewContainerRef\", getValue(\"viewContainerRef\", this), tempProp.elementRef.nativeElement);\n setValue(\"propName\", templateProperties[i].replace(\"Ref\", ''), tempProp.elementRef.nativeElement);\n }\n }\n }\n templateProperties = Object.keys(this);\n templateProperties = templateProperties.filter(function (val) {\n return /Ref$/i.test(val);\n });\n for (var _b = 0, templateProperties_1 = templateProperties; _b < templateProperties_1.length; _b++) {\n var tempName = templateProperties_1[_b];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName, this), this.propCollection);\n }\n // Angular 9 compatibility to overcome ngOnchange not get triggered issue\n // To Update properties to \"this.propCollection\"\n var propList = Object.keys(this);\n /* istanbul ignore next */\n if (this.directivePropList) {\n for (var k = 0; k < this.directivePropList.length; k++) {\n var dirPropName = this.directivePropList[k];\n if (propList.indexOf(dirPropName) !== -1 && (getValue(dirPropName, this) === false || getValue(dirPropName, this))) {\n setValue(dirPropName, getValue(dirPropName, this), this.propCollection);\n }\n }\n this.hasChanges = true;\n }\n this.isInitChanges = true;\n };\n ComplexBase.prototype.registerEvents = function (eventList) {\n registerEvents(eventList, this, true);\n };\n ComplexBase.prototype.ngOnChanges = function (changes) {\n for (var _i = 0, _a = Object.keys(changes); _i < _a.length; _i++) {\n var propName = _a[_i];\n var changedVal = changes[propName];\n this.propCollection[propName] = changedVal.currentValue;\n }\n this.isUpdated = false;\n this.hasChanges = true;\n };\n /* istanbul ignore next */\n ComplexBase.prototype.clearTemplate = function (templateNames) {\n clearTemplate(this, templateNames);\n };\n ComplexBase.prototype.getProperties = function () {\n /* istanbul ignore next */\n for (var _i = 0, _a = this.tagObjects; _i < _a.length; _i++) {\n var tagObject = _a[_i];\n this.propCollection[tagObject.name] = tagObject.instance.getProperties();\n }\n return this.propCollection;\n };\n ComplexBase.prototype.isChanged = function () {\n var result = this.hasChanges;\n if (!isNullOrUndefined(this.propCollection[this.property])) {\n var tempProps = this.propCollection[this.property];\n var props = Object.keys(tempProps[0]);\n for (var d = 0; d < props.length; d++) {\n if (!isNullOrUndefined(this.propCollection[props[d]])) {\n var val = getValue(props[d], this);\n var propVal = this.propCollection[this.property][0][props[d]];\n if (!isNullOrUndefined(val) && this.propCollection[props[d]] !== val\n && propVal !== val) {\n setValue(props[d], val, this.propCollection[this.property][0]);\n setValue(props[d], val, this.propCollection);\n this.hasChanges = true;\n this.isUpdated = false;\n }\n }\n }\n }\n /* istanbul ignore next */\n for (var _i = 0, _a = this.tagObjects; _i < _a.length; _i++) {\n var item = _a[_i];\n result = result || item.instance.hasChanges;\n }\n return result || this.hasChanges;\n };\n ComplexBase.prototype.ngAfterContentChecked = function () {\n this.hasChanges = this.isChanged();\n if (this.isInitChanges || this.hasChanges) {\n var templateProperties = Object.keys(this);\n templateProperties = templateProperties.filter(function (val) {\n return refRegex.test(val);\n });\n for (var _i = 0, templateProperties_2 = templateProperties; _i < templateProperties_2.length; _i++) {\n var tempName = templateProperties_2[_i];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName, this), this.propCollection);\n }\n }\n };\n ComplexBase.prototype.ngAfterViewChecked = function () {\n /* istanbul ignore next */\n if (this.isUpdated) {\n this.hasChanges = false;\n }\n };\n ComplexBase.prototype.ngAfterViewInit = function () {\n /* istanbul ignore next */\n this.isInitChanges = false;\n };\n ComplexBase.prototype.ngOnDestroy = function () {\n /* istanbul ignore next */\n this.directivePropList = [];\n };\n return ComplexBase;\n}());\nexport { ComplexBase };\nvar ArrayBase = /** @class */ (function () {\n function ArrayBase(propertyName) {\n this.list = [];\n this.hasChanges = false;\n this.propertyName = propertyName;\n }\n ArrayBase.prototype.ngOnInit = function () {\n this.isInitChanges = true;\n };\n ArrayBase.prototype.ngAfterContentInit = function () {\n var _this = this;\n var index = 0;\n /* istanbul ignore next */\n this.list = this.children.map(function (child) {\n child.dirIndex = index++;\n child.property = _this.propertyName;\n return child;\n });\n this.hasChanges = true;\n };\n ArrayBase.prototype.getProperties = function () {\n var onlyProp = [];\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n onlyProp.push(item.getProperties());\n }\n return onlyProp;\n };\n ArrayBase.prototype.isChanged = function () {\n var _this = this;\n var result = false;\n var index = 0;\n var isSourceChanged = false;\n // tslint:disable-next-line\n var childrenDataSource = this.children.map(function (child) {\n return child;\n });\n /* istanbul ignore next */\n if (this.list.length === this.children.length) {\n for (var i = 0; i < this.list.length; i++) {\n if (this.list[i].propCollection.dataSource) {\n if (this.list[i].dataSource && this.list[i].propCollection.dataSource !== this.list[i].dataSource) {\n this.list[i].propCollection.dataSource = this.list[i].dataSource;\n this.list[i].hasChanges = true;\n }\n isSourceChanged = (JSON.stringify(this.list[i].propCollection.dataSource) !==\n JSON.stringify(childrenDataSource[i].propCollection.dataSource));\n }\n isSourceChanged = this.list[i].hasChanges !== childrenDataSource[i].hasChanges;\n }\n }\n this.hasNewChildren = (this.list.length !== this.children.length || isSourceChanged) ? true : null;\n if (this.hasNewChildren) {\n this.list = this.children.map(function (child) {\n child.dirIndex = index++;\n child.property = _this.propertyName;\n return child;\n });\n }\n /* istanbul ignore end */\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n result = result || item.hasChanges;\n }\n return !!this.list.length && result;\n };\n ArrayBase.prototype.clearTemplate = function (templateNames) {\n var _this = this;\n /* istanbul ignore next */\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n item.clearTemplate(templateNames && templateNames.map(function (val) {\n return new RegExp(_this.propertyName).test(val) ? val.replace(_this.propertyName + '.', '') : val;\n }));\n }\n };\n ArrayBase.prototype.ngAfterContentChecked = function () {\n this.hasChanges = this.isChanged();\n for (var i = 0; i < this.list.length; i++) {\n if (getValue('childColumns', this.list[i]) && getValue('property', this.list[i]) === 'columns') {\n setValue('columns', getValue('childColumns', this.list[i]).getProperties(), this.list[i].propCollection);\n }\n this.list[i].isUpdated = true;\n }\n };\n ArrayBase.prototype.ngAfterViewInit = function () {\n this.isInitChanges = false;\n };\n ArrayBase.prototype.ngOnDestroy = function () {\n this.list = [];\n };\n return ArrayBase;\n}());\nexport { ArrayBase };\n","/**\n * Angular Component Base Module\n */\nimport { getValue, isUndefined, setValue, isNullOrUndefined, attributes, createElement } from '@syncfusion/ej2-base';\nimport { EventEmitter } from '@angular/core';\nimport { clearTemplate, registerEvents } from './util';\nvar SVG_REG = /^svg|^path|^g/;\nvar ComponentBase = /** @class */ (function () {\n function ComponentBase() {\n this.isProtectedOnChange = true;\n this.isFormInit = true;\n }\n ComponentBase.prototype.saveChanges = function (key, newValue, oldValue) {\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[key] = oldValue;\n this.changedProperties[key] = newValue;\n this.finalUpdate();\n // tslint:disable-next-line:no-any\n var changeTime = setTimeout(this.dataBind.bind(this));\n var clearUpdate = function () {\n clearTimeout(changeTime);\n };\n this.finalUpdate = clearUpdate;\n };\n ;\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngOnInit = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempOnThis = isTempRef || this;\n tempOnThis.registeredTemplate = {};\n tempOnThis.ngBoundedEvents = {};\n tempOnThis.isAngular = true;\n tempOnThis.isFormInit = true;\n /* istanbul ignore next */\n if (isTempRef) {\n this.tags = isTempRef.tags;\n }\n tempOnThis.tags = this.tags || [];\n tempOnThis.complexTemplate = this.complexTemplate || [];\n tempOnThis.tagObjects = [];\n tempOnThis.ngAttr = this.getAngularAttr(tempOnThis.element);\n /* istanbul ignore next */\n tempOnThis.createElement = function (tagName, prop) {\n //tslint:disable-next-line\n var ele = tempOnThis.srenderer ? tempOnThis.srenderer.createElement(tagName) : createElement(tagName);\n if (typeof (prop) === 'undefined') {\n return ele;\n }\n ele.innerHTML = (prop.innerHTML ? prop.innerHTML : '');\n if (prop.className !== undefined) {\n ele.className = prop.className;\n }\n if (prop.id !== undefined) {\n ele.id = prop.id;\n }\n if (prop.styles !== undefined) {\n ele.setAttribute('style', prop.styles);\n }\n if (tempOnThis.ngAttr !== undefined) {\n ele.setAttribute(tempOnThis.ngAttr, '');\n }\n if (prop.attrs !== undefined) {\n attributes(ele, prop.attrs);\n }\n return ele;\n };\n for (var _i = 0, _a = tempOnThis.tags; _i < _a.length; _i++) {\n var tag = _a[_i];\n var tagObject = {\n instance: getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), tempOnThis),\n name: tag\n };\n tempOnThis.tagObjects.push(tagObject);\n }\n var complexTemplates = Object.keys(tempOnThis);\n for (var i = 0; i < complexTemplates.length; i++) {\n var compProp = getValue(complexTemplates[i], tempOnThis);\n if (typeof compProp === 'object' && compProp && compProp.elementRef) {\n if (typeof compProp === 'object' && compProp && compProp.elementRef && complexTemplates[i].indexOf('_') !== -1 && complexTemplates[i].indexOf('Ref') === -1) {\n setValue(complexTemplates[i] + 'Ref', compProp, tempOnThis);\n }\n if (tempOnThis.viewContainerRef && !getValue(\"_viewContainerRef\", compProp.elementRef.nativeElement) && !getValue(\"propName\", compProp.elementRef.nativeElement)) {\n setValue(\"_viewContainerRef\", tempOnThis.viewContainerRef, compProp.elementRef.nativeElement);\n setValue(\"propName\", complexTemplates[i].replace(\"Ref\", ''), compProp.elementRef.nativeElement);\n }\n }\n }\n complexTemplates = Object.keys(tempOnThis);\n complexTemplates = complexTemplates.filter(function (val) {\n return /Ref$/i.test(val) && /\\_/i.test(val);\n });\n for (var _b = 0, complexTemplates_1 = complexTemplates; _b < complexTemplates_1.length; _b++) {\n var tempName = complexTemplates_1[_b];\n var propName = tempName.replace('Ref', '');\n var val = {};\n setValue(propName.replace('_', '.'), getValue(propName, tempOnThis), val);\n tempOnThis.setProperties(val, true);\n }\n };\n ComponentBase.prototype.getAngularAttr = function (ele) {\n var attributes = ele.attributes;\n var length = attributes.length;\n var ngAr;\n for (var i = 0; i < length; i++) {\n /* istanbul ignore next */\n if (/_ngcontent/g.test(attributes[i].name)) {\n ngAr = attributes[i].name;\n }\n }\n return ngAr;\n };\n ;\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngAfterViewInit = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempAfterViewThis = isTempRef || this;\n var regExp = /ejs-tab|ejs-accordion/g;\n /* istanbul ignore next */\n if (regExp.test(tempAfterViewThis.ngEle.nativeElement.outerHTML)) {\n tempAfterViewThis.ngEle.nativeElement.style.visibility = 'hidden';\n }\n /**\n * Root level template properties are not getting rendered,\n * Due to ngonchanges not get triggered.\n * so that we have set template value for root level template properties,\n * for example: refer below syntax\n * ```html\n * <ejs-grid>\n * <e-column></e-column>\n * <ng-template #editSettingsTemplate></ng-template>\n * </ejs-grid>\n * ```\n */\n var templateProperties = Object.keys(tempAfterViewThis);\n templateProperties = templateProperties.filter(function (val) {\n return /Ref$/i.test(val);\n });\n for (var _i = 0, templateProperties_1 = templateProperties; _i < templateProperties_1.length; _i++) {\n var tempName = templateProperties_1[_i];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName + 'Ref', tempAfterViewThis), tempAfterViewThis);\n }\n // Used setTimeout for template binding\n // Refer Link: https://github.com/angular/angular/issues/6005\n setTimeout(function () {\n /* istanbul ignore else */\n if (typeof window !== 'undefined' && tempAfterViewThis.element || tempAfterViewThis.getModuleName().includes('btn')) {\n tempAfterViewThis.appendTo(tempAfterViewThis.element);\n tempAfterViewThis.ngEle.nativeElement.style.visibility = '';\n }\n });\n };\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngOnDestroy = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempOnDestroyThis = isTempRef || this;\n /* istanbul ignore else */\n setTimeout(function () {\n if (typeof window !== 'undefined' && (tempOnDestroyThis.element.classList.contains('e-control'))) {\n tempOnDestroyThis.destroy();\n tempOnDestroyThis.clearTemplate(null);\n // removing bounded events and tagobjects from component after destroy\n tempOnDestroyThis.ngBoundedEvents = {};\n tempOnDestroyThis.tagObjects = {};\n tempOnDestroyThis.ngEle = null;\n }\n });\n };\n //tslint:disable-next-line\n ComponentBase.prototype.clearTemplate = function (templateNames, index) {\n clearTemplate(this, templateNames, index);\n };\n ;\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngAfterContentChecked = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempAfterContentThis = isTempRef || this;\n for (var _i = 0, _a = tempAfterContentThis.tagObjects; _i < _a.length; _i++) {\n var tagObject = _a[_i];\n if (!isUndefined(tagObject.instance) &&\n (tagObject.instance.isInitChanges || tagObject.instance.hasChanges || tagObject.instance.hasNewChildren)) {\n if (tagObject.instance.isInitChanges) {\n var propObj = {};\n // For angular 9 compatibility\n // Not able to get complex directive properties reference ni Onint hook\n // So we have constructed property here and used\n var complexDirProps = void 0;\n var list = getValue('instance.list', tagObject);\n if (list && list.length) {\n complexDirProps = list[0].directivePropList;\n }\n var skip = true;\n if (tempAfterContentThis.getModuleName && tempAfterContentThis.getModuleName() === 'gantt') {\n skip = false;\n }\n if (complexDirProps && skip && complexDirProps.indexOf(tagObject.instance.propertyName) === -1) {\n var compDirPropList = Object.keys(tagObject.instance.list[0].propCollection);\n for (var h = 0; h < tagObject.instance.list.length; h++) {\n tagObject.instance.list[h].propCollection[tagObject.instance.propertyName] = [];\n var obj = {};\n for (var k = 0; k < compDirPropList.length; k++) {\n var complexPropName = compDirPropList[k];\n obj[complexPropName] = tagObject.instance.list[h].propCollection[complexPropName];\n }\n for (var i = 0; i < tagObject.instance.list[h].tags.length; i++) {\n var tag = tagObject.instance.list[h].tags[i];\n var childObj = getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), tagObject.instance.list[h]);\n if (childObj) {\n var innerchildObj = tagObject.instance.list[h]['child' + tag.substring(0, 1).toUpperCase() + tag.substring(1)];\n if (innerchildObj) {\n for (var j = 0; j < innerchildObj.list.length; j++) {\n var innerTag = innerchildObj.list[0].tags[0];\n if (innerTag) {\n var innerchildTag = getValue('child' + innerTag.substring(0, 1).toUpperCase() + innerTag.substring(1), innerchildObj.list[j]);\n if (innerchildTag) {\n innerchildObj.list[j].tagObjects.push({ instance: innerchildTag, name: innerTag });\n }\n }\n }\n }\n tagObject.instance.list[h].tagObjects.push({ instance: childObj, name: tag });\n }\n }\n tagObject.instance.list[h].propCollection[tagObject.instance.propertyName].push(obj);\n }\n }\n // End angular 9 compatibility\n propObj[tagObject.name] = tagObject.instance.getProperties();\n tempAfterContentThis.setProperties(propObj, tagObject.instance.isInitChanges);\n }\n else {\n /* istanbul ignore next */\n if ((tempAfterContentThis[tagObject.name].length !== tagObject.instance.list.length) || (/diagram|tab|DashboardLayout/.test(tempAfterContentThis.getModuleName()))) {\n tempAfterContentThis[tagObject.name] = tagObject.instance.list;\n }\n for (var _b = 0, _c = tagObject.instance.list; _b < _c.length; _b++) {\n var list = _c[_b];\n var curIndex = tagObject.instance.list.indexOf(list);\n var curChild = getValue(tagObject.name, tempAfterContentThis)[curIndex];\n var complexTemplates = Object.keys(curChild);\n complexTemplates = complexTemplates.filter(function (val) {\n return /Ref$/i.test(val);\n });\n if (curChild.properties && Object.keys(curChild.properties).length !== 0) {\n for (var _d = 0, complexTemplates_2 = complexTemplates; _d < complexTemplates_2.length; _d++) {\n var complexPropName = complexTemplates_2[_d];\n complexPropName = complexPropName.replace(/Ref/, '');\n curChild.properties[complexPropName] = !curChild.properties[complexPropName] ?\n curChild.propCollection[complexPropName] : curChild.properties[complexPropName];\n }\n }\n if (!isUndefined(curChild) && !isUndefined(curChild.setProperties)) {\n if (/diagram|DashboardLayout/.test(tempAfterContentThis.getModuleName())) {\n curChild.setProperties(list.getProperties(), true);\n }\n else {\n curChild.setProperties(list.getProperties());\n }\n }\n list.isUpdated = true;\n }\n }\n }\n }\n };\n ComponentBase.prototype.registerEvents = function (eventList) {\n registerEvents(eventList, this);\n };\n ComponentBase.prototype.twoWaySetter = function (newVal, prop) {\n var oldVal = getValue(prop, this.properties);\n if (oldVal === newVal) {\n return;\n }\n this.saveChanges(prop, newVal, oldVal);\n setValue(prop, (isNullOrUndefined(newVal) ? null : newVal), this.properties);\n getValue(prop + 'Change', this).emit(newVal);\n };\n ComponentBase.prototype.addTwoWay = function (propList) {\n var _this = this;\n var _loop_1 = function (prop) {\n getValue(prop, this_1);\n Object.defineProperty(this_1, prop, {\n get: function () {\n return getValue(prop, _this.properties);\n },\n set: function (newVal) { return _this.twoWaySetter(newVal, prop); }\n });\n setValue(prop + 'Change', new EventEmitter(), this_1);\n };\n var this_1 = this;\n for (var _i = 0, propList_1 = propList; _i < propList_1.length; _i++) {\n var prop = propList_1[_i];\n _loop_1(prop);\n }\n };\n ComponentBase.prototype.addEventListener = function (eventName, handler) {\n var eventObj = getValue(eventName, this);\n if (!isUndefined(eventObj)) {\n if (!this.ngBoundedEvents[eventName]) {\n this.ngBoundedEvents[eventName] = new Map();\n }\n this.ngBoundedEvents[eventName].set(handler, eventObj.subscribe(handler));\n }\n };\n ComponentBase.prototype.removeEventListener = function (eventName, handler) {\n var eventObj = getValue(eventName, this);\n if (!isUndefined(eventObj)) {\n this.ngBoundedEvents[eventName].get(handler).unsubscribe();\n }\n };\n ComponentBase.prototype.trigger = function (eventName, eventArgs, success) {\n var eventObj = getValue(eventName, this);\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n if (eventArgs) {\n eventArgs.name = eventName;\n }\n if (!isUndefined(eventObj)) {\n eventObj.next(eventArgs);\n }\n var localEventObj = getValue('local' + eventName.charAt(0).toUpperCase() + eventName.slice(1), this);\n if (!isUndefined(localEventObj)) {\n localEventObj.call(this, eventArgs);\n }\n this.isProtectedOnChange = prevDetection;\n /* istanbul ignore else */\n if (success) {\n this.preventChange = this.isPreventChange;\n success.call(this, eventArgs);\n }\n this.isPreventChange = false;\n };\n return ComponentBase;\n}());\nexport { ComponentBase };\n","import { getValue, setValue, isNullOrUndefined, isObject } from '@syncfusion/ej2-base';\n/**\n * Angular Form Base Module\n */\nvar FormBase = /** @class */ (function () {\n function FormBase() {\n }\n FormBase.prototype.propagateChange = function (_) { return; };\n FormBase.prototype.propagateTouch = function () { return; };\n FormBase.prototype.localChange = function (e) {\n //tslint:disable-next-line\n var value = (e.checked === undefined ? e.value : e.checked);\n this.objCheck = isObject(value);\n if (this.isUpdated === true) {\n this.angularValue = this.oldValue;\n }\n if (this.objCheck === true) {\n this.duplicateValue = JSON.stringify(value);\n this.duplicateAngularValue = JSON.stringify(this.angularValue);\n if (this.duplicateValue !== this.duplicateAngularValue && this.propagateChange !== undefined && value !== undefined) {\n // Update angular from our control\n this.propagateChange(value);\n this.angularValue = value;\n }\n }\n else {\n if (value !== this.angularValue && this.propagateChange !== undefined && value !== undefined) {\n // While reset form using reset() method ng-dirty not get updated, so while value is empty just update angularValue only\n if (value !== '' && value !== null) {\n // Update angular from our control\n this.propagateChange(value);\n this.angularValue = value;\n }\n else {\n //tslint:disable-next-line\n var optionalValue = value;\n this.propagateChange(optionalValue);\n this.angularValue = value;\n }\n }\n }\n };\n FormBase.prototype.registerOnChange = function (registerFunction) {\n this.propagateChange = registerFunction;\n };\n FormBase.prototype.registerOnTouched = function (registerFunction) {\n this.propagateTouch = registerFunction;\n };\n FormBase.prototype.twoWaySetter = function (newVal, prop) {\n var oldVal = this.oldValue || getValue(prop, this.properties);\n var ele = this.inputElement || this.element;\n if (ele && oldVal === newVal && this.value === newVal &&\n (ele.value === undefined || ele.value === '')) {\n return;\n }\n this.saveChanges(prop, newVal, oldVal);\n setValue(prop, (isNullOrUndefined(newVal) ? null : newVal), this.properties);\n getValue(prop + 'Change', this).emit(newVal);\n };\n // tslint:disable-next-line:no-any\n FormBase.prototype.ngAfterViewInit = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempFormAfterViewThis = isTempRef || this;\n // Used setTimeout for template binding\n // Refer Link: https://github.com/angular/angular/issues/6005\n // Removed setTimeout, Because we have called markForCheck() method in Angular Template Compiler\n /* istanbul ignore else */\n if (typeof window !== 'undefined') {\n tempFormAfterViewThis.appendTo(tempFormAfterViewThis.element);\n var ele = tempFormAfterViewThis.inputElement || tempFormAfterViewThis.element;\n ele.addEventListener('focus', tempFormAfterViewThis.ngOnFocus.bind(tempFormAfterViewThis));\n ele.addEventListener('blur', tempFormAfterViewThis.ngOnBlur.bind(tempFormAfterViewThis));\n }\n this.isFormInit = false;\n };\n FormBase.prototype.setDisabledState = function (disabled) {\n this.enabled = !disabled;\n this.disabled = disabled;\n };\n FormBase.prototype.writeValue = function (value) {\n var regExp = /ejs-radiobutton/g;\n //update control value from angular\n if (this.checked === undefined) {\n this.value = value;\n }\n else {\n // To resolve boolean type formControl value is not working for radio button control.\n /* istanbul ignore next */\n if (this.ngEle) {\n if (typeof value === 'boolean') {\n if (regExp.test(this.ngEle.nativeElement.outerHTML)) {\n this.checked = value === this.value;\n }\n else {\n this.checked = value;\n }\n }\n else {\n this.checked = value === this.value;\n }\n }\n }\n this.angularValue = value;\n this.isUpdated = true;\n // When binding Html textbox value to syncfusion textbox, change event triggered dynamically.\n // To prevent change event, trigger change in component side based on `preventChange` value\n this.preventChange = this.isFormInit ? false : true;\n if (value === null) {\n return;\n }\n };\n FormBase.prototype.ngOnFocus = function (e) {\n /* istanbul ignore else */\n if (this.skipFromEvent !== true) {\n this.focus.emit(e);\n }\n };\n FormBase.prototype.ngOnBlur = function (e) {\n this.propagateTouch();\n /* istanbul ignore else */\n if (this.skipFromEvent !== true) {\n this.blur.emit(e);\n }\n };\n FormBase.isFormBase = true;\n return FormBase;\n}());\nexport { FormBase };\n"],"names":["applyMixins","derivedClass","baseClass","forEach","Object","getOwnPropertyNames","prototype","name","hasOwnProperty","isFormBase","ComponentMixins","registerEvents","eventList","obj","direct","ngEventsEmitter","length","_i","eventList_1","event_1","propCollection","EventEmitter","setProperties","clearTemplate","_this","templateNames","index","regTemplates","keys","registeredTemplate","regProperties","filter","val","test","_a","e","m","template","rootNodes","rt","destroy","_b","_c","destroyed","_view","pNode","renderer","parentNode","isNullOrUndefined","appendChild","_d","_e","tagObjects","tagObject","instance","RegExp","setValue","nameSpace","value","object","replace","split","fromObj","i","key","undefined","compile","templateEle","helper","stringCompiler","contRef_1","elementRef","nativeElement","_viewContainerRef","pName_1","propName","data","component","context","$implicit","conRef","viewContainerRef","viewRef","createEmbeddedView","markForCheck","viewCollection","getValue","push","Template","defaultValue","target","propertyDescriptor","set","setter","get","getter","enumerable","configurable","defineProperty","this","saveChanges","dataBind","refRegex","ComplexBase","hasChanges","dataSource","tags","ngOnInit","tag","objInstance","substring","toUpperCase","templateProperties","tempProp","indexOf","templateProperties_1","propList","directivePropList","k","dirPropName","isInitChanges","ngOnChanges","changes","changedVal","currentValue","isUpdated","getProperties","isChanged","result","property","tempProps","props","d","propVal","item","ngAfterContentChecked","templateProperties_2","ngAfterViewChecked","ngAfterViewInit","ngOnDestroy","ArrayBase","propertyName","list","ngAfterContentInit","children","map","child","dirIndex","onlyProp","isSourceChanged","childrenDataSource","JSON","stringify","hasNewChildren","ComponentBase","isProtectedOnChange","isFormInit","newValue","oldValue","oldProperties","changedProperties","finalUpdate","changeTime","setTimeout","bind","clearUpdate","clearTimeout","isTempRef","tempOnThis","ngBoundedEvents","isAngular","complexTemplate","ngAttr","getAngularAttr","element","createElement","tagName","prop","ele","srenderer","innerHTML","className","id","styles","setAttribute","attrs","attributes","complexTemplates","compProp","complexTemplates_1","ngAr","tempAfterViewThis","ngEle","outerHTML","style","visibility","window","getModuleName","includes","appendTo","tempOnDestroyThis","classList","contains","tempAfterContentThis","isUndefined","propObj","complexDirProps","skip","compDirPropList","h","complexPropName","childObj","innerchildObj","j","innerTag","innerchildTag","curIndex","curChild","properties","complexTemplates_2","twoWaySetter","newVal","oldVal","emit","addTwoWay","this_1","propList_1","addEventListener","eventName","handler","eventObj","Map","subscribe","removeEventListener","unsubscribe","trigger","eventArgs","success","prevDetection","next","localEventObj","charAt","slice","call","preventChange","isPreventChange","FormBase","propagateChange","_","propagateTouch","localChange","checked","objCheck","isObject","angularValue","duplicateValue","duplicateAngularValue","optionalValue","registerOnChange","registerFunction","registerOnTouched","inputElement","tempFormAfterViewThis","ngOnFocus","ngOnBlur","setDisabledState","disabled","enabled","writeValue","regExp","skipFromEvent","focus","blur","getTemplateEngine","setTemplateEngine"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-angular-base.min.js","sources":["../../src/util.js","../../src/template.js","../../src/complex-array-base.js","../../src/component-base.js","../../src/form-base.js"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Angular Utility Module\n */\n/* tslint:disable */\nexport function applyMixins(derivedClass, baseClass) {\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (!derivedClass.prototype.hasOwnProperty(name) || (baseClass.isFormBase && name !== 'constructor')) {\n derivedClass.prototype[name] = baseClass.prototype[name];\n }\n });\n });\n}\n/* tslint:disable */\nexport function ComponentMixins(baseClass) {\n return function (derivedClass) {\n applyMixins(derivedClass, baseClass);\n };\n}\n/**\n * @private\n */\nexport function registerEvents(eventList, obj, direct) {\n var ngEventsEmitter = {};\n if (eventList && eventList.length) {\n for (var _i = 0, eventList_1 = eventList; _i < eventList_1.length; _i++) {\n var event_1 = eventList_1[_i];\n if (direct === true) {\n obj.propCollection[event_1] = new EventEmitter(false);\n obj[event_1] = obj.propCollection[event_1];\n }\n else {\n ngEventsEmitter[event_1] = new EventEmitter(false);\n }\n }\n if (direct !== true) {\n obj.setProperties(ngEventsEmitter, true);\n }\n }\n}\n/**\n * @private\n */\nexport function clearTemplate(_this, templateNames, index) {\n var regTemplates = Object.keys(_this.registeredTemplate);\n if (regTemplates.length) {\n /* istanbul ignore next */\n var regProperties = templateNames && templateNames.filter(function (val) {\n return (/\\./g.test(val) ? false : true);\n });\n for (var _i = 0, _a = (regProperties && regProperties || regTemplates); _i < _a.length; _i++) {\n var registeredTemplate = _a[_i];\n /* istanbul ignore next */\n if (index && index.length) {\n for (var e = 0; e < index.length; e++) {\n for (var m = 0; m < _this.registeredTemplate.template.length; m++) {\n var value = _this.registeredTemplate.template[m].rootNodes[0];\n if (value === index[e]) {\n var rt = _this.registeredTemplate[registeredTemplate];\n rt[m].destroy();\n }\n }\n }\n }\n else {\n if (_this.registeredTemplate[registeredTemplate]) {\n for (var _b = 0, _c = _this.registeredTemplate[registeredTemplate]; _b < _c.length; _b++) {\n var rt = _c[_b];\n if (!rt.destroyed) {\n if (rt._view) {\n var pNode = rt._view.renderer.parentNode(rt.rootNodes[0]);\n if (!isNullOrUndefined(pNode)) {\n for (var m = 0; m < rt.rootNodes.length; m++) {\n pNode.appendChild(rt.rootNodes[m]);\n }\n }\n }\n rt.destroy();\n }\n }\n }\n }\n delete _this.registeredTemplate[registeredTemplate];\n }\n }\n var _loop_1 = function (tagObject) {\n if (tagObject.instance) {\n /* istanbul ignore next */\n tagObject.instance.clearTemplate((templateNames && templateNames.filter(function (val) {\n return (new RegExp(tagObject.name).test(val) ? true : false);\n })));\n }\n };\n for (var _d = 0, _e = _this.tagObjects; _d < _e.length; _d++) {\n var tagObject = _e[_d];\n _loop_1(tagObject);\n }\n}\n/**\n * To set value for the nameSpace in desired object.\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @return {void}\n * @private\n */\nexport function setValue(nameSpace, value, object) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n /* istanbul ignore next */\n var fromObj = object || {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (i + 1 === keys.length) {\n fromObj[key] = value === undefined ? {} : value;\n }\n else if (fromObj[key] === undefined) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return fromObj;\n}\n","import { setTemplateEngine, getTemplateEngine } from '@syncfusion/ej2-base';\nimport { setValue, getValue } from '@syncfusion/ej2-base';\nvar stringCompiler = getTemplateEngine();\n/**\n * Angular Template Compiler\n */\nexport function compile(templateEle, helper) {\n if (typeof templateEle === 'string') {\n return stringCompiler(templateEle, helper);\n }\n else {\n var contRef_1 = templateEle.elementRef.nativeElement._viewContainerRef;\n var pName_1 = templateEle.elementRef.nativeElement.propName;\n //tslint:disable-next-line \n return function (data, component, propName) {\n var context = { $implicit: data };\n /* istanbul ignore next */\n var conRef = contRef_1 ? contRef_1 : component.viewContainerRef;\n var viewRef = conRef.createEmbeddedView(templateEle, context);\n if (getValue('currentInstance.element.nodeName', conRef) === 'EJS-MENTION') {\n viewRef.detectChanges();\n }\n else {\n viewRef.markForCheck();\n }\n /* istanbul ignore next */\n var viewCollection = (component && component.registeredTemplate) ?\n component.registeredTemplate : getValue('currentInstance.registeredTemplate', conRef);\n propName = (propName && component.registeredTemplate) ? propName : pName_1;\n if (typeof viewCollection[propName] === 'undefined') {\n viewCollection[propName] = [];\n }\n viewCollection[propName].push(viewRef);\n return viewRef.rootNodes;\n };\n }\n}\n/**\n * Property decorator for angular.\n */\nexport function Template(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: setter(key),\n get: getter(key, defaultValue),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, propertyDescriptor);\n };\n}\nfunction setter(key) {\n return function (val) {\n if (val === undefined) {\n return;\n }\n setValue(key + 'Ref', val, this);\n if (typeof val !== 'string') {\n val.elementRef.nativeElement._viewContainerRef = this.viewContainerRef;\n val.elementRef.nativeElement.propName = key;\n }\n else {\n if (this.saveChanges) {\n this.saveChanges(key, val, undefined);\n this.dataBind();\n }\n }\n };\n}\nfunction getter(key, defaultValue) {\n return function () {\n /* istanbul ignore next */\n return getValue(key + 'Ref', this) || defaultValue;\n };\n}\n//tslint:disable-next-line\nsetTemplateEngine({ compile: compile });\n","import { getValue, setValue, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { clearTemplate, registerEvents } from './util';\nvar refRegex = /Ref$/;\nvar ComplexBase = /** @class */ (function () {\n function ComplexBase() {\n this.hasChanges = false;\n this.propCollection = {};\n this.dataSource = {};\n this.tags = [];\n this.tagObjects = [];\n }\n ComplexBase.prototype.ngOnInit = function () {\n this.registeredTemplate = {};\n for (var _i = 0, _a = this.tags; _i < _a.length; _i++) {\n var tag = _a[_i];\n var objInstance = getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), this);\n if (objInstance) {\n this.tagObjects.push({ instance: objInstance, name: tag });\n }\n }\n var templateProperties = Object.keys(this);\n for (var i = 0; i < templateProperties.length; i++) {\n var tempProp = getValue(templateProperties[i], this);\n if (typeof tempProp === 'object' && tempProp && tempProp.elementRef) {\n if (!getValue(templateProperties[i].indexOf('Ref') !== -1 ? templateProperties[i] : templateProperties[i] + 'Ref', this)) {\n setValue(templateProperties[i].indexOf('Ref') !== -1 ? templateProperties[i] : templateProperties[i] + 'Ref', tempProp, this);\n }\n if (getValue(\"viewContainerRef\", this) && !getValue(\"_viewContainerRef\", tempProp.elementRef.nativeElement) && !getValue(\"propName\", tempProp.elementRef.nativeElement)) {\n setValue(\"_viewContainerRef\", getValue(\"viewContainerRef\", this), tempProp.elementRef.nativeElement);\n setValue(\"propName\", templateProperties[i].replace(\"Ref\", ''), tempProp.elementRef.nativeElement);\n }\n }\n }\n templateProperties = Object.keys(this);\n templateProperties = templateProperties.filter(function (val) {\n return /Ref$/i.test(val);\n });\n for (var _b = 0, templateProperties_1 = templateProperties; _b < templateProperties_1.length; _b++) {\n var tempName = templateProperties_1[_b];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName, this), this.propCollection);\n }\n // Angular 9 compatibility to overcome ngOnchange not get triggered issue\n // To Update properties to \"this.propCollection\"\n var propList = Object.keys(this);\n /* istanbul ignore next */\n if (this.directivePropList) {\n for (var k = 0; k < this.directivePropList.length; k++) {\n var dirPropName = this.directivePropList[k];\n if (propList.indexOf(dirPropName) !== -1 && (getValue(dirPropName, this) === false || getValue(dirPropName, this))) {\n setValue(dirPropName, getValue(dirPropName, this), this.propCollection);\n }\n }\n this.hasChanges = true;\n }\n this.isInitChanges = true;\n };\n ComplexBase.prototype.registerEvents = function (eventList) {\n registerEvents(eventList, this, true);\n };\n ComplexBase.prototype.ngOnChanges = function (changes) {\n for (var _i = 0, _a = Object.keys(changes); _i < _a.length; _i++) {\n var propName = _a[_i];\n var changedVal = changes[propName];\n this.propCollection[propName] = changedVal.currentValue;\n }\n this.isUpdated = false;\n this.hasChanges = true;\n };\n /* istanbul ignore next */\n ComplexBase.prototype.clearTemplate = function (templateNames) {\n clearTemplate(this, templateNames);\n };\n ComplexBase.prototype.getProperties = function () {\n /* istanbul ignore next */\n for (var _i = 0, _a = this.tagObjects; _i < _a.length; _i++) {\n var tagObject = _a[_i];\n this.propCollection[tagObject.name] = tagObject.instance.getProperties();\n }\n return this.propCollection;\n };\n ComplexBase.prototype.isChanged = function () {\n var result = this.hasChanges;\n if (!isNullOrUndefined(this.propCollection[this.property])) {\n var tempProps = this.propCollection[this.property];\n var props = Object.keys(tempProps[0]);\n for (var d = 0; d < props.length; d++) {\n if (!isNullOrUndefined(this.propCollection[props[d]])) {\n var val = getValue(props[d], this);\n var propVal = this.propCollection[this.property][0][props[d]];\n if (!isNullOrUndefined(val) && this.propCollection[props[d]] !== val\n && propVal !== val) {\n setValue(props[d], val, this.propCollection[this.property][0]);\n setValue(props[d], val, this.propCollection);\n this.hasChanges = true;\n this.isUpdated = false;\n }\n }\n }\n }\n /* istanbul ignore next */\n for (var _i = 0, _a = this.tagObjects; _i < _a.length; _i++) {\n var item = _a[_i];\n result = result || item.instance.hasChanges;\n }\n return result || this.hasChanges;\n };\n ComplexBase.prototype.ngAfterContentChecked = function () {\n this.hasChanges = this.isChanged();\n if (this.isInitChanges || this.hasChanges) {\n var templateProperties = Object.keys(this);\n templateProperties = templateProperties.filter(function (val) {\n return refRegex.test(val);\n });\n for (var _i = 0, templateProperties_2 = templateProperties; _i < templateProperties_2.length; _i++) {\n var tempName = templateProperties_2[_i];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName, this), this.propCollection);\n }\n }\n };\n ComplexBase.prototype.ngAfterViewChecked = function () {\n /* istanbul ignore next */\n if (this.isUpdated) {\n this.hasChanges = false;\n }\n };\n ComplexBase.prototype.ngAfterViewInit = function () {\n /* istanbul ignore next */\n this.isInitChanges = false;\n };\n ComplexBase.prototype.ngOnDestroy = function () {\n /* istanbul ignore next */\n this.directivePropList = [];\n };\n return ComplexBase;\n}());\nexport { ComplexBase };\nvar ArrayBase = /** @class */ (function () {\n function ArrayBase(propertyName) {\n this.list = [];\n this.hasChanges = false;\n this.propertyName = propertyName;\n }\n ArrayBase.prototype.ngOnInit = function () {\n this.isInitChanges = true;\n };\n ArrayBase.prototype.ngAfterContentInit = function () {\n var _this = this;\n var index = 0;\n /* istanbul ignore next */\n this.list = this.children.map(function (child) {\n child.dirIndex = index++;\n child.property = _this.propertyName;\n return child;\n });\n this.hasChanges = true;\n };\n ArrayBase.prototype.getProperties = function () {\n var onlyProp = [];\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n onlyProp.push(item.getProperties());\n }\n return onlyProp;\n };\n ArrayBase.prototype.isChanged = function () {\n var _this = this;\n var result = false;\n var index = 0;\n var isSourceChanged = false;\n // tslint:disable-next-line\n var childrenDataSource = this.children.map(function (child) {\n return child;\n });\n /* istanbul ignore next */\n if (this.list.length === this.children.length) {\n for (var i = 0; i < this.list.length; i++) {\n if (this.list[i].propCollection.dataSource) {\n if (this.list[i].dataSource && this.list[i].propCollection.dataSource !== this.list[i].dataSource) {\n this.list[i].propCollection.dataSource = this.list[i].dataSource;\n this.list[i].hasChanges = true;\n }\n isSourceChanged = (JSON.stringify(this.list[i].propCollection.dataSource) !==\n JSON.stringify(childrenDataSource[i].propCollection.dataSource));\n }\n isSourceChanged = this.list[i].hasChanges !== childrenDataSource[i].hasChanges;\n }\n }\n this.hasNewChildren = (this.list.length !== this.children.length || isSourceChanged) ? true : null;\n if (this.hasNewChildren) {\n this.list = this.children.map(function (child) {\n child.dirIndex = index++;\n child.property = _this.propertyName;\n return child;\n });\n }\n /* istanbul ignore end */\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n result = result || item.hasChanges;\n }\n return !!this.list.length && result;\n };\n ArrayBase.prototype.clearTemplate = function (templateNames) {\n var _this = this;\n /* istanbul ignore next */\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n item.clearTemplate(templateNames && templateNames.map(function (val) {\n return new RegExp(_this.propertyName).test(val) ? val.replace(_this.propertyName + '.', '') : val;\n }));\n }\n };\n ArrayBase.prototype.ngAfterContentChecked = function () {\n this.hasChanges = this.isChanged();\n for (var i = 0; i < this.list.length; i++) {\n if (getValue('childColumns', this.list[i]) && getValue('property', this.list[i]) === 'columns') {\n setValue('columns', getValue('childColumns', this.list[i]).getProperties(), this.list[i].propCollection);\n }\n this.list[i].isUpdated = true;\n }\n };\n ArrayBase.prototype.ngAfterViewInit = function () {\n this.isInitChanges = false;\n };\n ArrayBase.prototype.ngOnDestroy = function () {\n this.list = [];\n };\n return ArrayBase;\n}());\nexport { ArrayBase };\n","/**\n * Angular Component Base Module\n */\nimport { getValue, isUndefined, setValue, isNullOrUndefined, attributes, createElement } from '@syncfusion/ej2-base';\nimport { EventEmitter } from '@angular/core';\nimport { clearTemplate, registerEvents } from './util';\nvar SVG_REG = /^svg|^path|^g/;\nvar ComponentBase = /** @class */ (function () {\n function ComponentBase() {\n this.isProtectedOnChange = true;\n this.isFormInit = true;\n }\n ComponentBase.prototype.saveChanges = function (key, newValue, oldValue) {\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[key] = oldValue;\n this.changedProperties[key] = newValue;\n this.finalUpdate();\n // tslint:disable-next-line:no-any\n var changeTime = setTimeout(this.dataBind.bind(this));\n var clearUpdate = function () {\n clearTimeout(changeTime);\n };\n this.finalUpdate = clearUpdate;\n };\n ;\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngOnInit = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempOnThis = isTempRef || this;\n tempOnThis.registeredTemplate = {};\n tempOnThis.ngBoundedEvents = {};\n tempOnThis.isAngular = true;\n tempOnThis.isFormInit = true;\n /* istanbul ignore next */\n if (isTempRef) {\n this.tags = isTempRef.tags;\n }\n tempOnThis.tags = this.tags || [];\n tempOnThis.complexTemplate = this.complexTemplate || [];\n tempOnThis.tagObjects = [];\n tempOnThis.ngAttr = this.getAngularAttr(tempOnThis.element);\n /* istanbul ignore next */\n tempOnThis.createElement = function (tagName, prop) {\n //tslint:disable-next-line\n var ele = tempOnThis.srenderer ? tempOnThis.srenderer.createElement(tagName) : createElement(tagName);\n if (typeof (prop) === 'undefined') {\n return ele;\n }\n ele.innerHTML = (prop.innerHTML ? prop.innerHTML : '');\n if (prop.className !== undefined) {\n ele.className = prop.className;\n }\n if (prop.id !== undefined) {\n ele.id = prop.id;\n }\n if (prop.styles !== undefined) {\n ele.setAttribute('style', prop.styles);\n }\n if (tempOnThis.ngAttr !== undefined) {\n ele.setAttribute(tempOnThis.ngAttr, '');\n }\n if (prop.attrs !== undefined) {\n attributes(ele, prop.attrs);\n }\n return ele;\n };\n for (var _i = 0, _a = tempOnThis.tags; _i < _a.length; _i++) {\n var tag = _a[_i];\n var tagObject = {\n instance: getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), tempOnThis),\n name: tag\n };\n tempOnThis.tagObjects.push(tagObject);\n }\n var complexTemplates = Object.keys(tempOnThis);\n for (var i = 0; i < complexTemplates.length; i++) {\n var compProp = getValue(complexTemplates[i], tempOnThis);\n if (typeof compProp === 'object' && compProp && compProp.elementRef) {\n if (typeof compProp === 'object' && compProp && compProp.elementRef && complexTemplates[i].indexOf('_') !== -1 && complexTemplates[i].indexOf('Ref') === -1) {\n setValue(complexTemplates[i] + 'Ref', compProp, tempOnThis);\n }\n if (tempOnThis.viewContainerRef && !getValue(\"_viewContainerRef\", compProp.elementRef.nativeElement) && !getValue(\"propName\", compProp.elementRef.nativeElement)) {\n setValue(\"_viewContainerRef\", tempOnThis.viewContainerRef, compProp.elementRef.nativeElement);\n setValue(\"propName\", complexTemplates[i].replace(\"Ref\", ''), compProp.elementRef.nativeElement);\n }\n }\n }\n complexTemplates = Object.keys(tempOnThis);\n complexTemplates = complexTemplates.filter(function (val) {\n return /Ref$/i.test(val) && /\\_/i.test(val);\n });\n for (var _b = 0, complexTemplates_1 = complexTemplates; _b < complexTemplates_1.length; _b++) {\n var tempName = complexTemplates_1[_b];\n var propName = tempName.replace('Ref', '');\n var val = {};\n setValue(propName.replace('_', '.'), getValue(propName, tempOnThis), val);\n tempOnThis.setProperties(val, true);\n }\n };\n ComponentBase.prototype.getAngularAttr = function (ele) {\n var attributes = ele.attributes;\n var length = attributes.length;\n var ngAr;\n for (var i = 0; i < length; i++) {\n /* istanbul ignore next */\n if (/_ngcontent/g.test(attributes[i].name)) {\n ngAr = attributes[i].name;\n }\n }\n return ngAr;\n };\n ;\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngAfterViewInit = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempAfterViewThis = isTempRef || this;\n var regExp = /ejs-tab|ejs-accordion/g;\n /* istanbul ignore next */\n if (regExp.test(tempAfterViewThis.ngEle.nativeElement.outerHTML)) {\n tempAfterViewThis.ngEle.nativeElement.style.visibility = 'hidden';\n }\n /**\n * Root level template properties are not getting rendered,\n * Due to ngonchanges not get triggered.\n * so that we have set template value for root level template properties,\n * for example: refer below syntax\n * ```html\n * <ejs-grid>\n * <e-column></e-column>\n * <ng-template #editSettingsTemplate></ng-template>\n * </ejs-grid>\n * ```\n */\n var templateProperties = Object.keys(tempAfterViewThis);\n templateProperties = templateProperties.filter(function (val) {\n return /Ref$/i.test(val);\n });\n for (var _i = 0, templateProperties_1 = templateProperties; _i < templateProperties_1.length; _i++) {\n var tempName = templateProperties_1[_i];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName + 'Ref', tempAfterViewThis), tempAfterViewThis);\n }\n // Used setTimeout for template binding\n // Refer Link: https://github.com/angular/angular/issues/6005\n setTimeout(function () {\n /* istanbul ignore else */\n if (typeof window !== 'undefined' && tempAfterViewThis.element || tempAfterViewThis.getModuleName().includes('btn')) {\n tempAfterViewThis.appendTo(tempAfterViewThis.element);\n tempAfterViewThis.ngEle.nativeElement.style.visibility = '';\n }\n });\n };\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngOnDestroy = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempOnDestroyThis = isTempRef || this;\n /* istanbul ignore else */\n setTimeout(function () {\n if (typeof window !== 'undefined' && (tempOnDestroyThis.element.classList.contains('e-control'))) {\n tempOnDestroyThis.destroy();\n tempOnDestroyThis.clearTemplate(null);\n // removing bounded events and tagobjects from component after destroy\n for (var _i = 0, _a = Object.keys(tempOnDestroyThis); _i < _a.length; _i++) {\n var key = _a[_i];\n if (/function|object/.test(typeof tempOnDestroyThis[key])) {\n tempOnDestroyThis[key] = null;\n }\n }\n }\n });\n };\n //tslint:disable-next-line\n ComponentBase.prototype.clearTemplate = function (templateNames, index) {\n clearTemplate(this, templateNames, index);\n };\n ;\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.ngAfterContentChecked = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempAfterContentThis = isTempRef || this;\n for (var _i = 0, _a = tempAfterContentThis.tagObjects; _i < _a.length; _i++) {\n var tagObject = _a[_i];\n if (!isUndefined(tagObject.instance) &&\n (tagObject.instance.isInitChanges || tagObject.instance.hasChanges || tagObject.instance.hasNewChildren)) {\n if (tagObject.instance.isInitChanges) {\n var propObj = {};\n // For angular 9 compatibility\n // Not able to get complex directive properties reference ni Onint hook\n // So we have constructed property here and used\n var complexDirProps = void 0;\n var list = getValue('instance.list', tagObject);\n if (list && list.length) {\n complexDirProps = list[0].directivePropList;\n }\n var skip = true;\n if (tempAfterContentThis.getModuleName && tempAfterContentThis.getModuleName() === 'gantt') {\n skip = false;\n }\n if (complexDirProps && skip && complexDirProps.indexOf(tagObject.instance.propertyName) === -1) {\n var compDirPropList = Object.keys(tagObject.instance.list[0].propCollection);\n for (var h = 0; h < tagObject.instance.list.length; h++) {\n tagObject.instance.list[h].propCollection[tagObject.instance.propertyName] = [];\n var obj = {};\n for (var k = 0; k < compDirPropList.length; k++) {\n var complexPropName = compDirPropList[k];\n obj[complexPropName] = tagObject.instance.list[h].propCollection[complexPropName];\n }\n for (var i = 0; i < tagObject.instance.list[h].tags.length; i++) {\n var tag = tagObject.instance.list[h].tags[i];\n var childObj = getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), tagObject.instance.list[h]);\n if (childObj) {\n var innerchildObj = tagObject.instance.list[h]['child' + tag.substring(0, 1).toUpperCase() + tag.substring(1)];\n if (innerchildObj) {\n for (var j = 0; j < innerchildObj.list.length; j++) {\n var innerTag = innerchildObj.list[0].tags[0];\n if (innerTag) {\n var innerchildTag = getValue('child' + innerTag.substring(0, 1).toUpperCase() + innerTag.substring(1), innerchildObj.list[j]);\n if (innerchildTag) {\n innerchildObj.list[j].tagObjects.push({ instance: innerchildTag, name: innerTag });\n }\n }\n }\n }\n tagObject.instance.list[h].tagObjects.push({ instance: childObj, name: tag });\n }\n }\n tagObject.instance.list[h].propCollection[tagObject.instance.propertyName].push(obj);\n }\n }\n // End angular 9 compatibility\n propObj[tagObject.name] = tagObject.instance.getProperties();\n tempAfterContentThis.setProperties(propObj, tagObject.instance.isInitChanges);\n }\n else {\n /* istanbul ignore next */\n if ((tempAfterContentThis[tagObject.name].length !== tagObject.instance.list.length) || (/diagram|tab|DashboardLayout/.test(tempAfterContentThis.getModuleName()))) {\n tempAfterContentThis[tagObject.name] = tagObject.instance.list;\n }\n for (var _b = 0, _c = tagObject.instance.list; _b < _c.length; _b++) {\n var list = _c[_b];\n var curIndex = tagObject.instance.list.indexOf(list);\n var curChild = getValue(tagObject.name, tempAfterContentThis)[curIndex];\n var complexTemplates = Object.keys(curChild);\n complexTemplates = complexTemplates.filter(function (val) {\n return /Ref$/i.test(val);\n });\n if (curChild.properties && Object.keys(curChild.properties).length !== 0) {\n for (var _d = 0, complexTemplates_2 = complexTemplates; _d < complexTemplates_2.length; _d++) {\n var complexPropName = complexTemplates_2[_d];\n complexPropName = complexPropName.replace(/Ref/, '');\n curChild.properties[complexPropName] = !curChild.properties[complexPropName] ?\n curChild.propCollection[complexPropName] : curChild.properties[complexPropName];\n }\n }\n if (!isUndefined(curChild) && !isUndefined(curChild.setProperties)) {\n if (/diagram|DashboardLayout/.test(tempAfterContentThis.getModuleName())) {\n curChild.setProperties(list.getProperties(), true);\n }\n else {\n curChild.setProperties(list.getProperties());\n }\n }\n list.isUpdated = true;\n }\n }\n }\n }\n };\n ComponentBase.prototype.registerEvents = function (eventList) {\n registerEvents(eventList, this);\n };\n ComponentBase.prototype.twoWaySetter = function (newVal, prop) {\n var oldVal = getValue(prop, this.properties);\n if (oldVal === newVal) {\n return;\n }\n this.saveChanges(prop, newVal, oldVal);\n setValue(prop, (isNullOrUndefined(newVal) ? null : newVal), this.properties);\n getValue(prop + 'Change', this).emit(newVal);\n };\n ComponentBase.prototype.addTwoWay = function (propList) {\n var _this = this;\n var _loop_1 = function (prop) {\n getValue(prop, this_1);\n Object.defineProperty(this_1, prop, {\n get: function () {\n return getValue(prop, _this.properties);\n },\n set: function (newVal) { return _this.twoWaySetter(newVal, prop); }\n });\n setValue(prop + 'Change', new EventEmitter(), this_1);\n };\n var this_1 = this;\n for (var _i = 0, propList_1 = propList; _i < propList_1.length; _i++) {\n var prop = propList_1[_i];\n _loop_1(prop);\n }\n };\n ComponentBase.prototype.addEventListener = function (eventName, handler) {\n var eventObj = getValue(eventName, this);\n if (!isUndefined(eventObj)) {\n if (!this.ngBoundedEvents[eventName]) {\n this.ngBoundedEvents[eventName] = new Map();\n }\n this.ngBoundedEvents[eventName].set(handler, eventObj.subscribe(handler));\n }\n };\n ComponentBase.prototype.removeEventListener = function (eventName, handler) {\n var eventObj = getValue(eventName, this);\n if (!isUndefined(eventObj)) {\n this.ngBoundedEvents[eventName].get(handler).unsubscribe();\n }\n };\n ComponentBase.prototype.trigger = function (eventName, eventArgs, success) {\n var eventObj = getValue(eventName, this);\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n if (eventArgs) {\n eventArgs.name = eventName;\n }\n if (!isUndefined(eventObj)) {\n eventObj.next(eventArgs);\n }\n var localEventObj = getValue('local' + eventName.charAt(0).toUpperCase() + eventName.slice(1), this);\n if (!isUndefined(localEventObj)) {\n localEventObj.call(this, eventArgs);\n }\n this.isProtectedOnChange = prevDetection;\n /* istanbul ignore else */\n if (success) {\n this.preventChange = this.isPreventChange;\n success.call(this, eventArgs);\n }\n this.isPreventChange = false;\n };\n return ComponentBase;\n}());\nexport { ComponentBase };\n","import { getValue, setValue, isNullOrUndefined, isObject } from '@syncfusion/ej2-base';\n/**\n * Angular Form Base Module\n */\nvar FormBase = /** @class */ (function () {\n function FormBase() {\n }\n FormBase.prototype.propagateChange = function (_) { return; };\n FormBase.prototype.propagateTouch = function () { return; };\n FormBase.prototype.localChange = function (e) {\n //tslint:disable-next-line\n var value = (e.checked === undefined ? e.value : e.checked);\n this.objCheck = isObject(value);\n if (this.isUpdated === true) {\n this.angularValue = this.oldValue;\n }\n if (this.objCheck === true) {\n this.duplicateValue = JSON.stringify(value);\n this.duplicateAngularValue = JSON.stringify(this.angularValue);\n if (this.duplicateValue !== this.duplicateAngularValue && this.propagateChange !== undefined && value !== undefined) {\n // Update angular from our control\n this.propagateChange(value);\n this.angularValue = value;\n }\n }\n else {\n if (value !== this.angularValue && this.propagateChange !== undefined && value !== undefined) {\n // While reset form using reset() method ng-dirty not get updated, so while value is empty just update angularValue only\n if (value !== '' && value !== null) {\n // Update angular from our control\n this.propagateChange(value);\n this.angularValue = value;\n }\n else {\n //tslint:disable-next-line\n var optionalValue = value;\n this.propagateChange(optionalValue);\n this.angularValue = value;\n }\n }\n }\n };\n FormBase.prototype.registerOnChange = function (registerFunction) {\n this.propagateChange = registerFunction;\n };\n FormBase.prototype.registerOnTouched = function (registerFunction) {\n this.propagateTouch = registerFunction;\n };\n FormBase.prototype.twoWaySetter = function (newVal, prop) {\n var oldVal = this.oldValue || getValue(prop, this.properties);\n var ele = this.inputElement || this.element;\n if (ele && oldVal === newVal && this.value === newVal &&\n (ele.value === undefined || ele.value === '')) {\n return;\n }\n this.saveChanges(prop, newVal, oldVal);\n setValue(prop, (isNullOrUndefined(newVal) ? null : newVal), this.properties);\n getValue(prop + 'Change', this).emit(newVal);\n };\n // tslint:disable-next-line:no-any\n FormBase.prototype.ngAfterViewInit = function (isTempRef) {\n // tslint:disable-next-line:no-any\n var tempFormAfterViewThis = isTempRef || this;\n // Used setTimeout for template binding\n // Refer Link: https://github.com/angular/angular/issues/6005\n // Removed setTimeout, Because we have called markForCheck() method in Angular Template Compiler\n /* istanbul ignore else */\n if (typeof window !== 'undefined') {\n tempFormAfterViewThis.appendTo(tempFormAfterViewThis.element);\n var ele = tempFormAfterViewThis.inputElement || tempFormAfterViewThis.element;\n ele.addEventListener('focus', tempFormAfterViewThis.ngOnFocus.bind(tempFormAfterViewThis));\n ele.addEventListener('blur', tempFormAfterViewThis.ngOnBlur.bind(tempFormAfterViewThis));\n }\n this.isFormInit = false;\n };\n FormBase.prototype.setDisabledState = function (disabled) {\n this.enabled = !disabled;\n this.disabled = disabled;\n };\n FormBase.prototype.writeValue = function (value) {\n var regExp = /ejs-radiobutton/g;\n //update control value from angular\n if (this.checked === undefined) {\n this.value = value;\n }\n else {\n // To resolve boolean type formControl value is not working for radio button control.\n /* istanbul ignore next */\n if (this.ngEle) {\n if (typeof value === 'boolean') {\n if (regExp.test(this.ngEle.nativeElement.outerHTML)) {\n this.checked = value === this.value;\n }\n else {\n this.checked = value;\n }\n }\n else {\n this.checked = value === this.value;\n }\n }\n }\n this.angularValue = value;\n this.isUpdated = true;\n // When binding Html textbox value to syncfusion textbox, change event triggered dynamically.\n // To prevent change event, trigger change in component side based on `preventChange` value\n this.preventChange = this.isFormInit ? false : true;\n if (value === null) {\n return;\n }\n };\n FormBase.prototype.ngOnFocus = function (e) {\n /* istanbul ignore else */\n if (this.skipFromEvent !== true) {\n this.focus.emit(e);\n }\n };\n FormBase.prototype.ngOnBlur = function (e) {\n this.propagateTouch();\n /* istanbul ignore else */\n if (this.skipFromEvent !== true) {\n this.blur.emit(e);\n }\n };\n FormBase.isFormBase = true;\n return FormBase;\n}());\nexport { FormBase };\n"],"names":["applyMixins","derivedClass","baseClass","forEach","Object","getOwnPropertyNames","prototype","name","hasOwnProperty","isFormBase","ComponentMixins","registerEvents","eventList","obj","direct","ngEventsEmitter","length","_i","eventList_1","event_1","propCollection","EventEmitter","setProperties","clearTemplate","_this","templateNames","index","regTemplates","keys","registeredTemplate","regProperties","filter","val","test","_a","e","m","template","rootNodes","rt","destroy","_b","_c","destroyed","_view","pNode","renderer","parentNode","isNullOrUndefined","appendChild","_d","_e","tagObjects","tagObject","instance","RegExp","setValue","nameSpace","value","object","replace","split","fromObj","i","key","undefined","compile","templateEle","helper","stringCompiler","contRef_1","elementRef","nativeElement","_viewContainerRef","pName_1","propName","data","component","context","$implicit","conRef","viewContainerRef","viewRef","createEmbeddedView","getValue","detectChanges","markForCheck","viewCollection","push","Template","defaultValue","target","propertyDescriptor","set","setter","get","getter","enumerable","configurable","defineProperty","this","saveChanges","dataBind","refRegex","ComplexBase","hasChanges","dataSource","tags","ngOnInit","tag","objInstance","substring","toUpperCase","templateProperties","tempProp","indexOf","templateProperties_1","propList","directivePropList","k","dirPropName","isInitChanges","ngOnChanges","changes","changedVal","currentValue","isUpdated","getProperties","isChanged","result","property","tempProps","props","d","propVal","item","ngAfterContentChecked","templateProperties_2","ngAfterViewChecked","ngAfterViewInit","ngOnDestroy","ArrayBase","propertyName","list","ngAfterContentInit","children","map","child","dirIndex","onlyProp","isSourceChanged","childrenDataSource","JSON","stringify","hasNewChildren","ComponentBase","isProtectedOnChange","isFormInit","newValue","oldValue","oldProperties","changedProperties","finalUpdate","changeTime","setTimeout","bind","clearUpdate","clearTimeout","isTempRef","tempOnThis","ngBoundedEvents","isAngular","complexTemplate","ngAttr","getAngularAttr","element","createElement","tagName","prop","ele","srenderer","innerHTML","className","id","styles","setAttribute","attrs","attributes","complexTemplates","compProp","complexTemplates_1","ngAr","tempAfterViewThis","ngEle","outerHTML","style","visibility","window","getModuleName","includes","appendTo","tempOnDestroyThis","classList","contains","tempAfterContentThis","isUndefined","propObj","complexDirProps","skip","compDirPropList","h","complexPropName","childObj","innerchildObj","j","innerTag","innerchildTag","curIndex","curChild","properties","complexTemplates_2","twoWaySetter","newVal","oldVal","emit","addTwoWay","this_1","propList_1","addEventListener","eventName","handler","eventObj","Map","subscribe","removeEventListener","unsubscribe","trigger","eventArgs","success","prevDetection","next","localEventObj","charAt","slice","call","preventChange","isPreventChange","FormBase","propagateChange","_","propagateTouch","localChange","checked","objCheck","isObject","angularValue","duplicateValue","duplicateAngularValue","optionalValue","registerOnChange","registerFunction","registerOnTouched","inputElement","tempFormAfterViewThis","ngOnFocus","ngOnBlur","setDisabledState","disabled","enabled","writeValue","regExp","skipFromEvent","focus","blur","getTemplateEngine","setTemplateEngine"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.4.42
3
+ * version : 20.4.52
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
Binary file
Binary file
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-angular-base@*",
3
- "_id": "@syncfusion/ej2-angular-base@20.4.40",
3
+ "_id": "@syncfusion/ej2-angular-base@20.4.48",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-o0IlasfgHNDgyiwe8Mtq2gR41zTE6AfIgz2ZeK+hCy8ydyhdeLPZIfOmj7TH2nsrL5eovYrCXo65P6knFgSIcA==",
5
+ "_integrity": "sha512-L6Wuj2isDSUyhBsh07PWMqd/ed2ZLqMZruqdX5jQ9VvSr1AXMzR2Jg41MlTdCp/jq2gtVk/YiskKQOA9T3Gg0A==",
6
6
  "_location": "/@syncfusion/ej2-angular-base",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -18,42 +18,25 @@
18
18
  },
19
19
  "_requiredBy": [
20
20
  "/",
21
- "/@syncfusion/ej2-angular-barcode-generator",
22
- "/@syncfusion/ej2-angular-buttons",
23
21
  "/@syncfusion/ej2-angular-calendars",
24
22
  "/@syncfusion/ej2-angular-charts",
25
- "/@syncfusion/ej2-angular-circulargauge",
26
23
  "/@syncfusion/ej2-angular-diagrams",
27
24
  "/@syncfusion/ej2-angular-documenteditor",
28
25
  "/@syncfusion/ej2-angular-dropdowns",
29
- "/@syncfusion/ej2-angular-filemanager",
30
26
  "/@syncfusion/ej2-angular-gantt",
31
27
  "/@syncfusion/ej2-angular-grids",
32
28
  "/@syncfusion/ej2-angular-heatmap",
33
- "/@syncfusion/ej2-angular-image-editor",
34
- "/@syncfusion/ej2-angular-inplace-editor",
35
29
  "/@syncfusion/ej2-angular-inputs",
36
30
  "/@syncfusion/ej2-angular-kanban",
37
- "/@syncfusion/ej2-angular-layouts",
38
- "/@syncfusion/ej2-angular-lineargauge",
39
- "/@syncfusion/ej2-angular-lists",
40
- "/@syncfusion/ej2-angular-maps",
41
31
  "/@syncfusion/ej2-angular-navigations",
42
- "/@syncfusion/ej2-angular-notifications",
43
32
  "/@syncfusion/ej2-angular-pdfviewer",
44
- "/@syncfusion/ej2-angular-pivotview",
45
33
  "/@syncfusion/ej2-angular-popups",
46
- "/@syncfusion/ej2-angular-progressbar",
47
- "/@syncfusion/ej2-angular-querybuilder",
48
34
  "/@syncfusion/ej2-angular-richtexteditor",
49
35
  "/@syncfusion/ej2-angular-schedule",
50
- "/@syncfusion/ej2-angular-splitbuttons",
51
- "/@syncfusion/ej2-angular-spreadsheet",
52
- "/@syncfusion/ej2-angular-treegrid",
53
- "/@syncfusion/ej2-angular-treemap"
36
+ "/@syncfusion/ej2-angular-spreadsheet"
54
37
  ],
55
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-angular-base/-/ej2-angular-base-20.4.40.tgz",
56
- "_shasum": "d9ad6a39e492f48ed8ea20821d5e6877aa7cbd0d",
38
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-angular-base/-/ej2-angular-base-20.4.48.tgz",
39
+ "_shasum": "20c3e73edb890fe8e4c835b77fede0a3f7833bfe",
57
40
  "_spec": "@syncfusion/ej2-angular-base@*",
58
41
  "_where": "/jenkins/workspace/ease-automation_release_19.1.0.1/packages/included",
59
42
  "author": {
@@ -64,8 +47,8 @@
64
47
  },
65
48
  "bundleDependencies": false,
66
49
  "dependencies": {
67
- "@syncfusion/ej2-base": "~20.4.42",
68
- "@syncfusion/ej2-icons": "~20.4.42",
50
+ "@syncfusion/ej2-base": "~20.4.51",
51
+ "@syncfusion/ej2-icons": "~20.4.48",
69
52
  "core-js": "^3.4.8",
70
53
  "reflect-metadata": "^0.1.9",
71
54
  "rxjs": "^6.5.4",
@@ -97,6 +80,6 @@
97
80
  "postinstall": "node ./postinstall.js"
98
81
  },
99
82
  "typings": "index.d.ts",
100
- "version": "20.4.42",
83
+ "version": "20.4.52",
101
84
  "sideEffects": true
102
85
  }
@@ -162,9 +162,12 @@ var ComponentBase = /** @class */ (function () {
162
162
  tempOnDestroyThis.destroy();
163
163
  tempOnDestroyThis.clearTemplate(null);
164
164
  // removing bounded events and tagobjects from component after destroy
165
- tempOnDestroyThis.ngBoundedEvents = {};
166
- tempOnDestroyThis.tagObjects = {};
167
- tempOnDestroyThis.ngEle = null;
165
+ for (var _i = 0, _a = Object.keys(tempOnDestroyThis); _i < _a.length; _i++) {
166
+ var key = _a[_i];
167
+ if (/function|object/.test(typeof tempOnDestroyThis[key])) {
168
+ tempOnDestroyThis[key] = null;
169
+ }
170
+ }
168
171
  }
169
172
  });
170
173
  };
package/src/template.js CHANGED
@@ -17,7 +17,12 @@ export function compile(templateEle, helper) {
17
17
  /* istanbul ignore next */
18
18
  var conRef = contRef_1 ? contRef_1 : component.viewContainerRef;
19
19
  var viewRef = conRef.createEmbeddedView(templateEle, context);
20
- viewRef.markForCheck();
20
+ if (getValue('currentInstance.element.nodeName', conRef) === 'EJS-MENTION') {
21
+ viewRef.detectChanges();
22
+ }
23
+ else {
24
+ viewRef.markForCheck();
25
+ }
21
26
  /* istanbul ignore next */
22
27
  var viewCollection = (component && component.registeredTemplate) ?
23
28
  component.registeredTemplate : getValue('currentInstance.registeredTemplate', conRef);
package/src/util.js CHANGED
@@ -7,7 +7,7 @@ import { isNullOrUndefined } from '@syncfusion/ej2-base';
7
7
  export function applyMixins(derivedClass, baseClass) {
8
8
  baseClass.forEach(function (baseClass) {
9
9
  Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {
10
- if (!derivedClass.prototype.hasOwnProperty(name) || baseClass.isFormBase) {
10
+ if (!derivedClass.prototype.hasOwnProperty(name) || (baseClass.isFormBase && name !== 'constructor')) {
11
11
  derivedClass.prototype[name] = baseClass.prototype[name];
12
12
  }
13
13
  });