@syncfusion/ej2-vue-base 22.2.5 → 23.2.4

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.
@@ -250,6 +250,7 @@ var ComponentBase = vueDefineComponent({
250
250
  var controlName = this.ej2Instances.getModuleName().toLowerCase();
251
251
  var keyRef = (splitKeys.length > 1 && controlName.indexOf(splitKeys[0]) > -1) ? splitKeys[1] : splitKeys[0];
252
252
  keyRef = keyRef.replace(controlName, '');
253
+ keyRef = this.tagNameMapper['e-' + key] ? this.tagNameMapper['e-' + key].replace('e-', '') : keyRef;
253
254
  if (controlName == "splitter" && keyRef == "panes") {
254
255
  keyRef = "paneSettings";
255
256
  }
@@ -335,9 +336,8 @@ var ComponentBase = vueDefineComponent({
335
336
  childSlot.type.methods.getTag().replace(/[s]\b/, "");
336
337
  });
337
338
  var moduleName = this_3.ej2Instances.getModuleName().toLowerCase();
338
- tag = tag
339
- ? tag.replace("e-", "")
340
- : childSlot.type.methods.getTag().replace(moduleName === "ribbon" ? "e-ribbon-" : "e-", "");
339
+ tag = tag ? tag : childSlot.type.methods.getTag();
340
+ tag = (this_3.tagNameMapper["" + tag] ? this_3.tagNameMapper["" + tag] : tag).replace("e-ribbon-", "").replace("e-", "");
341
341
  if (this_3.ej2Instances.getModuleName().toLowerCase() == "diagram" && tag.indexOf('annotations') != -1) {
342
342
  tag = 'annotations';
343
343
  }
@@ -376,13 +376,15 @@ var ComponentBase = vueDefineComponent({
376
376
  },
377
377
  resolveComplexInnerDirs: function (slots, tagObject, tagName) {
378
378
  var slot = [];
379
- var innerDirValues;
380
379
  slot = slots.default ? slots.default() : slots;
381
380
  var items = slot.length > 1 ? [] : {};
382
381
  for (var _i = 0, slot_3 = slot; _i < slot_3.length; _i++) {
383
382
  var childSlot = slot_3[_i];
383
+ var innerDirValues = null;
384
384
  var isRibbon = (this.ej2Instances.getModuleName().toLowerCase() == "ribbon");
385
- var tag = childSlot.type.methods.getTag().replace(isRibbon ? "e-ribbon-" : "e-", "");
385
+ var isSpreadsheet = (this.ej2Instances.getModuleName().toLowerCase() == "spreadsheet");
386
+ var tag = childSlot.type.methods.getTag();
387
+ tag = (this.tagNameMapper[tag] ? this.tagNameMapper[tag] : tag).replace("e-ribbon-", "").replace("e-", "");
386
388
  if (childSlot.children) {
387
389
  innerDirValues = this.resolveMultilevelComplexInnerDirs(childSlot.children, tagObject["" + tagName], childSlot.type.methods.getTag());
388
390
  if ((/[s]\b/).test(tag) || slot.length > 1) {
@@ -395,7 +397,8 @@ var ComponentBase = vueDefineComponent({
395
397
  items["" + tag].push(innerDirValues);
396
398
  }
397
399
  }
398
- else if (innerDirValues && !(isRibbon && innerDirValues.hasOwnProperty('collections'))) {
400
+ else if (innerDirValues && !(isRibbon && innerDirValues.hasOwnProperty('collections')) &&
401
+ !(isSpreadsheet && innerDirValues.hasOwnProperty('cells') && childSlot.props)) {
399
402
  items.push(innerDirValues);
400
403
  }
401
404
  }
@@ -407,7 +410,8 @@ var ComponentBase = vueDefineComponent({
407
410
  childSlot.props = this.getCamelCaseProps(childSlot.props);
408
411
  }
409
412
  if (slot.length > 1 && childSlot.props) {
410
- if (isRibbon && innerDirValues && innerDirValues.hasOwnProperty('collections')) {
413
+ if ((isRibbon && innerDirValues && innerDirValues.hasOwnProperty('collections')) ||
414
+ (isSpreadsheet && innerDirValues && innerDirValues.hasOwnProperty('cells'))) {
411
415
  innerDirValues = childSlot.props ? Object.assign(innerDirValues, childSlot.props) : innerDirValues;
412
416
  items.push(innerDirValues);
413
417
  }
@@ -426,13 +430,14 @@ var ComponentBase = vueDefineComponent({
426
430
  },
427
431
  resolveMultilevelComplexInnerDirs: function (slots, tagObject, tagName) {
428
432
  var slot = [];
429
- var innerDirValues;
430
433
  slot = slots.default ? slots.default() : slots;
431
434
  var items = slot.length > 1 ? [] : {};
432
435
  for (var _i = 0, slot_4 = slot; _i < slot_4.length; _i++) {
433
436
  var childSlot = slot_4[_i];
437
+ var innerDirValues = null;
434
438
  var moduleName = this.ej2Instances.getModuleName().toLowerCase();
435
- var tag = childSlot.type.methods.getTag().replace(moduleName === "ribbon" ? "e-ribbon-" : "e-", "");
439
+ var tag = childSlot.type.methods.getTag();
440
+ tag = (this.tagNameMapper[tag] ? this.tagNameMapper[tag] : tag).replace("e-ribbon-", "").replace("e-", "");
436
441
  if (childSlot.children) {
437
442
  innerDirValues = this.resolveComplexInnerDirs(childSlot.children, tagObject["" + tagName], childSlot.type.methods.getTag());
438
443
  }
@@ -464,9 +469,9 @@ var ComponentBase = vueDefineComponent({
464
469
  if (tagDirectives) {
465
470
  for (var _i = 0, tagDirectives_1 = tagDirectives; _i < tagDirectives_1.length; _i++) {
466
471
  var tagDirective = tagDirectives_1[_i];
467
- if (tagDirective.componentOptions && tagDirective.componentOptions.children && tagDirective.componentOptions.tag ||
472
+ if (tagDirective.componentOptions && tagDirective.componentOptions.children && this.getTagName(tagDirective.componentOptions) ||
468
473
  (tagDirective.tag === 'e-seriescollection' && tagDirective.children)) {
469
- var dirTag = tagDirective.componentOptions ? tagDirective.componentOptions.tag : tagDirective.tag;
474
+ var dirTag = tagDirective.componentOptions ? this.getTagName(tagDirective.componentOptions) : tagDirective.tag;
470
475
  dirTag = (dirTag === 'e-seriescollection') ? 'e-seriesCollection' : dirTag;
471
476
  if (keyTags.indexOf(dirTag) !== -1) {
472
477
  var tagName = tagNameMapper["" + dirTag] ? tagNameMapper["" + dirTag] : dirTag;
@@ -492,7 +497,7 @@ var ComponentBase = vueDefineComponent({
492
497
  var key = void 0;
493
498
  var children = void 0;
494
499
  if (tagDir.componentOptions) {
495
- key = tagDir.componentOptions.tag;
500
+ key = this.getTagName(tagDir.componentOptions);
496
501
  if (tagDir.componentOptions.children) {
497
502
  children = tagDir.componentOptions.children;
498
503
  }
@@ -522,7 +527,7 @@ var ComponentBase = vueDefineComponent({
522
527
  if (tagDirective.componentOptions || ((tagDirective.tag === 'e-markersettings' || tagDirective.tag === 'e-markersetting') && tagDirective.context)) {
523
528
  var dirTag = void 0;
524
529
  if (tagDirective.componentOptions) {
525
- dirTag = tagDirective.componentOptions.tag;
530
+ dirTag = this.getTagName(tagDirective.componentOptions);
526
531
  }
527
532
  else {
528
533
  dirTag = (tagDirective.tag === 'e-markersettings') ? 'e-markerSettings' : 'e-markerSetting';
@@ -561,6 +566,13 @@ var ComponentBase = vueDefineComponent({
561
566
  setProperties: function (arg, muteOnChange) {
562
567
  return this.ej2Instances.setProperties(arg, muteOnChange);
563
568
  },
569
+ getTagName: function (options) {
570
+ var tag = options.tag;
571
+ if (!tag && options.Ctor && options.Ctor.extendOptions && options.Ctor.extendOptions.methods && options.Ctor.extendOptions.methods.getTag) {
572
+ tag = options.Ctor.extendOptions.methods.getTag();
573
+ }
574
+ return tag;
575
+ }
564
576
  }
565
577
  });
566
578
  function getProps(options) {
@@ -601,7 +613,7 @@ function compile(templateElement, helper) {
601
613
  return function (data, context, propName, element, root) {
602
614
  var returnEle;
603
615
  if (context) {
604
- var plugins = context.vueInstance ? context.vueInstance.plugins : null;
616
+ var plugins = context.vueInstance && context.vueInstance.plugins ? { plugins: context.vueInstance.plugins } : {};
605
617
  var pid = getUniqueID("templateParentDiv");
606
618
  var id = getUniqueID("templateDiv");
607
619
  var ele = createElement("div", {
@@ -657,7 +669,7 @@ function compile(templateElement, helper) {
657
669
  var tempRef_1;
658
670
  if (propsData) {
659
671
  if (templateCompRef.setup) {
660
- tempRef_1 = Object.assign(templateCompRef.setup(null, { expose: function () { } }), propsData);
672
+ tempRef_1 = Object.assign({}, propsData);
661
673
  }
662
674
  else {
663
675
  tempRef_1 = Object.assign(templateCompRef.data(), propsData);
@@ -665,7 +677,7 @@ function compile(templateElement, helper) {
665
677
  }
666
678
  else {
667
679
  if (templateCompRef.setup) {
668
- tempRef_1 = Object.assign(templateCompRef.setup(null, { expose: function () { } }), dataObj_1.data);
680
+ tempRef_1 = Object.assign({}, dataObj_1.data);
669
681
  }
670
682
  else {
671
683
  tempRef_1 = Object.assign(templateCompRef.data(), dataObj_1.data);
@@ -687,13 +699,7 @@ function compile(templateElement, helper) {
687
699
  }
688
700
  }
689
701
  if (templateCompRef.setup) {
690
- templateCompRef.setup = function (__props, _a) {
691
- var __expose = _a.expose;
692
- __expose();
693
- var __returned__ = tempRef_1;
694
- Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
695
- return __returned__;
696
- };
702
+ plugins = Object.assign(plugins, data);
697
703
  }
698
704
  templateCompRef.data = function () { return tempRef_1; };
699
705
  var app = aVue.createVNode(templateCompRef, plugins);
@@ -754,10 +760,7 @@ function compile(templateElement, helper) {
754
760
  templateFunction = aVue.extend(templateFunction);
755
761
  }
756
762
  if (templateFunction.options.setup) {
757
- var variables = Object.assign(templateFunction.options.setup(), dataObj.data);
758
- templateFunction.options.setup = function (__props) {
759
- return variables;
760
- };
763
+ dataObj.propsData = Object.assign(dataObj.propsData || {}, data);
761
764
  }
762
765
  var templateVue = new templateFunction(dataObj);
763
766
  // let templateVue = new Vue(tempObj.template);
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-vue-base.es5.js","sources":["../../src/component-base.js","../../src/template.js","../../src/index.js"],"sourcesContent":["/**\n * Vue Component Base\n */\nimport * as Vue from 'vue';\nimport { isNullOrUndefined, extend, getValue } from '@syncfusion/ej2-base';\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) {\n return obj;\n}\nelse {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n newObj[\"\" + key] = obj[\"\" + key];\n }\n }\n newObj.default = obj;\n return newObj;\n} }\nvar curVue = _interopRequireWildcard(Vue);\nexport var isExecute = (parseInt(curVue['version']) > 2) ? false : true, aVue = !isExecute ? curVue : (curVue['default']['default'] ? curVue['default']['default'] : curVue['default']), gh = curVue['h'];\nexport var vueDefineComponent = function (options) { return !isExecute ? aVue['defineComponent'](options) : aVue['extend'](options); };\nexport var ComponentBase = vueDefineComponent({\n name: 'ComponentBase',\n data: function () {\n return {\n tagMapper: {},\n tagNameMapper: {},\n hasInjectedModules: false,\n hasChildDirective: false,\n childDirObjects: '',\n propKeys: {},\n isDecorator: false\n };\n },\n created: function () {\n var _this = this;\n if (this.ej2Instance) {\n this.ej2Instances = this.isVue3 ? aVue.toRaw(this.ej2Instance) : this.ej2Instance;\n }\n if (!this.propKeys) {\n return;\n }\n var _loop_1 = function (prop) {\n this_1.ej2Instances.addEventListener(prop, function (args) {\n _this.$emit(prop, args);\n });\n };\n var this_1 = this;\n for (var _i = 0, _a = this.propKeys; _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n var injectables = getValue('$root.$options.provide', this);\n var vueInjectables = getValue('$parent.$options.provide', this);\n vueInjectables = !isNullOrUndefined(vueInjectables) ? vueInjectables : getValue('$.parent.provides', this);\n if (this.hasInjectedModules && !isExecute) {\n var prevModule = [];\n if (injectables && injectables.managed) {\n this.isDecorator = true;\n prevModule = this.getInjectedServices() || [];\n }\n else if (injectables) {\n prevModule = injectables[this.ej2Instances.getModuleName()] || [];\n }\n else if (vueInjectables) {\n prevModule = this.getInjectedServices() || [];\n }\n var curModule = this.ej2Instances.getInjectedModules() || [];\n for (var _b = 0, curModule_1 = curModule; _b < curModule_1.length; _b++) {\n var mod = curModule_1[_b];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.ej2Instances.injectedModules = prevModule;\n }\n },\n mounted: function () {\n var cusEle = this.$el ? this.$el.querySelectorAll(\"div.e-directive\") : null;\n if (!isExecute && cusEle) {\n for (var i = 0; i < cusEle.length; i++) {\n cusEle[parseInt(i.toString(), 10)].parentElement && cusEle[parseInt(i.toString(), 10)].parentElement.removeChild(cusEle[parseInt(i.toString(), 10)]);\n }\n }\n this.ej2Instances.isVue = true;\n this.ej2Instances.isVue3 = this.isVue3;\n this.ej2Instances.vueInstance = this;\n if (this.isVue3) {\n this.ej2Instances.ej2Instances = this.ej2Instances;\n this.ej2Instances.referModels = this.models;\n this.setModelValue();\n }\n this.ej2Instances.appendTo(this.$el);\n },\n updated: function () {\n this.updated();\n },\n beforeDestroy: function () {\n this.destroyComponent();\n },\n beforeUnmount: function () {\n this.destroyComponent();\n },\n methods: {\n setModelValue: function () {\n if (!isNullOrUndefined(this.modelValue) || !isNullOrUndefined(this.$attrs.modelValue)) {\n var key = this.models.toString().match(/checked|value/) || [];\n var propKey = key[0];\n if (!isNullOrUndefined(propKey)) {\n this.ej2Instances[\"\" + propKey] = !isNullOrUndefined(this.modelValue) ? this.modelValue : this.$attrs.modelValue;\n }\n }\n },\n updated: function () {\n if (this.isVue3) {\n this.setModelValue();\n }\n if (this.hasChildDirective) {\n var childKey = {};\n this.fetchChildPropValues(childKey);\n var curChildDir = JSON.stringify(childKey);\n if (this.childDirObjects !== curChildDir) {\n this.childDirObjects = curChildDir;\n this.assignValueToWrapper(childKey, false);\n }\n }\n },\n getInjectedServices: function () {\n var ret = [];\n var provide;\n if (this.$root && this.isDecorator) {\n provide = getValue('$root.$options.provide', this);\n }\n else if (this.$vnode) {\n provide = getValue('$vnode.context.$options.provide', this);\n }\n else if (this.$parent) {\n provide = getValue('$parent.$options.provide', this);\n }\n if (isNullOrUndefined(provide) && !isNullOrUndefined(this.$)) {\n provide = getValue('$.parent.provides', this);\n }\n if (provide) {\n // tslint:disable:no-any\n var injectables = provide;\n if (typeof provide === 'function') {\n if (provide.managed) {\n var provideKey = provide.managed;\n var provideValue = Object.keys(provideKey);\n var key = void 0;\n if (this.$root && this.isDecorator) {\n key = Object.keys(this.$root);\n }\n else if (this.$vnode) {\n key = Object.keys(this.$vnode.context);\n }\n else if (this.$parent) {\n key = Object.keys(this.$parent);\n }\n for (var i = 0; i < provideValue.length; i++) {\n for (var j = 0; j < key.length; j++) {\n if ((key[parseInt(j.toString(), 10)].indexOf(provideValue[parseInt(i.toString(), 10)])) !== -1) {\n if (this.$root && this.isDecorator) {\n provideKey[provideValue[parseInt(j.toString(), 10)]] = this.$root[key[parseInt(i.toString(), 10)]];\n }\n else if (this.$vnode) {\n provideKey[provideValue[parseInt(i.toString(), 10)]] = this.$vnode.context[key[parseInt(j.toString(), 10)]];\n }\n else if (this.$parent) {\n provideKey[provideValue[parseInt(i.toString(), 10)]] = this.$parent[key[parseInt(j.toString(), 10)]];\n }\n injectables = provideKey;\n }\n }\n }\n }\n // tslint:disable:no-any\n else if (this.$vnode) {\n injectables = this.$vnode.context.$options.provide();\n }\n else if (this.$parent) {\n injectables = this.$parent.$options.provide();\n }\n }\n ret = injectables[this.ej2Instances.getModuleName()] || [];\n }\n this.isDecorator = false;\n return ret;\n },\n destroyComponent: function () {\n var tempBeforeDestroyThis = this;\n tempBeforeDestroyThis.ej2Instances.destroy();\n tempBeforeDestroyThis.$el.style.visibility = 'hidden';\n tempBeforeDestroyThis = null;\n },\n bindProperties: function () {\n var options = {};\n for (var _i = 0, _a = this.propKeys; _i < _a.length; _i++) {\n var prop = _a[_i];\n if (!isNullOrUndefined(this[\"\" + prop])) {\n options[\"\" + prop] = this[\"\" + prop];\n }\n else if (this[0] && !isNullOrUndefined(this[0][0]) && !isNullOrUndefined(this[0][0][\"\" + prop])) {\n options[\"\" + prop] = this[0][0][\"\" + prop];\n }\n }\n if (this.hasChildDirective) {\n this.fetchChildPropValues(options);\n }\n if (this.hasInjectedModules) {\n var prevModule = this.getInjectedServices() || [];\n var curModule = this.ej2Instances.getInjectedModules() || [];\n for (var _b = 0, curModule_2 = curModule; _b < curModule_2.length; _b++) {\n var mod = curModule_2[_b];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.ej2Instances.injectedModules = prevModule;\n }\n this.assignValueToWrapper(options);\n },\n assignValueToWrapper: function (option, silent) {\n this.ej2Instances.setProperties(extend({}, {}, option, true), isNullOrUndefined(silent) ? true : silent);\n },\n fetchChildPropValues: function (childOption) {\n var dirProps = {};\n if (!this.isVue3) {\n dirProps = this.getDirectiveValues(this.$slots.default, this.tagMapper || {}, this.tagNameMapper || {});\n }\n else {\n var propRef = void 0;\n if (this[0] && this[0][1].slots.default) {\n propRef = this[0][1].slots.default();\n }\n else if (this && this.$ && this.$.slots && this.$.slots.default) {\n propRef = this.$.slots.default();\n }\n if (propRef) {\n for (var i = 0; i < propRef.length; i++) {\n if (propRef[parseInt(i.toString(), 10)].type.methods || propRef[parseInt(i.toString(), 10)].type === 'e-seriescollection') {\n var key = propRef[parseInt(i.toString(), 10)].type === 'e-seriescollection' ? 'series-collection' :\n propRef[parseInt(i.toString(), 10)].type.methods.getTag().replace(\"e-\", \"\");\n var ref = this.resolveArrayDirectives(propRef[parseInt(i.toString(), 10)].children, key);\n var splitKeys = key.split('-');\n var controlName = this.ej2Instances.getModuleName().toLowerCase();\n var keyRef = (splitKeys.length > 1 && controlName.indexOf(splitKeys[0]) > -1) ? splitKeys[1] : splitKeys[0];\n keyRef = keyRef.replace(controlName, '');\n if (controlName == \"splitter\" && keyRef == \"panes\") {\n keyRef = \"paneSettings\";\n }\n else if (controlName == \"bulletchart\" && keyRef == \"range\") {\n keyRef = \"ranges\";\n }\n else if (controlName == \"schedule\" && keyRef == \"header\") {\n keyRef = \"headerRows\";\n }\n dirProps[\"\" + keyRef] = ref[\"\" + key];\n }\n }\n }\n else {\n return;\n }\n }\n if (!this.childDirObjects) {\n this.childDirObjects = JSON.stringify(dirProps);\n }\n for (var _i = 0, _a = Object.keys(dirProps); _i < _a.length; _i++) {\n var dirProp = _a[_i];\n childOption[\"\" + dirProp] = dirProps[\"\" + dirProp];\n }\n },\n resolveArrayDirectives: function (slots, tagName) {\n var slot = [];\n var innerDirValues;\n slot = slots.default ? slots.default() : slots;\n slot = slot.flatMap(function (item) { return Array.isArray(item.children) ? item.children : item; });\n var items = {};\n items[\"\" + tagName] = [];\n var _loop_2 = function (childSlot) {\n var tempObj = {};\n var tagRef = childSlot.type.methods ? childSlot.type.methods.getTag() : tagName;\n if (childSlot.children) {\n var key = void 0;\n innerDirValues = this_2.resolveComplexDirs(childSlot.children, this_2.tagMapper[\"e-\" + tagName], tagRef);\n if (innerDirValues.length) {\n tempObj = innerDirValues;\n }\n else {\n for (var i = 0; i < Object.keys(innerDirValues).length; i++) {\n key = Object.keys(innerDirValues)[parseInt(i.toString(), 10)];\n tempObj[\"\" + key] = innerDirValues[\"\" + key];\n }\n }\n }\n if (childSlot.props) {\n Object.keys(childSlot.props).forEach(function (key) {\n var propName = key.replace(/-[a-z]/g, function (e) { return e[1].toUpperCase(); });\n if (propName) {\n tempObj[\"\" + propName] = childSlot.props[\"\" + key];\n }\n });\n }\n if (((/[s]\\b/).test(tagRef) && innerDirValues) && (!(/[s]\\b/).test(tagName) || innerDirValues.length)) {\n Array.isArray(tempObj) ? tempObj.forEach(function (item) { items[\"\" + tagName].push(item); }) : items[\"\" + tagName].push(tempObj);\n }\n else if (tempObj && Object.keys(tempObj).length !== 0) {\n items[\"\" + tagName].push(tempObj);\n }\n };\n var this_2 = this;\n for (var _i = 0, slot_1 = slot; _i < slot_1.length; _i++) {\n var childSlot = slot_1[_i];\n _loop_2(childSlot);\n }\n return items;\n },\n resolveComplexDirs: function (slots, tagObject, tagName) {\n var slot = [];\n var innerDirValues;\n slot = slots.default ? slots.default() : slots;\n var items = {};\n var _loop_3 = function (childSlot) {\n var tagRef = void 0;\n var tag = void 0;\n if (tagObject[\"\" + tagName]) {\n tagRef = Object.keys(tagObject[\"\" + tagName]);\n tag = tagRef.find(function (key) {\n return tagObject[\"\" + tagName][\"\" + key] ===\n childSlot.type.methods.getTag().replace(/[s]\\b/, \"\");\n });\n var moduleName = this_3.ej2Instances.getModuleName().toLowerCase();\n tag = tag\n ? tag.replace(\"e-\", \"\")\n : childSlot.type.methods.getTag().replace(moduleName === \"ribbon\" ? \"e-ribbon-\" : \"e-\", \"\");\n if (this_3.ej2Instances.getModuleName().toLowerCase() == \"diagram\" && tag.indexOf('annotations') != -1) {\n tag = 'annotations';\n }\n }\n if (childSlot.children) {\n innerDirValues = this_3.resolveComplexInnerDirs(childSlot.children, tagObject[\"\" + tagName], childSlot.type.methods.getTag());\n if (!items[\"\" + tag]) {\n items[\"\" + tag] = [];\n }\n if (innerDirValues.length > 1) {\n items[\"\" + tag] = innerDirValues;\n }\n else {\n items[\"\" + tag].push(innerDirValues);\n }\n }\n if (childSlot.props) {\n childSlot.props = this_3.getCamelCaseProps(childSlot.props);\n }\n if (slot.length > 1) {\n items = Object.keys(items).length == 0 && !items.length ? [] : items;\n if (childSlot.props) {\n items.push(childSlot.props);\n }\n }\n else {\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n };\n var this_3 = this;\n for (var _i = 0, slot_2 = slot; _i < slot_2.length; _i++) {\n var childSlot = slot_2[_i];\n _loop_3(childSlot);\n }\n return items;\n },\n resolveComplexInnerDirs: function (slots, tagObject, tagName) {\n var slot = [];\n var innerDirValues;\n slot = slots.default ? slots.default() : slots;\n var items = slot.length > 1 ? [] : {};\n for (var _i = 0, slot_3 = slot; _i < slot_3.length; _i++) {\n var childSlot = slot_3[_i];\n var isRibbon = (this.ej2Instances.getModuleName().toLowerCase() == \"ribbon\");\n var tag = childSlot.type.methods.getTag().replace(isRibbon ? \"e-ribbon-\" : \"e-\", \"\");\n if (childSlot.children) {\n innerDirValues = this.resolveMultilevelComplexInnerDirs(childSlot.children, tagObject[\"\" + tagName], childSlot.type.methods.getTag());\n if ((/[s]\\b/).test(tag) || slot.length > 1) {\n if ((/[s]\\b/).test(tag)) {\n items[\"\" + tag] = !items[\"\" + tag] ? [] : items[\"\" + tag];\n if (innerDirValues.length) {\n items[\"\" + tag] = innerDirValues;\n }\n else {\n items[\"\" + tag].push(innerDirValues);\n }\n }\n else if (innerDirValues && !(isRibbon && innerDirValues.hasOwnProperty('collections'))) {\n items.push(innerDirValues);\n }\n }\n else {\n items = innerDirValues ? innerDirValues : items;\n }\n }\n if (childSlot.props) {\n childSlot.props = this.getCamelCaseProps(childSlot.props);\n }\n if (slot.length > 1 && childSlot.props) {\n if (isRibbon && innerDirValues && innerDirValues.hasOwnProperty('collections')) {\n innerDirValues = childSlot.props ? Object.assign(innerDirValues, childSlot.props) : innerDirValues;\n items.push(innerDirValues);\n }\n else if (items.length >= 0) {\n items.push(childSlot.props);\n }\n else {\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n }\n else {\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n }\n return items;\n },\n resolveMultilevelComplexInnerDirs: function (slots, tagObject, tagName) {\n var slot = [];\n var innerDirValues;\n slot = slots.default ? slots.default() : slots;\n var items = slot.length > 1 ? [] : {};\n for (var _i = 0, slot_4 = slot; _i < slot_4.length; _i++) {\n var childSlot = slot_4[_i];\n var moduleName = this.ej2Instances.getModuleName().toLowerCase();\n var tag = childSlot.type.methods.getTag().replace(moduleName === \"ribbon\" ? \"e-ribbon-\" : \"e-\", \"\");\n if (childSlot.children) {\n innerDirValues = this.resolveComplexInnerDirs(childSlot.children, tagObject[\"\" + tagName], childSlot.type.methods.getTag());\n }\n if (childSlot.props) {\n childSlot.props = this.getCamelCaseProps(childSlot.props);\n }\n if ((/[s]\\b/).test(tag)) {\n items[\"\" + tag] = !items[\"\" + tag] ? [] : items[\"\" + tag];\n if (innerDirValues.length) {\n items[\"\" + tag] = innerDirValues;\n }\n else {\n items[\"\" + tag].push(innerDirValues);\n }\n if (childSlot.props) {\n items[\"\" + tag].push(childSlot.props);\n }\n }\n else {\n items = innerDirValues;\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n }\n return items;\n },\n getDirectiveValues: function (tagDirectives, tagMapper, tagNameMapper) {\n var keyTags = Object.keys(tagMapper);\n var dir = {};\n if (tagDirectives) {\n for (var _i = 0, tagDirectives_1 = tagDirectives; _i < tagDirectives_1.length; _i++) {\n var tagDirective = tagDirectives_1[_i];\n if (tagDirective.componentOptions && tagDirective.componentOptions.children && tagDirective.componentOptions.tag ||\n (tagDirective.tag === 'e-seriescollection' && tagDirective.children)) {\n var dirTag = tagDirective.componentOptions ? tagDirective.componentOptions.tag : tagDirective.tag;\n dirTag = (dirTag === 'e-seriescollection') ? 'e-seriesCollection' : dirTag;\n if (keyTags.indexOf(dirTag) !== -1) {\n var tagName = tagNameMapper[\"\" + dirTag] ? tagNameMapper[\"\" + dirTag] : dirTag;\n dir[tagName.replace('e-', '')] = [];\n var children = tagDirective.componentOptions ? tagDirective.componentOptions.children : tagDirective.children;\n for (var _a = 0, children_1 = children; _a < children_1.length; _a++) {\n var tagDirChild = children_1[_a];\n var retObj = this.getVNodeValue(tagDirChild, tagMapper[\"\" + dirTag], tagNameMapper);\n if (Object.keys(retObj).length !== 0) {\n dir[tagName.replace('e-', '')].push(retObj);\n }\n }\n }\n }\n }\n }\n return dir;\n },\n getMultiLevelDirValue: function (tagDirectories, tagKey, tagNameMapper) {\n var mulObj = {};\n for (var _i = 0, tagDirectories_1 = tagDirectories; _i < tagDirectories_1.length; _i++) {\n var tagDir = tagDirectories_1[_i];\n var key = void 0;\n var children = void 0;\n if (tagDir.componentOptions) {\n key = tagDir.componentOptions.tag;\n if (tagDir.componentOptions.children) {\n children = tagDir.componentOptions.children;\n }\n }\n else if ((tagDir.tag === 'e-markersettings' || tagDir.tag === 'e-markersetting') && tagDir.children) {\n key = (tagDir.tag === 'e-markersettings') ? 'e-markerSettings' : 'e-markerSetting';\n children = tagDir.children;\n }\n if (key) {\n var tagName = tagNameMapper[\"\" + key] ? tagNameMapper[\"\" + key] : key;\n mulObj[tagName.replace('e-', '')] = [];\n if (children) {\n for (var _a = 0, children_2 = children; _a < children_2.length; _a++) {\n var tagDirChild = children_2[_a];\n var mulLevObj = this.getVNodeValue(tagDirChild, tagKey[\"\" + key], tagNameMapper);\n if (Object.keys(mulLevObj).length !== 0) {\n mulObj[tagName.replace('e-', '')].push(mulLevObj);\n }\n }\n }\n }\n }\n return mulObj;\n },\n getVNodeValue: function (tagDirective, tagKey, tagNameMapper) {\n var ret = {};\n if (tagDirective.componentOptions || ((tagDirective.tag === 'e-markersettings' || tagDirective.tag === 'e-markersetting') && tagDirective.context)) {\n var dirTag = void 0;\n if (tagDirective.componentOptions) {\n dirTag = tagDirective.componentOptions.tag;\n }\n else {\n dirTag = (tagDirective.tag === 'e-markersettings') ? 'e-markerSettings' : 'e-markerSetting';\n }\n if (typeof tagKey === 'string' && dirTag === tagKey && tagDirective.data) {\n ret = tagDirective.data.attrs ? this.getCamelCaseProps(tagDirective.data.attrs) : this.getCamelCaseProps(tagDirective.data);\n }\n else if (typeof tagKey === 'object') {\n if (tagDirective.componentOptions.children && (Object.keys(tagKey).indexOf(dirTag) !== -1)) {\n ret = this.getMultiLevelDirValue(tagDirective.componentOptions.children, tagKey[\"\" + dirTag], tagNameMapper);\n }\n else if (tagDirective.children && (Object.keys(tagKey).indexOf(dirTag) !== -1) && (dirTag === 'e-markersettings' || dirTag === 'e-markersetting')) {\n ret = this.getMultiLevelDirValue(tagDirective.children, tagKey[\"\" + dirTag], tagNameMapper);\n }\n if (tagDirective.data && tagDirective.data.attrs) {\n ret = extend(ret, this.getCamelCaseProps(tagDirective.data.attrs));\n }\n }\n }\n return ret;\n },\n /**\n * convert kebab case directive props to camel case\n */\n getCamelCaseProps: function (props) {\n var retProps = {};\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var prop = _a[_i];\n retProps[prop.replace(/-[a-z]/g, function (e) { return e[1].toUpperCase(); })] = props[\"\" + prop];\n }\n return retProps;\n },\n dataBind: function () {\n this.ej2Instances.dataBind();\n },\n setProperties: function (arg, muteOnChange) {\n return this.ej2Instances.setProperties(arg, muteOnChange);\n },\n }\n});\nexport function getProps(options) {\n if (options === void 0) { options = {}; }\n if (options.props) {\n var _loop_4 = function (prop) {\n (options.newprops || (options.newprops = {}))[\"\" + prop] = {};\n (options.watch || (options.watch = {}))[\"\" + prop] = function (newVal) {\n this.ej2Instances[\"\" + prop] = newVal;\n if (this.dataBind && (options.name !== 'DateRangePickerComponent')) {\n this.dataBind();\n }\n };\n };\n for (var _i = 0, _a = options.props; _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_4(prop);\n }\n }\n return [options.newprops, options.watch];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { setTemplateEngine, getTemplateEngine, getUniqueID, createElement, detach, extend, getValue } from \"@syncfusion/ej2-base\";\nimport { aVue as Vue, isExecute } from \"./component-base\";\n// tslint:disable:no-any\nvar stringCompiler = getTemplateEngine();\nexport function compile(templateElement, helper) {\n var that = this;\n return function (data, context, propName, element, root) {\n var returnEle;\n if (context) {\n var plugins = context.vueInstance ? context.vueInstance.plugins : null;\n var pid = getUniqueID(\"templateParentDiv\");\n var id = getUniqueID(\"templateDiv\");\n var ele = createElement(\"div\", {\n id: pid,\n innerHTML: '<div id=\"' + id + '\"></div>',\n });\n document.body.appendChild(ele);\n if (!isExecute && (typeof templateElement === \"string\" || (templateElement.prototype && templateElement.prototype.CSPTemplate && typeof templateElement === 'function'))) {\n var vueSlot_1 = getCurrentVueSlot(context.vueInstance, templateElement, root);\n if (vueSlot_1) {\n // Compilation for Vue 3 slot template\n var app = Vue.createVNode({\n render: function () {\n return vueSlot_1[\"\" + templateElement]({ data: data });\n }\n }, plugins);\n ele.innerHTML = '';\n // Get values for Vue 3 slot template\n getValues(app, context.vueInstance, root);\n Vue.render(app, ele);\n returnEle = ele.childNodes;\n detach(ele);\n }\n else {\n // Compilation for Vue 3 string template\n detach(ele);\n return stringCompiler(templateElement, helper)(data);\n }\n }\n else if (!isExecute) {\n // Compilation for Vue 3 functional template\n var tempObj = templateElement.call(that, {});\n var object = tempObj;\n var propsData = getValue(\"template.propsData\", tempObj);\n var dataObj_1 = {\n data: { data: extend(tempObj.data || {}, data) },\n parent: context.vueInstance,\n };\n if (!object.template) {\n object.template = object[Object.keys(object)[0]];\n }\n var templateCompRef = void 0;\n if (object.template.extends) {\n templateCompRef = object.template.extends._context.components.template;\n }\n else {\n templateCompRef = object.template._context.components[templateElement.name];\n if (!templateCompRef) {\n var key = Object.keys(object.template._context.components)[0];\n templateCompRef = object.template._context.components[\"\" + key];\n }\n }\n var tempRef_1;\n if (propsData) {\n if (templateCompRef.setup) {\n tempRef_1 = Object.assign(templateCompRef.setup(null, { expose: function () { } }), propsData);\n }\n else {\n tempRef_1 = Object.assign(templateCompRef.data(), propsData);\n }\n }\n else {\n if (templateCompRef.setup) {\n tempRef_1 = Object.assign(templateCompRef.setup(null, { expose: function () { } }), dataObj_1.data);\n }\n else {\n tempRef_1 = Object.assign(templateCompRef.data(), dataObj_1.data);\n }\n if (templateCompRef.components) {\n var objkeys = Object.keys(templateCompRef.components) || [];\n var _loop_1 = function (objstring) {\n var intComponent = templateCompRef.components[\"\" + objstring];\n if (intComponent && intComponent.data) {\n if (!intComponent.__data)\n intComponent.__data = intComponent.data;\n intComponent.data = function (proxy) { return Object.assign(intComponent.__data.call(proxy), dataObj_1.data); };\n }\n };\n for (var _i = 0, objkeys_1 = objkeys; _i < objkeys_1.length; _i++) {\n var objstring = objkeys_1[_i];\n _loop_1(objstring);\n }\n }\n }\n if (templateCompRef.setup) {\n templateCompRef.setup = function (__props, _a) {\n var __expose = _a.expose;\n __expose();\n var __returned__ = tempRef_1;\n Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });\n return __returned__;\n };\n }\n templateCompRef.data = function () { return tempRef_1; };\n var app = Vue.createVNode(templateCompRef, plugins);\n ele.innerHTML = '';\n // Get values for Vue 3 functional template\n getValues(app, context.vueInstance, root);\n Vue.render(app, ele);\n returnEle = ele.childNodes;\n detach(ele);\n }\n else if (typeof templateElement === \"string\" || (templateElement.prototype && templateElement.prototype.CSPTemplate && typeof templateElement === 'function')) {\n var vueSlot_2 = getVueSlot(context.vueInstance, templateElement, root);\n if (vueSlot_2) {\n // Get provide values for Vue 2 slot template\n var provided_1 = {};\n var getProvideValues_1 = function (vueinstance) {\n if (vueinstance['$parent'])\n getProvideValues_1(vueinstance.$parent);\n if (vueinstance['_provided'] && Object.keys(vueinstance['_provided']).length > 0) {\n provided_1 = __assign({}, provided_1, vueinstance._provided);\n }\n };\n var vueInstance = context.vueInstance ? context.vueInstance : ((root && root.vueInstance) ? root.vueInstance : null);\n if (vueInstance) {\n getProvideValues_1(vueInstance);\n }\n // Compilation for Vue 2 slot template\n var vueTemplate = new Vue({\n provide: __assign({}, provided_1),\n render: function () {\n return vueSlot_2[\"\" + templateElement]({ data: data });\n }\n });\n vueTemplate.$mount(\"#\" + id);\n returnEle = ele.childNodes;\n detach(ele);\n }\n else {\n // Compilation for Vue 2 string template\n detach(ele);\n return stringCompiler(templateElement, helper)(data);\n }\n }\n else {\n // Compilation for Vue 2 functional template\n var tempObj = templateElement.call(that, {});\n var templateFunction = tempObj.template;\n var propsData = getValue(\"template.propsData\", tempObj);\n var dataObj = {\n data: { data: extend(tempObj.data || {}, data) },\n parent: context.vueInstance,\n };\n if (propsData) {\n templateFunction = tempObj.template.extends;\n dataObj.propsData = propsData;\n }\n if (typeof templateFunction !== \"function\") {\n templateFunction = Vue.extend(templateFunction);\n }\n if (templateFunction.options.setup) {\n var variables = Object.assign(templateFunction.options.setup(), dataObj.data);\n templateFunction.options.setup = function (__props) {\n return variables;\n };\n }\n var templateVue = new templateFunction(dataObj);\n // let templateVue = new Vue(tempObj.template);\n // templateVue.$data.data = extend(tempObj.data, data);\n templateVue.$mount(\"#\" + id);\n returnEle = ele.childNodes;\n if (context.vueInstance) {\n var templateInstance = context.vueInstance.templateCollection;\n if (!templateInstance) {\n context.vueInstance.templateCollection = {};\n templateInstance = context.vueInstance.templateCollection;\n }\n if (propName) {\n if (!templateInstance[\"\" + propName]) {\n templateInstance[\"\" + propName] = [];\n }\n templateInstance[\"\" + propName].push(returnEle[0]);\n }\n }\n detach(ele);\n }\n }\n return returnEle || [];\n };\n}\nsetTemplateEngine({ compile: compile });\nfunction getValues(app, cInstance, root) {\n var vueInstance = cInstance ? cInstance : ((root && root.vueInstance) ? root.vueInstance : null);\n if (!vueInstance) {\n return;\n }\n // Get globally defined variables.\n app['appContext'] = vueInstance['$']['appContext'];\n // Get provide value from child component.\n var provided = {};\n var getProvideValue = function (vueinstance) {\n if (vueinstance['$'] && vueinstance['$']['parent'])\n getProvideValue(vueinstance.$.parent);\n if (vueinstance['provides'] && Object.keys(vueinstance['provides']).length > 0) {\n provided = __assign({}, provided, vueinstance.provides);\n }\n };\n getProvideValue(vueInstance);\n if (app['appContext']['provides']) {\n app.appContext.provides = __assign({}, app.appContext.provides, provided);\n }\n}\n// Get the Vue2 slot template from the root or current Vue component.\nfunction getVueSlot(vueInstance, templateElement, root) {\n if (!vueInstance && !(root && root.vueInstance)) {\n return undefined;\n }\n var instance = (root && root.vueInstance) ? root.vueInstance : vueInstance;\n return getVueChildSlot(instance, templateElement);\n}\nfunction getVueChildSlot(vueInstance, templateElement) {\n if (!vueInstance) {\n return undefined;\n }\n var slots = vueInstance.$slots;\n var scopedSlots = vueInstance.$scopedSlots;\n var vSlots = vueInstance.scopedSlots;\n var children = vueInstance.children;\n if (scopedSlots && scopedSlots[\"\" + templateElement]) {\n return scopedSlots;\n }\n else if (slots && slots.default) {\n var childSlots = slots.default;\n for (var i = 0; i < childSlots.length; i++) {\n var slot = getVueChildSlot(getSlot(childSlots[parseInt(i.toString(), 10)]), templateElement);\n if (slot) {\n return slot;\n }\n }\n }\n else if (vSlots && vSlots[\"\" + templateElement]) {\n return vSlots;\n }\n else if (children) {\n for (var i = 0; i < children.length; i++) {\n var slot = getVueChildSlot(getSlot(children[parseInt(i.toString(), 10)]), templateElement);\n if (slot) {\n return slot;\n }\n }\n }\n return undefined;\n}\nfunction getSlot(vnode) {\n var slot = (vnode.componentOptions && vnode.componentOptions.children) ? vnode.componentOptions :\n (!vnode.data && (vnode.tag === 'e-markersettings' || vnode.tag === 'e-markersetting')) ? vnode : vnode.data;\n return vnode.componentInstance ? vnode.componentInstance : slot;\n}\n// Get the Vue3 slot template from the root or current Vue component.\nfunction getCurrentVueSlot(vueInstance, templateElement, root) {\n if (!vueInstance && !(root && root.vueInstance)) {\n return undefined;\n }\n var slots = (root && root.vueInstance) ? root.vueInstance.$slots : vueInstance.$slots;\n return getChildVueSlot(slots, templateElement);\n}\nfunction getChildVueSlot(slots, templateElement) {\n if (slots && slots[\"\" + templateElement]) {\n return slots;\n }\n else if (slots && slots.default) {\n var childSlots = slots.default();\n childSlots = childSlots.flatMap(function (item) { return Array.isArray(item.children) ? item.children : item; });\n for (var i = 0; i < childSlots.length; i++) {\n var slot = getChildVueSlot(childSlots[parseInt(i.toString(), 10)].children, templateElement);\n if (slot) {\n return slot;\n }\n }\n }\n return undefined;\n}\n","/**\n * index for component base\n */\nexport * from './component-base';\nexport * from './template';\n"],"names":["this","Vue"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-vue-base.es5.js","sources":["../../src/component-base.js","../../src/template.js","../../src/index.js"],"sourcesContent":["/**\n * Vue Component Base\n */\nimport * as Vue from 'vue';\nimport { isNullOrUndefined, extend, getValue } from '@syncfusion/ej2-base';\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) {\n return obj;\n}\nelse {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n newObj[\"\" + key] = obj[\"\" + key];\n }\n }\n newObj.default = obj;\n return newObj;\n} }\nvar curVue = _interopRequireWildcard(Vue);\nexport var isExecute = (parseInt(curVue['version']) > 2) ? false : true, aVue = !isExecute ? curVue : (curVue['default']['default'] ? curVue['default']['default'] : curVue['default']), gh = curVue['h'];\nexport var vueDefineComponent = function (options) { return !isExecute ? aVue['defineComponent'](options) : aVue['extend'](options); };\nexport var ComponentBase = vueDefineComponent({\n name: 'ComponentBase',\n data: function () {\n return {\n tagMapper: {},\n tagNameMapper: {},\n hasInjectedModules: false,\n hasChildDirective: false,\n childDirObjects: '',\n propKeys: {},\n isDecorator: false\n };\n },\n created: function () {\n var _this = this;\n if (this.ej2Instance) {\n this.ej2Instances = this.isVue3 ? aVue.toRaw(this.ej2Instance) : this.ej2Instance;\n }\n if (!this.propKeys) {\n return;\n }\n var _loop_1 = function (prop) {\n this_1.ej2Instances.addEventListener(prop, function (args) {\n _this.$emit(prop, args);\n });\n };\n var this_1 = this;\n for (var _i = 0, _a = this.propKeys; _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n var injectables = getValue('$root.$options.provide', this);\n var vueInjectables = getValue('$parent.$options.provide', this);\n vueInjectables = !isNullOrUndefined(vueInjectables) ? vueInjectables : getValue('$.parent.provides', this);\n if (this.hasInjectedModules && !isExecute) {\n var prevModule = [];\n if (injectables && injectables.managed) {\n this.isDecorator = true;\n prevModule = this.getInjectedServices() || [];\n }\n else if (injectables) {\n prevModule = injectables[this.ej2Instances.getModuleName()] || [];\n }\n else if (vueInjectables) {\n prevModule = this.getInjectedServices() || [];\n }\n var curModule = this.ej2Instances.getInjectedModules() || [];\n for (var _b = 0, curModule_1 = curModule; _b < curModule_1.length; _b++) {\n var mod = curModule_1[_b];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.ej2Instances.injectedModules = prevModule;\n }\n },\n mounted: function () {\n var cusEle = this.$el ? this.$el.querySelectorAll(\"div.e-directive\") : null;\n if (!isExecute && cusEle) {\n for (var i = 0; i < cusEle.length; i++) {\n cusEle[parseInt(i.toString(), 10)].parentElement && cusEle[parseInt(i.toString(), 10)].parentElement.removeChild(cusEle[parseInt(i.toString(), 10)]);\n }\n }\n this.ej2Instances.isVue = true;\n this.ej2Instances.isVue3 = this.isVue3;\n this.ej2Instances.vueInstance = this;\n if (this.isVue3) {\n this.ej2Instances.ej2Instances = this.ej2Instances;\n this.ej2Instances.referModels = this.models;\n this.setModelValue();\n }\n this.ej2Instances.appendTo(this.$el);\n },\n updated: function () {\n this.updated();\n },\n beforeDestroy: function () {\n this.destroyComponent();\n },\n beforeUnmount: function () {\n this.destroyComponent();\n },\n methods: {\n setModelValue: function () {\n if (!isNullOrUndefined(this.modelValue) || !isNullOrUndefined(this.$attrs.modelValue)) {\n var key = this.models.toString().match(/checked|value/) || [];\n var propKey = key[0];\n if (!isNullOrUndefined(propKey)) {\n this.ej2Instances[\"\" + propKey] = !isNullOrUndefined(this.modelValue) ? this.modelValue : this.$attrs.modelValue;\n }\n }\n },\n updated: function () {\n if (this.isVue3) {\n this.setModelValue();\n }\n if (this.hasChildDirective) {\n var childKey = {};\n this.fetchChildPropValues(childKey);\n var curChildDir = JSON.stringify(childKey);\n if (this.childDirObjects !== curChildDir) {\n this.childDirObjects = curChildDir;\n this.assignValueToWrapper(childKey, false);\n }\n }\n },\n getInjectedServices: function () {\n var ret = [];\n var provide;\n if (this.$root && this.isDecorator) {\n provide = getValue('$root.$options.provide', this);\n }\n else if (this.$vnode) {\n provide = getValue('$vnode.context.$options.provide', this);\n }\n else if (this.$parent) {\n provide = getValue('$parent.$options.provide', this);\n }\n if (isNullOrUndefined(provide) && !isNullOrUndefined(this.$)) {\n provide = getValue('$.parent.provides', this);\n }\n if (provide) {\n // tslint:disable:no-any\n var injectables = provide;\n if (typeof provide === 'function') {\n if (provide.managed) {\n var provideKey = provide.managed;\n var provideValue = Object.keys(provideKey);\n var key = void 0;\n if (this.$root && this.isDecorator) {\n key = Object.keys(this.$root);\n }\n else if (this.$vnode) {\n key = Object.keys(this.$vnode.context);\n }\n else if (this.$parent) {\n key = Object.keys(this.$parent);\n }\n for (var i = 0; i < provideValue.length; i++) {\n for (var j = 0; j < key.length; j++) {\n if ((key[parseInt(j.toString(), 10)].indexOf(provideValue[parseInt(i.toString(), 10)])) !== -1) {\n if (this.$root && this.isDecorator) {\n provideKey[provideValue[parseInt(j.toString(), 10)]] = this.$root[key[parseInt(i.toString(), 10)]];\n }\n else if (this.$vnode) {\n provideKey[provideValue[parseInt(i.toString(), 10)]] = this.$vnode.context[key[parseInt(j.toString(), 10)]];\n }\n else if (this.$parent) {\n provideKey[provideValue[parseInt(i.toString(), 10)]] = this.$parent[key[parseInt(j.toString(), 10)]];\n }\n injectables = provideKey;\n }\n }\n }\n }\n // tslint:disable:no-any\n else if (this.$vnode) {\n injectables = this.$vnode.context.$options.provide();\n }\n else if (this.$parent) {\n injectables = this.$parent.$options.provide();\n }\n }\n ret = injectables[this.ej2Instances.getModuleName()] || [];\n }\n this.isDecorator = false;\n return ret;\n },\n destroyComponent: function () {\n var tempBeforeDestroyThis = this;\n tempBeforeDestroyThis.ej2Instances.destroy();\n tempBeforeDestroyThis.$el.style.visibility = 'hidden';\n tempBeforeDestroyThis = null;\n },\n bindProperties: function () {\n var options = {};\n for (var _i = 0, _a = this.propKeys; _i < _a.length; _i++) {\n var prop = _a[_i];\n if (!isNullOrUndefined(this[\"\" + prop])) {\n options[\"\" + prop] = this[\"\" + prop];\n }\n else if (this[0] && !isNullOrUndefined(this[0][0]) && !isNullOrUndefined(this[0][0][\"\" + prop])) {\n options[\"\" + prop] = this[0][0][\"\" + prop];\n }\n }\n if (this.hasChildDirective) {\n this.fetchChildPropValues(options);\n }\n if (this.hasInjectedModules) {\n var prevModule = this.getInjectedServices() || [];\n var curModule = this.ej2Instances.getInjectedModules() || [];\n for (var _b = 0, curModule_2 = curModule; _b < curModule_2.length; _b++) {\n var mod = curModule_2[_b];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.ej2Instances.injectedModules = prevModule;\n }\n this.assignValueToWrapper(options);\n },\n assignValueToWrapper: function (option, silent) {\n this.ej2Instances.setProperties(extend({}, {}, option, true), isNullOrUndefined(silent) ? true : silent);\n },\n fetchChildPropValues: function (childOption) {\n var dirProps = {};\n if (!this.isVue3) {\n dirProps = this.getDirectiveValues(this.$slots.default, this.tagMapper || {}, this.tagNameMapper || {});\n }\n else {\n var propRef = void 0;\n if (this[0] && this[0][1].slots.default) {\n propRef = this[0][1].slots.default();\n }\n else if (this && this.$ && this.$.slots && this.$.slots.default) {\n propRef = this.$.slots.default();\n }\n if (propRef) {\n for (var i = 0; i < propRef.length; i++) {\n if (propRef[parseInt(i.toString(), 10)].type.methods || propRef[parseInt(i.toString(), 10)].type === 'e-seriescollection') {\n var key = propRef[parseInt(i.toString(), 10)].type === 'e-seriescollection' ? 'series-collection' :\n propRef[parseInt(i.toString(), 10)].type.methods.getTag().replace(\"e-\", \"\");\n var ref = this.resolveArrayDirectives(propRef[parseInt(i.toString(), 10)].children, key);\n var splitKeys = key.split('-');\n var controlName = this.ej2Instances.getModuleName().toLowerCase();\n var keyRef = (splitKeys.length > 1 && controlName.indexOf(splitKeys[0]) > -1) ? splitKeys[1] : splitKeys[0];\n keyRef = keyRef.replace(controlName, '');\n keyRef = this.tagNameMapper['e-' + key] ? this.tagNameMapper['e-' + key].replace('e-', '') : keyRef;\n if (controlName == \"splitter\" && keyRef == \"panes\") {\n keyRef = \"paneSettings\";\n }\n else if (controlName == \"bulletchart\" && keyRef == \"range\") {\n keyRef = \"ranges\";\n }\n else if (controlName == \"schedule\" && keyRef == \"header\") {\n keyRef = \"headerRows\";\n }\n dirProps[\"\" + keyRef] = ref[\"\" + key];\n }\n }\n }\n else {\n return;\n }\n }\n if (!this.childDirObjects) {\n this.childDirObjects = JSON.stringify(dirProps);\n }\n for (var _i = 0, _a = Object.keys(dirProps); _i < _a.length; _i++) {\n var dirProp = _a[_i];\n childOption[\"\" + dirProp] = dirProps[\"\" + dirProp];\n }\n },\n resolveArrayDirectives: function (slots, tagName) {\n var slot = [];\n var innerDirValues;\n slot = slots.default ? slots.default() : slots;\n slot = slot.flatMap(function (item) { return Array.isArray(item.children) ? item.children : item; });\n var items = {};\n items[\"\" + tagName] = [];\n var _loop_2 = function (childSlot) {\n var tempObj = {};\n var tagRef = childSlot.type.methods ? childSlot.type.methods.getTag() : tagName;\n if (childSlot.children) {\n var key = void 0;\n innerDirValues = this_2.resolveComplexDirs(childSlot.children, this_2.tagMapper[\"e-\" + tagName], tagRef);\n if (innerDirValues.length) {\n tempObj = innerDirValues;\n }\n else {\n for (var i = 0; i < Object.keys(innerDirValues).length; i++) {\n key = Object.keys(innerDirValues)[parseInt(i.toString(), 10)];\n tempObj[\"\" + key] = innerDirValues[\"\" + key];\n }\n }\n }\n if (childSlot.props) {\n Object.keys(childSlot.props).forEach(function (key) {\n var propName = key.replace(/-[a-z]/g, function (e) { return e[1].toUpperCase(); });\n if (propName) {\n tempObj[\"\" + propName] = childSlot.props[\"\" + key];\n }\n });\n }\n if (((/[s]\\b/).test(tagRef) && innerDirValues) && (!(/[s]\\b/).test(tagName) || innerDirValues.length)) {\n Array.isArray(tempObj) ? tempObj.forEach(function (item) { items[\"\" + tagName].push(item); }) : items[\"\" + tagName].push(tempObj);\n }\n else if (tempObj && Object.keys(tempObj).length !== 0) {\n items[\"\" + tagName].push(tempObj);\n }\n };\n var this_2 = this;\n for (var _i = 0, slot_1 = slot; _i < slot_1.length; _i++) {\n var childSlot = slot_1[_i];\n _loop_2(childSlot);\n }\n return items;\n },\n resolveComplexDirs: function (slots, tagObject, tagName) {\n var slot = [];\n var innerDirValues;\n slot = slots.default ? slots.default() : slots;\n var items = {};\n var _loop_3 = function (childSlot) {\n var tagRef = void 0;\n var tag = void 0;\n if (tagObject[\"\" + tagName]) {\n tagRef = Object.keys(tagObject[\"\" + tagName]);\n tag = tagRef.find(function (key) {\n return tagObject[\"\" + tagName][\"\" + key] ===\n childSlot.type.methods.getTag().replace(/[s]\\b/, \"\");\n });\n var moduleName = this_3.ej2Instances.getModuleName().toLowerCase();\n tag = tag ? tag : childSlot.type.methods.getTag();\n tag = (this_3.tagNameMapper[\"\" + tag] ? this_3.tagNameMapper[\"\" + tag] : tag).replace(\"e-ribbon-\", \"\").replace(\"e-\", \"\");\n if (this_3.ej2Instances.getModuleName().toLowerCase() == \"diagram\" && tag.indexOf('annotations') != -1) {\n tag = 'annotations';\n }\n }\n if (childSlot.children) {\n innerDirValues = this_3.resolveComplexInnerDirs(childSlot.children, tagObject[\"\" + tagName], childSlot.type.methods.getTag());\n if (!items[\"\" + tag]) {\n items[\"\" + tag] = [];\n }\n if (innerDirValues.length > 1) {\n items[\"\" + tag] = innerDirValues;\n }\n else {\n items[\"\" + tag].push(innerDirValues);\n }\n }\n if (childSlot.props) {\n childSlot.props = this_3.getCamelCaseProps(childSlot.props);\n }\n if (slot.length > 1) {\n items = Object.keys(items).length == 0 && !items.length ? [] : items;\n if (childSlot.props) {\n items.push(childSlot.props);\n }\n }\n else {\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n };\n var this_3 = this;\n for (var _i = 0, slot_2 = slot; _i < slot_2.length; _i++) {\n var childSlot = slot_2[_i];\n _loop_3(childSlot);\n }\n return items;\n },\n resolveComplexInnerDirs: function (slots, tagObject, tagName) {\n var slot = [];\n slot = slots.default ? slots.default() : slots;\n var items = slot.length > 1 ? [] : {};\n for (var _i = 0, slot_3 = slot; _i < slot_3.length; _i++) {\n var childSlot = slot_3[_i];\n var innerDirValues = null;\n var isRibbon = (this.ej2Instances.getModuleName().toLowerCase() == \"ribbon\");\n var isSpreadsheet = (this.ej2Instances.getModuleName().toLowerCase() == \"spreadsheet\");\n var tag = childSlot.type.methods.getTag();\n tag = (this.tagNameMapper[tag] ? this.tagNameMapper[tag] : tag).replace(\"e-ribbon-\", \"\").replace(\"e-\", \"\");\n if (childSlot.children) {\n innerDirValues = this.resolveMultilevelComplexInnerDirs(childSlot.children, tagObject[\"\" + tagName], childSlot.type.methods.getTag());\n if ((/[s]\\b/).test(tag) || slot.length > 1) {\n if ((/[s]\\b/).test(tag)) {\n items[\"\" + tag] = !items[\"\" + tag] ? [] : items[\"\" + tag];\n if (innerDirValues.length) {\n items[\"\" + tag] = innerDirValues;\n }\n else {\n items[\"\" + tag].push(innerDirValues);\n }\n }\n else if (innerDirValues && !(isRibbon && innerDirValues.hasOwnProperty('collections')) &&\n !(isSpreadsheet && innerDirValues.hasOwnProperty('cells') && childSlot.props)) {\n items.push(innerDirValues);\n }\n }\n else {\n items = innerDirValues ? innerDirValues : items;\n }\n }\n if (childSlot.props) {\n childSlot.props = this.getCamelCaseProps(childSlot.props);\n }\n if (slot.length > 1 && childSlot.props) {\n if ((isRibbon && innerDirValues && innerDirValues.hasOwnProperty('collections')) ||\n (isSpreadsheet && innerDirValues && innerDirValues.hasOwnProperty('cells'))) {\n innerDirValues = childSlot.props ? Object.assign(innerDirValues, childSlot.props) : innerDirValues;\n items.push(innerDirValues);\n }\n else if (items.length >= 0) {\n items.push(childSlot.props);\n }\n else {\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n }\n else {\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n }\n return items;\n },\n resolveMultilevelComplexInnerDirs: function (slots, tagObject, tagName) {\n var slot = [];\n slot = slots.default ? slots.default() : slots;\n var items = slot.length > 1 ? [] : {};\n for (var _i = 0, slot_4 = slot; _i < slot_4.length; _i++) {\n var childSlot = slot_4[_i];\n var innerDirValues = null;\n var moduleName = this.ej2Instances.getModuleName().toLowerCase();\n var tag = childSlot.type.methods.getTag();\n tag = (this.tagNameMapper[tag] ? this.tagNameMapper[tag] : tag).replace(\"e-ribbon-\", \"\").replace(\"e-\", \"\");\n if (childSlot.children) {\n innerDirValues = this.resolveComplexInnerDirs(childSlot.children, tagObject[\"\" + tagName], childSlot.type.methods.getTag());\n }\n if (childSlot.props) {\n childSlot.props = this.getCamelCaseProps(childSlot.props);\n }\n if ((/[s]\\b/).test(tag)) {\n items[\"\" + tag] = !items[\"\" + tag] ? [] : items[\"\" + tag];\n if (innerDirValues.length) {\n items[\"\" + tag] = innerDirValues;\n }\n else {\n items[\"\" + tag].push(innerDirValues);\n }\n if (childSlot.props) {\n items[\"\" + tag].push(childSlot.props);\n }\n }\n else {\n items = innerDirValues;\n items = childSlot.props ? Object.assign(items, childSlot.props) : items;\n }\n }\n return items;\n },\n getDirectiveValues: function (tagDirectives, tagMapper, tagNameMapper) {\n var keyTags = Object.keys(tagMapper);\n var dir = {};\n if (tagDirectives) {\n for (var _i = 0, tagDirectives_1 = tagDirectives; _i < tagDirectives_1.length; _i++) {\n var tagDirective = tagDirectives_1[_i];\n if (tagDirective.componentOptions && tagDirective.componentOptions.children && this.getTagName(tagDirective.componentOptions) ||\n (tagDirective.tag === 'e-seriescollection' && tagDirective.children)) {\n var dirTag = tagDirective.componentOptions ? this.getTagName(tagDirective.componentOptions) : tagDirective.tag;\n dirTag = (dirTag === 'e-seriescollection') ? 'e-seriesCollection' : dirTag;\n if (keyTags.indexOf(dirTag) !== -1) {\n var tagName = tagNameMapper[\"\" + dirTag] ? tagNameMapper[\"\" + dirTag] : dirTag;\n dir[tagName.replace('e-', '')] = [];\n var children = tagDirective.componentOptions ? tagDirective.componentOptions.children : tagDirective.children;\n for (var _a = 0, children_1 = children; _a < children_1.length; _a++) {\n var tagDirChild = children_1[_a];\n var retObj = this.getVNodeValue(tagDirChild, tagMapper[\"\" + dirTag], tagNameMapper);\n if (Object.keys(retObj).length !== 0) {\n dir[tagName.replace('e-', '')].push(retObj);\n }\n }\n }\n }\n }\n }\n return dir;\n },\n getMultiLevelDirValue: function (tagDirectories, tagKey, tagNameMapper) {\n var mulObj = {};\n for (var _i = 0, tagDirectories_1 = tagDirectories; _i < tagDirectories_1.length; _i++) {\n var tagDir = tagDirectories_1[_i];\n var key = void 0;\n var children = void 0;\n if (tagDir.componentOptions) {\n key = this.getTagName(tagDir.componentOptions);\n if (tagDir.componentOptions.children) {\n children = tagDir.componentOptions.children;\n }\n }\n else if ((tagDir.tag === 'e-markersettings' || tagDir.tag === 'e-markersetting') && tagDir.children) {\n key = (tagDir.tag === 'e-markersettings') ? 'e-markerSettings' : 'e-markerSetting';\n children = tagDir.children;\n }\n if (key) {\n var tagName = tagNameMapper[\"\" + key] ? tagNameMapper[\"\" + key] : key;\n mulObj[tagName.replace('e-', '')] = [];\n if (children) {\n for (var _a = 0, children_2 = children; _a < children_2.length; _a++) {\n var tagDirChild = children_2[_a];\n var mulLevObj = this.getVNodeValue(tagDirChild, tagKey[\"\" + key], tagNameMapper);\n if (Object.keys(mulLevObj).length !== 0) {\n mulObj[tagName.replace('e-', '')].push(mulLevObj);\n }\n }\n }\n }\n }\n return mulObj;\n },\n getVNodeValue: function (tagDirective, tagKey, tagNameMapper) {\n var ret = {};\n if (tagDirective.componentOptions || ((tagDirective.tag === 'e-markersettings' || tagDirective.tag === 'e-markersetting') && tagDirective.context)) {\n var dirTag = void 0;\n if (tagDirective.componentOptions) {\n dirTag = this.getTagName(tagDirective.componentOptions);\n }\n else {\n dirTag = (tagDirective.tag === 'e-markersettings') ? 'e-markerSettings' : 'e-markerSetting';\n }\n if (typeof tagKey === 'string' && dirTag === tagKey && tagDirective.data) {\n ret = tagDirective.data.attrs ? this.getCamelCaseProps(tagDirective.data.attrs) : this.getCamelCaseProps(tagDirective.data);\n }\n else if (typeof tagKey === 'object') {\n if (tagDirective.componentOptions.children && (Object.keys(tagKey).indexOf(dirTag) !== -1)) {\n ret = this.getMultiLevelDirValue(tagDirective.componentOptions.children, tagKey[\"\" + dirTag], tagNameMapper);\n }\n else if (tagDirective.children && (Object.keys(tagKey).indexOf(dirTag) !== -1) && (dirTag === 'e-markersettings' || dirTag === 'e-markersetting')) {\n ret = this.getMultiLevelDirValue(tagDirective.children, tagKey[\"\" + dirTag], tagNameMapper);\n }\n if (tagDirective.data && tagDirective.data.attrs) {\n ret = extend(ret, this.getCamelCaseProps(tagDirective.data.attrs));\n }\n }\n }\n return ret;\n },\n /**\n * convert kebab case directive props to camel case\n */\n getCamelCaseProps: function (props) {\n var retProps = {};\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var prop = _a[_i];\n retProps[prop.replace(/-[a-z]/g, function (e) { return e[1].toUpperCase(); })] = props[\"\" + prop];\n }\n return retProps;\n },\n dataBind: function () {\n this.ej2Instances.dataBind();\n },\n setProperties: function (arg, muteOnChange) {\n return this.ej2Instances.setProperties(arg, muteOnChange);\n },\n getTagName: function (options) {\n var tag = options.tag;\n if (!tag && options.Ctor && options.Ctor.extendOptions && options.Ctor.extendOptions.methods && options.Ctor.extendOptions.methods.getTag) {\n tag = options.Ctor.extendOptions.methods.getTag();\n }\n return tag;\n }\n }\n});\nexport function getProps(options) {\n if (options === void 0) { options = {}; }\n if (options.props) {\n var _loop_4 = function (prop) {\n (options.newprops || (options.newprops = {}))[\"\" + prop] = {};\n (options.watch || (options.watch = {}))[\"\" + prop] = function (newVal) {\n this.ej2Instances[\"\" + prop] = newVal;\n if (this.dataBind && (options.name !== 'DateRangePickerComponent')) {\n this.dataBind();\n }\n };\n };\n for (var _i = 0, _a = options.props; _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_4(prop);\n }\n }\n return [options.newprops, options.watch];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { setTemplateEngine, getTemplateEngine, getUniqueID, createElement, detach, extend, getValue } from \"@syncfusion/ej2-base\";\nimport { aVue as Vue, isExecute } from \"./component-base\";\n// tslint:disable:no-any\nvar stringCompiler = getTemplateEngine();\nexport function compile(templateElement, helper) {\n var that = this;\n return function (data, context, propName, element, root) {\n var returnEle;\n if (context) {\n var plugins = context.vueInstance && context.vueInstance.plugins ? { plugins: context.vueInstance.plugins } : {};\n var pid = getUniqueID(\"templateParentDiv\");\n var id = getUniqueID(\"templateDiv\");\n var ele = createElement(\"div\", {\n id: pid,\n innerHTML: '<div id=\"' + id + '\"></div>',\n });\n document.body.appendChild(ele);\n if (!isExecute && (typeof templateElement === \"string\" || (templateElement.prototype && templateElement.prototype.CSPTemplate && typeof templateElement === 'function'))) {\n var vueSlot_1 = getCurrentVueSlot(context.vueInstance, templateElement, root);\n if (vueSlot_1) {\n // Compilation for Vue 3 slot template\n var app = Vue.createVNode({\n render: function () {\n return vueSlot_1[\"\" + templateElement]({ data: data });\n }\n }, plugins);\n ele.innerHTML = '';\n // Get values for Vue 3 slot template\n getValues(app, context.vueInstance, root);\n Vue.render(app, ele);\n returnEle = ele.childNodes;\n detach(ele);\n }\n else {\n // Compilation for Vue 3 string template\n detach(ele);\n return stringCompiler(templateElement, helper)(data);\n }\n }\n else if (!isExecute) {\n // Compilation for Vue 3 functional template\n var tempObj = templateElement.call(that, {});\n var object = tempObj;\n var propsData = getValue(\"template.propsData\", tempObj);\n var dataObj_1 = {\n data: { data: extend(tempObj.data || {}, data) },\n parent: context.vueInstance,\n };\n if (!object.template) {\n object.template = object[Object.keys(object)[0]];\n }\n var templateCompRef = void 0;\n if (object.template.extends) {\n templateCompRef = object.template.extends._context.components.template;\n }\n else {\n templateCompRef = object.template._context.components[templateElement.name];\n if (!templateCompRef) {\n var key = Object.keys(object.template._context.components)[0];\n templateCompRef = object.template._context.components[\"\" + key];\n }\n }\n var tempRef_1;\n if (propsData) {\n if (templateCompRef.setup) {\n tempRef_1 = Object.assign({}, propsData);\n }\n else {\n tempRef_1 = Object.assign(templateCompRef.data(), propsData);\n }\n }\n else {\n if (templateCompRef.setup) {\n tempRef_1 = Object.assign({}, dataObj_1.data);\n }\n else {\n tempRef_1 = Object.assign(templateCompRef.data(), dataObj_1.data);\n }\n if (templateCompRef.components) {\n var objkeys = Object.keys(templateCompRef.components) || [];\n var _loop_1 = function (objstring) {\n var intComponent = templateCompRef.components[\"\" + objstring];\n if (intComponent && intComponent.data) {\n if (!intComponent.__data)\n intComponent.__data = intComponent.data;\n intComponent.data = function (proxy) { return Object.assign(intComponent.__data.call(proxy), dataObj_1.data); };\n }\n };\n for (var _i = 0, objkeys_1 = objkeys; _i < objkeys_1.length; _i++) {\n var objstring = objkeys_1[_i];\n _loop_1(objstring);\n }\n }\n }\n if (templateCompRef.setup) {\n plugins = Object.assign(plugins, data);\n }\n templateCompRef.data = function () { return tempRef_1; };\n var app = Vue.createVNode(templateCompRef, plugins);\n ele.innerHTML = '';\n // Get values for Vue 3 functional template\n getValues(app, context.vueInstance, root);\n Vue.render(app, ele);\n returnEle = ele.childNodes;\n detach(ele);\n }\n else if (typeof templateElement === \"string\" || (templateElement.prototype && templateElement.prototype.CSPTemplate && typeof templateElement === 'function')) {\n var vueSlot_2 = getVueSlot(context.vueInstance, templateElement, root);\n if (vueSlot_2) {\n // Get provide values for Vue 2 slot template\n var provided_1 = {};\n var getProvideValues_1 = function (vueinstance) {\n if (vueinstance['$parent'])\n getProvideValues_1(vueinstance.$parent);\n if (vueinstance['_provided'] && Object.keys(vueinstance['_provided']).length > 0) {\n provided_1 = __assign({}, provided_1, vueinstance._provided);\n }\n };\n var vueInstance = context.vueInstance ? context.vueInstance : ((root && root.vueInstance) ? root.vueInstance : null);\n if (vueInstance) {\n getProvideValues_1(vueInstance);\n }\n // Compilation for Vue 2 slot template\n var vueTemplate = new Vue({\n provide: __assign({}, provided_1),\n render: function () {\n return vueSlot_2[\"\" + templateElement]({ data: data });\n }\n });\n vueTemplate.$mount(\"#\" + id);\n returnEle = ele.childNodes;\n detach(ele);\n }\n else {\n // Compilation for Vue 2 string template\n detach(ele);\n return stringCompiler(templateElement, helper)(data);\n }\n }\n else {\n // Compilation for Vue 2 functional template\n var tempObj = templateElement.call(that, {});\n var templateFunction = tempObj.template;\n var propsData = getValue(\"template.propsData\", tempObj);\n var dataObj = {\n data: { data: extend(tempObj.data || {}, data) },\n parent: context.vueInstance,\n };\n if (propsData) {\n templateFunction = tempObj.template.extends;\n dataObj.propsData = propsData;\n }\n if (typeof templateFunction !== \"function\") {\n templateFunction = Vue.extend(templateFunction);\n }\n if (templateFunction.options.setup) {\n dataObj.propsData = Object.assign(dataObj.propsData || {}, data);\n }\n var templateVue = new templateFunction(dataObj);\n // let templateVue = new Vue(tempObj.template);\n // templateVue.$data.data = extend(tempObj.data, data);\n templateVue.$mount(\"#\" + id);\n returnEle = ele.childNodes;\n if (context.vueInstance) {\n var templateInstance = context.vueInstance.templateCollection;\n if (!templateInstance) {\n context.vueInstance.templateCollection = {};\n templateInstance = context.vueInstance.templateCollection;\n }\n if (propName) {\n if (!templateInstance[\"\" + propName]) {\n templateInstance[\"\" + propName] = [];\n }\n templateInstance[\"\" + propName].push(returnEle[0]);\n }\n }\n detach(ele);\n }\n }\n return returnEle || [];\n };\n}\nsetTemplateEngine({ compile: compile });\nfunction getValues(app, cInstance, root) {\n var vueInstance = cInstance ? cInstance : ((root && root.vueInstance) ? root.vueInstance : null);\n if (!vueInstance) {\n return;\n }\n // Get globally defined variables.\n app['appContext'] = vueInstance['$']['appContext'];\n // Get provide value from child component.\n var provided = {};\n var getProvideValue = function (vueinstance) {\n if (vueinstance['$'] && vueinstance['$']['parent'])\n getProvideValue(vueinstance.$.parent);\n if (vueinstance['provides'] && Object.keys(vueinstance['provides']).length > 0) {\n provided = __assign({}, provided, vueinstance.provides);\n }\n };\n getProvideValue(vueInstance);\n if (app['appContext']['provides']) {\n app.appContext.provides = __assign({}, app.appContext.provides, provided);\n }\n}\n// Get the Vue2 slot template from the root or current Vue component.\nfunction getVueSlot(vueInstance, templateElement, root) {\n if (!vueInstance && !(root && root.vueInstance)) {\n return undefined;\n }\n var instance = (root && root.vueInstance) ? root.vueInstance : vueInstance;\n return getVueChildSlot(instance, templateElement);\n}\nfunction getVueChildSlot(vueInstance, templateElement) {\n if (!vueInstance) {\n return undefined;\n }\n var slots = vueInstance.$slots;\n var scopedSlots = vueInstance.$scopedSlots;\n var vSlots = vueInstance.scopedSlots;\n var children = vueInstance.children;\n if (scopedSlots && scopedSlots[\"\" + templateElement]) {\n return scopedSlots;\n }\n else if (slots && slots.default) {\n var childSlots = slots.default;\n for (var i = 0; i < childSlots.length; i++) {\n var slot = getVueChildSlot(getSlot(childSlots[parseInt(i.toString(), 10)]), templateElement);\n if (slot) {\n return slot;\n }\n }\n }\n else if (vSlots && vSlots[\"\" + templateElement]) {\n return vSlots;\n }\n else if (children) {\n for (var i = 0; i < children.length; i++) {\n var slot = getVueChildSlot(getSlot(children[parseInt(i.toString(), 10)]), templateElement);\n if (slot) {\n return slot;\n }\n }\n }\n return undefined;\n}\nfunction getSlot(vnode) {\n var slot = (vnode.componentOptions && vnode.componentOptions.children) ? vnode.componentOptions :\n (!vnode.data && (vnode.tag === 'e-markersettings' || vnode.tag === 'e-markersetting')) ? vnode : vnode.data;\n return vnode.componentInstance ? vnode.componentInstance : slot;\n}\n// Get the Vue3 slot template from the root or current Vue component.\nfunction getCurrentVueSlot(vueInstance, templateElement, root) {\n if (!vueInstance && !(root && root.vueInstance)) {\n return undefined;\n }\n var slots = (root && root.vueInstance) ? root.vueInstance.$slots : vueInstance.$slots;\n return getChildVueSlot(slots, templateElement);\n}\nfunction getChildVueSlot(slots, templateElement) {\n if (slots && slots[\"\" + templateElement]) {\n return slots;\n }\n else if (slots && slots.default) {\n var childSlots = slots.default();\n childSlots = childSlots.flatMap(function (item) { return Array.isArray(item.children) ? item.children : item; });\n for (var i = 0; i < childSlots.length; i++) {\n var slot = getChildVueSlot(childSlots[parseInt(i.toString(), 10)].children, templateElement);\n if (slot) {\n return slot;\n }\n }\n }\n return undefined;\n}\n","/**\n * index for component base\n */\nexport * from './component-base';\nexport * from './template';\n"],"names":["this","Vue"],"mappings":"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"}