@syncfusion/ej2-angular-base 20.1.52 → 20.2.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-angular-base.min.js","sources":["../../src/util.js","../../src/template.js","../../src/complex-array-base.js","../../src/component-base.js","../../src/form-base.js"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Angular Utility Module\n */\n/* tslint:disable */\nexport function applyMixins(derivedClass, baseClass) {\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (!derivedClass.prototype.hasOwnProperty(name) || baseClass.isFormBase) {\n derivedClass.prototype[name] = baseClass.prototype[name];\n }\n });\n });\n}\n/* tslint:disable */\nexport function ComponentMixins(baseClass) {\n return function (derivedClass) {\n applyMixins(derivedClass, baseClass);\n };\n}\n/**\n * @private\n */\nexport function registerEvents(eventList, obj, direct) {\n var ngEventsEmitter = {};\n if (eventList && eventList.length) {\n for (var _i = 0, eventList_1 = eventList; _i < eventList_1.length; _i++) {\n var event_1 = eventList_1[_i];\n if (direct === true) {\n obj.propCollection[event_1] = new EventEmitter(false);\n obj[event_1] = obj.propCollection[event_1];\n }\n else {\n ngEventsEmitter[event_1] = new EventEmitter(false);\n }\n }\n if (direct !== true) {\n obj.setProperties(ngEventsEmitter, true);\n }\n }\n}\n/**\n * @private\n */\nexport function clearTemplate(_this, templateNames, index) {\n var regTemplates = Object.keys(_this.registeredTemplate);\n if (regTemplates.length) {\n /* istanbul ignore next */\n var regProperties = templateNames && templateNames.filter(function (val) {\n return (/\\./g.test(val) ? false : true);\n });\n for (var _i = 0, _a = (regProperties && regProperties || regTemplates); _i < _a.length; _i++) {\n var registeredTemplate = _a[_i];\n /* istanbul ignore next */\n if (index && index.length) {\n for (var e = 0; e < index.length; e++) {\n for (var m = 0; m < _this.registeredTemplate.template.length; m++) {\n var value = _this.registeredTemplate.template[m].rootNodes[0];\n if (value === index[e]) {\n var rt = _this.registeredTemplate[registeredTemplate];\n rt[m].destroy();\n }\n }\n }\n }\n else {\n if (_this.registeredTemplate[registeredTemplate]) {\n for (var _b = 0, _c = _this.registeredTemplate[registeredTemplate]; _b < _c.length; _b++) {\n var rt = _c[_b];\n if (!rt.destroyed) {\n if (rt._view) {\n var pNode = rt._view.renderer.parentNode(rt.rootNodes[0]);\n if (!isNullOrUndefined(pNode)) {\n for (var m = 0; m < rt.rootNodes.length; m++) {\n pNode.appendChild(rt.rootNodes[m]);\n }\n }\n }\n rt.destroy();\n }\n }\n }\n }\n delete _this.registeredTemplate[registeredTemplate];\n }\n }\n var _loop_1 = function (tagObject) {\n if (tagObject.instance) {\n /* istanbul ignore next */\n tagObject.instance.clearTemplate((templateNames && templateNames.filter(function (val) {\n return (new RegExp(tagObject.name).test(val) ? true : false);\n })));\n }\n };\n for (var _d = 0, _e = _this.tagObjects; _d < _e.length; _d++) {\n var tagObject = _e[_d];\n _loop_1(tagObject);\n }\n}\n/**\n * To set value for the nameSpace in desired object.\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @return {void}\n * @private\n */\nexport function setValue(nameSpace, value, object) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n /* istanbul ignore next */\n var fromObj = object || {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (i + 1 === keys.length) {\n fromObj[key] = value === undefined ? {} : value;\n }\n else if (fromObj[key] === undefined) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return fromObj;\n}\n","import { setTemplateEngine, getTemplateEngine } from '@syncfusion/ej2-base';\nimport { setValue, getValue } from '@syncfusion/ej2-base';\nvar stringCompiler = getTemplateEngine();\n/**\n * Angular Template Compiler\n */\nexport function compile(templateEle, helper) {\n if (typeof templateEle === 'string') {\n return stringCompiler(templateEle, helper);\n }\n else {\n var contRef_1 = templateEle.elementRef.nativeElement._viewContainerRef;\n var pName_1 = templateEle.elementRef.nativeElement.propName;\n //tslint:disable-next-line \n return function (data, component, propName) {\n var context = { $implicit: data };\n /* istanbul ignore next */\n var conRef = contRef_1 ? contRef_1 : component.viewContainerRef;\n var viewRef = conRef.createEmbeddedView(templateEle, context);\n viewRef.markForCheck();\n /* istanbul ignore next */\n var viewCollection = (component && component.registeredTemplate) ?\n component.registeredTemplate : getValue('currentInstance.registeredTemplate', conRef);\n propName = (propName && component.registeredTemplate) ? propName : pName_1;\n if (typeof viewCollection[propName] === 'undefined') {\n viewCollection[propName] = [];\n }\n viewCollection[propName].push(viewRef);\n return viewRef.rootNodes;\n };\n }\n}\n/**\n * Property decorator for angular.\n */\nexport function Template(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: setter(key),\n get: getter(key, defaultValue),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, propertyDescriptor);\n };\n}\nfunction setter(key) {\n return function (val) {\n if (val === undefined) {\n return;\n }\n setValue(key + 'Ref', val, this);\n if (typeof val !== 'string') {\n val.elementRef.nativeElement._viewContainerRef = this.viewContainerRef;\n val.elementRef.nativeElement.propName = key;\n }\n else {\n if (this.saveChanges) {\n this.saveChanges(key, val, undefined);\n this.dataBind();\n }\n }\n };\n}\nfunction getter(key, defaultValue) {\n return function () {\n /* istanbul ignore next */\n return getValue(key + 'Ref', this) || defaultValue;\n };\n}\n//tslint:disable-next-line\nsetTemplateEngine({ compile: compile });\n","import { getValue, setValue, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { clearTemplate, registerEvents } from './util';\nvar refRegex = /Ref$/;\nvar ComplexBase = /** @class */ (function () {\n function ComplexBase() {\n this.hasChanges = false;\n this.propCollection = {};\n this.dataSource = {};\n this.tags = [];\n this.tagObjects = [];\n }\n ComplexBase.prototype.ngOnInit = function () {\n this.registeredTemplate = {};\n for (var _i = 0, _a = this.tags; _i < _a.length; _i++) {\n var tag = _a[_i];\n var objInstance = getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), this);\n if (objInstance) {\n this.tagObjects.push({ instance: objInstance, name: tag });\n }\n }\n var templateProperties = Object.keys(this);\n for (var i = 0; i < templateProperties.length; i++) {\n var tempProp = getValue(templateProperties[i], this);\n if (typeof tempProp === 'object' && tempProp && tempProp.elementRef) {\n if (!getValue(templateProperties[i].indexOf('Ref') !== -1 ? templateProperties[i] : templateProperties[i] + 'Ref', this)) {\n setValue(templateProperties[i].indexOf('Ref') !== -1 ? templateProperties[i] : templateProperties[i] + 'Ref', tempProp, this);\n }\n if (getValue(\"viewContainerRef\", this) && !getValue(\"_viewContainerRef\", tempProp.elementRef.nativeElement) && !getValue(\"propName\", tempProp.elementRef.nativeElement)) {\n setValue(\"_viewContainerRef\", getValue(\"viewContainerRef\", this), tempProp.elementRef.nativeElement);\n setValue(\"propName\", templateProperties[i].replace(\"Ref\", ''), tempProp.elementRef.nativeElement);\n }\n }\n }\n templateProperties = Object.keys(this);\n templateProperties = templateProperties.filter(function (val) {\n return /Ref$/i.test(val);\n });\n for (var _b = 0, templateProperties_1 = templateProperties; _b < templateProperties_1.length; _b++) {\n var tempName = templateProperties_1[_b];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName, this), this.propCollection);\n }\n // Angular 9 compatibility to overcome ngOnchange not get triggered issue\n // To Update properties to \"this.propCollection\"\n var propList = Object.keys(this);\n /* istanbul ignore next */\n if (this.directivePropList) {\n for (var k = 0; k < this.directivePropList.length; k++) {\n var dirPropName = this.directivePropList[k];\n if (propList.indexOf(dirPropName) !== -1 && (getValue(dirPropName, this) === false || getValue(dirPropName, this))) {\n setValue(dirPropName, getValue(dirPropName, this), this.propCollection);\n }\n }\n this.hasChanges = true;\n }\n this.isInitChanges = true;\n };\n ComplexBase.prototype.registerEvents = function (eventList) {\n registerEvents(eventList, this, true);\n };\n ComplexBase.prototype.ngOnChanges = function (changes) {\n for (var _i = 0, _a = Object.keys(changes); _i < _a.length; _i++) {\n var propName = _a[_i];\n var changedVal = changes[propName];\n this.propCollection[propName] = changedVal.currentValue;\n }\n this.isUpdated = false;\n this.hasChanges = true;\n };\n /* istanbul ignore next */\n ComplexBase.prototype.clearTemplate = function (templateNames) {\n clearTemplate(this, templateNames);\n };\n ComplexBase.prototype.getProperties = function () {\n /* istanbul ignore next */\n for (var _i = 0, _a = this.tagObjects; _i < _a.length; _i++) {\n var tagObject = _a[_i];\n this.propCollection[tagObject.name] = tagObject.instance.getProperties();\n }\n return this.propCollection;\n };\n ComplexBase.prototype.isChanged = function () {\n var result = this.hasChanges;\n if (!isNullOrUndefined(this.propCollection[this.property])) {\n var tempProps = this.propCollection[this.property];\n var props = Object.keys(tempProps[0]);\n for (var d = 0; d < props.length; d++) {\n if (!isNullOrUndefined(this.propCollection[props[d]])) {\n var val = getValue(props[d], this);\n var propVal = this.propCollection[this.property][0][props[d]];\n if (!isNullOrUndefined(val) && this.propCollection[props[d]] !== val\n && propVal !== val) {\n setValue(props[d], val, this.propCollection[this.property][0]);\n setValue(props[d], val, this.propCollection);\n this.hasChanges = true;\n this.isUpdated = false;\n }\n }\n }\n }\n /* istanbul ignore next */\n for (var _i = 0, _a = this.tagObjects; _i < _a.length; _i++) {\n var item = _a[_i];\n result = result || item.instance.hasChanges;\n }\n return result || this.hasChanges;\n };\n ComplexBase.prototype.ngAfterContentChecked = function () {\n this.hasChanges = this.isChanged();\n if (this.isInitChanges || this.hasChanges) {\n var templateProperties = Object.keys(this);\n templateProperties = templateProperties.filter(function (val) {\n return refRegex.test(val);\n });\n for (var _i = 0, templateProperties_2 = templateProperties; _i < templateProperties_2.length; _i++) {\n var tempName = templateProperties_2[_i];\n var propName = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName, this), this.propCollection);\n }\n }\n };\n ComplexBase.prototype.ngAfterViewChecked = function () {\n /* istanbul ignore next */\n if (this.isUpdated) {\n this.hasChanges = false;\n }\n };\n ComplexBase.prototype.ngAfterViewInit = function () {\n /* istanbul ignore next */\n this.isInitChanges = false;\n };\n ComplexBase.prototype.ngOnDestroy = function () {\n /* istanbul ignore next */\n this.directivePropList = [];\n };\n return ComplexBase;\n}());\nexport { ComplexBase };\nvar ArrayBase = /** @class */ (function () {\n function ArrayBase(propertyName) {\n this.list = [];\n this.hasChanges = false;\n this.propertyName = propertyName;\n }\n ArrayBase.prototype.ngOnInit = function () {\n this.isInitChanges = true;\n };\n ArrayBase.prototype.ngAfterContentInit = function () {\n var _this = this;\n var index = 0;\n /* istanbul ignore next */\n this.list = this.children.map(function (child) {\n child.dirIndex = index++;\n child.property = _this.propertyName;\n return child;\n });\n this.hasChanges = true;\n };\n ArrayBase.prototype.getProperties = function () {\n var onlyProp = [];\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var item = _a[_i];\n onlyProp.push(item.getProperties());\n }\n return onlyProp;\n };\n ArrayBase.prototype.isChanged = function () {\n var _this = this;\n var result = false;\n var index = 0;\n var isSourceChanged = false;\n // tslint:disable-next-line\n var childrenDataSource = this.children.map(function (child) {\n return child;\n });\n /* istanbul ignore next */\n if (this.list.length === this.children.length) {\n for (var i = 0; i < this.list.length; i++) {\n if (this.list[i].propCollection.dataSource) {\n if (this.list[i].dataSource && this.list[i].propCollection.dataSource !== this.list[i].dataSource) {\n this.list[i].propCollection.dataSource = this.list[i].dataSource;\n this.list[i].hasChanges = true;\n }\n }\n if (childrenDataSource[i].hasChanges) {\n isSourceChanged = true;\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/.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","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","JSON","stringify","duplicateAngularValue","optionalValue","registerOnChange","registerFunction","registerOnTouched","inputElement","tempFormAfterViewThis","ngOnFocus","ngOnBlur","setDisabledState","disabled","enabled","writeValue","regExp","skipFromEvent","focus","blur","getTemplateEngine","setTemplateEngine"],"mappings":"oEAMA,SAAgBA,GAAYC,EAAcC,GACtCA,EAAUC,QAAQ,SAAUD,GACxBE,OAAOC,oBAAoBH,EAAUI,WAAWH,QAAQ,SAAUI,GACzDN,EAAaK,UAAUE,eAAeD,KAASL,EAAUO,aAC1DR,EAAaK,UAAUC,GAAQL,EAAUI,UAAUC,QAMnE,QAAgBG,GAAgBR,GAC5B,MAAO,UAAUD,GACbD,EAAYC,EAAcC,IAMlC,QAAgBS,GAAeC,EAAWC,EAAKC,GAC3C,GAAIC,KACJ,IAAIH,GAAaA,EAAUI,OAAQ,CAC/B,IAAK,GAAIC,GAAK,EAAGC,EAAcN,EAAWK,EAAKC,EAAYF,OAAQC,IAAM,CACrE,GAAIE,GAAUD,EAAYD,IACX,IAAXH,GACAD,EAAIO,eAAeD,GAAW,GAAIE,iBAAa,GAC/CR,EAAIM,GAAWN,EAAIO,eAAeD,IAGlCJ,EAAgBI,GAAW,GAAIE,iBAAa,IAGrC,IAAXP,GACAD,EAAIS,cAAcP,GAAiB,IAO/C,QAAgBQ,GAAcC,EAAOC,EAAeC,GAChD,GAAIC,GAAevB,OAAOwB,KAAKJ,EAAMK,mBACrC,IAAIF,EAAaX,OAKb,IAAK,GAHDc,GAAgBL,GAAiBA,EAAcM,OAAO,SAAUC,GAChE,OAAQ,MAAMC,KAAKD,KAEdf,EAAK,EAAGiB,EAAMJ,GAAiBA,GAAiBH,EAAeV,EAAKiB,EAAGlB,OAAQC,IAAM,CAC1F,GAAIY,GAAqBK,EAAGjB,EAE5B,IAAIS,GAASA,EAAMV,OACf,IAAK,GAAImB,GAAI,EAAGA,EAAIT,EAAMV,OAAQmB,IAC9B,IAASC,EAAI,EAAGA,EAAIZ,EAAMK,mBAAmBQ,SAASrB,OAAQoB,IAC9CZ,EAAMK,mBAAmBQ,SAASD,GAAGE,UAAU,KAC7CZ,EAAMS,KACZI,EAAKf,EAAMK,mBAAmBA,IAC/BO,GAAGI,cAMlB,IAAIhB,EAAMK,mBAAmBA,GACzB,IAAK,GAAIY,GAAK,EAAGC,EAAKlB,EAAMK,mBAAmBA,GAAqBY,EAAKC,EAAG1B,OAAQyB,IAAM,CACtF,GAAIF,GAAKG,EAAGD,EACZ,KAAKF,EAAGI,UAAW,CACf,GAAIJ,EAAGK,MAAO,CACV,GAAIC,GAAQN,EAAGK,MAAME,SAASC,WAAWR,EAAGD,UAAU,GACtD,KAAKU,oBAAkBH,GACnB,IAAK,GAAIT,GAAI,EAAGA,EAAIG,EAAGD,UAAUtB,OAAQoB,IACrCS,EAAMI,YAAYV,EAAGD,UAAUF,IAI3CG,EAAGC,iBAKZhB,GAAMK,mBAAmBA,GAWxC,IAAK,GAAIqB,GAAK,EAAGC,EAAK3B,EAAM4B,WAAYF,EAAKC,EAAGnC,OAAQkC,KAR1C,SAAUG,GAChBA,EAAUC,UAEVD,EAAUC,SAAS/B,cAAeE,GAAiBA,EAAcM,OAAO,SAAUC,GAC9E,QAAQ,GAAIuB,QAAOF,EAAU9C,MAAM0B,KAAKD,OAKhCmB,EAAGD,IAY3B,QAAgBM,GAASC,EAAWC,EAAOC,GAIvC,IAAK,GAHD/B,GAAO6B,EAAUG,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAAIC,MAAM,KAE9DC,EAAUH,MACLI,EAAI,EAAGA,EAAInC,EAAKZ,OAAQ+C,IAAK,CAClC,GAAIC,GAAMpC,EAAKmC,EACXA,GAAI,IAAMnC,EAAKZ,OACf8C,EAAQE,OAAiBC,KAAVP,KAA2BA,MAEpBO,KAAjBH,EAAQE,KACbF,EAAQE,OAEZF,EAAUA,EAAQE,GAEtB,MAAOF,GCpHX,QAAgBI,GAAQC,EAAaC,GACjC,GAA2B,gBAAhBD,GACP,MAAOE,GAAeF,EAAaC,EAGnC,IAAIE,GAAYH,EAAYI,WAAWC,cAAcC,kBACjDC,EAAUP,EAAYI,WAAWC,cAAcG,QAEnD,OAAO,UAAUC,EAAMC,EAAWF,GAC9B,GAAIG,IAAYC,UAAWH,GAEvBI,EAASV,GAAwBO,EAAUI,iBAC3CC,EAAUF,EAAOG,mBAAmBhB,EAAaW,EACrDI,GAAQE,cAER,IAAIC,GAAkBR,GAAaA,EAAUhD,mBACzCgD,EAAUhD,mBAAqByD,WAAS,qCAAsCN,EAMlF,OALAL,GAAYA,GAAYE,EAAUhD,mBAAsB8C,EAAWD,MAC3B,KAA7BW,EAAeV,KACtBU,EAAeV,OAEnBU,EAAeV,GAAUY,KAAKL,GACvBA,EAAQ5C,WAO3B,QAAgBkD,GAASC,GACrB,MAAO,UAAUC,EAAQ1B,GACrB,GAAI2B,IACAC,IAAKC,EAAO7B,GACZ8B,IAAKC,EAAO/B,EAAKyB,GACjBO,YAAY,EACZC,cAAc,EAElB7F,QAAO8F,eAAeR,EAAQ1B,EAAK2B,IAG3C,QAASE,GAAO7B,GACZ,MAAO,UAAUhC,OACDiC,KAARjC,IAGJwB,WAASQ,EAAM,MAAOhC,EAAKmE,MACR,gBAARnE,IACPA,EAAIuC,WAAWC,cAAcC,kBAAoB0B,KAAKlB,iBACtDjD,EAAIuC,WAAWC,cAAcG,SAAWX,GAGpCmC,KAAKC,cACLD,KAAKC,YAAYpC,EAAKhC,MAAKiC,IAC3BkC,KAAKE,cAKrB,QAASN,GAAO/B,EAAKyB,GACjB,MAAO,YAEH,MAAOH,YAAStB,EAAM,MAAOmC,OAASV,GCjE9C,GAAIa,GAAW,OACXC,EAA6B,WAC7B,QAASA,KACLJ,KAAKK,YAAa,EAClBL,KAAK/E,kBACL+E,KAAKM,cACLN,KAAKO,QACLP,KAAK/C,cA8HT,MA5HAmD,GAAYjG,UAAUqG,SAAW,WAC7BR,KAAKtE,qBACL,KAAK,GAAIZ,GAAK,EAAGiB,EAAKiE,KAAKO,KAAMzF,EAAKiB,EAAGlB,OAAQC,IAAM,CACnD,GAAI2F,GAAM1E,EAAGjB,GACT4F,EAAcvB,WAAS,QAAUsB,EAAIE,UAAU,EAAG,GAAGC,cAAgBH,EAAIE,UAAU,GAAIX,KACvFU,IACAV,KAAK/C,WAAWmC,MAAOjC,SAAUuD,EAAatG,KAAMqG,IAI5D,IAAK,GADDI,GAAqB5G,OAAOwB,KAAKuE,MAC5BpC,EAAI,EAAGA,EAAIiD,EAAmBhG,OAAQ+C,IAAK,CAChD,GAAIkD,GAAW3B,WAAS0B,EAAmBjD,GAAIoC,KACvB,iBAAbc,IAAyBA,GAAYA,EAAS1C,aAChDe,YAAmD,IAA1C0B,EAAmBjD,GAAGmD,QAAQ,OAAgBF,EAAmBjD,GAAKiD,EAAmBjD,GAAK,MAAOoC,OAC/G3C,YAAmD,IAA1CwD,EAAmBjD,GAAGmD,QAAQ,OAAgBF,EAAmBjD,GAAKiD,EAAmBjD,GAAK,MAAOkD,EAAUd,OAExHb,WAAS,mBAAoBa,OAAUb,WAAS,oBAAqB2B,EAAS1C,WAAWC,gBAAmBc,WAAS,WAAY2B,EAAS1C,WAAWC,iBACrJhB,WAAS,oBAAqB8B,WAAS,mBAAoBa,MAAOc,EAAS1C,WAAWC,eACtFhB,WAAS,WAAYwD,EAAmBjD,GAAGH,QAAQ,MAAO,IAAKqD,EAAS1C,WAAWC,iBAQ/F,IAAK,GAAI/B,GAAK,EAAG0E,EAHjBH,GADAA,EAAqB5G,OAAOwB,KAAKuE,OACOpE,OAAO,SAAUC,GACrD,MAAO,QAAQC,KAAKD,KAEoCS,EAAK0E,EAAqBnG,OAAQyB,IAAM,CAChG,GACIkC,GADWwC,EAAqB1E,GACZmB,QAAQ,MAAO,GACvCJ,YAASmB,EAASf,QAAQ,IAAK,KAAM0B,WAASX,EAAUwB,MAAOA,KAAK/E,gBAIxE,GAAIgG,GAAWhH,OAAOwB,KAAKuE,KAE3B,IAAIA,KAAKkB,kBAAmB,CACxB,IAAK,GAAIC,GAAI,EAAGA,EAAInB,KAAKkB,kBAAkBrG,OAAQsG,IAAK,CACpD,GAAIC,GAAcpB,KAAKkB,kBAAkBC,IACF,IAAnCF,EAASF,QAAQK,KAAwD,IAAhCjC,WAASiC,EAAapB,QAAmBb,WAASiC,EAAapB,OACxG3C,WAAS+D,EAAajC,WAASiC,EAAapB,MAAOA,KAAK/E,gBAGhE+E,KAAKK,YAAa,EAEtBL,KAAKqB,eAAgB,GAEzBjB,EAAYjG,UAAUK,eAAiB,SAAUC,GAC7CD,EAAeC,EAAWuF,MAAM,IAEpCI,EAAYjG,UAAUmH,YAAc,SAAUC,GAC1C,IAAK,GAAIzG,GAAK,EAAGiB,EAAK9B,OAAOwB,KAAK8F,GAAUzG,EAAKiB,EAAGlB,OAAQC,IAAM,CAC9D,GAAI0D,GAAWzC,EAAGjB,GACd0G,EAAaD,EAAQ/C,EACzBwB,MAAK/E,eAAeuD,GAAYgD,EAAWC,aAE/CzB,KAAK0B,WAAY,EACjB1B,KAAKK,YAAa,GAGtBD,EAAYjG,UAAUiB,cAAgB,SAAUE,GAC5CF,EAAc4E,KAAM1E,IAExB8E,EAAYjG,UAAUwH,cAAgB,WAElC,IAAK,GAAI7G,GAAK,EAAGiB,EAAKiE,KAAK/C,WAAYnC,EAAKiB,EAAGlB,OAAQC,IAAM,CACzD,GAAIoC,GAAYnB,EAAGjB,EACnBkF,MAAK/E,eAAeiC,EAAU9C,MAAQ8C,EAAUC,SAASwE,gBAE7D,MAAO3B,MAAK/E,gBAEhBmF,EAAYjG,UAAUyH,UAAY,WAC9B,GAAIC,GAAS7B,KAAKK,UAClB,KAAKxD,oBAAkBmD,KAAK/E,eAAe+E,KAAK8B,WAG5C,IAAK,GAFDC,GAAY/B,KAAK/E,eAAe+E,KAAK8B,UACrCE,EAAQ/H,OAAOwB,KAAKsG,EAAU,IACzBE,EAAI,EAAGA,EAAID,EAAMnH,OAAQoH,IAC9B,IAAKpF,oBAAkBmD,KAAK/E,eAAe+G,EAAMC,KAAM,CACnD,GAAIpG,GAAMsD,WAAS6C,EAAMC,GAAIjC,MACzBkC,EAAUlC,KAAK/E,eAAe+E,KAAK8B,UAAU,GAAGE,EAAMC,GACrDpF,qBAAkBhB,IAAQmE,KAAK/E,eAAe+G,EAAMC,MAAQpG,GAC1DqG,IAAYrG,IACfwB,WAAS2E,EAAMC,GAAIpG,EAAKmE,KAAK/E,eAAe+E,KAAK8B,UAAU,IAC3DzE,WAAS2E,EAAMC,GAAIpG,EAAKmE,KAAK/E,gBAC7B+E,KAAKK,YAAa,EAClBL,KAAK0B,WAAY,GAMjC,IAAK,GAAI5G,GAAK,EAAGiB,EAAKiE,KAAK/C,WAAYnC,EAAKiB,EAAGlB,OAAQC,IAAM,CACzD,GAAIqH,GAAOpG,EAAGjB,EACd+G,GAASA,GAAUM,EAAKhF,SAASkD,WAErC,MAAOwB,IAAU7B,KAAKK,YAE1BD,EAAYjG,UAAUiI,sBAAwB,WAE1C,GADApC,KAAKK,WAAaL,KAAK4B,YACnB5B,KAAKqB,eAAiBrB,KAAKK,WAK3B,IAAK,GAJDQ,GAAqB5G,OAAOwB,KAAKuE,MAI5BlF,EAAK,EAAGuH,EAHjBxB,EAAqBA,EAAmBjF,OAAO,SAAUC,GACrD,MAAOsE,GAASrE,KAAKD,KAEmCf,EAAKuH,EAAqBxH,OAAQC,IAAM,CAChG,GACI0D,GADW6D,EAAqBvH,GACZ2C,QAAQ,MAAO,GACvCJ,YAASmB,EAASf,QAAQ,IAAK,KAAM0B,WAASX,EAAUwB,MAAOA,KAAK/E,kBAIhFmF,EAAYjG,UAAUmI,mBAAqB,WAEnCtC,KAAK0B,YACL1B,KAAKK,YAAa,IAG1BD,EAAYjG,UAAUoI,gBAAkB,WAEpCvC,KAAKqB,eAAgB,GAEzBjB,EAAYjG,UAAUqI,YAAc,WAEhCxC,KAAKkB,sBAEFd,KAGPqC,EAA2B,WAC3B,QAASA,GAAUC,GACf1C,KAAK2C,QACL3C,KAAKK,YAAa,EAClBL,KAAK0C,aAAeA,EAuFxB,MArFAD,GAAUtI,UAAUqG,SAAW,WAC3BR,KAAKqB,eAAgB,GAEzBoB,EAAUtI,UAAUyI,mBAAqB,WACrC,GAAIvH,GAAQ2E,KACRzE,EAAQ,CAEZyE,MAAK2C,KAAO3C,KAAK6C,SAASC,IAAI,SAAUC,GAGpC,MAFAA,GAAMC,SAAWzH,IACjBwH,EAAMjB,SAAWzG,EAAMqH,aAChBK,IAEX/C,KAAKK,YAAa,GAEtBoC,EAAUtI,UAAUwH,cAAgB,WAEhC,IAAK,GADDsB,MACKnI,EAAK,EAAGiB,EAAKiE,KAAK2C,KAAM7H,EAAKiB,EAAGlB,OAAQC,IAAM,CACnD,GAAIqH,GAAOpG,EAAGjB,EACdmI,GAAS7D,KAAK+C,EAAKR,iBAEvB,MAAOsB,IAEXR,EAAUtI,UAAUyH,UAAY,WAC5B,GAAIvG,GAAQ2E,KACR6B,GAAS,EACTtG,EAAQ,EACR2H,GAAkB,EAElBC,EAAqBnD,KAAK6C,SAASC,IAAI,SAAUC,GACjD,MAAOA,IAGX,IAAI/C,KAAK2C,KAAK9H,SAAWmF,KAAK6C,SAAShI,OACnC,IAAK,GAAI+C,GAAI,EAAGA,EAAIoC,KAAK2C,KAAK9H,OAAQ+C,IAC9BoC,KAAK2C,KAAK/E,GAAG3C,eAAeqF,YACxBN,KAAK2C,KAAK/E,GAAG0C,YAAcN,KAAK2C,KAAK/E,GAAG3C,eAAeqF,aAAeN,KAAK2C,KAAK/E,GAAG0C,aACnFN,KAAK2C,KAAK/E,GAAG3C,eAAeqF,WAAaN,KAAK2C,KAAK/E,GAAG0C,WACtDN,KAAK2C,KAAK/E,GAAGyC,YAAa,GAG9B8C,EAAmBvF,GAAGyC,aACtB6C,GAAkB,EAI9BlD,MAAKoD,iBAAkBpD,KAAK2C,KAAK9H,SAAWmF,KAAK6C,SAAShI,SAAUqI,IAA0B,KAC1FlD,KAAKoD,iBACLpD,KAAK2C,KAAO3C,KAAK6C,SAASC,IAAI,SAAUC,GAGpC,MAFAA,GAAMC,SAAWzH,IACjBwH,EAAMjB,SAAWzG,EAAMqH,aAChBK,IAIf,KAAK,GAAIjI,GAAK,EAAGiB,EAAKiE,KAAK2C,KAAM7H,EAAKiB,EAAGlB,OAAQC,IAAM,CACnD,GAAIqH,GAAOpG,EAAGjB,EACd+G,GAASA,GAAUM,EAAK9B,WAE5B,QAASL,KAAK2C,KAAK9H,QAAUgH,GAEjCY,EAAUtI,UAAUiB,cAAgB,SAAUE,GAG1C,IAAK,GAFDD,GAAQ2E,KAEHlF,EAAK,EAAGiB,EAAKiE,KAAK2C,KAAM7H,EAAKiB,EAAGlB,OAAQC,IAClCiB,EAAGjB,GACTM,cAAcE,GAAiBA,EAAcwH,IAAI,SAAUjH,GAC5D,MAAO,IAAIuB,QAAO/B,EAAMqH,cAAc5G,KAAKD,GAAOA,EAAI4B,QAAQpC,EAAMqH,aAAe,IAAK,IAAM7G,MAI1G4G,EAAUtI,UAAUiI,sBAAwB,WACxCpC,KAAKK,WAAaL,KAAK4B,WACvB,KAAK,GAAIhE,GAAI,EAAGA,EAAIoC,KAAK2C,KAAK9H,OAAQ+C,IAC9BuB,WAAS,eAAgBa,KAAK2C,KAAK/E,KAA8C,YAAvCuB,WAAS,WAAYa,KAAK2C,KAAK/E,KACzEP,WAAS,UAAW8B,WAAS,eAAgBa,KAAK2C,KAAK/E,IAAI+D,gBAAiB3B,KAAK2C,KAAK/E,GAAG3C,gBAE7F+E,KAAK2C,KAAK/E,GAAG8D,WAAY,GAGjCe,EAAUtI,UAAUoI,gBAAkB,WAClCvC,KAAKqB,eAAgB,GAEzBoB,EAAUtI,UAAUqI,YAAc,WAC9BxC,KAAK2C,SAEFF,KC9NPY,EAA+B,WAC/B,QAASA,KACLrD,KAAKsD,qBAAsB,EAC3BtD,KAAKuD,YAAa,EAoUtB,MAlUAF,GAAclJ,UAAU8F,YAAc,SAAUpC,EAAK2F,EAAUC,GAC3D,IAAIzD,KAAKsD,oBAAT,CAGAtD,KAAK0D,cAAc7F,GAAO4F,EAC1BzD,KAAK2D,kBAAkB9F,GAAO2F,EAC9BxD,KAAK4D,aAEL,IAAIC,GAAaC,WAAW9D,KAAKE,SAAS6D,KAAK/D,OAC3CgE,EAAc,WACdC,aAAaJ,GAEjB7D,MAAK4D,YAAcI,IAIvBX,EAAclJ,UAAUqG,SAAW,SAAU0D,GAEzC,GAAIC,GAAaD,GAAalE,IAC9BmE,GAAWzI,sBACXyI,EAAWC,mBACXD,EAAWE,WAAY,EACvBF,EAAWZ,YAAa,EAEpBW,IACAlE,KAAKO,KAAO2D,EAAU3D,MAE1B4D,EAAW5D,KAAOP,KAAKO,SACvB4D,EAAWG,gBAAkBtE,KAAKsE,oBAClCH,EAAWlH,cACXkH,EAAWI,OAASvE,KAAKwE,eAAeL,EAAWM,SAEnDN,EAAWO,cAAgB,SAAUC,EAASC,GAE1C,GAAIC,GAAMV,EAAWW,UAAYX,EAAWW,UAAUJ,cAAcC,GAAWD,gBAAcC,EAC7F,YAAsB,OACXE,GAEXA,EAAIE,UAAaH,EAAKG,UAAYH,EAAKG,UAAY,OAC5BjH,KAAnB8G,EAAKI,YACLH,EAAIG,UAAYJ,EAAKI,eAETlH,KAAZ8G,EAAKK,KACLJ,EAAII,GAAKL,EAAKK,QAEEnH,KAAhB8G,EAAKM,QACLL,EAAIM,aAAa,QAASP,EAAKM,YAETpH,KAAtBqG,EAAWI,QACXM,EAAIM,aAAahB,EAAWI,OAAQ,QAErBzG,KAAf8G,EAAKQ,OACLC,aAAWR,EAAKD,EAAKQ,OAElBP,GAEX,KAAK,GAAI/J,GAAK,EAAGiB,EAAKoI,EAAW5D,KAAMzF,EAAKiB,EAAGlB,OAAQC,IAAM,CACzD,GAAI2F,GAAM1E,EAAGjB,GACToC,GACAC,SAAUgC,WAAS,QAAUsB,EAAIE,UAAU,EAAG,GAAGC,cAAgBH,EAAIE,UAAU,GAAIwD,GACnF/J,KAAMqG,EAEV0D,GAAWlH,WAAWmC,KAAKlC,GAG/B,IAAK,GADDoI,GAAmBrL,OAAOwB,KAAK0I,GAC1BvG,EAAI,EAAGA,EAAI0H,EAAiBzK,OAAQ+C,IAAK,CAC9C,GAAI2H,GAAWpG,WAASmG,EAAiB1H,GAAIuG,EACrB,iBAAboB,IAAyBA,GAAYA,EAASnH,aAC7B,gBAAbmH,IAAyBA,GAAYA,EAASnH,aAAoD,IAAtCkH,EAAiB1H,GAAGmD,QAAQ,OAAuD,IAAxCuE,EAAiB1H,GAAGmD,QAAQ,QAC1I1D,WAASiI,EAAiB1H,GAAK,MAAO2H,EAAUpB,IAEhDA,EAAWrF,kBAAqBK,WAAS,oBAAqBoG,EAASnH,WAAWC,gBAAmBc,WAAS,WAAYoG,EAASnH,WAAWC,iBAC9IhB,WAAS,oBAAqB8G,EAAWrF,iBAAkByG,EAASnH,WAAWC,eAC/EhB,WAAS,WAAYiI,EAAiB1H,GAAGH,QAAQ,MAAO,IAAK8H,EAASnH,WAAWC,iBAQ7F,IAAK,GAAI/B,GAAK,EAAGkJ,EAHjBF,GADAA,EAAmBrL,OAAOwB,KAAK0I,IACKvI,OAAO,SAAUC,GACjD,MAAO,QAAQC,KAAKD,IAAQ,MAAMC,KAAKD,KAEaS,EAAKkJ,EAAmB3K,OAAQyB,IAAM,CAC1F,GACIkC,GADWgH,EAAmBlJ,GACVmB,QAAQ,MAAO,IACnC5B,IACJwB,YAASmB,EAASf,QAAQ,IAAK,KAAM0B,WAASX,EAAU2F,GAAatI,GACrEsI,EAAWhJ,cAAcU,GAAK,KAGtCwH,EAAclJ,UAAUqK,eAAiB,SAAUK,GAI/C,IAAK,GADDY,GAFAJ,EAAaR,EAAIQ,WACjBxK,EAASwK,EAAWxK,OAEf+C,EAAI,EAAGA,EAAI/C,EAAQ+C,IAEpB,cAAc9B,KAAKuJ,EAAWzH,GAAGxD,QACjCqL,EAAOJ,EAAWzH,GAAGxD,KAG7B,OAAOqL,IAIXpC,EAAclJ,UAAUoI,gBAAkB,SAAU2B,GAEhD,GAAIwB,GAAoBxB,GAAalE,IACxB,0BAEFlE,KAAK4J,EAAkBC,MAAMtH,cAAcuH,aAClDF,EAAkBC,MAAMtH,cAAcwH,MAAMC,WAAa,SAkB7D,KAAK,GAJDjF,GAAqB5G,OAAOwB,KAAKiK,GAI5B5K,EAAK,EAAGkG,EAHjBH,EAAqBA,EAAmBjF,OAAO,SAAUC,GACrD,MAAO,QAAQC,KAAKD,KAEoCf,EAAKkG,EAAqBnG,OAAQC,IAAM,CAChG,GACI0D,GADWwC,EAAqBlG,GACZ2C,QAAQ,MAAO,GACvCJ,YAASmB,EAASf,QAAQ,IAAK,KAAM0B,WAASX,EAAW,MAAOkH,GAAoBA,GAIxF5B,WAAW,YAEe,mBAAXiC,SAA0BL,EAAkBjB,SAAWiB,EAAkBM,gBAAgBC,SAAS,UACzGP,EAAkBQ,SAASR,EAAkBjB,SAC7CiB,EAAkBC,MAAMtH,cAAcwH,MAAMC,WAAa,OAKrEzC,EAAclJ,UAAUqI,YAAc,SAAU0B,GAE5C,GAAIiC,GAAoBjC,GAAalE,IAErC8D,YAAW,WACe,mBAAXiC,SAA2BI,EAAkB1B,QAAQ2B,UAAUC,SAAS,eAC/EF,EAAkB9J,UAClB8J,EAAkB/K,cAAc,MAEhC+K,EAAkB/B,mBAClB+B,EAAkBlJ,cAClBkJ,EAAkBR,MAAQ,SAKtCtC,EAAclJ,UAAUiB,cAAgB,SAAUE,EAAeC,GAC7DH,EAAc4E,KAAM1E,EAAeC,IAIvC8H,EAAclJ,UAAUiI,sBAAwB,SAAU8B,GAGtD,IAAK,GADDoC,GAAuBpC,GAAalE,KAC/BlF,EAAK,EAAGiB,EAAKuK,EAAqBrJ,WAAYnC,EAAKiB,EAAGlB,OAAQC,IAAM,CACzE,GAAIoC,GAAYnB,EAAGjB,EACnB,KAAKyL,cAAYrJ,EAAUC,YACtBD,EAAUC,SAASkE,eAAiBnE,EAAUC,SAASkD,YAAcnD,EAAUC,SAASiG,gBACzF,GAAIlG,EAAUC,SAASkE,cAAe,CAClC,GAAImF,MAIAC,MAAkB,IAClB9D,EAAOxD,WAAS,gBAAiBjC,KACzByF,EAAK9H,SACb4L,EAAkB9D,EAAK,GAAGzB,kBAE9B,IAAIwF,IAAO,CAIX,IAHIJ,EAAqBN,eAA0D,UAAzCM,EAAqBN,kBAC3DU,GAAO,GAEPD,GAAmBC,IAAsE,IAA9DD,EAAgB1F,QAAQ7D,EAAUC,SAASuF,cAEtE,IAAK,GADDiE,GAAkB1M,OAAOwB,KAAKyB,EAAUC,SAASwF,KAAK,GAAG1H,gBACpD2L,EAAI,EAAGA,EAAI1J,EAAUC,SAASwF,KAAK9H,OAAQ+L,IAAK,CACrD1J,EAAUC,SAASwF,KAAKiE,GAAG3L,eAAeiC,EAAUC,SAASuF,gBAE7D,KAAK,GADDhI,MACKyG,EAAI,EAAGA,EAAIwF,EAAgB9L,OAAQsG,IAExCzG,EADImM,EAAkBF,EAAgBxF,IACfjE,EAAUC,SAASwF,KAAKiE,GAAG3L,eAAe4L,EAErE,KAAK,GAAIjJ,GAAI,EAAGA,EAAIV,EAAUC,SAASwF,KAAKiE,GAAGrG,KAAK1F,OAAQ+C,IAAK,CAC7D,GAAI6C,GAAMvD,EAAUC,SAASwF,KAAKiE,GAAGrG,KAAK3C,GACtCkJ,EAAW3H,WAAS,QAAUsB,EAAIE,UAAU,EAAG,GAAGC,cAAgBH,EAAIE,UAAU,GAAIzD,EAAUC,SAASwF,KAAKiE,GAChH,IAAIE,EAAU,CACV,GAAIC,GAAgB7J,EAAUC,SAASwF,KAAKiE,GAAG,QAAUnG,EAAIE,UAAU,EAAG,GAAGC,cAAgBH,EAAIE,UAAU,GAC3G,IAAIoG,EACA,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAcpE,KAAK9H,OAAQmM,IAAK,CAChD,GAAIC,GAAWF,EAAcpE,KAAK,GAAGpC,KAAK,EAC1C,IAAI0G,EAAU,CACV,GAAIC,GAAgB/H,WAAS,QAAU8H,EAAStG,UAAU,EAAG,GAAGC,cAAgBqG,EAAStG,UAAU,GAAIoG,EAAcpE,KAAKqE,GACtHE,IACAH,EAAcpE,KAAKqE,GAAG/J,WAAWmC,MAAOjC,SAAU+J,EAAe9M,KAAM6M,KAKvF/J,EAAUC,SAASwF,KAAKiE,GAAG3J,WAAWmC,MAAOjC,SAAU2J,EAAU1M,KAAMqG,KAG/EvD,EAAUC,SAASwF,KAAKiE,GAAG3L,eAAeiC,EAAUC,SAASuF,cAActD,KAAK1E,GAIxF8L,EAAQtJ,EAAU9C,MAAQ8C,EAAUC,SAASwE,gBAC7C2E,EAAqBnL,cAAcqL,EAAStJ,EAAUC,SAASkE,mBAE9D,EAEIiF,EAAqBpJ,EAAU9C,MAAMS,SAAWqC,EAAUC,SAASwF,KAAK9H,QAAY,cAAciB,KAAKwK,EAAqBN,oBAC7HM,EAAqBpJ,EAAU9C,MAAQ8C,EAAUC,SAASwF,KAE9D,KAAK,GAAIrG,GAAK,EAAGC,EAAKW,EAAUC,SAASwF,KAAMrG,EAAKC,EAAG1B,OAAQyB,IAAM,CACjE,GAAIqG,GAAOpG,EAAGD,GACV6K,EAAWjK,EAAUC,SAASwF,KAAK5B,QAAQ4B,GAC3CyE,EAAWjI,WAASjC,EAAU9C,KAAMkM,GAAsBa,GAC1D7B,EAAmBrL,OAAOwB,KAAK2L,EAInC,IAHA9B,EAAmBA,EAAiB1J,OAAO,SAAUC,GACjD,MAAO,QAAQC,KAAKD,KAEpBuL,EAASC,YAA0D,IAA5CpN,OAAOwB,KAAK2L,EAASC,YAAYxM,OACxD,IAAK,GAAIkC,GAAK,EAAGuK,EAAqBhC,EAAkBvI,EAAKuK,EAAmBzM,OAAQkC,IAAM,CAC1F,GAAI8J,GAAkBS,EAAmBvK,EACzC8J,GAAkBA,EAAgBpJ,QAAQ,MAAO,IACjD2J,EAASC,WAAWR,GAAoBO,EAASC,WAAWR,GACbO,EAASC,WAAWR,GAA/DO,EAASnM,eAAe4L,GAG/BN,cAAYa,IAAcb,cAAYa,EAASjM,iBAC5C,0BAA0BW,KAAKwK,EAAqBN,iBACpDoB,EAASjM,cAAcwH,EAAKhB,iBAAiB,GAG7CyF,EAASjM,cAAcwH,EAAKhB,kBAGpCgB,EAAKjB,WAAY,MAMrC2B,EAAclJ,UAAUK,eAAiB,SAAUC,GAC/CD,EAAeC,EAAWuF,OAE9BqD,EAAclJ,UAAUoN,aAAe,SAAUC,EAAQ5C,GACrD,GAAI6C,GAAStI,WAASyF,EAAM5E,KAAKqH,WAC7BI,KAAWD,IAGfxH,KAAKC,YAAY2E,EAAM4C,EAAQC,GAC/BpK,WAASuH,EAAO/H,oBAAkB2K,GAAU,KAAOA,EAASxH,KAAKqH,YACjElI,WAASyF,EAAO,SAAU5E,MAAM0H,KAAKF,KAEzCnE,EAAclJ,UAAUwN,UAAY,SAAU1G,GAa1C,IAAK,GAZD5F,GAAQ2E,KAWR4H,EAAS5H,KACJlF,EAAK,EAAG+M,EAAa5G,EAAUnG,EAAK+M,EAAWhN,OAAQC,KAXlD,SAAU8J,GACpBzF,WAASyF,EAAMgD,GACf3N,OAAO8F,eAAe6H,EAAQhD,GAC1BjF,IAAK,WACD,MAAOR,YAASyF,EAAMvJ,EAAMgM,aAEhC5H,IAAK,SAAU+H,GAAU,MAAOnM,GAAMkM,aAAaC,EAAQ5C,MAE/DvH,WAASuH,EAAO,SAAU,GAAI1J,gBAAgB0M,IAInCC,EAAW/M,KAI9BuI,EAAclJ,UAAU2N,iBAAmB,SAAUC,EAAWC,GAC5D,GAAIC,GAAW9I,WAAS4I,EAAW/H,KAC9BuG,eAAY0B,KACRjI,KAAKoE,gBAAgB2D,KACtB/H,KAAKoE,gBAAgB2D,GAAa,GAAIG,MAE1ClI,KAAKoE,gBAAgB2D,GAAWtI,IAAIuI,EAASC,EAASE,UAAUH,MAGxE3E,EAAclJ,UAAUiO,oBAAsB,SAAUL,EAAWC,GAC/D,GAAIC,GAAW9I,WAAS4I,EAAW/H,KAC9BuG,eAAY0B,IACbjI,KAAKoE,gBAAgB2D,GAAWpI,IAAIqI,GAASK,eAGrDhF,EAAclJ,UAAUmO,QAAU,SAAUP,EAAWQ,EAAWC,GAC9D,GAAIP,GAAW9I,WAAS4I,EAAW/H,MAC/ByI,EAAgBzI,KAAKsD,mBACzBtD,MAAKsD,qBAAsB,EACvBiF,IACAA,EAAUnO,KAAO2N,GAEhBxB,cAAY0B,IACbA,EAASS,KAAKH,EAElB,IAAII,GAAgBxJ,WAAS,QAAU4I,EAAUa,OAAO,GAAGhI,cAAgBmH,EAAUc,MAAM,GAAI7I,KAC1FuG,eAAYoC,IACbA,EAAcG,KAAK9I,KAAMuI,GAE7BvI,KAAKsD,oBAAsBmF,EAEvBD,IACAxI,KAAK+I,cAAgB/I,KAAKgJ,gBAC1BR,EAAQM,KAAK9I,KAAMuI,IAEvBvI,KAAKgJ,iBAAkB,GAEpB3F,KC1UP4F,EAA0B,WAC1B,QAASA,MA0HT,MAxHAA,GAAS9O,UAAU+O,gBAAkB,SAAUC,KAC/CF,EAAS9O,UAAUiP,eAAiB,aACpCH,EAAS9O,UAAUkP,YAAc,SAAUrN,GAEvC,GAAIuB,OAAuBO,KAAd9B,EAAEsN,QAAwBtN,EAAEuB,MAAQvB,EAAEsN,OAKnD,IAJAtJ,KAAKuJ,SAAWC,WAASjM,IACF,IAAnByC,KAAK0B,YACL1B,KAAKyJ,aAAezJ,KAAKyD,WAEP,IAAlBzD,KAAKuJ,SACLvJ,KAAK0J,eAAiBC,KAAKC,UAAUrM,GACrCyC,KAAK6J,sBAAwBF,KAAKC,UAAU5J,KAAKyJ,cAC7CzJ,KAAK0J,iBAAmB1J,KAAK6J,2BAAkD/L,KAAzBkC,KAAKkJ,qBAA2CpL,KAAVP,IAE5FyC,KAAKkJ,gBAAgB3L,GACrByC,KAAKyJ,aAAelM,OAIxB,IAAIA,IAAUyC,KAAKyJ,kBAAyC3L,KAAzBkC,KAAKkJ,qBAA2CpL,KAAVP,EAErE,GAAc,KAAVA,GAA0B,OAAVA,EAEhByC,KAAKkJ,gBAAgB3L,GACrByC,KAAKyJ,aAAelM,MAEnB,CAED,GAAIuM,GAAgBvM,CACpByC,MAAKkJ,gBAAgBY,GACrB9J,KAAKyJ,aAAelM,IAKpC0L,EAAS9O,UAAU4P,iBAAmB,SAAUC,GAC5ChK,KAAKkJ,gBAAkBc,GAE3Bf,EAAS9O,UAAU8P,kBAAoB,SAAUD,GAC7ChK,KAAKoJ,eAAiBY,GAE1Bf,EAAS9O,UAAUoN,aAAe,SAAUC,EAAQ5C,GAChD,GAAI6C,GAASzH,KAAKyD,UAAYtE,WAASyF,EAAM5E,KAAKqH,YAC9CxC,EAAM7E,KAAKkK,cAAgBlK,KAAKyE,UAChCI,GAAO4C,IAAWD,GAAUxH,KAAKzC,QAAUiK,OAC5B1J,KAAd+G,EAAItH,OAAqC,KAAdsH,EAAItH,SAGpCyC,KAAKC,YAAY2E,EAAM4C,EAAQC,GAC/BpK,WAASuH,EAAO/H,oBAAkB2K,GAAU,KAAOA,EAASxH,KAAKqH,YACjElI,WAASyF,EAAO,SAAU5E,MAAM0H,KAAKF,KAGzCyB,EAAS9O,UAAUoI,gBAAkB,SAAU2B,GAE3C,GAAIiG,GAAwBjG,GAAalE,IAMzC,IAAsB,mBAAX+F,QAAwB,CAC/BoE,EAAsBjE,SAASiE,EAAsB1F,QACrD,IAAII,GAAMsF,EAAsBD,cAAgBC,EAAsB1F,OACtEI,GAAIiD,iBAAiB,QAASqC,EAAsBC,UAAUrG,KAAKoG,IACnEtF,EAAIiD,iBAAiB,OAAQqC,EAAsBE,SAAStG,KAAKoG,IAErEnK,KAAKuD,YAAa,GAGtB0F,EAAS9O,UAAUmQ,iBAAmB,SAAUC,GAC5CvK,KAAKwK,SAAWD,EAChBvK,KAAKuK,SAAWA,GAEpBtB,EAAS9O,UAAUsQ,WAAa,SAAUlN,GACtC,GAAImN,GAAS,uBAEQ5M,KAAjBkC,KAAKsJ,QACLtJ,KAAKzC,MAAQA,EAKTyC,KAAK2F,QACgB,iBAAVpI,GACHmN,EAAO5O,KAAKkE,KAAK2F,MAAMtH,cAAcuH,WACrC5F,KAAKsJ,QAAU/L,IAAUyC,KAAKzC,MAG9ByC,KAAKsJ,QAAU/L,EAInByC,KAAKsJ,QAAU/L,IAAUyC,KAAKzC,OAI1CyC,KAAKyJ,aAAelM,EACpByC,KAAK0B,WAAY,EAGjB1B,KAAK+I,eAAgB/I,KAAKuD,YAK9B0F,EAAS9O,UAAUiQ,UAAY,SAAUpO,IAEV,IAAvBgE,KAAK2K,eACL3K,KAAK4K,MAAMlD,KAAK1L,IAGxBiN,EAAS9O,UAAUkQ,SAAW,SAAUrO,GACpCgE,KAAKoJ,kBAEsB,IAAvBpJ,KAAK2K,eACL3K,KAAK6K,KAAKnD,KAAK1L,IAGvBiN,EAAS3O,YAAa,EACf2O,KH7HP/K,EAAiB4M,4BAqErBC,sBAAoBhN,QAASA"}
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 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] + 'Ref', this)) {\n setValue(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 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' && document.body.contains(tempAfterViewThis.element)) {\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' && document.body.contains(tempOnDestroyThis.element) && 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) || (tempAfterContentThis.getModuleName() === 'diagram')) {\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 && /chart/.test(tempAfterContentThis.getModuleName())) {\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 &&\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","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","templateProperties_1","propList","directivePropList","k","dirPropName","indexOf","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","complexTemplates_1","ngAr","tempAfterViewThis","ngEle","outerHTML","style","visibility","window","document","body","contains","appendTo","tempOnDestroyThis","classList","tempAfterContentThis","isUndefined","propObj","complexDirProps","skip","getModuleName","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,12 +1,3 @@
1
- /*!
2
- * filename: index.d.ts
3
- * version : 20.1.52
4
- * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
- * Use of this code is subject to the terms of our license.
6
- * A copy of the current license can be obtained at any time by e-mailing
7
- * licensing@syncfusion.com. Any infringement will be prosecuted under
8
- * applicable laws.
9
- */
10
1
  import * as _angularbase from '@syncfusion/ej2-angular-base';
11
2
 
12
3
  export declare namespace ej {
package/package.json CHANGED
@@ -1,84 +1,101 @@
1
1
  {
2
- "_from": "@syncfusion/ej2-angular-base@*",
3
- "_id": "@syncfusion/ej2-angular-base@20.1.48",
4
- "_inBundle": false,
5
- "_integrity": "sha512-RO1JXHG5cWcdpCytd3K5O5w6Ut3zwijl4JjIj3feWlpHnhNh23W5MpIBV0A2N/FRBcefqAwr4UdgDWiaLqYHCw==",
6
- "_location": "/@syncfusion/ej2-angular-base",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "range",
10
- "registry": true,
11
- "raw": "@syncfusion/ej2-angular-base@*",
12
- "name": "@syncfusion/ej2-angular-base",
13
- "escapedName": "@syncfusion%2fej2-angular-base",
14
- "scope": "@syncfusion",
15
- "rawSpec": "*",
16
- "saveSpec": null,
17
- "fetchSpec": "*"
18
- },
19
- "_requiredBy": [
20
- "/",
21
- "/@syncfusion/ej2-angular-buttons",
22
- "/@syncfusion/ej2-angular-calendars",
23
- "/@syncfusion/ej2-angular-charts",
24
- "/@syncfusion/ej2-angular-documenteditor",
25
- "/@syncfusion/ej2-angular-dropdowns",
26
- "/@syncfusion/ej2-angular-filemanager",
27
- "/@syncfusion/ej2-angular-gantt",
28
- "/@syncfusion/ej2-angular-grids",
29
- "/@syncfusion/ej2-angular-kanban",
30
- "/@syncfusion/ej2-angular-pdfviewer",
31
- "/@syncfusion/ej2-angular-progressbar",
32
- "/@syncfusion/ej2-angular-richtexteditor",
33
- "/@syncfusion/ej2-angular-schedule",
34
- "/@syncfusion/ej2-angular-spreadsheet",
35
- "/@syncfusion/ej2-angular-treegrid"
36
- ],
37
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-angular-base/-/ej2-angular-base-20.1.48.tgz",
38
- "_shasum": "68bc073b0c8fb451c857e393e2e96d90014b3d98",
39
- "_spec": "@syncfusion/ej2-angular-base@*",
40
- "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
41
- "author": {
42
- "name": "Syncfusion Inc."
43
- },
44
- "bugs": {
45
- "url": "https://github.com/syncfusion/ej2-angular-ui-components/issues"
46
- },
47
- "bundleDependencies": false,
48
- "dependencies": {
49
- "@syncfusion/ej2-base": "~20.1.50",
50
- "@syncfusion/ej2-icons": "~20.1.47",
51
- "core-js": "^3.4.8",
52
- "reflect-metadata": "^0.1.9",
53
- "rxjs": "^6.5.4",
54
- "rxjs-compat": "^6.5.4",
55
- "zone.js": "^0.10.2"
56
- },
57
- "deprecated": false,
58
- "description": "A common package of Essential JS 2 base Angular libraries, methods and class definitions",
59
- "devDependencies": {},
60
- "homepage": "https://www.syncfusion.com/angular-ui-components",
61
- "keywords": [
62
- "ej2",
63
- "syncfusion",
64
- "web-components",
65
- "ej2-angular-base",
66
- "angular",
67
- "ng"
68
- ],
69
- "license": "SEE LICENSE IN license",
70
- "main": "./dist/ej2-angular-base.umd.min.js",
71
- "module": "./index.js",
72
- "name": "@syncfusion/ej2-angular-base",
73
- "repository": {
74
- "type": "git",
75
- "url": "git+https://github.com/syncfusion/ej2-angular-ui-components.git"
76
- },
77
- "schematics": "./schematics/collection.json",
78
- "scripts": {
79
- "postinstall": "node ./postinstall.js"
80
- },
81
- "typings": "index.d.ts",
82
- "version": "20.1.52",
83
- "sideEffects": true
84
- }
2
+ "_from": "@syncfusion/ej2-angular-base@*",
3
+ "_id": "@syncfusion/ej2-angular-base@19.7.0",
4
+ "_inBundle": false,
5
+ "_integrity": "sha512-9EtGuktWOmpZ0sgl5koYBrsjWaElx+1F2cbwuxr8Ga8e0JmID6OId2l+lEEt0YcFZH19BqiWgOZktS1IOMUJsg==",
6
+ "_location": "/@syncfusion/ej2-angular-base",
7
+ "_phantomChildren": {},
8
+ "_requested": {
9
+ "type": "range",
10
+ "registry": true,
11
+ "raw": "@syncfusion/ej2-angular-base@*",
12
+ "name": "@syncfusion/ej2-angular-base",
13
+ "escapedName": "@syncfusion%2fej2-angular-base",
14
+ "scope": "@syncfusion",
15
+ "rawSpec": "*",
16
+ "saveSpec": null,
17
+ "fetchSpec": "*"
18
+ },
19
+ "_requiredBy": [
20
+ "/",
21
+ "/@syncfusion/ej2-angular-barcode-generator",
22
+ "/@syncfusion/ej2-angular-buttons",
23
+ "/@syncfusion/ej2-angular-calendars",
24
+ "/@syncfusion/ej2-angular-charts",
25
+ "/@syncfusion/ej2-angular-circulargauge",
26
+ "/@syncfusion/ej2-angular-diagrams",
27
+ "/@syncfusion/ej2-angular-documenteditor",
28
+ "/@syncfusion/ej2-angular-dropdowns",
29
+ "/@syncfusion/ej2-angular-filemanager",
30
+ "/@syncfusion/ej2-angular-gantt",
31
+ "/@syncfusion/ej2-angular-grids",
32
+ "/@syncfusion/ej2-angular-heatmap",
33
+ "/@syncfusion/ej2-angular-inplace-editor",
34
+ "/@syncfusion/ej2-angular-inputs",
35
+ "/@syncfusion/ej2-angular-kanban",
36
+ "/@syncfusion/ej2-angular-layouts",
37
+ "/@syncfusion/ej2-angular-lineargauge",
38
+ "/@syncfusion/ej2-angular-lists",
39
+ "/@syncfusion/ej2-angular-maps",
40
+ "/@syncfusion/ej2-angular-navigations",
41
+ "/@syncfusion/ej2-angular-notifications",
42
+ "/@syncfusion/ej2-angular-pdfviewer",
43
+ "/@syncfusion/ej2-angular-pivotview",
44
+ "/@syncfusion/ej2-angular-popups",
45
+ "/@syncfusion/ej2-angular-progressbar",
46
+ "/@syncfusion/ej2-angular-querybuilder",
47
+ "/@syncfusion/ej2-angular-richtexteditor",
48
+ "/@syncfusion/ej2-angular-schedule",
49
+ "/@syncfusion/ej2-angular-splitbuttons",
50
+ "/@syncfusion/ej2-angular-spreadsheet",
51
+ "/@syncfusion/ej2-angular-treegrid",
52
+ "/@syncfusion/ej2-angular-treemap"
53
+ ],
54
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-angular-base/-/ej2-angular-base-19.7.0.tgz",
55
+ "_shasum": "04b7f1e5ef3465bbf58329529b590a6e51f1b1bb",
56
+ "_spec": "@syncfusion/ej2-angular-base@*",
57
+ "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
58
+ "author": {
59
+ "name": "Syncfusion Inc."
60
+ },
61
+ "bugs": {
62
+ "url": "https://github.com/syncfusion/ej2-angular-ui-components/issues"
63
+ },
64
+ "bundleDependencies": false,
65
+ "dependencies": {
66
+ "@syncfusion/ej2-base": "~20.2.36",
67
+ "@syncfusion/ej2-icons": "~20.2.36",
68
+ "core-js": "^3.4.8",
69
+ "reflect-metadata": "^0.1.9",
70
+ "rxjs": "^6.5.4",
71
+ "rxjs-compat": "^6.5.4",
72
+ "zone.js": "^0.10.2"
73
+ },
74
+ "deprecated": false,
75
+ "description": "A common package of Essential JS 2 base Angular libraries, methods and class definitions",
76
+ "devDependencies": {},
77
+ "homepage": "https://www.syncfusion.com/angular-ui-components",
78
+ "keywords": [
79
+ "ej2",
80
+ "syncfusion",
81
+ "web-components",
82
+ "ej2-angular-base",
83
+ "angular",
84
+ "ng"
85
+ ],
86
+ "license": "SEE LICENSE IN license",
87
+ "main": "./dist/ej2-angular-base.umd.min.js",
88
+ "module": "./index.js",
89
+ "name": "@syncfusion/ej2-angular-base",
90
+ "repository": {
91
+ "type": "git",
92
+ "url": "git+https://github.com/syncfusion/ej2-angular-ui-components.git"
93
+ },
94
+ "schematics": "./schematics/collection.json",
95
+ "scripts": {
96
+ "postinstall": "node ./postinstall.js"
97
+ },
98
+ "typings": "index.d.ts",
99
+ "version": "20.2.37",
100
+ "sideEffects": true
101
+ }
@@ -2,31 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@angular-devkit/core");
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
- const config_1 = require("@schematics/angular/utility/config");
5
+ const helpers_1 = require("../utils/helpers/helpers");
6
6
  const ts = require("typescript");
