@slickgrid-universal/utils 9.5.0 → 9.7.0
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/README.md +1 -1
- package/dist/domUtils.d.ts +7 -7
- package/dist/domUtils.d.ts.map +1 -1
- package/dist/domUtils.js +17 -11
- package/dist/domUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/domUtils.ts +17 -11
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
[](https://github.com/ghiscoding/slickgrid-universal/actions)
|
|
9
9
|
[](https://www.cypress.io/)
|
|
10
|
-
[](https://vitest.dev/)
|
|
11
11
|
[](https://codecov.io/gh/ghiscoding/slickgrid-universal)
|
|
12
12
|
|
|
13
13
|
## Common Utils
|
package/dist/domUtils.d.ts
CHANGED
|
@@ -69,19 +69,19 @@ export declare function findFirstAttribute(inputElm: Element | null | undefined,
|
|
|
69
69
|
*/
|
|
70
70
|
export declare function findWidthOrDefault(inputWidth?: number | string | null, defaultValue?: string): string;
|
|
71
71
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* then grab the encoded contents back out. The div never exists on the page.
|
|
72
|
+
* Simple function to encode the 5 most common HTML entities (`<`, `>`, `"`, `'`, `&`).
|
|
73
|
+
* For example: "<div>Hello</div>" => "<div>Hello</div>"
|
|
75
74
|
* @param {String} inputValue - input value to be encoded
|
|
76
75
|
* @return {String}
|
|
77
76
|
*/
|
|
78
77
|
export declare function htmlEncode(inputValue: string): string;
|
|
79
78
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
* @param
|
|
79
|
+
* Simple function to decode the most common HTML entities.
|
|
80
|
+
* For example: "<div>Hablar español? ��</div>" => "<div>Hablar español? 🦄</div>"
|
|
81
|
+
* @param {String} inputValue - input value to be decoded
|
|
82
|
+
* @return {String}
|
|
83
83
|
*/
|
|
84
|
-
export declare function
|
|
84
|
+
export declare function htmlDecode(input?: string | boolean | number): string;
|
|
85
85
|
/**
|
|
86
86
|
* Encode string to html special char and add html space padding defined
|
|
87
87
|
* @param {string} inputStr - input string
|
package/dist/domUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domUtils.d.ts","sourceRoot":"","sources":["../src/domUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"domUtils.d.ts","sourceRoot":"","sources":["../src/domUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/domUtils.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { isDefined } from './utils.js';
|
|
1
2
|
/** Calculate available space for each side of the DOM element */
|
|
2
3
|
export function calculateAvailableSpace(element) {
|
|
3
4
|
const vh = window.innerHeight || 0;
|
|
4
5
|
const vw = window.innerWidth || 0;
|
|
5
6
|
const { top: pageScrollTop, left: pageScrollLeft } = windowScrollPosition();
|
|
6
|
-
const { top: elementOffsetTop, left: elementOffsetLeft } = getOffset(element) || {};
|
|
7
|
+
const { top: elementOffsetTop = 0, left: elementOffsetLeft = 0 } = getOffset(element) || {};
|
|
7
8
|
const top = elementOffsetTop - pageScrollTop;
|
|
8
9
|
const left = elementOffsetLeft - pageScrollLeft;
|
|
9
10
|
const bottom = vh - (elementOffsetTop - pageScrollTop + element.clientHeight);
|
|
@@ -163,9 +164,8 @@ export function findWidthOrDefault(inputWidth, defaultValue = 'auto') {
|
|
|
163
164
|
return (/^[0-9]+$/i.test(`${inputWidth}`) ? `${+inputWidth}px` : inputWidth) || defaultValue;
|
|
164
165
|
}
|
|
165
166
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* then grab the encoded contents back out. The div never exists on the page.
|
|
167
|
+
* Simple function to encode the 5 most common HTML entities (`<`, `>`, `"`, `'`, `&`).
|
|
168
|
+
* For example: "<div>Hello</div>" => "<div>Hello</div>"
|
|
169
169
|
* @param {String} inputValue - input value to be encoded
|
|
170
170
|
* @return {String}
|
|
171
171
|
*/
|
|
@@ -181,14 +181,20 @@ export function htmlEncode(inputValue) {
|
|
|
181
181
|
return (val || '').toString().replace(/[&<>"']/g, (s) => entityMap[s]);
|
|
182
182
|
}
|
|
183
183
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* @param
|
|
184
|
+
* Simple function to decode the most common HTML entities.
|
|
185
|
+
* For example: "<div>Hablar español? ��</div>" => "<div>Hablar español? 🦄</div>"
|
|
186
|
+
* @param {String} inputValue - input value to be decoded
|
|
187
|
+
* @return {String}
|
|
187
188
|
*/
|
|
188
|
-
export function
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
export function htmlDecode(input) {
|
|
190
|
+
if (isDefined(input)) {
|
|
191
|
+
// 1. decode html entities (e.g. `'` => single quote)
|
|
192
|
+
// 2. use textarea to decode the rest (e.g. html tags and symbols, `<div>` => `<div>`)
|
|
193
|
+
const txt = document.createElement('textarea');
|
|
194
|
+
txt.innerHTML = input.toString().replace(/&#(\d+);/g, (_, dec) => String.fromCharCode(dec));
|
|
195
|
+
return txt.value;
|
|
196
|
+
}
|
|
197
|
+
return '';
|
|
192
198
|
}
|
|
193
199
|
/**
|
|
194
200
|
* Encode string to html special char and add html space padding defined
|
package/dist/domUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domUtils.js","sourceRoot":"","sources":["../src/domUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domUtils.js","sourceRoot":"","sources":["../src/domUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slickgrid-universal/utils",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.7.0",
|
|
4
4
|
"description": "Common set of small utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"url": "https://github.com/ghiscoding/slickgrid-universal/issues"
|
|
32
32
|
},
|
|
33
33
|
"browserslist": [
|
|
34
|
-
"last 2
|
|
34
|
+
"last 2 versions",
|
|
35
35
|
"> 1%",
|
|
36
36
|
"not dead"
|
|
37
37
|
],
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "fc107be1fe8fbfb77dedd5f71a9d656a6748b4a4"
|
|
39
39
|
}
|
package/src/domUtils.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { HtmlElementPosition } from './models/interfaces.js';
|
|
2
2
|
import type { InferDOMType } from './models/types.js';
|
|
3
|
+
import { isDefined } from './utils.js';
|
|
3
4
|
|
|
4
5
|
/** Calculate available space for each side of the DOM element */
|
|
5
6
|
export function calculateAvailableSpace(element: HTMLElement): { top: number; bottom: number; left: number; right: number } {
|
|
6
7
|
const vh = window.innerHeight || 0;
|
|
7
8
|
const vw = window.innerWidth || 0;
|
|
8
9
|
const { top: pageScrollTop, left: pageScrollLeft } = windowScrollPosition();
|
|
9
|
-
const { top: elementOffsetTop, left: elementOffsetLeft } = getOffset(element) || {};
|
|
10
|
+
const { top: elementOffsetTop = 0, left: elementOffsetLeft = 0 } = getOffset(element) || {};
|
|
10
11
|
|
|
11
12
|
const top = elementOffsetTop - pageScrollTop;
|
|
12
13
|
const left = elementOffsetLeft - pageScrollLeft;
|
|
@@ -200,9 +201,8 @@ export function findWidthOrDefault(inputWidth?: number | string | null, defaultV
|
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
/**
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
* then grab the encoded contents back out. The div never exists on the page.
|
|
204
|
+
* Simple function to encode the 5 most common HTML entities (`<`, `>`, `"`, `'`, `&`).
|
|
205
|
+
* For example: "<div>Hello</div>" => "<div>Hello</div>"
|
|
206
206
|
* @param {String} inputValue - input value to be encoded
|
|
207
207
|
* @return {String}
|
|
208
208
|
*/
|
|
@@ -219,14 +219,20 @@ export function htmlEncode(inputValue: string): string {
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
/**
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
* @param
|
|
222
|
+
* Simple function to decode the most common HTML entities.
|
|
223
|
+
* For example: "<div>Hablar español? ��</div>" => "<div>Hablar español? 🦄</div>"
|
|
224
|
+
* @param {String} inputValue - input value to be decoded
|
|
225
|
+
* @return {String}
|
|
225
226
|
*/
|
|
226
|
-
export function
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
227
|
+
export function htmlDecode(input?: string | boolean | number): string {
|
|
228
|
+
if (isDefined(input)) {
|
|
229
|
+
// 1. decode html entities (e.g. `'` => single quote)
|
|
230
|
+
// 2. use textarea to decode the rest (e.g. html tags and symbols, `<div>` => `<div>`)
|
|
231
|
+
const txt = document.createElement('textarea');
|
|
232
|
+
txt.innerHTML = input.toString().replace(/&#(\d+);/g, (_, dec) => String.fromCharCode(dec));
|
|
233
|
+
return txt.value;
|
|
234
|
+
}
|
|
235
|
+
return '';
|
|
230
236
|
}
|
|
231
237
|
|
|
232
238
|
/**
|