@syncfusion/ej2-maps 24.2.9 → 25.1.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -2
- package/dist/ej2-maps.min.js +2 -2
- package/dist/ej2-maps.umd.min.js +2 -2
- package/dist/ej2-maps.umd.min.js.map +1 -1
- package/dist/es6/ej2-maps.es2015.js +650 -333
- package/dist/es6/ej2-maps.es2015.js.map +1 -1
- package/dist/es6/ej2-maps.es5.js +664 -348
- package/dist/es6/ej2-maps.es5.js.map +1 -1
- package/dist/global/ej2-maps.min.js +2 -2
- package/dist/global/ej2-maps.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +13 -13
- package/src/maps/layers/bubble.js +2 -3
- package/src/maps/layers/color-mapping.d.ts +0 -1
- package/src/maps/layers/color-mapping.js +0 -1
- package/src/maps/layers/data-label.js +19 -17
- package/src/maps/layers/layer-panel.js +13 -7
- package/src/maps/layers/legend.js +11 -3
- package/src/maps/layers/marker.d.ts +4 -0
- package/src/maps/layers/marker.js +16 -13
- package/src/maps/layers/polygon.d.ts +0 -1
- package/src/maps/layers/polygon.js +1 -4
- package/src/maps/maps-model.d.ts +14 -0
- package/src/maps/maps.d.ts +14 -2
- package/src/maps/maps.js +118 -46
- package/src/maps/model/base-model.d.ts +51 -0
- package/src/maps/model/base.d.ts +43 -1
- package/src/maps/model/base.js +32 -0
- package/src/maps/model/constants.d.ts +12 -0
- package/src/maps/model/constants.js +12 -0
- package/src/maps/model/interface.d.ts +8 -0
- package/src/maps/user-interaction/tooltip.js +151 -110
- package/src/maps/user-interaction/zoom.d.ts +3 -5
- package/src/maps/user-interaction/zoom.js +202 -108
- package/src/maps/utils/helper.d.ts +7 -1
- package/src/maps/utils/helper.js +89 -37
- package/.eslintrc.json +0 -260
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -72
- package/.github/PULL_REQUEST_TEMPLATE/Feature.md +0 -49
- package/tslint.json +0 -111
package/src/maps/utils/helper.js
CHANGED
|
@@ -422,28 +422,26 @@ export { GeoLocation };
|
|
|
422
422
|
export function measureText(text, font) {
|
|
423
423
|
var measureObject = document.getElementById('mapsmeasuretext');
|
|
424
424
|
if (measureObject === null) {
|
|
425
|
-
measureObject = createElement('text'
|
|
425
|
+
measureObject = document.createElement('text');
|
|
426
|
+
measureObject.id = 'mapsmeasuretext';
|
|
426
427
|
document.body.appendChild(measureObject);
|
|
427
428
|
}
|
|
428
429
|
measureObject.innerText = text;
|
|
429
|
-
measureObject.style.
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
}
|
|
433
|
-
else {
|
|
434
|
-
measureObject.style.fontSize = font.size;
|
|
435
|
-
}
|
|
436
|
-
measureObject.style.fontWeight = font.fontWeight;
|
|
437
|
-
measureObject.style.fontStyle = font.fontStyle;
|
|
438
|
-
measureObject.style.fontFamily = font.fontFamily;
|
|
439
|
-
measureObject.style.visibility = 'hidden';
|
|
440
|
-
measureObject.style.top = '-100';
|
|
441
|
-
measureObject.style.left = '0';
|
|
442
|
-
measureObject.style.whiteSpace = 'nowrap';
|
|
443
|
-
// For bootstrap line height issue
|
|
444
|
-
measureObject.style.lineHeight = 'normal';
|
|
430
|
+
measureObject.style.cssText = 'position: absolute; font-size: ' + (typeof (font.size) === 'number' ? (font.size + 'px') : font.size) +
|
|
431
|
+
'; font-weight: ' + font.fontWeight + '; font-style: ' + font.fontStyle + '; font-family: ' + font.fontFamily +
|
|
432
|
+
'; visibility: hidden; top: -100; left: 0; whiteSpace: nowrap; lineHeight: normal';
|
|
445
433
|
return new Size(measureObject.clientWidth, measureObject.clientHeight);
|
|
446
434
|
}
|
|
435
|
+
/** @private */
|
|
436
|
+
export function measureTextElement(text, font) {
|
|
437
|
+
var canvas = document.createElement('canvas');
|
|
438
|
+
var context = canvas.getContext('2d');
|
|
439
|
+
context.font = font.fontStyle + " " + font.fontWeight + " " + (typeof font.size === 'number' ? font.size + 'px' : font.size) + " " + font.fontFamily;
|
|
440
|
+
var metrics = context.measureText(text);
|
|
441
|
+
var width = metrics.width;
|
|
442
|
+
var height = parseFloat(font.size) || 16;
|
|
443
|
+
return new Size(width, height);
|
|
444
|
+
}
|
|
447
445
|
/**
|
|
448
446
|
* Internal use of text options
|
|
449
447
|
*
|
|
@@ -1003,6 +1001,7 @@ export function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex,
|
|
|
1003
1001
|
factor = maps.mapLayerPanel.calculateFactor(currentLayer);
|
|
1004
1002
|
}
|
|
1005
1003
|
var isClusteringCompleted = false;
|
|
1004
|
+
var currentZoomFactor = !maps.isTileMap ? maps.mapScaleValue : maps.tileZoomLevel;
|
|
1006
1005
|
maps.trigger('markerClusterRendering', eventArg, function (clusterargs) {
|
|
1007
1006
|
Array.prototype.forEach.call(markerTemplate.childNodes, function (markerElement, o) {
|
|
1008
1007
|
indexCollection = [];
|
|
@@ -1011,20 +1010,28 @@ export function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex,
|
|
|
1011
1010
|
bounds1 = tempElement.getBoundingClientRect();
|
|
1012
1011
|
indexCollection.push(o);
|
|
1013
1012
|
if (!isNullOrUndefined(bounds1)) {
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
indexCollection
|
|
1013
|
+
var list = (maps.markerModule.zoomedMarkerCluster.length > 0 && maps.markerModule.zoomedMarkerCluster[layerIndex] && maps.markerModule.zoomedMarkerCluster[layerIndex][o] && maps.markerModule.zoomedMarkerCluster[layerIndex][o].length > 0)
|
|
1014
|
+
|| (maps.markerModule.initialMarkerCluster.length > 0 && maps.markerModule.initialMarkerCluster[layerIndex] && maps.markerModule.initialMarkerCluster[layerIndex][o] && maps.markerModule.initialMarkerCluster[layerIndex][o].length > 0) ?
|
|
1015
|
+
(maps.previousScale < currentZoomFactor ? maps.markerModule.zoomedMarkerCluster[layerIndex][o] : maps.markerModule.initialMarkerCluster[layerIndex][o]) : null;
|
|
1016
|
+
if (!isNullOrUndefined(list) && list.length !== 0) {
|
|
1017
|
+
Array.prototype.forEach.call(list, function (currentIndex, p) {
|
|
1018
|
+
if (o !== currentIndex) {
|
|
1019
|
+
var otherMarkerElement = document.getElementById(maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_'
|
|
1020
|
+
+ 0 + '_dataIndex_' + currentIndex);
|
|
1021
|
+
if (otherMarkerElement['style']['visibility'] !== 'hidden') {
|
|
1022
|
+
markerBoundsComparer(otherMarkerElement, bounds1, colloideBounds, indexCollection, currentIndex);
|
|
1024
1023
|
}
|
|
1025
1024
|
}
|
|
1026
|
-
}
|
|
1027
|
-
}
|
|
1025
|
+
});
|
|
1026
|
+
}
|
|
1027
|
+
else {
|
|
1028
|
+
Array.prototype.forEach.call(markerTemplate.childNodes, function (otherMarkerElement, p) {
|
|
1029
|
+
if (p >= o + 1 && otherMarkerElement['style']['visibility'] !== 'hidden') {
|
|
1030
|
+
markerBoundsComparer(otherMarkerElement, bounds1, colloideBounds, indexCollection, p);
|
|
1031
|
+
}
|
|
1032
|
+
});
|
|
1033
|
+
}
|
|
1034
|
+
markerClusterListHandler(maps, currentZoomFactor, layerIndex, o, indexCollection);
|
|
1028
1035
|
tempX = bounds1.left + bounds1.width / 2;
|
|
1029
1036
|
tempY = bounds1.top + bounds1.height;
|
|
1030
1037
|
if (colloideBounds.length > 0) {
|
|
@@ -1099,6 +1106,9 @@ export function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex,
|
|
|
1099
1106
|
}
|
|
1100
1107
|
colloideBounds = [];
|
|
1101
1108
|
}
|
|
1109
|
+
else {
|
|
1110
|
+
markerClusterListHandler(maps, currentZoomFactor, layerIndex, o, indexCollection);
|
|
1111
|
+
}
|
|
1102
1112
|
isClusteringCompleted = true;
|
|
1103
1113
|
});
|
|
1104
1114
|
layerElement.appendChild(clusterGroup);
|
|
@@ -1187,6 +1197,30 @@ export function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex,
|
|
|
1187
1197
|
});
|
|
1188
1198
|
return isClusteringCompleted;
|
|
1189
1199
|
}
|
|
1200
|
+
/** @private */
|
|
1201
|
+
export function markerClusterListHandler(maps, currentZoomFactor, layerIndex, index, indexCollection) {
|
|
1202
|
+
if (currentZoomFactor == 1) {
|
|
1203
|
+
var initialMarkerClusterList = isNullOrUndefined(maps.markerModule.initialMarkerCluster[layerIndex][index]) ? [] : indexCollection.length > 1 ? indexCollection : [];
|
|
1204
|
+
maps.markerModule.initialMarkerCluster[layerIndex][index] = initialMarkerClusterList;
|
|
1205
|
+
var zoomedMarkerClusterList = isNullOrUndefined(maps.markerModule.zoomedMarkerCluster[layerIndex][index]) ? [] : indexCollection.length > 1 ? indexCollection : [];
|
|
1206
|
+
maps.markerModule.zoomedMarkerCluster[layerIndex][index] = zoomedMarkerClusterList;
|
|
1207
|
+
}
|
|
1208
|
+
else if (currentZoomFactor > 1) {
|
|
1209
|
+
maps.markerModule.zoomedMarkerCluster[layerIndex][index] = indexCollection.length > 1 ? indexCollection : [];
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1212
|
+
/** @private */
|
|
1213
|
+
export function markerBoundsComparer(tempElement, markerBounds, colloideBounds, indexCollection, p) {
|
|
1214
|
+
var currentMarkerBound = tempElement.getBoundingClientRect();
|
|
1215
|
+
if (!isNullOrUndefined(currentMarkerBound)) {
|
|
1216
|
+
if (!(markerBounds.left > currentMarkerBound.right || markerBounds.right < currentMarkerBound.left
|
|
1217
|
+
|| markerBounds.top > currentMarkerBound.bottom || markerBounds.bottom < currentMarkerBound.top)) {
|
|
1218
|
+
colloideBounds.push(currentMarkerBound);
|
|
1219
|
+
tempElement['style']['visibility'] = 'hidden';
|
|
1220
|
+
indexCollection.push(p);
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1190
1224
|
/**
|
|
1191
1225
|
*
|
|
1192
1226
|
* @param {MarkerClusterData[]} sameMarkerData - Specifies the marker data
|
|
@@ -1981,22 +2015,40 @@ export function isCustomPath(layerData) {
|
|
|
1981
2015
|
* @returns {string} - Returns the string
|
|
1982
2016
|
* @private
|
|
1983
2017
|
*/
|
|
1984
|
-
export function textTrim(maxWidth, text, font) {
|
|
2018
|
+
export function textTrim(maxWidth, text, font, width, isCanvasMeasure, widthList) {
|
|
1985
2019
|
var label = text;
|
|
1986
|
-
|
|
1987
|
-
|
|
2020
|
+
if (isNullOrUndefined(width)) {
|
|
2021
|
+
if (!isCanvasMeasure) {
|
|
2022
|
+
width = measureText(text, font).width;
|
|
2023
|
+
}
|
|
2024
|
+
else {
|
|
2025
|
+
width = measureTextElement(text, font).width;
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
if (width > maxWidth) {
|
|
1988
2029
|
var textLength = text.length;
|
|
1989
2030
|
for (var i = textLength - 1; i >= 0; --i) {
|
|
1990
2031
|
label = text.substring(0, i) + '...';
|
|
1991
|
-
|
|
1992
|
-
|
|
2032
|
+
if (!isCanvasMeasure) {
|
|
2033
|
+
width = measureText(label, font).width;
|
|
2034
|
+
}
|
|
2035
|
+
else {
|
|
2036
|
+
width = measureTextElement(label, font).width;
|
|
2037
|
+
}
|
|
2038
|
+
if (width <= maxWidth || label.length < 4) {
|
|
1993
2039
|
if (label.length < 4) {
|
|
1994
2040
|
label = ' ';
|
|
1995
2041
|
}
|
|
2042
|
+
if (!isNullOrUndefined(widthList)) {
|
|
2043
|
+
widthList.push(width);
|
|
2044
|
+
}
|
|
1996
2045
|
return label;
|
|
1997
2046
|
}
|
|
1998
2047
|
}
|
|
1999
2048
|
}
|
|
2049
|
+
if (!isNullOrUndefined(widthList)) {
|
|
2050
|
+
widthList.push(width);
|
|
2051
|
+
}
|
|
2000
2052
|
return label;
|
|
2001
2053
|
}
|
|
2002
2054
|
/**
|
|
@@ -2074,11 +2126,11 @@ export function getTranslate(mapObject, layer, animate) {
|
|
|
2074
2126
|
}
|
|
2075
2127
|
if (mapObject.zoomSettings.shouldZoomInitially && mapObject.zoomSettings.enable) {
|
|
2076
2128
|
mapObject.mapScaleValue = scaleFactor = zoomFactorValue = ((mapObject.zoomSettings.shouldZoomInitially || mapObject.enablePersistence) && mapObject.scale === 1)
|
|
2077
|
-
? mapObject.scale : (isNullOrUndefined(mapObject.markerZoomFactor)) ? 1 : mapObject.markerZoomFactor;
|
|
2078
|
-
if (mapObject.mapScaleValue !== mapObject.markerZoomFactor && !mapObject.enablePersistence) {
|
|
2129
|
+
? mapObject.scale : (isNullOrUndefined(mapObject.markerZoomFactor)) ? 1 : (mapObject.markerZoomedState ? mapObject.markerZoomFactor : parseInt(mapObject.scale.toString()));
|
|
2130
|
+
if (mapObject.markerZoomedState && mapObject.mapScaleValue !== mapObject.markerZoomFactor && !mapObject.enablePersistence) {
|
|
2079
2131
|
mapObject.mapScaleValue = zoomFactorValue = mapObject.markerZoomFactor;
|
|
2080
2132
|
}
|
|
2081
|
-
if (!isNullOrUndefined(mapObject.markerCenterLatitude) && !isNullOrUndefined(mapObject.markerCenterLongitude)) {
|
|
2133
|
+
if (mapObject.markerZoomedState && !isNullOrUndefined(mapObject.markerCenterLatitude) && !isNullOrUndefined(mapObject.markerCenterLongitude)) {
|
|
2082
2134
|
centerLatitude = mapObject.markerCenterLatitude;
|
|
2083
2135
|
centerLongitude = mapObject.markerCenterLongitude;
|
|
2084
2136
|
}
|
package/.eslintrc.json
DELETED
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"browser": true,
|
|
4
|
-
"es2021": true
|
|
5
|
-
},
|
|
6
|
-
"extends": [
|
|
7
|
-
"eslint:recommended",
|
|
8
|
-
"plugin:@typescript-eslint/recommended",
|
|
9
|
-
"plugin:jsdoc/recommended",
|
|
10
|
-
"plugin:security/recommended"
|
|
11
|
-
],
|
|
12
|
-
"parser": "@typescript-eslint/parser",
|
|
13
|
-
"parserOptions": {
|
|
14
|
-
"ecmaFeatures": { "js": true },
|
|
15
|
-
"ecmaVersion": 2018,
|
|
16
|
-
"project": "./tsconfig.json",
|
|
17
|
-
"sourceType": "module"
|
|
18
|
-
},
|
|
19
|
-
"plugins": [
|
|
20
|
-
"@typescript-eslint",
|
|
21
|
-
"@typescript-eslint/tslint",
|
|
22
|
-
"eslint-plugin-security",
|
|
23
|
-
"jsdoc"
|
|
24
|
-
],
|
|
25
|
-
"rules": {
|
|
26
|
-
"use-isnan": "error",
|
|
27
|
-
"security/detect-unsafe-regex":"error",
|
|
28
|
-
"security/detect-buffer-noassert":"error",
|
|
29
|
-
"security/detect-child-process":"error",
|
|
30
|
-
"security/detect-disable-mustache-escape":"error",
|
|
31
|
-
"security/detect-eval-with-expression":"error",
|
|
32
|
-
"security/detect-no-csrf-before-method-override":"error",
|
|
33
|
-
"security/detect-non-literal-fs-filename":"error",
|
|
34
|
-
"security/detect-non-literal-regexp":"error",
|
|
35
|
-
"security/detect-non-literal-require":"error",
|
|
36
|
-
"security/detect-object-injection":"error",
|
|
37
|
-
"security/detect-possible-timing-attacks":"error",
|
|
38
|
-
"security/detect-pseudoRandomBytes":"error",
|
|
39
|
-
"security/detect-new-buffer":"error",
|
|
40
|
-
"security/detect-bidi-characters":"error",
|
|
41
|
-
"@typescript-eslint/no-inferrable-types": "off",
|
|
42
|
-
"@typescript-eslint/ban-types": ["warn", {
|
|
43
|
-
"types": {
|
|
44
|
-
"Object": false,
|
|
45
|
-
"object": false,
|
|
46
|
-
"{}": false,
|
|
47
|
-
"Function": false
|
|
48
|
-
}
|
|
49
|
-
}],
|
|
50
|
-
"jsdoc/check-tag-names": 0,
|
|
51
|
-
"@typescript-eslint/tslint/config": [
|
|
52
|
-
"error",
|
|
53
|
-
{
|
|
54
|
-
"rules": {
|
|
55
|
-
"ban": true,
|
|
56
|
-
"chai-vague-errors": true,
|
|
57
|
-
"max-func-body-length": [
|
|
58
|
-
true,
|
|
59
|
-
120,
|
|
60
|
-
{
|
|
61
|
-
"ignore-parameters-to-function-regex": "describe"
|
|
62
|
-
}
|
|
63
|
-
],
|
|
64
|
-
"missing-jsdoc": true,
|
|
65
|
-
"no-backbone-get-set-outside-model": false,
|
|
66
|
-
"no-cookies": false,
|
|
67
|
-
"no-delete-expression": false,
|
|
68
|
-
"no-disable-auto-sanitization": true,
|
|
69
|
-
"no-duplicate-case": true,
|
|
70
|
-
"no-duplicate-parameter-names": true,
|
|
71
|
-
"no-empty-interfaces": false,
|
|
72
|
-
"no-exec-script": true,
|
|
73
|
-
"no-function-expression": false,
|
|
74
|
-
"no-multiple-var-decl": false,
|
|
75
|
-
"no-string-based-set-immediate": false,
|
|
76
|
-
"no-string-based-set-interval": false,
|
|
77
|
-
"no-unnecessary-bind": false,
|
|
78
|
-
"no-unused-imports": true,
|
|
79
|
-
"no-with-statement": false,
|
|
80
|
-
"prefer-array-literal": false,
|
|
81
|
-
"typedef": [
|
|
82
|
-
true,
|
|
83
|
-
"call-signature",
|
|
84
|
-
"parameter",
|
|
85
|
-
"property-declaration",
|
|
86
|
-
"variable-declaration",
|
|
87
|
-
"arrow-parameter",
|
|
88
|
-
"member-variable-declaration"
|
|
89
|
-
],
|
|
90
|
-
"use-named-parameter": false,
|
|
91
|
-
"valid-typeof": true,
|
|
92
|
-
"whitespace": [
|
|
93
|
-
true,
|
|
94
|
-
"check-branch",
|
|
95
|
-
"check-decl",
|
|
96
|
-
"check-operator",
|
|
97
|
-
"check-separator",
|
|
98
|
-
"check-type"
|
|
99
|
-
]
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
],
|
|
103
|
-
"no-control-regex": "error",
|
|
104
|
-
"no-constant-condition": "error",
|
|
105
|
-
"no-invalid-regexp": "error",
|
|
106
|
-
"curly": "error",
|
|
107
|
-
"eol-last": [
|
|
108
|
-
"error",
|
|
109
|
-
"always"
|
|
110
|
-
],
|
|
111
|
-
"guard-for-in": "error",
|
|
112
|
-
"no-labels": "error",
|
|
113
|
-
"max-len": [
|
|
114
|
-
"error",
|
|
115
|
-
{
|
|
116
|
-
"code": 140,
|
|
117
|
-
"tabWidth": 4,
|
|
118
|
-
"ignoreComments": true,
|
|
119
|
-
"ignoreStrings": true,
|
|
120
|
-
"ignoreTemplateLiterals": true,
|
|
121
|
-
"ignoreRegExpLiterals": true
|
|
122
|
-
}
|
|
123
|
-
],
|
|
124
|
-
"no-console": [
|
|
125
|
-
"error",
|
|
126
|
-
{
|
|
127
|
-
"allow": [
|
|
128
|
-
"warn",
|
|
129
|
-
"dir",
|
|
130
|
-
"timeLog",
|
|
131
|
-
"assert",
|
|
132
|
-
"clear",
|
|
133
|
-
"count",
|
|
134
|
-
"countReset",
|
|
135
|
-
"group",
|
|
136
|
-
"groupEnd",
|
|
137
|
-
"table",
|
|
138
|
-
"dirxml",
|
|
139
|
-
"error",
|
|
140
|
-
"groupCollapsed",
|
|
141
|
-
"Console",
|
|
142
|
-
"profile",
|
|
143
|
-
"profileEnd",
|
|
144
|
-
"timeStamp",
|
|
145
|
-
"context"
|
|
146
|
-
]
|
|
147
|
-
}
|
|
148
|
-
],
|
|
149
|
-
"no-redeclare": [
|
|
150
|
-
"error",
|
|
151
|
-
{
|
|
152
|
-
"builtinGlobals": true
|
|
153
|
-
}
|
|
154
|
-
],
|
|
155
|
-
"@typescript-eslint/no-parameter-properties": "error",
|
|
156
|
-
"@typescript-eslint/indent": [
|
|
157
|
-
"error",
|
|
158
|
-
4,
|
|
159
|
-
{
|
|
160
|
-
"CallExpression": {
|
|
161
|
-
"arguments": "first"
|
|
162
|
-
},
|
|
163
|
-
"FunctionDeclaration": {
|
|
164
|
-
"parameters": "first"
|
|
165
|
-
},
|
|
166
|
-
"FunctionExpression": {
|
|
167
|
-
"parameters": "first"
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
],
|
|
171
|
-
"no-debugger": "error",
|
|
172
|
-
"no-eval": "error",
|
|
173
|
-
"no-extra-semi": "error",
|
|
174
|
-
"no-throw-literal": "error",
|
|
175
|
-
"no-fallthrough": "error",
|
|
176
|
-
"comma-dangle": [
|
|
177
|
-
"error",
|
|
178
|
-
"never"
|
|
179
|
-
],
|
|
180
|
-
"no-trailing-spaces": "error",
|
|
181
|
-
"@typescript-eslint/no-unused-expressions": "error",
|
|
182
|
-
"@typescript-eslint/no-var-requires": "error",
|
|
183
|
-
"one-var": [
|
|
184
|
-
"error",
|
|
185
|
-
"never"
|
|
186
|
-
],
|
|
187
|
-
"@typescript-eslint/no-explicit-any": "error",
|
|
188
|
-
"no-cond-assign": [
|
|
189
|
-
"error",
|
|
190
|
-
"always"
|
|
191
|
-
],
|
|
192
|
-
"@typescript-eslint/consistent-type-assertions": "off",
|
|
193
|
-
"jsdoc/check-alignment": "error",
|
|
194
|
-
"no-empty": "error",
|
|
195
|
-
"quotes": [
|
|
196
|
-
"error",
|
|
197
|
-
"single"
|
|
198
|
-
],
|
|
199
|
-
"semi": [
|
|
200
|
-
"error",
|
|
201
|
-
"always"
|
|
202
|
-
],
|
|
203
|
-
"eqeqeq": [
|
|
204
|
-
"error",
|
|
205
|
-
"smart"
|
|
206
|
-
],
|
|
207
|
-
"valid-typeof": [
|
|
208
|
-
"error",
|
|
209
|
-
{
|
|
210
|
-
"requireStringLiterals": true
|
|
211
|
-
}
|
|
212
|
-
],
|
|
213
|
-
"camelcase": [
|
|
214
|
-
"error",
|
|
215
|
-
{
|
|
216
|
-
"properties": "always",
|
|
217
|
-
"ignoreDestructuring": true,
|
|
218
|
-
"ignoreImports": true
|
|
219
|
-
}
|
|
220
|
-
],
|
|
221
|
-
"no-irregular-whitespace": [
|
|
222
|
-
"error",
|
|
223
|
-
{
|
|
224
|
-
"skipStrings": true,
|
|
225
|
-
"skipComments": true,
|
|
226
|
-
"skipRegExps": true,
|
|
227
|
-
"skipTemplates": true
|
|
228
|
-
}
|
|
229
|
-
],
|
|
230
|
-
"valid-jsdoc": [
|
|
231
|
-
"error",
|
|
232
|
-
{
|
|
233
|
-
"prefer": {
|
|
234
|
-
"arg": "param",
|
|
235
|
-
"argument": "param",
|
|
236
|
-
"class": "constructor",
|
|
237
|
-
"return": "returns",
|
|
238
|
-
"virtual": "abstract"
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
],
|
|
242
|
-
"no-var": "error",
|
|
243
|
-
"radix": "error"
|
|
244
|
-
},
|
|
245
|
-
"reportUnusedDisableDirectives": true,
|
|
246
|
-
"overrides": [
|
|
247
|
-
{
|
|
248
|
-
"files": [
|
|
249
|
-
"node_modules",
|
|
250
|
-
"dist",
|
|
251
|
-
"public",
|
|
252
|
-
"coverage",
|
|
253
|
-
"test-report"
|
|
254
|
-
],
|
|
255
|
-
"rules": {
|
|
256
|
-
"no-unused-expressions": "off"
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
]
|
|
260
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Bug description
|
|
2
|
-
|
|
3
|
-
Clearly and concisely describe the problem or feature (this cannot be empty).
|
|
4
|
-
|
|
5
|
-
## Root cause
|
|
6
|
-
|
|
7
|
-
Briefly describe the root cause and analysis of the problem.
|
|
8
|
-
If there is an internal discussion on the forum, provide the link.
|
|
9
|
-
|
|
10
|
-
## Reason for not identifying earlier
|
|
11
|
-
|
|
12
|
-
Find how it was missed in our earlier testing and development and by whom it was missed. This will help prevent similar mistakes in the future.
|
|
13
|
-
|
|
14
|
-
### Reason
|
|
15
|
-
|
|
16
|
-
Provide reason for missing.
|
|
17
|
-
|
|
18
|
-
### Action taken:
|
|
19
|
-
|
|
20
|
-
Provide the action plan taken to avoid this issue further. Also, mention if we addressed any other area in the same product based on this learning.
|
|
21
|
-
|
|
22
|
-
### Related Area for missing test case:
|
|
23
|
-
|
|
24
|
-
Unit test case / E2E test case / Manual testing
|
|
25
|
-
|
|
26
|
-
## Is it a breaking issue?
|
|
27
|
-
|
|
28
|
-
If it is a breaking issue, provide the commit detail which caused this break.
|
|
29
|
-
|
|
30
|
-
## Solution description
|
|
31
|
-
|
|
32
|
-
Describe your code changes in detail for reviewers.
|
|
33
|
-
|
|
34
|
-
### Cause:
|
|
35
|
-
|
|
36
|
-
Technical explanation for cause.
|
|
37
|
-
|
|
38
|
-
### Fix:
|
|
39
|
-
|
|
40
|
-
Technical explanation for your fix.
|
|
41
|
-
|
|
42
|
-
## Output screenshots
|
|
43
|
-
|
|
44
|
-
Post the output screenshots if an UI is affected or added due to this bug.
|
|
45
|
-
|
|
46
|
-
### Before issue fix output image:
|
|
47
|
-
|
|
48
|
-
Provide issue image before fix.
|
|
49
|
-
|
|
50
|
-
### After issue fix output image:
|
|
51
|
-
|
|
52
|
-
Provide issue fixed image with your fix.
|
|
53
|
-
|
|
54
|
-
## Areas affected and ensured
|
|
55
|
-
|
|
56
|
-
List the areas affected by your code changes.
|
|
57
|
-
|
|
58
|
-
## Additional checklist
|
|
59
|
-
|
|
60
|
-
- [ ] Did you run the automation against your fix? <b> Yes | No Your Explanation </b>
|
|
61
|
-
|
|
62
|
-
- [ ] Is there any API name change? <b> Yes | No Your Explanation </b>
|
|
63
|
-
|
|
64
|
-
- [ ] Is there any existing behavior change of other features due to this code change? <b> Yes | No Your Explanation </b>
|
|
65
|
-
|
|
66
|
-
- [ ] Did you record this case in the unit test or UI test? <b> Yes | No Your Explanation </b>
|
|
67
|
-
|
|
68
|
-
- [ ] Did you added issue fix comment? <b> Yes | No Your Explanation </b>
|
|
69
|
-
|
|
70
|
-
- [ ] Did you tested this issue fix for all browsers? <b> [ ] Chrome [ ] Firefox [ ] Edge [ ] Internet Explorer </b>
|
|
71
|
-
|
|
72
|
-
- [ ] Does it have any known issues? <b> Yes | No Your Explanation </b>
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Feature description
|
|
2
|
-
|
|
3
|
-
Clearly and concisely describe the problem/feature (this cannot be empty)
|
|
4
|
-
|
|
5
|
-
## Analysis / Design
|
|
6
|
-
|
|
7
|
-
If there is an external design, link to it project documentation area
|
|
8
|
-
If there is an internal discussion on the Forum, provide the link.
|
|
9
|
-
|
|
10
|
-
## Solution Description
|
|
11
|
-
|
|
12
|
-
Describe your code changes in detail for reviewers
|
|
13
|
-
|
|
14
|
-
## Output screenshots
|
|
15
|
-
|
|
16
|
-
Post the output screenshots if an UI is affected or added due to this feature.
|
|
17
|
-
|
|
18
|
-
## Areas affected and ensured
|
|
19
|
-
|
|
20
|
-
List out the areas are affected by your code changes.
|
|
21
|
-
|
|
22
|
-
## Test cases
|
|
23
|
-
|
|
24
|
-
Provide the unit testing written file details to understand the use cases considered in this implementation.
|
|
25
|
-
If there is no TDD (if it’s not possible to follow), provide the UI automation script location and the Excel file that contains the use cases considered in this implementation.
|
|
26
|
-
Provide the test cases Excel file alone if the feature cannot be automated in any case.
|
|
27
|
-
|
|
28
|
-
## Test bed sample location
|
|
29
|
-
|
|
30
|
-
Provide the test bed sample location where code reviewers can review the new feature’s behaviors. It can be from NPMCI, staging site, local server, etc.
|
|
31
|
-
|
|
32
|
-
## Additional checklist
|
|
33
|
-
|
|
34
|
-
- [ ] Did you run the automation against your feature? <b> Yes | No Your Explanation </b>
|
|
35
|
-
|
|
36
|
-
- [ ] Is there any API name change? <b> Yes | No Your Explanation </b>
|
|
37
|
-
|
|
38
|
-
- [ ] Is there any existing behavior change of other features due to this code change? <b> Yes | No Your Explanation </b>
|
|
39
|
-
|
|
40
|
-
- [ ] Did you record this case in the unit test or UI test? <b> Yes | No Your Explanation </b>
|
|
41
|
-
|
|
42
|
-
- [ ] Did you add comment for your new code (Method / Class / API / Interface / Event)? <b> Yes | No Your Explanation </b>
|
|
43
|
-
|
|
44
|
-
- [ ] Did you configured third party config your feature? <b> Yes | No Your Explanation </b>
|
|
45
|
-
|
|
46
|
-
- [ ] Did you tested this feature with all browsers? <b> [ ] Chrome [ ] Firefox [ ] Edge [ ] Internet Explorer </b>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|