domql 1.5.0 → 1.5.3
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/package.json +4 -4
- package/src/element/create.js +3 -10
- package/src/element/extend.js +1 -1
- package/src/element/mixins/registry.js +1 -1
- package/src/element/set.js +6 -9
- package/src/element/state.js +1 -0
- package/src/utils/object.js +20 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "DOM rendering Javascript framework at early stage.",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "rackai",
|
|
6
|
-
"version": "1.5.
|
|
6
|
+
"version": "1.5.3",
|
|
7
7
|
"repository": "https://github.com/rackai/domql",
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"registry": "https://registry.npmjs.org"
|
|
@@ -31,14 +31,14 @@
|
|
|
31
31
|
"@babel/preset-env": "^7.16.4",
|
|
32
32
|
"@emotion/css": "^11.10.0",
|
|
33
33
|
"@parcel/babel-preset-env": "^2.0.1",
|
|
34
|
-
"babel-jest": "^
|
|
35
|
-
"esbuild": "^0.
|
|
34
|
+
"babel-jest": "^29.0.0",
|
|
35
|
+
"esbuild": "^0.15.5",
|
|
36
36
|
"eslint": "^8.4.0",
|
|
37
37
|
"eslint-config-standard": "^17.0.0",
|
|
38
38
|
"eslint-plugin-import": "^2.25.3",
|
|
39
39
|
"eslint-plugin-jest": "^26.8.2",
|
|
40
40
|
"eslint-plugin-node": "^11.1.0",
|
|
41
|
-
"jest": "^
|
|
41
|
+
"jest": "^29.0.0",
|
|
42
42
|
"jsdom": "^19.0.0",
|
|
43
43
|
"nodemon": "^2.0.6",
|
|
44
44
|
"np": "^7.2.0",
|
package/src/element/create.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import root from './root'
|
|
4
4
|
import createNode from './node'
|
|
5
5
|
import { appendNode, assignNode } from './assign'
|
|
6
|
-
import {
|
|
6
|
+
import { applyExtend } from './extend'
|
|
7
7
|
import nodes from './nodes'
|
|
8
8
|
import set from './set'
|
|
9
9
|
import createState from './state'
|
|
@@ -56,9 +56,8 @@ const create = (element, parent, key, options = {}) => {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
// create
|
|
60
|
-
|
|
61
|
-
applyExtendtype(element, parent, options)
|
|
59
|
+
// create EXTEND inheritance
|
|
60
|
+
applyExtend(element, parent, options)
|
|
62
61
|
|
|
63
62
|
if (Object.keys(options).length) {
|
|
64
63
|
registry.defaultOptions = options
|
|
@@ -137,12 +136,6 @@ const create = (element, parent, key, options = {}) => {
|
|
|
137
136
|
// generate a CLASS name
|
|
138
137
|
assignClass(element)
|
|
139
138
|
|
|
140
|
-
// console.group('create')
|
|
141
|
-
// console.log(element.path)
|
|
142
|
-
// console.log(element)
|
|
143
|
-
// console.groupEnd('create')
|
|
144
|
-
// if (parent.key === 'footer' && key === '0') debugger
|
|
145
|
-
|
|
146
139
|
// CREATE a real NODE
|
|
147
140
|
createNode(element, options)
|
|
148
141
|
|
package/src/element/extend.js
CHANGED
|
@@ -8,7 +8,7 @@ const ENV = process.env.NODE_ENV
|
|
|
8
8
|
* Checks whether element has `extend` or is a part
|
|
9
9
|
* of parent's `childExtend` extend
|
|
10
10
|
*/
|
|
11
|
-
export const
|
|
11
|
+
export const applyExtend = (element, parent, options = {}) => {
|
|
12
12
|
if (isFunction(element)) element = exec(element, parent)
|
|
13
13
|
|
|
14
14
|
const { extend } = element
|
package/src/element/set.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
import create from './create'
|
|
4
|
+
import { isEqualDeep } from '../utils'
|
|
4
5
|
import { registry } from './mixins'
|
|
5
6
|
|
|
6
7
|
const removeContentElement = (params, element) => {
|
|
@@ -11,8 +12,9 @@ const removeContentElement = (params, element) => {
|
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
if (element.__cached && element.__cached.content) {
|
|
15
|
+
console.log(element.__cached.content)
|
|
14
16
|
if (element.__cached.content.tag === 'fragment') element.__cached.content.parent.node.innerHTML = ''
|
|
15
|
-
else element.__cached.content.remove()
|
|
17
|
+
else if (element.__cached.content) element.__cached.content?.remove()
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
delete element.content
|
|
@@ -22,6 +24,9 @@ const removeContentElement = (params, element) => {
|
|
|
22
24
|
const set = function (params, options) {
|
|
23
25
|
const element = this
|
|
24
26
|
|
|
27
|
+
const isEqual = isEqualDeep(params, element.content)
|
|
28
|
+
if (isEqual && element.content.__cached) return element
|
|
29
|
+
|
|
25
30
|
removeContentElement(params, element)
|
|
26
31
|
|
|
27
32
|
if (params) {
|
|
@@ -38,11 +43,3 @@ const set = function (params, options) {
|
|
|
38
43
|
|
|
39
44
|
export default set
|
|
40
45
|
|
|
41
|
-
// if (element.content && (isFunction(element.content) || element.content.node)) {
|
|
42
|
-
// // leave(element, () => {
|
|
43
|
-
// // console.log('remove', element.content)
|
|
44
|
-
// // element.content.remove()
|
|
45
|
-
// // element.content.update(params)
|
|
46
|
-
// // element.node.removeChild(element.content.node)
|
|
47
|
-
// // delete element.content
|
|
48
|
-
// }
|
package/src/element/state.js
CHANGED
package/src/utils/object.js
CHANGED
|
@@ -115,6 +115,26 @@ export const deepClone = (obj, excluding = ['parent', 'node', '__element', '__ro
|
|
|
115
115
|
return o
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Overwrites object properties with another
|
|
120
|
+
*/
|
|
121
|
+
export const isEqualDeep = (param, element) => {
|
|
122
|
+
if (param === element) return true
|
|
123
|
+
if (!param || !element) return false
|
|
124
|
+
for (const prop in param) {
|
|
125
|
+
const paramProp = param[prop]
|
|
126
|
+
const elementProp = element[prop]
|
|
127
|
+
if (isObjectLike(paramProp)) {
|
|
128
|
+
const isEqual = isEqualDeep(paramProp, elementProp)
|
|
129
|
+
if (!isEqual) return false
|
|
130
|
+
} else {
|
|
131
|
+
const isEqual = paramProp === elementProp
|
|
132
|
+
if (!isEqual) return false
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return true
|
|
136
|
+
}
|
|
137
|
+
|
|
118
138
|
/**
|
|
119
139
|
* Overwrites object properties with another
|
|
120
140
|
*/
|