Skip to content

Commit 9c7bda9

Browse files
author
pipeline
committed
v25.1.37 is released
1 parent 6fcaeef commit 9c7bda9

File tree

346 files changed

+15244
-2354
lines changed

Some content is hidden

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

346 files changed

+15244
-2354
lines changed

controls/barcodegenerator/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 25.1.35 (2024-03-15)
5+
## 25.1.37 (2024-03-26)
66

77
### Barcode
88

controls/base/CHANGELOG.md

-38
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,6 @@
22

33
## [Unreleased]
44

5-
## 24.2.7 (2024-02-20)
6-
7-
### Common
8-
9-
#### Bug Fixes
10-
11-
- `#I542405` - The issue with "component events remain after being destroyed through the template in the heap memory" has been resolved.
12-
13-
## 24.2.5 (2024-02-13)
14-
15-
### Common
16-
17-
#### Bug Fixes
18-
19-
- `#I495294` - The issue with content sanitization in the tooltip component has been resolved.
20-
21-
## 24.2.3 (2024-01-31)
22-
23-
### Common
24-
25-
#### Bug Fixes
26-
27-
- `#I547507` - The issue with "rendering the new line in the html template string" has been resolved.
28-
29-
### Common
30-
31-
#### Bug Fixes
32-
33-
- `#I541838` - Resolved issue with time picker designator "pm" is automatically flips to "am".
34-
35-
## 24.1.46 (2024-01-17)
36-
37-
### Common
38-
39-
#### Bug Fixes
40-
41-
- `#I531468` - The issue with "rendering the html template string" has been resolved.
42-
435
## 23.2.6 (2023-11-28)
446

457
### Common

