@slickgrid-universal/utils 5.12.0 → 9.0.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.
Files changed (57) hide show
  1. package/dist/{types/domUtils.d.ts → domUtils.d.ts} +1 -1
  2. package/dist/domUtils.d.ts.map +1 -0
  3. package/dist/{esm/domUtils.js → domUtils.js} +19 -37
  4. package/dist/domUtils.js.map +1 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/models/interfaces.d.ts.map +1 -0
  8. package/dist/{cjs/models → models}/interfaces.js.map +1 -1
  9. package/dist/models/types.d.ts.map +1 -0
  10. package/dist/{cjs/models → models}/types.js.map +1 -1
  11. package/dist/nodeExtend.d.ts.map +1 -0
  12. package/dist/nodeExtend.js.map +1 -0
  13. package/dist/stripTagsUtil.d.ts.map +1 -0
  14. package/dist/stripTagsUtil.js.map +1 -0
  15. package/dist/utils.d.ts.map +1 -0
  16. package/dist/utils.js.map +1 -0
  17. package/package.json +7 -9
  18. package/src/domUtils.ts +19 -39
  19. package/dist/cjs/domUtils.js +0 -259
  20. package/dist/cjs/domUtils.js.map +0 -1
  21. package/dist/cjs/index.js +0 -21
  22. package/dist/cjs/index.js.map +0 -1
  23. package/dist/cjs/models/interfaces.js +0 -3
  24. package/dist/cjs/models/types.js +0 -3
  25. package/dist/cjs/nodeExtend.js +0 -125
  26. package/dist/cjs/nodeExtend.js.map +0 -1
  27. package/dist/cjs/stripTagsUtil.js +0 -175
  28. package/dist/cjs/stripTagsUtil.js.map +0 -1
  29. package/dist/cjs/utils.js +0 -378
  30. package/dist/cjs/utils.js.map +0 -1
  31. package/dist/esm/domUtils.js.map +0 -1
  32. package/dist/esm/index.js.map +0 -1
  33. package/dist/esm/models/interfaces.js.map +0 -1
  34. package/dist/esm/models/types.js.map +0 -1
  35. package/dist/esm/nodeExtend.js.map +0 -1
  36. package/dist/esm/stripTagsUtil.js.map +0 -1
  37. package/dist/esm/utils.js.map +0 -1
  38. package/dist/tsconfig.tsbuildinfo +0 -1
  39. package/dist/types/domUtils.d.ts.map +0 -1
  40. package/dist/types/index.d.ts.map +0 -1
  41. package/dist/types/models/interfaces.d.ts.map +0 -1
  42. package/dist/types/models/types.d.ts.map +0 -1
  43. package/dist/types/nodeExtend.d.ts.map +0 -1
  44. package/dist/types/stripTagsUtil.d.ts.map +0 -1
  45. package/dist/types/utils.d.ts.map +0 -1
  46. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  47. /package/dist/{esm/index.js → index.js} +0 -0
  48. /package/dist/{types/models → models}/interfaces.d.ts +0 -0
  49. /package/dist/{esm/models → models}/interfaces.js +0 -0
  50. /package/dist/{types/models → models}/types.d.ts +0 -0
  51. /package/dist/{esm/models → models}/types.js +0 -0
  52. /package/dist/{types/nodeExtend.d.ts → nodeExtend.d.ts} +0 -0
  53. /package/dist/{esm/nodeExtend.js → nodeExtend.js} +0 -0
  54. /package/dist/{types/stripTagsUtil.d.ts → stripTagsUtil.d.ts} +0 -0
  55. /package/dist/{esm/stripTagsUtil.js → stripTagsUtil.js} +0 -0
  56. /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
  57. /package/dist/{esm/utils.js → utils.js} +0 -0
