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