@domql/utils 3.5.0 → 3.6.1
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/dist/cjs/extends.js +81 -20
- package/dist/cjs/methods.js +14 -1
- package/dist/cjs/node.js +1 -1
- package/dist/cjs/props.js +25 -1
- package/dist/cjs/triggerEvent.js +39 -23
- package/dist/esm/extends.js +81 -20
- package/dist/esm/methods.js +14 -1
- package/dist/esm/node.js +1 -1
- package/dist/esm/props.js +25 -1
- package/dist/esm/triggerEvent.js +39 -23
- package/dist/iife/index.js +160 -46
- package/extends.js +95 -20
- package/methods.js +15 -2
- package/node.js +2 -2
- package/package.json +9 -11
- package/props.js +15 -1
- package/triggerEvent.js +39 -21
package/node.js
CHANGED
|
@@ -29,8 +29,8 @@ export const isHtmlElement = obj => {
|
|
|
29
29
|
export const isDOMNode = obj => {
|
|
30
30
|
return (
|
|
31
31
|
typeof window !== 'undefined' &&
|
|
32
|
-
(obj instanceof window.Node ||
|
|
33
|
-
obj instanceof window.Window ||
|
|
32
|
+
((window.Node && obj instanceof window.Node) ||
|
|
33
|
+
(window.Window && obj instanceof window.Window) ||
|
|
34
34
|
obj === window ||
|
|
35
35
|
obj === document)
|
|
36
36
|
)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -8,24 +8,19 @@
|
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"import": "./dist/esm/index.js",
|
|
11
|
-
"require": "./dist/cjs/index.js"
|
|
12
|
-
"browser": "./dist/esm/index.js",
|
|
13
|
-
"default": "./dist/esm/index.js"
|
|
11
|
+
"require": "./dist/cjs/index.js"
|
|
14
12
|
},
|
|
15
13
|
"./methods": {
|
|
16
14
|
"import": "./dist/esm/methods.js",
|
|
17
|
-
"require": "./dist/cjs/methods.js"
|
|
18
|
-
"default": "./dist/esm/methods.js"
|
|
15
|
+
"require": "./dist/cjs/methods.js"
|
|
19
16
|
},
|
|
20
17
|
"./*.js": {
|
|
21
18
|
"import": "./dist/esm/*.js",
|
|
22
|
-
"require": "./dist/cjs/*.js"
|
|
23
|
-
"default": "./dist/esm/*.js"
|
|
19
|
+
"require": "./dist/cjs/*.js"
|
|
24
20
|
},
|
|
25
21
|
"./*": {
|
|
26
22
|
"import": "./dist/esm/*.js",
|
|
27
|
-
"require": "./dist/cjs/*.js"
|
|
28
|
-
"default": "./dist/esm/*.js"
|
|
23
|
+
"require": "./dist/cjs/*.js"
|
|
29
24
|
}
|
|
30
25
|
},
|
|
31
26
|
"source": "index.js",
|
|
@@ -48,5 +43,8 @@
|
|
|
48
43
|
"browser": "./dist/esm/index.js",
|
|
49
44
|
"unpkg": "./dist/iife/index.js",
|
|
50
45
|
"jsdelivr": "./dist/iife/index.js",
|
|
51
|
-
"sideEffects": false
|
|
46
|
+
"sideEffects": false,
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
}
|
|
52
50
|
}
|
package/props.js
CHANGED
|
@@ -9,6 +9,20 @@ import { lowercaseFirstLetter } from './string.js'
|
|
|
9
9
|
const RE_UPPER = /^[A-Z]/
|
|
10
10
|
const RE_DIGITS = /^\d+$/
|
|
11
11
|
|
|
12
|
+
const ELEMENT_INDICATOR_KEYS = new Set([
|
|
13
|
+
'extend', 'props', 'text', 'tag', 'on', 'if', 'childExtend',
|
|
14
|
+
'children', 'childrenAs', 'state', 'html', 'attr',
|
|
15
|
+
'define', 'content'
|
|
16
|
+
])
|
|
17
|
+
const looksLikeElement = (value) => {
|
|
18
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) return false
|
|
19
|
+
for (const k in value) {
|
|
20
|
+
if (ELEMENT_INDICATOR_KEYS.has(k)) return true
|
|
21
|
+
if (RE_UPPER.test(k)) return true
|
|
22
|
+
}
|
|
23
|
+
return false
|
|
24
|
+
}
|
|
25
|
+
|
|
12
26
|
export const createProps = (element, parent, key) => {
|
|
13
27
|
const { props, __ref: ref } = element
|
|
14
28
|
ref.__propsStack = []
|
|
@@ -38,7 +52,7 @@ export function pickupPropsFromElement (obj, opts = {}) {
|
|
|
38
52
|
|
|
39
53
|
const hasDefine = isObject(this.define?.[key])
|
|
40
54
|
const hasGlobalDefine = isObject(this.context?.define?.[key])
|
|
41
|
-
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key)
|
|
55
|
+
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value)
|
|
42
56
|
const isBuiltin = DOMQ_PROPERTIES.has(key)
|
|
43
57
|
|
|
44
58
|
// If it's not a special case, move to props
|
package/triggerEvent.js
CHANGED
|
@@ -13,17 +13,26 @@ const getOnOrPropsEvent = (param, element) => {
|
|
|
13
13
|
|
|
14
14
|
export const applyEvent = (param, element, state, context, options) => {
|
|
15
15
|
if (!isFunction(param)) return
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
result.
|
|
16
|
+
try {
|
|
17
|
+
const result = param.call(
|
|
18
|
+
element,
|
|
19
|
+
element,
|
|
20
|
+
state || element.state,
|
|
21
|
+
context || element.context,
|
|
22
|
+
options
|
|
23
|
+
)
|
|
24
|
+
if (result && typeof result.then === 'function') {
|
|
25
|
+
result.catch((err) => {
|
|
26
|
+
element.error = err
|
|
27
|
+
console.error('[DomQL] Async event error:', err)
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
return result
|
|
31
|
+
} catch (err) {
|
|
32
|
+
element.error = err
|
|
33
|
+
console.error('[DomQL] Event handler error:', err)
|
|
34
|
+
if (element.context?.strictMode) throw err
|
|
25
35
|
}
|
|
26
|
-
return result
|
|
27
36
|
}
|
|
28
37
|
|
|
29
38
|
export const triggerEventOn = (param, element, options) => {
|
|
@@ -46,18 +55,27 @@ export const applyEventUpdate = (
|
|
|
46
55
|
options
|
|
47
56
|
) => {
|
|
48
57
|
if (!isFunction(param)) return
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
result.
|
|
58
|
+
try {
|
|
59
|
+
const result = param.call(
|
|
60
|
+
element,
|
|
61
|
+
updatedObj,
|
|
62
|
+
element,
|
|
63
|
+
state || element.state,
|
|
64
|
+
context || element.context,
|
|
65
|
+
options
|
|
66
|
+
)
|
|
67
|
+
if (result && typeof result.then === 'function') {
|
|
68
|
+
result.catch((err) => {
|
|
69
|
+
element.error = err
|
|
70
|
+
console.error('[DomQL] Async event update error:', err)
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
return result
|
|
74
|
+
} catch (err) {
|
|
75
|
+
element.error = err
|
|
76
|
+
console.error('[DomQL] Event update error:', err)
|
|
77
|
+
if (element.context?.strictMode) throw err
|
|
59
78
|
}
|
|
60
|
-
return result
|
|
61
79
|
}
|
|
62
80
|
|
|
63
81
|
export const triggerEventOnUpdate = (param, updatedObj, element, options) => {
|