@syncfusion/ej2-angular-base 24.1.44 → 24.2.3

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.es5.js","sources":["../../src/util.js","../../src/complex-array-base.js","../../src/component-base.js","../../src/form-base.js","../../src/template.js","../../src/index.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 var tabaccordionTemp = /tab|accordion|toolbar/.test(_this.getModuleName());\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 if (tabaccordionTemp) {\n for (var m = 0; m < _this.registeredTemplate[registeredTemplate].length; m++) {\n var value = _this.registeredTemplate[registeredTemplate][m];\n if (value && value === index[e]) {\n value.destroy();\n _this.registeredTemplate[registeredTemplate].splice(m, 1);\n }\n }\n }\n else {\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 }\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 if (!tabaccordionTemp || !index) {\n delete _this.registeredTemplate[registeredTemplate];\n }\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 { 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 if (this.list[i].property !== \"series\") {\n isSourceChanged = (JSON.stringify(this.list[i].propCollection.dataSource) !==\n JSON.stringify(childrenDataSource[i].propCollection.dataSource));\n }\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 var ngtempRef = tempAfterViewThis.getModuleName() === 'DocumentEditor';\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 var appendToComponent = function (tempAfterViewThis) {\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 if (!ngtempRef) {\n setTimeout(function () {\n appendToComponent(tempAfterViewThis);\n });\n }\n else {\n appendToComponent(tempAfterViewThis);\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 setTimeout(function () {\n for (var _i = 0, _a = Object.keys(tempOnDestroyThis); _i < _a.length; _i++) {\n var key = _a[_i];\n var value = tempOnDestroyThis[key];\n if (value && /object/.test(typeof value) && Object.keys(value).length !== 0) {\n if (/properties|changedProperties|childChangedProperties|oldProperties|moduleLoader/.test(key)) {\n for (var _b = 0, _c = Object.keys(tempOnDestroyThis[key]); _b < _c.length; _b++) {\n var propKey = _c[_b];\n var propValue = value[propKey];\n if (propValue && /object/.test(typeof propValue) && Object.keys(propValue).length !== 0 && (propValue.parent || propValue.parentObj)) {\n tempOnDestroyThis[key][propKey] = null;\n }\n }\n }\n else {\n if (value.parent || value.parentObj) {\n tempOnDestroyThis[key] = null;\n }\n }\n }\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 var _loop_1 = function (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 // Update the inner child tag objects\n var updateChildTag_1 = function (innerchild) {\n var innerLevelTag = [];\n if (innerchild) {\n for (var j = 0; j < innerchild.list.length; j++) {\n var innerTag = innerchild.list[0].tags[0];\n if (innerTag) {\n var innerchildTag = getValue('child' + innerTag.substring(0, 1).toUpperCase() + innerTag.substring(1), innerchild.list[j]);\n if (innerchildTag) {\n innerchild.list[j].tagObjects.push({ instance: innerchildTag, name: innerTag });\n innerLevelTag.push(innerchildTag);\n }\n }\n }\n }\n // check for inner level tag\n if (innerLevelTag.length !== 0) {\n for (var l = 0; l < innerLevelTag.length; l++) {\n updateChildTag_1(innerLevelTag[l]);\n }\n }\n ;\n };\n updateChildTag_1(innerchildObj);\n tagObject.instance.list[h].tagObjects.push({ instance: childObj, name: tag });\n }\n };\n for (var i = 0; i < tagObject.instance.list[h].tags.length; i++) {\n _loop_1(i);\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|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_2 = 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_2(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 this.cdr.markForCheck();\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 if ((tempFormAfterViewThis.getModuleName()).includes('dropdowntree')) {\n setTimeout(function () {\n tempFormAfterViewThis.appendTo(tempFormAfterViewThis.element);\n });\n }\n else {\n tempFormAfterViewThis.appendTo(tempFormAfterViewThis.element);\n }\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 this.cdr.markForCheck();\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 this.cdr.markForCheck();\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 this.cdr.markForCheck();\n };\n FormBase.isFormBase = true;\n return FormBase;\n}());\nexport { FormBase };\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' || (typeof templateEle === 'function' && templateEle.prototype && templateEle.prototype.CSPTemplate)) {\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 (/EJS-MENTION|EJS-DROPDOWNLIST/.test(getValue('currentInstance.element.nodeName', conRef))) {\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","/**\n * Index\n */\nexport * from './complex-array-base';\nexport * from './component-base';\nexport * from './form-base';\nexport * from './util';\nexport * from './template';\n"],"names":["setValue","attributes"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-angular-base.es5.js","sources":["../../src/util.js","../../src/complex-array-base.js","../../src/component-base.js","../../src/form-base.js","../../src/template.js","../../src/index.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 var tabaccordionTemp = /tab|accordion|toolbar/.test(_this.getModuleName());\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 if (tabaccordionTemp) {\n for (var m = 0; m < _this.registeredTemplate[registeredTemplate].length; m++) {\n var value = _this.registeredTemplate[registeredTemplate][m];\n if (value && value === index[e]) {\n value.destroy();\n _this.registeredTemplate[registeredTemplate].splice(m, 1);\n }\n }\n }\n else {\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 }\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 if (!tabaccordionTemp || !index) {\n delete _this.registeredTemplate[registeredTemplate];\n }\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 { 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 if (this.list[i].property !== \"series\") {\n isSourceChanged = (JSON.stringify(this.list[i].propCollection.dataSource) !==\n JSON.stringify(childrenDataSource[i].propCollection.dataSource));\n }\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 var ngtempRef = tempAfterViewThis.getModuleName() === 'DocumentEditor';\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 var appendToComponent = function (tempAfterViewThis) {\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 if (!ngtempRef) {\n setTimeout(function () {\n appendToComponent(tempAfterViewThis);\n });\n }\n else {\n appendToComponent(tempAfterViewThis);\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 setTimeout(function () {\n for (var _i = 0, _a = Object.keys(tempOnDestroyThis); _i < _a.length; _i++) {\n var key = _a[_i];\n var value = tempOnDestroyThis[key];\n if (value && /object/.test(typeof value) && Object.keys(value).length !== 0) {\n if (/properties|changedProperties|childChangedProperties|oldProperties|moduleLoader/.test(key)) {\n for (var _b = 0, _c = Object.keys(tempOnDestroyThis[key]); _b < _c.length; _b++) {\n var propKey = _c[_b];\n var propValue = value[propKey];\n if (propValue && /object/.test(typeof propValue) && Object.keys(propValue).length !== 0 && (propValue.parent || propValue.parentObj)) {\n tempOnDestroyThis[key][propKey] = null;\n }\n }\n }\n else {\n if (value.parent || value.parentObj) {\n tempOnDestroyThis[key] = null;\n }\n }\n }\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 var propObj = {};\n if (tagObject.instance.isInitChanges) {\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 var _loop_1 = function (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 // Update the inner child tag objects\n var updateChildTag_1 = function (innerchild) {\n var innerLevelTag = [];\n if (innerchild) {\n for (var j = 0; j < innerchild.list.length; j++) {\n var innerTag = innerchild.list[0].tags[0];\n if (innerTag) {\n var innerchildTag = getValue('child' + innerTag.substring(0, 1).toUpperCase() + innerTag.substring(1), innerchild.list[j]);\n if (innerchildTag) {\n innerchild.list[j].tagObjects.push({ instance: innerchildTag, name: innerTag });\n innerLevelTag.push(innerchildTag);\n }\n }\n }\n }\n // check for inner level tag\n if (innerLevelTag.length !== 0) {\n for (var l = 0; l < innerLevelTag.length; l++) {\n updateChildTag_1(innerLevelTag[l]);\n }\n }\n ;\n };\n updateChildTag_1(innerchildObj);\n tagObject.instance.list[h].tagObjects.push({ instance: childObj, name: tag });\n }\n };\n for (var i = 0; i < tagObject.instance.list[h].tags.length; i++) {\n _loop_1(i);\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|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 if (/grid/.test(tempAfterContentThis.getModuleName())) {\n propObj[tagObject.name] = tagObject.instance.getProperties();\n tempAfterContentThis.setProperties(propObj, tagObject.instance.isInitChanges);\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_2 = 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_2(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 this.cdr.markForCheck();\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 if ((tempFormAfterViewThis.getModuleName()).includes('dropdowntree')) {\n setTimeout(function () {\n tempFormAfterViewThis.appendTo(tempFormAfterViewThis.element);\n });\n }\n else {\n tempFormAfterViewThis.appendTo(tempFormAfterViewThis.element);\n }\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 this.cdr.markForCheck();\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 this.cdr.markForCheck();\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 this.cdr.markForCheck();\n };\n FormBase.isFormBase = true;\n return FormBase;\n}());\nexport { FormBase };\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' || (typeof templateEle === 'function' && templateEle.prototype && templateEle.prototype.CSPTemplate)) {\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 (/EJS-MENTION|EJS-DROPDOWNLIST/.test(getValue('currentInstance.element.nodeName', conRef))) {\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","/**\n * Index\n */\nexport * from './complex-array-base';\nexport * from './component-base';\nexport * from './form-base';\nexport * from './util';\nexport * from './template';\n"],"names":["setValue","attributes"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * filename: ej2-angular-base.min.js
3
- * version : 24.1.44
3
+ * version : 24.2.3
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. 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
7
7
  * licensing@syncfusion.com. Any infringement will be prosecuted under
8
8
  * applicable laws.
9
9
  */
10
- this.ej=this.ej||{},this.ej.angularbase=function(e,t,i){"use strict";function n(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(i){(!e.prototype.hasOwnProperty(i)||t.isFormBase&&"constructor"!==i)&&(e.prototype[i]=t.prototype[i])})})}function s(e){return function(t){n(t,e)}}function r(e,t,n){var s={};if(e&&e.length){for(var r=0,a=e;r<a.length;r++){var o=a[r];!0===n?(t.propCollection[o]=new i.EventEmitter(!1),t[o]=t.propCollection[o]):s[o]=new i.EventEmitter(!1)}!0!==n&&t.setProperties(s,!0)}}function a(e,i,n){var s=Object.keys(e.registeredTemplate);if(s.length)for(var r=i&&i.filter(function(e){return!/\./g.test(e)}),a=/tab|accordion|toolbar/.test(e.getModuleName()),o=0,l=r&&r||s;o<l.length;o++){var h=l[o];if(n&&n.length)for(var p=0;p<n.length;p++)if(a)for(v=0;v<e.registeredTemplate[h].length;v++)(c=e.registeredTemplate[h][v])&&c===n[p]&&(c.destroy(),e.registeredTemplate[h].splice(v,1));else for(v=0;v<e.registeredTemplate.template.length;v++){var c=e.registeredTemplate.template[v].rootNodes[0];c===n[p]&&(f=e.registeredTemplate[h])[v].destroy()}else if(e.registeredTemplate[h])for(var u=0,g=e.registeredTemplate[h];u<g.length;u++){var f=g[u];if(!f.destroyed){if(f._view){var d=f._view.renderer.parentNode(f.rootNodes[0]);if(!t.isNullOrUndefined(d))for(var v=0;v<f.rootNodes.length;v++)d.appendChild(f.rootNodes[v])}f.destroy()}}a&&n||delete e.registeredTemplate[h]}for(var m=0,C=e.tagObjects;m<C.length;m++)!function(e){e.instance&&e.instance.clearTemplate(i&&i.filter(function(t){return!!new RegExp(e.name).test(t)}))}(C[m])}function o(e,t,i){for(var n=e.replace(/\[/g,".").replace(/\]/g,"").split("."),s=i||{},r=0;r<n.length;r++){var a=n[r];r+1===n.length?s[a]=void 0===t?{}:t:void 0===s[a]&&(s[a]={}),s=s[a]}return s}function l(e,i){if("string"==typeof e||"function"==typeof e&&e.prototype&&e.prototype.CSPTemplate)return m(e,i);var n=e.elementRef.nativeElement._viewContainerRef,s=e.elementRef.nativeElement.propName;return function(i,r,a){var o={$implicit:i},l=n||r.viewContainerRef,h=l.createEmbeddedView(e,o);/EJS-MENTION|EJS-DROPDOWNLIST/.test(t.getValue("currentInstance.element.nodeName",l))?h.detectChanges():h.markForCheck();var p=r&&r.registeredTemplate?r.registeredTemplate:t.getValue("currentInstance.registeredTemplate",l);return a=a&&r.registeredTemplate?a:s,void 0===p[a]&&(p[a]=[]),p[a].push(h),h.rootNodes}}function h(e){return function(t,i){var n={set:p(i),get:c(i,e),enumerable:!0,configurable:!0};Object.defineProperty(t,i,n)}}function p(e){return function(i){void 0!==i&&(t.setValue(e+"Ref",i,this),"string"!=typeof i?(i.elementRef.nativeElement._viewContainerRef=this.viewContainerRef,i.elementRef.nativeElement.propName=e):this.saveChanges&&(this.saveChanges(e,i,void 0),this.dataBind()))}}function c(e,i){return function(){return t.getValue(e+"Ref",this)||i}}var u=/Ref$/,g=function(){function e(){this.hasChanges=!1,this.propCollection={},this.dataSource={},this.tags=[],this.tagObjects=[]}return e.prototype.ngOnInit=function(){this.registeredTemplate={};for(var e=0,i=this.tags;e<i.length;e++){var n=i[e],s=t.getValue("child"+n.substring(0,1).toUpperCase()+n.substring(1),this);s&&this.tagObjects.push({instance:s,name:n})}for(var r=Object.keys(this),a=0;a<r.length;a++){var o=t.getValue(r[a],this);"object"==typeof o&&o&&o.elementRef&&(t.getValue(-1!==r[a].indexOf("Ref")?r[a]:r[a]+"Ref",this)||t.setValue(-1!==r[a].indexOf("Ref")?r[a]:r[a]+"Ref",o,this),!t.getValue("viewContainerRef",this)||t.getValue("_viewContainerRef",o.elementRef.nativeElement)||t.getValue("propName",o.elementRef.nativeElement)||(t.setValue("_viewContainerRef",t.getValue("viewContainerRef",this),o.elementRef.nativeElement),t.setValue("propName",r[a].replace("Ref",""),o.elementRef.nativeElement)))}for(var l=0,h=r=(r=Object.keys(this)).filter(function(e){return/Ref$/i.test(e)});l<h.length;l++){var p=h[l].replace("Ref","");t.setValue(p.replace("_","."),t.getValue(p,this),this.propCollection)}var c=Object.keys(this);if(this.directivePropList){for(var u=0;u<this.directivePropList.length;u++){var g=this.directivePropList[u];-1===c.indexOf(g)||!1!==t.getValue(g,this)&&!t.getValue(g,this)||t.setValue(g,t.getValue(g,this),this.propCollection)}this.hasChanges=!0}this.isInitChanges=!0},e.prototype.registerEvents=function(e){r(e,this,!0)},e.prototype.ngOnChanges=function(e){for(var t=0,i=Object.keys(e);t<i.length;t++){var n=i[t],s=e[n];this.propCollection[n]=s.currentValue}this.isUpdated=!1,this.hasChanges=!0},e.prototype.clearTemplate=function(e){a(this,e)},e.prototype.getProperties=function(){for(var e=0,t=this.tagObjects;e<t.length;e++){var i=t[e];this.propCollection[i.name]=i.instance.getProperties()}return this.propCollection},e.prototype.isChanged=function(){var e=this.hasChanges;if(!t.isNullOrUndefined(this.propCollection[this.property]))for(var i=this.propCollection[this.property],n=Object.keys(i[0]),s=0;s<n.length;s++)if(!t.isNullOrUndefined(this.propCollection[n[s]])){var r=t.getValue(n[s],this),a=this.propCollection[this.property][0][n[s]];t.isNullOrUndefined(r)||this.propCollection[n[s]]===r||a===r||(t.setValue(n[s],r,this.propCollection[this.property][0]),t.setValue(n[s],r,this.propCollection),this.hasChanges=!0,this.isUpdated=!1)}for(var o=0,l=this.tagObjects;o<l.length;o++){var h=l[o];e=e||h.instance.hasChanges}return e||this.hasChanges},e.prototype.ngAfterContentChecked=function(){if(this.hasChanges=this.isChanged(),this.isInitChanges||this.hasChanges)for(var e=Object.keys(this),i=0,n=e=e.filter(function(e){return u.test(e)});i<n.length;i++){var s=n[i].replace("Ref","");t.setValue(s.replace("_","."),t.getValue(s,this),this.propCollection)}},e.prototype.ngAfterViewChecked=function(){this.isUpdated&&(this.hasChanges=!1)},e.prototype.ngAfterViewInit=function(){this.isInitChanges=!1},e.prototype.ngOnDestroy=function(){this.directivePropList=[]},e}(),f=function(){function e(e){this.list=[],this.hasChanges=!1,this.propertyName=e}return e.prototype.ngOnInit=function(){this.isInitChanges=!0},e.prototype.ngAfterContentInit=function(){var e=this,t=0;this.list=this.children.map(function(i){return i.dirIndex=t++,i.property=e.propertyName,i}),this.hasChanges=!0},e.prototype.getProperties=function(){for(var e=[],t=0,i=this.list;t<i.length;t++){var n=i[t];e.push(n.getProperties())}return e},e.prototype.isChanged=function(){var e=this,t=!1,i=0,n=!1,s=this.children.map(function(e){return e});if(this.list.length===this.children.length)for(var r=0;r<this.list.length;r++)this.list[r].propCollection.dataSource&&(this.list[r].dataSource&&this.list[r].propCollection.dataSource!==this.list[r].dataSource&&(this.list[r].propCollection.dataSource=this.list[r].dataSource,this.list[r].hasChanges=!0),"series"!==this.list[r].property&&(n=JSON.stringify(this.list[r].propCollection.dataSource)!==JSON.stringify(s[r].propCollection.dataSource))),n=this.list[r].hasChanges!==s[r].hasChanges;this.hasNewChildren=!(this.list.length===this.children.length&&!n)||null,this.hasNewChildren&&(this.list=this.children.map(function(t){return t.dirIndex=i++,t.property=e.propertyName,t}));for(var a=0,o=this.list;a<o.length;a++){var l=o[a];t=t||l.hasChanges}return!!this.list.length&&t},e.prototype.clearTemplate=function(e){for(var t=this,i=0,n=this.list;i<n.length;i++)n[i].clearTemplate(e&&e.map(function(e){return new RegExp(t.propertyName).test(e)?e.replace(t.propertyName+".",""):e}))},e.prototype.ngAfterContentChecked=function(){this.hasChanges=this.isChanged();for(var e=0;e<this.list.length;e++)t.getValue("childColumns",this.list[e])&&"columns"===t.getValue("property",this.list[e])&&t.setValue("columns",t.getValue("childColumns",this.list[e]).getProperties(),this.list[e].propCollection),this.list[e].isUpdated=!0},e.prototype.ngAfterViewInit=function(){this.isInitChanges=!1},e.prototype.ngOnDestroy=function(){this.list=[]},e}(),d=function(){function e(){this.isProtectedOnChange=!0,this.isFormInit=!0}return e.prototype.saveChanges=function(e,t,i){if(!this.isProtectedOnChange){this.oldProperties[e]=i,this.changedProperties[e]=t,this.finalUpdate();var n=setTimeout(this.dataBind.bind(this)),s=function(){clearTimeout(n)};this.finalUpdate=s}},e.prototype.ngOnInit=function(e){var i=e||this;i.registeredTemplate={},i.ngBoundedEvents={},i.isAngular=!0,i.isFormInit=!0,e&&(this.tags=e.tags),i.tags=this.tags||[],i.complexTemplate=this.complexTemplate||[],i.tagObjects=[],i.ngAttr=this.getAngularAttr(i.element),i.createElement=function(e,n){var s=i.srenderer?i.srenderer.createElement(e):t.createElement(e);return void 0===n?s:(s.innerHTML=n.innerHTML?n.innerHTML:"",void 0!==n.className&&(s.className=n.className),void 0!==n.id&&(s.id=n.id),void 0!==n.styles&&s.setAttribute("style",n.styles),void 0!==i.ngAttr&&s.setAttribute(i.ngAttr,""),void 0!==n.attrs&&t.attributes(s,n.attrs),s)};for(var n=0,s=i.tags;n<s.length;n++){var r=s[n],a={instance:t.getValue("child"+r.substring(0,1).toUpperCase()+r.substring(1),i),name:r};i.tagObjects.push(a)}for(var o=Object.keys(i),l=0;l<o.length;l++){var h=t.getValue(o[l],i);"object"==typeof h&&h&&h.elementRef&&("object"==typeof h&&h&&h.elementRef&&-1!==o[l].indexOf("_")&&-1===o[l].indexOf("Ref")&&t.setValue(o[l]+"Ref",h,i),!i.viewContainerRef||t.getValue("_viewContainerRef",h.elementRef.nativeElement)||t.getValue("propName",h.elementRef.nativeElement)||(t.setValue("_viewContainerRef",i.viewContainerRef,h.elementRef.nativeElement),t.setValue("propName",o[l].replace("Ref",""),h.elementRef.nativeElement)))}for(var p=0,c=o=(o=Object.keys(i)).filter(function(e){return/Ref$/i.test(e)&&/\_/i.test(e)});p<c.length;p++){var u=c[p].replace("Ref",""),g={};t.setValue(u.replace("_","."),t.getValue(u,i),g),i.setProperties(g,!0)}},e.prototype.getAngularAttr=function(e){for(var t,i=e.attributes,n=i.length,s=0;s<n;s++)/_ngcontent/g.test(i[s].name)&&(t=i[s].name);return t},e.prototype.ngAfterViewInit=function(e){var i=e||this;/ejs-tab|ejs-accordion/g.test(i.ngEle.nativeElement.outerHTML)&&(i.ngEle.nativeElement.style.visibility="hidden");var n=Object.keys(i);n=n.filter(function(e){return/Ref$/i.test(e)});for(var s="DocumentEditor"===i.getModuleName(),r=0,a=n;r<a.length;r++){var o=a[r].replace("Ref","");t.setValue(o.replace("_","."),t.getValue(o+"Ref",i),i)}var l=function(e){("undefined"!=typeof window&&e.element||e.getModuleName().includes("btn"))&&(e.appendTo(e.element),e.ngEle.nativeElement.style.visibility="")};s?l(i):setTimeout(function(){l(i)})},e.prototype.ngOnDestroy=function(e){var t=e||this;setTimeout(function(){"undefined"!=typeof window&&t.element.classList.contains("e-control")&&(t.destroy(),t.clearTemplate(null),setTimeout(function(){for(var e=0,i=Object.keys(t);e<i.length;e++){var n=i[e],s=t[n];if(s&&/object/.test(typeof s)&&0!==Object.keys(s).length)if(/properties|changedProperties|childChangedProperties|oldProperties|moduleLoader/.test(n))for(var r=0,a=Object.keys(t[n]);r<a.length;r++){var o=a[r],l=s[o];l&&/object/.test(typeof l)&&0!==Object.keys(l).length&&(l.parent||l.parentObj)&&(t[n][o]=null)}else(s.parent||s.parentObj)&&(t[n]=null)}}))})},e.prototype.clearTemplate=function(e,t){a(this,e,t)},e.prototype.ngAfterContentChecked=function(e){for(var i=e||this,n=0,s=i.tagObjects;n<s.length;n++){var r=s[n];if(!t.isUndefined(r.instance)&&(r.instance.isInitChanges||r.instance.hasChanges||r.instance.hasNewChildren))if(r.instance.isInitChanges){var a={},o=void 0;(v=t.getValue("instance.list",r))&&v.length&&(o=v[0].directivePropList);var l=!0;if(i.getModuleName&&"gantt"===i.getModuleName()&&(l=!1),o&&l&&-1===o.indexOf(r.instance.propertyName))for(var h=Object.keys(r.instance.list[0].propCollection),p=0;p<r.instance.list.length;p++){r.instance.list[p].propCollection[r.instance.propertyName]=[];for(var c={},u=0;u<h.length;u++)c[O=h[u]]=r.instance.list[p].propCollection[O];for(var g=0;g<r.instance.list[p].tags.length;g++)!function(e){var i=r.instance.list[p].tags[e],n=t.getValue("child"+i.substring(0,1).toUpperCase()+i.substring(1),r.instance.list[p]);if(n){var s=r.instance.list[p]["child"+i.substring(0,1).toUpperCase()+i.substring(1)],a=function(e){var i=[];if(e)for(var n=0;n<e.list.length;n++){var s=e.list[0].tags[0];if(s){var r=t.getValue("child"+s.substring(0,1).toUpperCase()+s.substring(1),e.list[n]);r&&(e.list[n].tagObjects.push({instance:r,name:s}),i.push(r))}}if(0!==i.length)for(var o=0;o<i.length;o++)a(i[o])};a(s),r.instance.list[p].tagObjects.push({instance:n,name:i})}}(g);r.instance.list[p].propCollection[r.instance.propertyName].push(c)}a[r.name]=r.instance.getProperties(),i.setProperties(a,r.instance.isInitChanges)}else{(i[r.name].length!==r.instance.list.length||/diagram|DashboardLayout/.test(i.getModuleName()))&&(i[r.name]=r.instance.list);for(var f=0,d=r.instance.list;f<d.length;f++){var v=d[f],m=r.instance.list.indexOf(v),C=t.getValue(r.name,i)[m],y=Object.keys(C);if(y=y.filter(function(e){return/Ref$/i.test(e)}),C.properties&&0!==Object.keys(C.properties).length)for(var b=0,V=y;b<V.length;b++){var O=V[b];O=O.replace(/Ref/,""),C.properties[O]=C.properties[O]?C.properties[O]:C.propCollection[O]}t.isUndefined(C)||t.isUndefined(C.setProperties)||(/diagram|DashboardLayout/.test(i.getModuleName())?C.setProperties(v.getProperties(),!0):C.setProperties(v.getProperties())),v.isUpdated=!0}}}},e.prototype.registerEvents=function(e){r(e,this)},e.prototype.twoWaySetter=function(e,i){var n=t.getValue(i,this.properties);n!==e&&(this.saveChanges(i,e,n),t.setValue(i,t.isNullOrUndefined(e)?null:e,this.properties),t.getValue(i+"Change",this).emit(e))},e.prototype.addTwoWay=function(e){for(var n=this,s=this,r=0,a=e;r<a.length;r++)!function(e){t.getValue(e,s),Object.defineProperty(s,e,{get:function(){return t.getValue(e,n.properties)},set:function(t){return n.twoWaySetter(t,e)}}),t.setValue(e+"Change",new i.EventEmitter,s)}(a[r])},e.prototype.addEventListener=function(e,i){var n=t.getValue(e,this);t.isUndefined(n)||(this.ngBoundedEvents[e]||(this.ngBoundedEvents[e]=new Map),this.ngBoundedEvents[e].set(i,n.subscribe(i)))},e.prototype.removeEventListener=function(e,i){var n=t.getValue(e,this);t.isUndefined(n)||this.ngBoundedEvents[e].get(i).unsubscribe()},e.prototype.trigger=function(e,i,n){var s=t.getValue(e,this),r=this.isProtectedOnChange;this.isProtectedOnChange=!1,i&&(i.name=e),t.isUndefined(s)||s.next(i);var a=t.getValue("local"+e.charAt(0).toUpperCase()+e.slice(1),this);t.isUndefined(a)||a.call(this,i),this.isProtectedOnChange=r,n&&(this.preventChange=this.isPreventChange,n.call(this,i)),this.isPreventChange=!1},e}(),v=function(){function e(){}return e.prototype.propagateChange=function(e){},e.prototype.propagateTouch=function(){},e.prototype.localChange=function(e){var i=void 0===e.checked?e.value:e.checked;if(this.objCheck=t.isObject(i),!0===this.isUpdated&&(this.angularValue=this.oldValue),!0===this.objCheck)this.duplicateValue=JSON.stringify(i),this.duplicateAngularValue=JSON.stringify(this.angularValue),this.duplicateValue!==this.duplicateAngularValue&&void 0!==this.propagateChange&&void 0!==i&&(this.propagateChange(i),this.angularValue=i);else if(i!==this.angularValue&&void 0!==this.propagateChange&&void 0!==i)if(""!==i&&null!==i)this.propagateChange(i),this.angularValue=i;else{var n=i;this.propagateChange(n),this.angularValue=i}this.cdr.markForCheck()},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){this.propagateTouch=e},e.prototype.twoWaySetter=function(e,i){var n=this.oldValue||t.getValue(i,this.properties),s=this.inputElement||this.element;(!s||n!==e||this.value!==e||void 0!==s.value&&""!==s.value)&&(this.saveChanges(i,e,n),t.setValue(i,t.isNullOrUndefined(e)?null:e,this.properties),t.getValue(i+"Change",this).emit(e))},e.prototype.ngAfterViewInit=function(e){var t=e||this;if("undefined"!=typeof window){t.getModuleName().includes("dropdowntree")?setTimeout(function(){t.appendTo(t.element)}):t.appendTo(t.element);var i=t.inputElement||t.element;i.addEventListener("focus",t.ngOnFocus.bind(t)),i.addEventListener("blur",t.ngOnBlur.bind(t))}this.isFormInit=!1},e.prototype.setDisabledState=function(e){this.enabled=!e,this.disabled=e},e.prototype.writeValue=function(e){var t=/ejs-radiobutton/g;void 0===this.checked?this.value=e:this.ngEle&&("boolean"==typeof e?t.test(this.ngEle.nativeElement.outerHTML)?this.checked=e===this.value:this.checked=e:this.checked=e===this.value),this.angularValue=e,this.isUpdated=!0,this.preventChange=!this.isFormInit,this.cdr.markForCheck()},e.prototype.ngOnFocus=function(e){!0!==this.skipFromEvent&&this.focus.emit(e),this.cdr.markForCheck()},e.prototype.ngOnBlur=function(e){this.propagateTouch(),!0!==this.skipFromEvent&&this.blur.emit(e),this.cdr.markForCheck()},e.isFormBase=!0,e}(),m=t.getTemplateEngine();return t.setTemplateEngine({compile:l}),e.ComplexBase=g,e.ArrayBase=f,e.ComponentBase=d,e.FormBase=v,e.applyMixins=n,e.ComponentMixins=s,e.registerEvents=r,e.clearTemplate=a,e.setValue=o,e.compile=l,e.Template=h,e}({},ej.base,core),this.ejs=ej;
10
+ this.ej=this.ej||{},this.ej.angularbase=function(e,t,i){"use strict";function n(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(i){(!e.prototype.hasOwnProperty(i)||t.isFormBase&&"constructor"!==i)&&(e.prototype[i]=t.prototype[i])})})}function s(e){return function(t){n(t,e)}}function r(e,t,n){var s={};if(e&&e.length){for(var r=0,a=e;r<a.length;r++){var o=a[r];!0===n?(t.propCollection[o]=new i.EventEmitter(!1),t[o]=t.propCollection[o]):s[o]=new i.EventEmitter(!1)}!0!==n&&t.setProperties(s,!0)}}function a(e,i,n){var s=Object.keys(e.registeredTemplate);if(s.length)for(var r=i&&i.filter(function(e){return!/\./g.test(e)}),a=/tab|accordion|toolbar/.test(e.getModuleName()),o=0,l=r&&r||s;o<l.length;o++){var h=l[o];if(n&&n.length)for(var p=0;p<n.length;p++)if(a)for(v=0;v<e.registeredTemplate[h].length;v++)(c=e.registeredTemplate[h][v])&&c===n[p]&&(c.destroy(),e.registeredTemplate[h].splice(v,1));else for(v=0;v<e.registeredTemplate.template.length;v++){var c=e.registeredTemplate.template[v].rootNodes[0];c===n[p]&&(f=e.registeredTemplate[h])[v].destroy()}else if(e.registeredTemplate[h])for(var u=0,g=e.registeredTemplate[h];u<g.length;u++){var f=g[u];if(!f.destroyed){if(f._view){var d=f._view.renderer.parentNode(f.rootNodes[0]);if(!t.isNullOrUndefined(d))for(var v=0;v<f.rootNodes.length;v++)d.appendChild(f.rootNodes[v])}f.destroy()}}a&&n||delete e.registeredTemplate[h]}for(var m=0,C=e.tagObjects;m<C.length;m++)!function(e){e.instance&&e.instance.clearTemplate(i&&i.filter(function(t){return!!new RegExp(e.name).test(t)}))}(C[m])}function o(e,t,i){for(var n=e.replace(/\[/g,".").replace(/\]/g,"").split("."),s=i||{},r=0;r<n.length;r++){var a=n[r];r+1===n.length?s[a]=void 0===t?{}:t:void 0===s[a]&&(s[a]={}),s=s[a]}return s}function l(e,i){if("string"==typeof e||"function"==typeof e&&e.prototype&&e.prototype.CSPTemplate)return m(e,i);var n=e.elementRef.nativeElement._viewContainerRef,s=e.elementRef.nativeElement.propName;return function(i,r,a){var o={$implicit:i},l=n||r.viewContainerRef,h=l.createEmbeddedView(e,o);/EJS-MENTION|EJS-DROPDOWNLIST/.test(t.getValue("currentInstance.element.nodeName",l))?h.detectChanges():h.markForCheck();var p=r&&r.registeredTemplate?r.registeredTemplate:t.getValue("currentInstance.registeredTemplate",l);return a=a&&r.registeredTemplate?a:s,void 0===p[a]&&(p[a]=[]),p[a].push(h),h.rootNodes}}function h(e){return function(t,i){var n={set:p(i),get:c(i,e),enumerable:!0,configurable:!0};Object.defineProperty(t,i,n)}}function p(e){return function(i){void 0!==i&&(t.setValue(e+"Ref",i,this),"string"!=typeof i?(i.elementRef.nativeElement._viewContainerRef=this.viewContainerRef,i.elementRef.nativeElement.propName=e):this.saveChanges&&(this.saveChanges(e,i,void 0),this.dataBind()))}}function c(e,i){return function(){return t.getValue(e+"Ref",this)||i}}var u=/Ref$/,g=function(){function e(){this.hasChanges=!1,this.propCollection={},this.dataSource={},this.tags=[],this.tagObjects=[]}return e.prototype.ngOnInit=function(){this.registeredTemplate={};for(var e=0,i=this.tags;e<i.length;e++){var n=i[e],s=t.getValue("child"+n.substring(0,1).toUpperCase()+n.substring(1),this);s&&this.tagObjects.push({instance:s,name:n})}for(var r=Object.keys(this),a=0;a<r.length;a++){var o=t.getValue(r[a],this);"object"==typeof o&&o&&o.elementRef&&(t.getValue(-1!==r[a].indexOf("Ref")?r[a]:r[a]+"Ref",this)||t.setValue(-1!==r[a].indexOf("Ref")?r[a]:r[a]+"Ref",o,this),!t.getValue("viewContainerRef",this)||t.getValue("_viewContainerRef",o.elementRef.nativeElement)||t.getValue("propName",o.elementRef.nativeElement)||(t.setValue("_viewContainerRef",t.getValue("viewContainerRef",this),o.elementRef.nativeElement),t.setValue("propName",r[a].replace("Ref",""),o.elementRef.nativeElement)))}for(var l=0,h=r=(r=Object.keys(this)).filter(function(e){return/Ref$/i.test(e)});l<h.length;l++){var p=h[l].replace("Ref","");t.setValue(p.replace("_","."),t.getValue(p,this),this.propCollection)}var c=Object.keys(this);if(this.directivePropList){for(var u=0;u<this.directivePropList.length;u++){var g=this.directivePropList[u];-1===c.indexOf(g)||!1!==t.getValue(g,this)&&!t.getValue(g,this)||t.setValue(g,t.getValue(g,this),this.propCollection)}this.hasChanges=!0}this.isInitChanges=!0},e.prototype.registerEvents=function(e){r(e,this,!0)},e.prototype.ngOnChanges=function(e){for(var t=0,i=Object.keys(e);t<i.length;t++){var n=i[t],s=e[n];this.propCollection[n]=s.currentValue}this.isUpdated=!1,this.hasChanges=!0},e.prototype.clearTemplate=function(e){a(this,e)},e.prototype.getProperties=function(){for(var e=0,t=this.tagObjects;e<t.length;e++){var i=t[e];this.propCollection[i.name]=i.instance.getProperties()}return this.propCollection},e.prototype.isChanged=function(){var e=this.hasChanges;if(!t.isNullOrUndefined(this.propCollection[this.property]))for(var i=this.propCollection[this.property],n=Object.keys(i[0]),s=0;s<n.length;s++)if(!t.isNullOrUndefined(this.propCollection[n[s]])){var r=t.getValue(n[s],this),a=this.propCollection[this.property][0][n[s]];t.isNullOrUndefined(r)||this.propCollection[n[s]]===r||a===r||(t.setValue(n[s],r,this.propCollection[this.property][0]),t.setValue(n[s],r,this.propCollection),this.hasChanges=!0,this.isUpdated=!1)}for(var o=0,l=this.tagObjects;o<l.length;o++){var h=l[o];e=e||h.instance.hasChanges}return e||this.hasChanges},e.prototype.ngAfterContentChecked=function(){if(this.hasChanges=this.isChanged(),this.isInitChanges||this.hasChanges)for(var e=Object.keys(this),i=0,n=e=e.filter(function(e){return u.test(e)});i<n.length;i++){var s=n[i].replace("Ref","");t.setValue(s.replace("_","."),t.getValue(s,this),this.propCollection)}},e.prototype.ngAfterViewChecked=function(){this.isUpdated&&(this.hasChanges=!1)},e.prototype.ngAfterViewInit=function(){this.isInitChanges=!1},e.prototype.ngOnDestroy=function(){this.directivePropList=[]},e}(),f=function(){function e(e){this.list=[],this.hasChanges=!1,this.propertyName=e}return e.prototype.ngOnInit=function(){this.isInitChanges=!0},e.prototype.ngAfterContentInit=function(){var e=this,t=0;this.list=this.children.map(function(i){return i.dirIndex=t++,i.property=e.propertyName,i}),this.hasChanges=!0},e.prototype.getProperties=function(){for(var e=[],t=0,i=this.list;t<i.length;t++){var n=i[t];e.push(n.getProperties())}return e},e.prototype.isChanged=function(){var e=this,t=!1,i=0,n=!1,s=this.children.map(function(e){return e});if(this.list.length===this.children.length)for(var r=0;r<this.list.length;r++)this.list[r].propCollection.dataSource&&(this.list[r].dataSource&&this.list[r].propCollection.dataSource!==this.list[r].dataSource&&(this.list[r].propCollection.dataSource=this.list[r].dataSource,this.list[r].hasChanges=!0),"series"!==this.list[r].property&&(n=JSON.stringify(this.list[r].propCollection.dataSource)!==JSON.stringify(s[r].propCollection.dataSource))),n=this.list[r].hasChanges!==s[r].hasChanges;this.hasNewChildren=!(this.list.length===this.children.length&&!n)||null,this.hasNewChildren&&(this.list=this.children.map(function(t){return t.dirIndex=i++,t.property=e.propertyName,t}));for(var a=0,o=this.list;a<o.length;a++){var l=o[a];t=t||l.hasChanges}return!!this.list.length&&t},e.prototype.clearTemplate=function(e){for(var t=this,i=0,n=this.list;i<n.length;i++)n[i].clearTemplate(e&&e.map(function(e){return new RegExp(t.propertyName).test(e)?e.replace(t.propertyName+".",""):e}))},e.prototype.ngAfterContentChecked=function(){this.hasChanges=this.isChanged();for(var e=0;e<this.list.length;e++)t.getValue("childColumns",this.list[e])&&"columns"===t.getValue("property",this.list[e])&&t.setValue("columns",t.getValue("childColumns",this.list[e]).getProperties(),this.list[e].propCollection),this.list[e].isUpdated=!0},e.prototype.ngAfterViewInit=function(){this.isInitChanges=!1},e.prototype.ngOnDestroy=function(){this.list=[]},e}(),d=function(){function e(){this.isProtectedOnChange=!0,this.isFormInit=!0}return e.prototype.saveChanges=function(e,t,i){if(!this.isProtectedOnChange){this.oldProperties[e]=i,this.changedProperties[e]=t,this.finalUpdate();var n=setTimeout(this.dataBind.bind(this)),s=function(){clearTimeout(n)};this.finalUpdate=s}},e.prototype.ngOnInit=function(e){var i=e||this;i.registeredTemplate={},i.ngBoundedEvents={},i.isAngular=!0,i.isFormInit=!0,e&&(this.tags=e.tags),i.tags=this.tags||[],i.complexTemplate=this.complexTemplate||[],i.tagObjects=[],i.ngAttr=this.getAngularAttr(i.element),i.createElement=function(e,n){var s=i.srenderer?i.srenderer.createElement(e):t.createElement(e);return void 0===n?s:(s.innerHTML=n.innerHTML?n.innerHTML:"",void 0!==n.className&&(s.className=n.className),void 0!==n.id&&(s.id=n.id),void 0!==n.styles&&s.setAttribute("style",n.styles),void 0!==i.ngAttr&&s.setAttribute(i.ngAttr,""),void 0!==n.attrs&&t.attributes(s,n.attrs),s)};for(var n=0,s=i.tags;n<s.length;n++){var r=s[n],a={instance:t.getValue("child"+r.substring(0,1).toUpperCase()+r.substring(1),i),name:r};i.tagObjects.push(a)}for(var o=Object.keys(i),l=0;l<o.length;l++){var h=t.getValue(o[l],i);"object"==typeof h&&h&&h.elementRef&&("object"==typeof h&&h&&h.elementRef&&-1!==o[l].indexOf("_")&&-1===o[l].indexOf("Ref")&&t.setValue(o[l]+"Ref",h,i),!i.viewContainerRef||t.getValue("_viewContainerRef",h.elementRef.nativeElement)||t.getValue("propName",h.elementRef.nativeElement)||(t.setValue("_viewContainerRef",i.viewContainerRef,h.elementRef.nativeElement),t.setValue("propName",o[l].replace("Ref",""),h.elementRef.nativeElement)))}for(var p=0,c=o=(o=Object.keys(i)).filter(function(e){return/Ref$/i.test(e)&&/\_/i.test(e)});p<c.length;p++){var u=c[p].replace("Ref",""),g={};t.setValue(u.replace("_","."),t.getValue(u,i),g),i.setProperties(g,!0)}},e.prototype.getAngularAttr=function(e){for(var t,i=e.attributes,n=i.length,s=0;s<n;s++)/_ngcontent/g.test(i[s].name)&&(t=i[s].name);return t},e.prototype.ngAfterViewInit=function(e){var i=e||this;/ejs-tab|ejs-accordion/g.test(i.ngEle.nativeElement.outerHTML)&&(i.ngEle.nativeElement.style.visibility="hidden");var n=Object.keys(i);n=n.filter(function(e){return/Ref$/i.test(e)});for(var s="DocumentEditor"===i.getModuleName(),r=0,a=n;r<a.length;r++){var o=a[r].replace("Ref","");t.setValue(o.replace("_","."),t.getValue(o+"Ref",i),i)}var l=function(e){("undefined"!=typeof window&&e.element||e.getModuleName().includes("btn"))&&(e.appendTo(e.element),e.ngEle.nativeElement.style.visibility="")};s?l(i):setTimeout(function(){l(i)})},e.prototype.ngOnDestroy=function(e){var t=e||this;setTimeout(function(){"undefined"!=typeof window&&t.element.classList.contains("e-control")&&(t.destroy(),t.clearTemplate(null),setTimeout(function(){for(var e=0,i=Object.keys(t);e<i.length;e++){var n=i[e],s=t[n];if(s&&/object/.test(typeof s)&&0!==Object.keys(s).length)if(/properties|changedProperties|childChangedProperties|oldProperties|moduleLoader/.test(n))for(var r=0,a=Object.keys(t[n]);r<a.length;r++){var o=a[r],l=s[o];l&&/object/.test(typeof l)&&0!==Object.keys(l).length&&(l.parent||l.parentObj)&&(t[n][o]=null)}else(s.parent||s.parentObj)&&(t[n]=null)}}))})},e.prototype.clearTemplate=function(e,t){a(this,e,t)},e.prototype.ngAfterContentChecked=function(e){for(var i=e||this,n=0,s=i.tagObjects;n<s.length;n++){var r=s[n];if(!t.isUndefined(r.instance)&&(r.instance.isInitChanges||r.instance.hasChanges||r.instance.hasNewChildren)){var a={};if(r.instance.isInitChanges){var o=void 0;(v=t.getValue("instance.list",r))&&v.length&&(o=v[0].directivePropList);var l=!0;if(i.getModuleName&&"gantt"===i.getModuleName()&&(l=!1),o&&l&&-1===o.indexOf(r.instance.propertyName))for(var h=Object.keys(r.instance.list[0].propCollection),p=0;p<r.instance.list.length;p++){r.instance.list[p].propCollection[r.instance.propertyName]=[];for(var c={},u=0;u<h.length;u++)c[O=h[u]]=r.instance.list[p].propCollection[O];for(var g=0;g<r.instance.list[p].tags.length;g++)!function(e){var i=r.instance.list[p].tags[e],n=t.getValue("child"+i.substring(0,1).toUpperCase()+i.substring(1),r.instance.list[p]);if(n){var s=r.instance.list[p]["child"+i.substring(0,1).toUpperCase()+i.substring(1)],a=function(e){var i=[];if(e)for(var n=0;n<e.list.length;n++){var s=e.list[0].tags[0];if(s){var r=t.getValue("child"+s.substring(0,1).toUpperCase()+s.substring(1),e.list[n]);r&&(e.list[n].tagObjects.push({instance:r,name:s}),i.push(r))}}if(0!==i.length)for(var o=0;o<i.length;o++)a(i[o])};a(s),r.instance.list[p].tagObjects.push({instance:n,name:i})}}(g);r.instance.list[p].propCollection[r.instance.propertyName].push(c)}a[r.name]=r.instance.getProperties(),i.setProperties(a,r.instance.isInitChanges)}else{(i[r.name].length!==r.instance.list.length||/diagram|DashboardLayout/.test(i.getModuleName()))&&(i[r.name]=r.instance.list);for(var f=0,d=r.instance.list;f<d.length;f++){var v=d[f],m=r.instance.list.indexOf(v),C=t.getValue(r.name,i)[m],y=Object.keys(C);if(y=y.filter(function(e){return/Ref$/i.test(e)}),C.properties&&0!==Object.keys(C.properties).length)for(var b=0,V=y;b<V.length;b++){var O=V[b];O=O.replace(/Ref/,""),C.properties[O]=C.properties[O]?C.properties[O]:C.propCollection[O]}t.isUndefined(C)||t.isUndefined(C.setProperties)||(/diagram|DashboardLayout/.test(i.getModuleName())?C.setProperties(v.getProperties(),!0):C.setProperties(v.getProperties())),v.isUpdated=!0}/grid/.test(i.getModuleName())&&(a[r.name]=r.instance.getProperties(),i.setProperties(a,r.instance.isInitChanges))}}}},e.prototype.registerEvents=function(e){r(e,this)},e.prototype.twoWaySetter=function(e,i){var n=t.getValue(i,this.properties);n!==e&&(this.saveChanges(i,e,n),t.setValue(i,t.isNullOrUndefined(e)?null:e,this.properties),t.getValue(i+"Change",this).emit(e))},e.prototype.addTwoWay=function(e){for(var n=this,s=this,r=0,a=e;r<a.length;r++)!function(e){t.getValue(e,s),Object.defineProperty(s,e,{get:function(){return t.getValue(e,n.properties)},set:function(t){return n.twoWaySetter(t,e)}}),t.setValue(e+"Change",new i.EventEmitter,s)}(a[r])},e.prototype.addEventListener=function(e,i){var n=t.getValue(e,this);t.isUndefined(n)||(this.ngBoundedEvents[e]||(this.ngBoundedEvents[e]=new Map),this.ngBoundedEvents[e].set(i,n.subscribe(i)))},e.prototype.removeEventListener=function(e,i){var n=t.getValue(e,this);t.isUndefined(n)||this.ngBoundedEvents[e].get(i).unsubscribe()},e.prototype.trigger=function(e,i,n){var s=t.getValue(e,this),r=this.isProtectedOnChange;this.isProtectedOnChange=!1,i&&(i.name=e),t.isUndefined(s)||s.next(i);var a=t.getValue("local"+e.charAt(0).toUpperCase()+e.slice(1),this);t.isUndefined(a)||a.call(this,i),this.isProtectedOnChange=r,n&&(this.preventChange=this.isPreventChange,n.call(this,i)),this.isPreventChange=!1},e}(),v=function(){function e(){}return e.prototype.propagateChange=function(e){},e.prototype.propagateTouch=function(){},e.prototype.localChange=function(e){var i=void 0===e.checked?e.value:e.checked;if(this.objCheck=t.isObject(i),!0===this.isUpdated&&(this.angularValue=this.oldValue),!0===this.objCheck)this.duplicateValue=JSON.stringify(i),this.duplicateAngularValue=JSON.stringify(this.angularValue),this.duplicateValue!==this.duplicateAngularValue&&void 0!==this.propagateChange&&void 0!==i&&(this.propagateChange(i),this.angularValue=i);else if(i!==this.angularValue&&void 0!==this.propagateChange&&void 0!==i)if(""!==i&&null!==i)this.propagateChange(i),this.angularValue=i;else{var n=i;this.propagateChange(n),this.angularValue=i}this.cdr.markForCheck()},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){this.propagateTouch=e},e.prototype.twoWaySetter=function(e,i){var n=this.oldValue||t.getValue(i,this.properties),s=this.inputElement||this.element;(!s||n!==e||this.value!==e||void 0!==s.value&&""!==s.value)&&(this.saveChanges(i,e,n),t.setValue(i,t.isNullOrUndefined(e)?null:e,this.properties),t.getValue(i+"Change",this).emit(e))},e.prototype.ngAfterViewInit=function(e){var t=e||this;if("undefined"!=typeof window){t.getModuleName().includes("dropdowntree")?setTimeout(function(){t.appendTo(t.element)}):t.appendTo(t.element);var i=t.inputElement||t.element;i.addEventListener("focus",t.ngOnFocus.bind(t)),i.addEventListener("blur",t.ngOnBlur.bind(t))}this.isFormInit=!1},e.prototype.setDisabledState=function(e){this.enabled=!e,this.disabled=e},e.prototype.writeValue=function(e){var t=/ejs-radiobutton/g;void 0===this.checked?this.value=e:this.ngEle&&("boolean"==typeof e?t.test(this.ngEle.nativeElement.outerHTML)?this.checked=e===this.value:this.checked=e:this.checked=e===this.value),this.angularValue=e,this.isUpdated=!0,this.preventChange=!this.isFormInit,this.cdr.markForCheck()},e.prototype.ngOnFocus=function(e){!0!==this.skipFromEvent&&this.focus.emit(e),this.cdr.markForCheck()},e.prototype.ngOnBlur=function(e){this.propagateTouch(),!0!==this.skipFromEvent&&this.blur.emit(e),this.cdr.markForCheck()},e.isFormBase=!0,e}(),m=t.getTemplateEngine();return t.setTemplateEngine({compile:l}),e.ComplexBase=g,e.ArrayBase=f,e.ComponentBase=d,e.FormBase=v,e.applyMixins=n,e.ComponentMixins=s,e.registerEvents=r,e.clearTemplate=a,e.setValue=o,e.compile=l,e.Template=h,e}({},ej.base,core),this.ejs=ej;
11
11
  //# sourceMappingURL=ej2-angular-base.min.js.map