7
7
  const get_project_1 = require("../utils/get-project");
8
- const helpers_1 = require("../utils/helpers/helpers");
8
+ const helpers_2 = require("../utils/helpers/helpers");
9
9
  const ast_1 = require("../utils/ast");
10
10
  function componentBuilder(options, sampleDetails) {
11
11
  return (host, context) => {
12
- const workspace = config_1.getWorkspace(host);
12
+ const workspace = helpers_1.getWorkspace(host);
13
13
  const project = get_project_1.getProjectFromWorkspace(workspace, options.project);
14
14
  options.selector = options.selector || core_1.strings.dasherize(options.name);
15
15
  if (options.path === undefined) {
16
16
  options.path = `/${project.root}/src/app/`;
17
17
  }
18
- const parsedPath = helpers_1.parseName(options.path, options.name);
18
+ const parsedPath = helpers_2.parseName(options.path, options.name);
19
19
  options.name = parsedPath.name;
20
20
  options.path = parsedPath.path;
21
- helpers_1.validateName(options.name);
22
- helpers_1.validateHtmlSelector(options.selector);
21
+ helpers_2.validateName(options.name);
22
+ helpers_2.validateHtmlSelector(options.selector);
23
23
  options.selector = options.selector || buildSelector(options, project.prefix);
24
- options.module = helpers_1.findModuleFromOptions(host, options);
24
+ options.module = helpers_2.findModuleFromOptions(host, options);
25
25
  const templateSource = schematics_1.apply(schematics_1.url('./samples'), [
26
26
  schematics_1.template(Object.assign({}, core_1.strings, { 'if-flat': (s) => options.flat ? '' : s }, options)),
27
27
  schematics_1.move(null, parsedPath.path)
28
28
  ]);
29
- const parsedImagePath = helpers_1.parseName(`/${project.root}/src/assets/${sampleDetails.componentName}`, `${sampleDetails.sampleName}`);
29
+ const parsedImagePath = helpers_2.parseName(`/${project.root}/src/assets/${sampleDetails.componentName}`, `${sampleDetails.sampleName}`);
30
30
  let imagesExists = host.getDir(`${parsedImagePath.path}/${parsedImagePath.name}`).subfiles.length ?
31
31
  true : false, optionsClone = Object.assign({}, options), copyImages;
32
32
  optionsClone.path = parsedImagePath.path;
@@ -72,12 +72,12 @@ function addModuleToRoot(options, sampleDetails) {
72
72
  + (options.flat ? '' : core_1.strings.dasherize(options.name) + '/')
73
73
  + core_1.strings.dasherize(options.name)
74
74
  + '.component';
75
- const relativePath = helpers_1.buildRelativePath(modulePath, componentPath);
75
+ const relativePath = helpers_2.buildRelativePath(modulePath, componentPath);
76
76
  const classifiedName = core_1.strings.classify(`${options.name}Component`);
77
- const declarationChanges = helpers_1.addDeclarationToModule(source, modulePath, classifiedName, relativePath);
77
+ const declarationChanges = helpers_2.addDeclarationToModule(source, modulePath, classifiedName, relativePath);
78
78
  const declarationRecorder = host.beginUpdate(modulePath);
79
79
  for (const change of declarationChanges) {
80
- if (change instanceof helpers_1.InsertChange) {
80
+ if (change instanceof helpers_2.InsertChange) {
81
81
  declarationRecorder.insertLeft(change.pos, change.toAdd);
82
82
  }
83
83
  }
@@ -86,12 +86,12 @@ function addModuleToRoot(options, sampleDetails) {
86
86
  const providers = sampleDetails.diModules ? sampleDetails.diModules.split(',') : null;
87
87
  if (providers)
88
88
  providers.forEach((provider) => {
89
- if (!helpers_1.isImported(source, provider.trim(), sampleDetails.packageName)) {
89
+ if (!helpers_2.isImported(source, provider.trim(), sampleDetails.packageName)) {
90
90
  source = readIntoSourceFile(host, modulePath);
91
- const providerChanges = helpers_1.addProviderToModule(source, modulePath, provider, sampleDetails.packageName);
91
+ const providerChanges = helpers_2.addProviderToModule(source, modulePath, provider, sampleDetails.packageName);
92
92
  const providerRecorder = host.beginUpdate(modulePath);
93
93
  for (const change of providerChanges) {
94
- if (change instanceof helpers_1.InsertChange) {
94
+ if (change instanceof helpers_2.InsertChange) {
95
95
  providerRecorder.insertLeft(change.pos, change.toAdd);
96
96
  }
97
97
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/schema",
3
- "id": "EJ2SchemaTemplateID",
3
+ "$id": "EJ2SchemaTemplateID",
4
4
  "title": "EJ2SchemaTemplateTitle",
5
5
  "type": "object",
6
6
  "properties": {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@angular-devkit/core");
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
5
  const tasks_1 = require("@angular-devkit/schematics/tasks");
6
- const config_1 = require("@schematics/angular/utility/config");
6
+ const helpers_1 = require("../utils/helpers/helpers");
7
7
  const ast_1 = require("../utils/ast");
8
8
  const get_project_1 = require("../utils/get-project");
9
9
  const theme_1 = require("./theme");
@@ -57,7 +57,7 @@ function addModuleImportToCustomModule(host, options, validModules, libOptions)
57
57
  */
58
58
  function addEJ2PackageRootConfig(options, libOptions) {
59
59
  return (host) => {
60
- const workspace = config_1.getWorkspace(host);
60
+ const workspace = helpers_1.getWorkspace(host);
61
61
  const project = get_project_1.getProjectFromWorkspace(workspace, options.project);
62
62
  let validModules;
63
63
  let availableModules = libOptions.moduleName.replace(/Module/g, '').trim();