@@ -1,125 +0,0 @@
1
- "use strict";
2
- /**
3
- * This extend function is a reimplementation of the npm package `extend` (also named `node-extend`).
4
- * The reason for the reimplementation was mostly because the original project is not ESM compatible
5
- * and written with old ES6 IIFE syntax, the goal was to reimplement and fix these old syntax and build problems.
6
- * e.g. it used `var` everywhere, it used `arguments` to get function arguments, ...
7
- * See `jQuery.extend()` for multiple usage demos: https://api.jquery.com/jquery.extend/
8
- *
9
- * The previous lib can be found here at this Github link:
10
- * https://github.com/justmoon/node-extend
11
- * With an MIT licence that and can be found at
12
- * https://github.com/justmoon/node-extend/blob/main/LICENSE
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.extend = extend;
16
- const hasOwn = Object.prototype.hasOwnProperty;
17
- const toStr = Object.prototype.toString;
18
- const defineProperty = Object.defineProperty;
19
- const gOPD = Object.getOwnPropertyDescriptor;
20
- const isArray = function isArray(arr) {
21
- if (typeof Array.isArray === 'function') {
22
- return Array.isArray(arr);
23
- }
24
- /* v8 ignore next 2 */
25
- return toStr.call(arr) === '[object Array]';
26
- };
27
- const isPlainObject = function isPlainObject(obj) {
28
- if (!obj || toStr.call(obj) !== '[object Object]') {
29
- return false;
30
- }
31
- const hasOwnConstructor = hasOwn.call(obj, 'constructor');
32
- const hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
33
- // Not own constructor property must be Object
34
- if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
35
- return false;
36
- }
37
- // Own properties are enumerated firstly, so to speed up, if last one is own, then all properties are own.
38
- let key;
39
- for (key in obj) {
40
- /**/
41
- }
42
- return typeof key === 'undefined' || hasOwn.call(obj, key);
43
- };
44
- // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
45
- const setProperty = function setProperty(target, options) {
46
- if (defineProperty && options.name === '__proto__') {
47
- defineProperty(target, options.name, {
48
- enumerable: true,
49
- configurable: true,
50
- value: options.newValue,
51
- writable: true,
52
- });
53
- }
54
- else {
55
- target[options.name] = options.newValue;
56
- }
57
- };
58
- // Return undefined instead of __proto__ if '__proto__' is not an own property
59
- const getProperty = function getProperty(obj, name) {
60
- if (name === '__proto__') {
61
- if (!hasOwn.call(obj, name)) {
62
- return void 0;
63
- }
64
- else if (gOPD) {
65
- // In early versions of node, obj['__proto__'] is buggy when obj has __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
66
- return gOPD(obj, name).value;
67
- }
68
- }
69
- return obj[name];
70
- };
71
- function extend(...args) {
72
- let options;
73
- let name;
74
- let src;
75
- let copy;
76
- let copyIsArray;
77
- let clone;
78
- let target = args[0];
79
- let i = 1;
80
- const length = args.length;
81
- let deep = false;
82
- // Handle a deep copy situation
83
- if (typeof target === 'boolean') {
84
- deep = target;
85
- target = args[1] || {};
86
- // skip the boolean and the target
87
- i = 2;
88
- }
89
- if (target === null || target === undefined || (typeof target !== 'object' && typeof target !== 'function')) {
90
- target = {};
91
- }
92
- for (; i < length; ++i) {
93
- options = args[i];
94
- // Only deal with non-null/undefined values
95
- if (options !== null && options !== undefined) {
96
- // Extend the base object
97
- for (name in options) {
98
- src = getProperty(target, name);
99
- copy = getProperty(options, name);
100
- // Prevent never-ending loop
101
- if (target !== copy) {
102
- // Recurse if we're merging plain objects or arrays
103
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
104
- if (copyIsArray) {
105
- copyIsArray = false;
106
- clone = src && isArray(src) ? src : [];
107
- }
108
- else {
109
- clone = src && isPlainObject(src) ? src : {};
110
- }
111
- // Never move original objects, clone them
112
- setProperty(target, { name, newValue: extend(deep, clone, copy) });
113
- // Don't bring in undefined values
114
- }
115
- else if (typeof copy !== 'undefined') {
116
- setProperty(target, { name, newValue: copy });
117
- }
118
- }
119
- }
120
- }
121
- }
122
- // Return the modified object
123
- return target;
124
- }
125
- //# sourceMappingURL=nodeExtend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodeExtend.js","sourceRoot":"","sources":["../../src/nodeExtend.ts"],"names":[],"mappings":"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"}
@@ -1,175 +0,0 @@
1
- "use strict";
2
- /**
3
- * This stripTags function is a lib that already existed on NPM
4
- * but was not written as TypeScript and was not ESM friendly.
5
- * So I ported the code into the project and removed any legacy browser code that we don't need for our project since we dropped IE browsers support.
6
- * The function also accept more input types without throwing like the original one does,
7
- * the code below accepts `string | number | boolean | HTMLElement` while original code only accepted string.
8
- *
9
- * The previous lib can be found here at this Github link:
10
- * https://github.com/ericnorris/striptags/
11
- * With an MIT licence that and can be found at this link:
12
- * https://github.com/ericnorris/striptags/blob/main/LICENSE
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.stripTags = stripTags;
16
- const utils_js_1 = require("./utils.js");
17
- const STATE_PLAINTEXT = Symbol('plaintext');
18
- const STATE_HTML = Symbol('html');
19
- const STATE_COMMENT = Symbol('comment');
20
- const ALLOWED_TAGS_REGEX = /<(\w*)>/g;
21
- const NORMALIZE_TAG_REGEX = /<\/?([^\s/>]+)/;
22
- function stripTags(htmlText, allowableTags, tagReplacement) {
23
- /** main init function that will be executed when calling the global function */
24
- function init(html, allowable_tags, tag_replacement) {
25
- // number/boolean should be accepted but converted to string and returned on the spot
26
- // since there's no html tags to be found but we still expect a string output
27
- if (typeof html !== 'string' && ((0, utils_js_1.isNumber)(html) || typeof html === 'boolean')) {
28
- return String(html);
29
- }
30
- if (html instanceof HTMLElement) {
31
- html = html.innerHTML;
32
- }
33
- if (typeof html !== 'string' && html !== undefined && html !== null) {
34
- throw new TypeError(`'html' parameter must be a string`);
35
- }
36
- return striptags_internal(html || '', init_context(allowable_tags || '', tag_replacement || ''));
37
- }
38
- function init_context(allowable_tags, tag_replacement) {
39
- return {
40
- allowable_tags: parse_allowable_tags(allowable_tags),
41
- tag_replacement,
42
- state: STATE_PLAINTEXT,
43
- tag_buffer: '',
44
- depth: 0,
45
- in_quote_char: '',
46
- };
47
- }
48
- function striptags_internal(html, context) {
49
- const allowable_tags = context.allowable_tags;
50
- const tag_replacement = context.tag_replacement;
51
- let state = context.state;
52
- let tag_buffer = context.tag_buffer;
53
- let depth = context.depth;
54
- let in_quote_char = context.in_quote_char;
55
- let output = '';
56
- for (let idx = 0, length = html.length; idx < length; idx++) {
57
- const char = html[idx];
58
- if (state === STATE_PLAINTEXT) {
59
- switch (char) {
60
- case '<':
61
- state = STATE_HTML;
62
- tag_buffer += char;
63
- break;
64
- default:
65
- output += char;
66
- break;
67
- }
68
- }
69
- else if (state === STATE_HTML) {
70
- switch (char) {
71
- case '<':
72
- // ignore '<' if inside a quote
73
- if (in_quote_char) {
74
- break;
75
- }
76
- // we're seeing a nested '<'
77
- depth++;
78
- break;
79
- case '>':
80
- // ignore '>' if inside a quote
81
- if (in_quote_char) {
82
- break;
83
- }
84
- // something like this is happening: '<<>>'
85
- if (depth) {
86
- depth--;
87
- break;
88
- }
89
- // this is closing the tag in tag_buffer
90
- in_quote_char = '';
91
- state = STATE_PLAINTEXT;
92
- tag_buffer += '>';
93
- if (allowable_tags.has(normalize_tag(tag_buffer))) {
94
- output += tag_buffer;
95
- }
96
- else {
97
- output += tag_replacement;
98
- }
99
- tag_buffer = '';
100
- break;
101
- case '"':
102
- case "'":
103
- // catch both single and double quotes
104
- if (char === in_quote_char) {
105
- in_quote_char = '';
106
- }
107
- else {
108
- in_quote_char = in_quote_char || char;
109
- }
110
- tag_buffer += char;
111
- break;
112
- case '-':
113
- if (tag_buffer === '<!-') {
114
- state = STATE_COMMENT;
115
- }
116
- tag_buffer += char;
117
- break;
118
- case ' ':
119
- case '\n':
120
- if (tag_buffer === '<') {
121
- state = STATE_PLAINTEXT;
122
- output += '< ';
123
- tag_buffer = '';
124
- break;
125
- }
126
- tag_buffer += char;
127
- break;
128
- default:
129
- tag_buffer += char;
130
- break;
131
- }
132
- }
133
- else if (state === STATE_COMMENT) {
134
- switch (char) {
135
- case '>':
136
- if (tag_buffer.slice(-2) === '--') {
137
- // close the comment
138
- state = STATE_PLAINTEXT;
139
- }
140
- tag_buffer = '';
141
- break;
142
- default:
143
- tag_buffer += char;
144
- break;
145
- }
146
- }
147
- }
148
- // save the context for future iterations
149
- context.state = state;
150
- context.tag_buffer = tag_buffer;
151
- context.depth = depth;
152
- context.in_quote_char = in_quote_char;
153
- return output;
154
- }
155
- function parse_allowable_tags(allowable_tags) {
156
- let tag_set = new Set();
157
- if (typeof allowable_tags === 'string') {
158
- let match;
159
- while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {
160
- tag_set.add(match[1]);
161
- }
162
- }
163
- else if (typeof allowable_tags[Symbol.iterator] === 'function') {
164
- tag_set = new Set(allowable_tags);
165
- }
166
- return tag_set;
167
- }
168
- function normalize_tag(tag_buffer) {
169
- const match = NORMALIZE_TAG_REGEX.exec(tag_buffer);
170
- return match ? match[1].toLowerCase() : null;
171
- }
172
- // init
173
- return init(htmlText, allowableTags, tagReplacement);
174
- }
175
- //# sourceMappingURL=stripTagsUtil.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stripTagsUtil.js","sourceRoot":"","sources":["../../src/stripTagsUtil.ts"],"names":[],"mappings":"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"}