controls/base/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-base",
3-
"version": "24.2.7",
3+
"version": "25.1.35",
44
"description": "A common package of Essential JS 2 base libraries, methods and class definitions",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",
@@ -45,6 +45,7 @@
4545
"@syncfusion/ej2-icons": "*"
4646
},
4747
"devDependencies": {
48+
"@syncfusion/ej2-staging": "^1.0.1",
4849
"@types/chai": "^3.4.28",
4950
"@types/jasmine": "2.8.22",
5051
"@types/jasmine-ajax": "^3.1.27",

controls/base/spec/template.spec.ts

+1-9
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,6 @@ describe('Template', () => {
178178
expect(templateResult).toEqual(result);
179179
});
180180

181-
it('new line in the template string', () => {
182-
var data = { name: `Aston Martin\n Car Models` };
183-
let templateStr: string = "<div>"+data.name+"</div>";
184-
let getString: any = template.compile(templateStr);
185-
let output: any = getString(templateStr);
186-
expect(output).toEqual("<div>Aston Martin Car Models</div>");
187-
});
188-
189181
it('JSON array input with href value with apostrophe', () => {
190182
let templateStr: string = `<div><a href='https://en.wikipedia.org/wiki/France'>France</a><a href='/Projects/Details?id=VINET'>VINET</a></div>`;
191183
let getString: any = template.compile(templateStr);
@@ -496,7 +488,7 @@ describe('Template', () => {
496488
let outputDOM: Function = template.compile(templateFunc);
497489
expect(outputDOM(data)).toEqual(output);
498490
});
499-
491+
500492
it('Template string with encrypted value: ', () => {
501493
// Below is an base64 encrypted value `jaVasCript:/*-/*`/*\`/*'/*/**/"(/* */oNcliCk=alert('XSS') )//%0D%0A%0D%0A//`
502494
const unformattedValue: string = window.atob(

controls/base/src/ajax.ts

-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ export class Ajax {
122122
if (!isNullOrUndefined(this.onUploadProgress)) {
123123
this.httpRequest.upload.onprogress = this.onUploadProgress;
124124
}
125-
// eslint-disable-next-line
126125
this.httpRequest.open(this.type, this.url, this.mode);
127126
// Set default headers
128127
if (!isNullOrUndefined(this.data) && this.contentType !== null) {

controls/base/src/animation.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -525,20 +525,20 @@ export function setGlobalAnimation(value: string | GlobalAnimationMode): void {
525525
animationMode = value;
526526
}
527527

528-
/**
529-
* Defines the global animation modes for all components.
528+
/**
529+
* Defines the global animation modes for all components.
530530
*/
531531
export enum GlobalAnimationMode {
532-
/**
533-
* Defines the global animation mode as Default. Animation is enabled or disabled based on the component's animation settings.
534-
*/
532+
/**
533+
* Defines the global animation mode as Default. Animation is enabled or disabled based on the component's animation settings.
534+
*/
535535
Default = 'Default',
536-
/**
537-
* Defines the global animation mode as Enable. Enables the animation for all components, regardless of the individual component's animation settings.
538-
*/
536+
/**
537+
* Defines the global animation mode as Enable. Enables the animation for all components, regardless of the individual component's animation settings.
538+
*/
539539
Enable = 'Enable',
540-
/**
541-
* Defines the global animation mode as Disable. Disables the animation for all components, regardless of the individual component's animation settings.
542-
*/
540+
/**
541+
* Defines the global animation mode as Disable. Disables the animation for all components, regardless of the individual component's animation settings.
542+
*/
543543
Disable = 'Disable'
544544
}

controls/base/src/base.ts

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';
22
import { addClass, removeClass } from './dom';
33
import { Observer } from './observer';
4-
import {validateLicense} from './validate-lic';
54
export interface DomElements extends HTMLElement {
65
// eslint-disable-next-line
76
ej2_instances: Object[];
@@ -15,6 +14,7 @@ export interface AngularEventEmitter {
1514
subscribe?: (generatorOrNext?: any, error?: any, complete?: any) => any;
1615
}
1716

17+
// eslint-disable-next-line
1818
export declare type EmitType<T> = AngularEventEmitter & ((arg?: any, ...rest: any[]) => void);
1919

2020
export interface BlazorDotnetObject {
@@ -284,13 +284,14 @@ export abstract class Base<ElementType extends HTMLElement> {
284284
protected destroy(): void {
285285
// eslint-disable-next-line
286286
(<DomElements>(this.element as HTMLElement)).ej2_instances =
287-
(<DomElements>(this.element as HTMLElement)).ej2_instances ? (<DomElements>(this.element as HTMLElement)).ej2_instances.filter((i: Object) => {
288-
if (proxyToRaw) {
289-
return proxyToRaw(i) !== proxyToRaw(this);
290-
}
291-
return i !== this;
292-
})
293-
: [];
287+
(<DomElements>(this.element as HTMLElement)).ej2_instances ?
288+
(<DomElements>(this.element as HTMLElement)).ej2_instances.filter((i: Object) => {
289+
if (proxyToRaw) {
290+
return proxyToRaw(i) !== proxyToRaw(this);
291+
}
292+
return i !== this;
293+
})
294+
: [];
294295
removeClass([this.element], ['e-' + this.getModuleName()]);
295296
if ((<DomElements>(this.element as HTMLElement)).ej2_instances.length === 0) {
296297
// Remove module class from the root element
@@ -352,4 +353,5 @@ export function removeChildInstance(element: HTMLElement): void {
352353
}
353354
}
354355

355-
export let proxyToRaw: Function, setProxyToRaw = (toRaw: Function): void => { proxyToRaw = toRaw };
356+
export let proxyToRaw: Function;
357+
export const setProxyToRaw: Function = (toRaw: Function): void => { proxyToRaw = toRaw; };

controls/base/src/component.ts

+34-6
Original file line numberDiff line numberDiff line change
@@ -152,22 +152,28 @@ export abstract class Component<ElementType extends HTMLElement> extends Base<El
152152
}
153153
/**
154154
* Adding unload event to persist data when enable persistence true
155+
*
156+
* @returns {void}
155157
*/
156-
public attachUnloadEvent():any {
158+
public attachUnloadEvent(): void {
157159
this.handleUnload = this.handleUnload.bind(this);
158160
window.addEventListener('unload', this.handleUnload);
159161
}
160162
/**
161163
* Handling unload event to persist data when enable persistence true
164+
*
165+
* @returns {void}
162166
*/
163-
public handleUnload():any{
167+
public handleUnload(): void {
164168
this.setPersistData();
165169
}
166170
/**
167171
* Removing unload event to persist data when enable persistence true
172+
*
173+
* @returns {void}
168174
*/
169-
public detachUnloadEvent():any {
170-
window.removeEventListener('unload',this.handleUnload);
175+
public detachUnloadEvent(): void {
176+
window.removeEventListener('unload', this.handleUnload);
171177
}
172178
/**
173179
* Appends the control within the given HTML element
@@ -198,7 +204,29 @@ export abstract class Component<ElementType extends HTMLElement> extends Base<El
198204
}
199205
this.preRender();
200206
this.injectModules();
201-
// Checked weather cases are valid or not. If control leads to more than five counts
207+
// Throw a warning for the required modules to be injected.
208+
const ignoredComponents: { [key: string]: string | string[] } = { // Add component to ignore it from injectable module validation
209+
schedule: 'all',
210+
diagram: 'all',
211+
PdfViewer: 'all',
212+
grid: ['logger'],
213+
richtexteditor: ['link', 'table', 'image', 'audio', 'video', 'formatPainter', 'emojiPicker', 'pasteCleanup', 'htmlEditor', 'toolbar'],
214+
treegrid: ['filter'],
215+
gantt: ['tooltip'],
216+
chart: ['Export', 'Zoom'],
217+
accumulationchart: ['Export']
218+
};
219+
const component: string = this.getModuleName();
220+
if (this.requiredModules && (!ignoredComponents[`${component}`] || ignoredComponents[`${component}`] !== 'all')) {
221+
const modulesRequired: ModuleDeclaration[] = this.requiredModules();
222+
for (const module of this.moduleLoader.getNonInjectedModules(modulesRequired)) {
223+
const moduleName: string = module.name ? module.name : module.member;
224+
if (ignoredComponents[`${component}`] && ignoredComponents[`${component}`].indexOf(module.member) !== -1) { continue; }
225+
const componentName: string = component.charAt(0).toUpperCase() + component.slice(1); // To capitalize the component name
226+
console.warn(`[WARNING] :: Module "${moduleName}" is not available in ${componentName} component! You either misspelled the module name or forgot to load it.`);
227+
}
228+
}
229+
// Checked weather cases are valid or not. If control leads to more than five counts
202230
if (!isvalid && !isBannerAdded) {
203231
createLicenseOverlay();
204232
isBannerAdded = true;
@@ -333,7 +361,7 @@ export abstract class Component<ElementType extends HTMLElement> extends Base<El
333361
// tslint:disable-next-line:no-function-constructor-with-string-args
334362
onIntlChange.on('notifyExternalChange', this.detectFunction, this, this.randomId);
335363
// Based on the considered control list we have count the instance
336-
if (typeof window !== "undefined" && typeof document !== "undefined" && !validateLicense()) {
364+
if (typeof window !== 'undefined' && typeof document !== 'undefined' && !validateLicense()) {
337365
if (componentList.indexOf(this.getModuleName()) !== -1) {
338366
instancecount = instancecount + 1;
339367
if (instancecount > 5) {

0 commit comments

Comments
 (0)