Skip to content

Commit 4d8400f

Browse files
author
pipeline
committed
v19.2.57 is released
1 parent 2f9fffd commit 4d8400f

File tree

67 files changed

+998
-99
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+998
-99
lines changed

components/base/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 19.2.57 (2021-08-24)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `I236269`, `I333667`, `I336462` Performance Improvements in `Template re-rendering`.
12+
513
## 19.2.48 (2021-07-20)
614

715
### Common

components/base/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-vue-base",
3-
"version": "19.2.48",
3+
"version": "19.2.55",
44
"description": "A common package of Essential JS 2 base Vue libraries, methods and class definitions",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

components/base/src/template.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export function compile(
2525
if (typeof templateElement === "string") {
2626
return stringCompiler(templateElement, helper);
2727
} else {
28-
return (data: any, context: any): any => {
28+
return (data: any, context: any,propName: any): any => {
2929
let pid: string = getUniqueID("templateParentDiv");
3030
let id: string = getUniqueID("templateDiv");
3131
let ele: HTMLElement = createElement("div", {
@@ -64,6 +64,20 @@ export function compile(
6464
.createApp(templateCompRef)
6565
.mount("#" + id);
6666
returnEle = ele.childNodes;
67+
if (context.vueInstance) {
68+
let templateInstance: any = context.vueInstance.templateCollection;
69+
if (!templateInstance) {
70+
context.vueInstance.templateCollection = {};
71+
templateInstance = context.vueInstance.templateCollection;
72+
}
73+
if (propName) {
74+
if (!templateInstance[propName]) {
75+
templateInstance[propName] = [];
76+
}
77+
templateInstance[propName].push(returnEle[0]);
78+
}
79+
}
80+
6781
detach(ele);
6882
} else {
6983
let templateFunction = tempObj.template;

components/charts/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 19.2.57 (2021-08-24)
6+
7+
### Chart
8+
9+
#### Bug Fixes
10+
11+
- `#337302` - Browser responsive issue while zooming the chart has been fixed.
12+
513
## 19.2.56 (2021-08-17)
614

715
### Chart

components/charts/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-vue-charts",
3-
"version": "19.2.55",
3+
"version": "19.2.56",
44
"description": "Feature-rich chart control with built-in support for over 25 chart types, technical indictors, trendline, zooming, tooltip, selection, crosshair and trackball. for Vue",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

components/charts/src/accumulation-chart/accumulationchart.component.ts

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Options } from 'vue-class-component';
22
import { isUndefined } from '@syncfusion/ej2-base';
33
import { ComponentBase, EJComponentDecorator, getProps, allVue, gh } from '@syncfusion/ej2-vue-base';
4-
import { isNullOrUndefined } from '@syncfusion/ej2-base';
4+
import { isNullOrUndefined, getValue } from '@syncfusion/ej2-base';
55

66
import { AccumulationChart } from '@syncfusion/ej2-charts';
77
import { AccumulationSeriesCollectionDirective, AccumulationSeriesDirective, AccumulationSeriesCollectionPlugin, AccumulationSeriesPlugin } from './series.directive'
@@ -55,7 +55,7 @@ export class AccumulationChartComponent extends ComponentBase {
5555
public tagMapper: { [key: string]: Object } = {"e-accumulation-series-collection":"e-accumulation-series","e-accumulation-annotations":"e-accumulation-annotation"};
5656
public tagNameMapper: Object = {"e-accumulation-series-collection":"e-series","e-accumulation-annotations":"e-annotations"};
5757
public isVue3: boolean;
58-
58+
public templateCollection: any;
5959
constructor() {
6060
super(arguments);
6161
this.isVue3 = !isExecute;
@@ -65,7 +65,32 @@ export class AccumulationChartComponent extends ComponentBase {
6565
this.bindProperties();
6666
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
6767
this.ej2Instances.setProperties = this.setProperties;
68+
this.ej2Instances.clearTemplate = this.clearTemplate;
69+
}
70+
71+
public clearTemplate(templateNames?: string[]): any {
72+
if (!templateNames){
73+
templateNames = Object.keys(this.templateCollection || {});
6874
}
75+
if (templateNames.length && this.templateCollection) {
76+
for (let tempName of templateNames){
77+
let elementCollection: any = this.templateCollection[tempName];
78+
if(elementCollection && elementCollection.length) {
79+
for(let ele of elementCollection) {
80+
let destroy: any = getValue('__vue__.$destroy', ele);
81+
if (destroy) {
82+
ele.__vue__.$destroy();
83+
}
84+
if (ele.innerHTML){
85+
ele.innerHTML = '';
86+
}
87+
}
88+
delete this.templateCollection[tempName];
89+
}
90+
}
91+
}
92+
}
93+
6994
public setProperties(prop: any, muteOnChange: boolean): void {
7095
if(this.isVue3) {
7196
this.models = !this.models ? this.ej2Instances.referModels : this.models;

components/charts/src/bullet-chart/bulletchart.component.ts

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Options } from 'vue-class-component';
22
import { isUndefined } from '@syncfusion/ej2-base';
33
import { ComponentBase, EJComponentDecorator, getProps, allVue, gh } from '@syncfusion/ej2-vue-base';
4-
import { isNullOrUndefined } from '@syncfusion/ej2-base';
4+
import { isNullOrUndefined, getValue } from '@syncfusion/ej2-base';
55

66
import { BulletChart } from '@syncfusion/ej2-charts';
77
import { BulletRangeCollectionDirective, BulletRangeDirective, BulletRangeCollectionPlugin, BulletRangePlugin } from './ranges.directive'
@@ -54,7 +54,7 @@ export class BulletChartComponent extends ComponentBase {
5454
public tagMapper: { [key: string]: Object } = {"e-bullet-range-collection":"e-bullet-range"};
5555
public tagNameMapper: Object = {"e-bullet-range-collection":"e-ranges"};
5656
public isVue3: boolean;
57-
57+
public templateCollection: any;
5858
constructor() {
5959
super(arguments);
6060
this.isVue3 = !isExecute;
@@ -64,7 +64,32 @@ export class BulletChartComponent extends ComponentBase {
6464
this.bindProperties();
6565
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
6666
this.ej2Instances.setProperties = this.setProperties;
67+
this.ej2Instances.clearTemplate = this.clearTemplate;
68+
}
69+
70+
public clearTemplate(templateNames?: string[]): any {
71+
if (!templateNames){
72+
templateNames = Object.keys(this.templateCollection || {});
6773
}
74+
if (templateNames.length && this.templateCollection) {
75+
for (let tempName of templateNames){
76+
let elementCollection: any = this.templateCollection[tempName];
77+
if(elementCollection && elementCollection.length) {
78+
for(let ele of elementCollection) {
79+
let destroy: any = getValue('__vue__.$destroy', ele);
80+
if (destroy) {
81+
ele.__vue__.$destroy();
82+
}
83+
if (ele.innerHTML){
84+
ele.innerHTML = '';
85+
}
86+
}
87+
delete this.templateCollection[tempName];
88+
}
89+
}
90+
}
91+
}
92+
6893
public setProperties(prop: any, muteOnChange: boolean): void {
6994
if(this.isVue3) {
7095
this.models = !this.models ? this.ej2Instances.referModels : this.models;

components/charts/src/chart/chart.component.ts

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Options } from 'vue-class-component';
22
import { isUndefined } from '@syncfusion/ej2-base';
33
import { ComponentBase, EJComponentDecorator, getProps, allVue, gh } from '@syncfusion/ej2-vue-base';
4-
import { isNullOrUndefined } from '@syncfusion/ej2-base';
4+
import { isNullOrUndefined, getValue } from '@syncfusion/ej2-base';
55

66
import { Chart } from '@syncfusion/ej2-charts';
77
import { TrendlinesDirective, TrendlineDirective, TrendlinesPlugin, TrendlinePlugin } from './trendlines.directive'
@@ -66,7 +66,7 @@ export class ChartComponent extends ComponentBase {
6666
public tagMapper: { [key: string]: Object } = {"e-series-collection":{"e-series":{"e-trendlines":"e-trendline","e-segments":"e-segment"}},"e-axes":{"e-axis":{"e-striplines":"e-stripline","e-multilevellabels":{"e-multilevellabel":{"e-categories":"e-category"}}}},"e-rows":"e-row","e-columns":"e-column","e-rangecolorsettings":"e-rangecolorsetting","e-annotations":"e-annotation","e-selecteddataindexes":"e-selecteddataindex","e-indicators":"e-indicator"};
6767
public tagNameMapper: Object = {"e-series-collection":"e-series","e-striplines":"e-stripLines","e-multilevellabels":"e-multiLevelLabels","e-rangecolorsettings":"e-rangeColorSettings","e-selecteddataindexes":"e-selectedDataIndexes"};
6868
public isVue3: boolean;
69-
69+
public templateCollection: any;
7070
constructor() {
7171
super(arguments);
7272
this.isVue3 = !isExecute;
@@ -76,7 +76,32 @@ export class ChartComponent extends ComponentBase {
7676
this.bindProperties();
7777
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
7878
this.ej2Instances.setProperties = this.setProperties;
79+
this.ej2Instances.clearTemplate = this.clearTemplate;
80+
}
81+
82+
public clearTemplate(templateNames?: string[]): any {
83+
if (!templateNames){
84+
templateNames = Object.keys(this.templateCollection || {});
85+
}
86+
if (templateNames.length && this.templateCollection) {
87+
for (let tempName of templateNames){
88+
let elementCollection: any = this.templateCollection[tempName];
89+
if(elementCollection && elementCollection.length) {
90+
for(let ele of elementCollection) {
91+
let destroy: any = getValue('__vue__.$destroy', ele);
92+
if (destroy) {
93+
ele.__vue__.$destroy();
94+
}
95+
if (ele.innerHTML){
96+
ele.innerHTML = '';
97+
}
98+
}
99+
delete this.templateCollection[tempName];
100+
}
79101
}
102+
}
103+
}
104+
80105
public setProperties(prop: any, muteOnChange: boolean): void {
81106
if(this.isVue3) {
82107
this.models = !this.models ? this.ej2Instances.referModels : this.models;

components/charts/src/range-navigator/rangenavigator.component.ts

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Options } from 'vue-class-component';
22
import { isUndefined } from '@syncfusion/ej2-base';
33
import { ComponentBase, EJComponentDecorator, getProps, allVue, gh } from '@syncfusion/ej2-vue-base';
4-
import { isNullOrUndefined } from '@syncfusion/ej2-base';
4+
import { isNullOrUndefined, getValue } from '@syncfusion/ej2-base';
55

66
import { RangeNavigator } from '@syncfusion/ej2-charts';
77
import { RangenavigatorSeriesCollectionDirective, RangenavigatorSeriesDirective, RangenavigatorSeriesCollectionPlugin, RangenavigatorSeriesPlugin } from './series.directive'
@@ -54,7 +54,7 @@ export class RangeNavigatorComponent extends ComponentBase {
5454
public tagMapper: { [key: string]: Object } = {"e-rangenavigator-series-collection":"e-rangenavigator-series"};
5555
public tagNameMapper: Object = {"e-rangenavigator-series-collection":"e-series"};
5656
public isVue3: boolean;
57-
57+
public templateCollection: any;
5858
constructor() {
5959
super(arguments);
6060
this.isVue3 = !isExecute;
@@ -64,7 +64,32 @@ export class RangeNavigatorComponent extends ComponentBase {
6464
this.bindProperties();
6565
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
6666
this.ej2Instances.setProperties = this.setProperties;
67+
this.ej2Instances.clearTemplate = this.clearTemplate;
68+
}
69+
70+
public clearTemplate(templateNames?: string[]): any {
71+
if (!templateNames){
72+
templateNames = Object.keys(this.templateCollection || {});
6773
}
74+
if (templateNames.length && this.templateCollection) {
75+
for (let tempName of templateNames){
76+
let elementCollection: any = this.templateCollection[tempName];
77+
if(elementCollection && elementCollection.length) {
78+
for(let ele of elementCollection) {
79+
let destroy: any = getValue('__vue__.$destroy', ele);
80+
if (destroy) {
81+
ele.__vue__.$destroy();
82+
}
83+
if (ele.innerHTML){
84+
ele.innerHTML = '';
85+
}
86+
}
87+
delete this.templateCollection[tempName];
88+
}
89+
}
90+
}
91+
}
92+
6893
public setProperties(prop: any, muteOnChange: boolean): void {
6994
if(this.isVue3) {
7095
this.models = !this.models ? this.ej2Instances.referModels : this.models;

components/charts/src/smithchart/smithchart.component.ts

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Options } from 'vue-class-component';
22
import { ComponentBase, EJComponentDecorator, getProps, allVue, gh } from '@syncfusion/ej2-vue-base';
3-
import { isNullOrUndefined } from '@syncfusion/ej2-base';
3+
import { isNullOrUndefined, getValue } from '@syncfusion/ej2-base';
44

55
import { Smithchart } from '@syncfusion/ej2-charts';
66
import { SmithchartSeriesCollectionDirective, SmithchartSeriesDirective, SmithchartSeriesCollectionPlugin, SmithchartSeriesPlugin } from './series.directive'
@@ -50,15 +50,40 @@ export class SmithchartComponent extends ComponentBase {
5050
public tagMapper: { [key: string]: Object } = {"e-seriesCollection":"e-series"};
5151
public tagNameMapper: Object = {"e-seriesCollection":"e-series"};
5252
public isVue3: boolean;
53-
53+
public templateCollection: any;
5454
constructor() {
5555
super(arguments);
5656
this.isVue3 = !isExecute;
5757
this.ej2Instances = new Smithchart({});
5858
this.bindProperties();
5959
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
6060
this.ej2Instances.setProperties = this.setProperties;
61+
this.ej2Instances.clearTemplate = this.clearTemplate;
62+
}
63+
64+
public clearTemplate(templateNames?: string[]): any {
65+
if (!templateNames){
66+
templateNames = Object.keys(this.templateCollection || {});
6167
}
68+
if (templateNames.length && this.templateCollection) {
69+
for (let tempName of templateNames){
70+
let elementCollection: any = this.templateCollection[tempName];
71+
if(elementCollection && elementCollection.length) {
72+
for(let ele of elementCollection) {
73+
let destroy: any = getValue('__vue__.$destroy', ele);
74+
if (destroy) {
75+
ele.__vue__.$destroy();
76+
}
77+
if (ele.innerHTML){
78+
ele.innerHTML = '';
79+
}
80+
}
81+
delete this.templateCollection[tempName];
82+
}
83+
}
84+
}
85+
}
86+
6287
public setProperties(prop: any, muteOnChange: boolean): void {
6388
if(this.isVue3) {
6489
this.models = !this.models ? this.ej2Instances.referModels : this.models;

components/charts/src/sparkline/sparkline.component.ts

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Options } from 'vue-class-component';
22
import { ComponentBase, EJComponentDecorator, getProps, allVue, gh } from '@syncfusion/ej2-vue-base';
3-
import { isNullOrUndefined } from '@syncfusion/ej2-base';
3+
import { isNullOrUndefined, getValue } from '@syncfusion/ej2-base';
44

55
import { Sparkline } from '@syncfusion/ej2-charts';
66
import { RangeBandSettingsDirective, RangeBandSettingDirective, RangeBandSettingsPlugin, RangeBandSettingPlugin } from './rangebandsettings.directive'
@@ -50,15 +50,40 @@ export class SparklineComponent extends ComponentBase {
5050
public tagMapper: { [key: string]: Object } = {"e-rangeBandSettings":"e-rangeBandSetting"};
5151
public tagNameMapper: Object = {};
5252
public isVue3: boolean;
53-
53+
public templateCollection: any;
5454
constructor() {
5555
super(arguments);
5656
this.isVue3 = !isExecute;
5757
this.ej2Instances = new Sparkline({});
5858
this.bindProperties();
5959
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
6060
this.ej2Instances.setProperties = this.setProperties;
61+
this.ej2Instances.clearTemplate = this.clearTemplate;
62+
}
63+
64+
public clearTemplate(templateNames?: string[]): any {
65+
if (!templateNames){
66+
templateNames = Object.keys(this.templateCollection || {});
6167
}
68+
if (templateNames.length && this.templateCollection) {
69+
for (let tempName of templateNames){
70+
let elementCollection: any = this.templateCollection[tempName];
71+
if(elementCollection && elementCollection.length) {
72+
for(let ele of elementCollection) {
73+
let destroy: any = getValue('__vue__.$destroy', ele);
74+
if (destroy) {
75+
ele.__vue__.$destroy();
76+
}
77+
if (ele.innerHTML){
78+
ele.innerHTML = '';
79+
}
80+
}
81+
delete this.templateCollection[tempName];
82+
}
83+
}
84+
}
85+
}
86+
6287
public setProperties(prop: any, muteOnChange: boolean): void {
6388
if(this.isVue3) {
6489
this.models = !this.models ? this.ej2Instances.referModels : this.models;

0 commit comments

Comments
 (0)