@domql/element 2.4.4 → 2.4.6
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/create.js +6 -6
- package/dist/cjs/create.js +9 -9
- package/dist/cjs/extend.js +1 -1
- package/dist/cjs/set.js +2 -1
- package/dist/cjs/test/create.test.js +7 -7
- package/dist/cjs/test/isMethod.test.js +28 -0
- package/dist/cjs/test/set.test.js +2 -2
- package/dist/cjs/test/update.test.js +2 -2
- package/extend.js +1 -1
- package/package.json +2 -2
- package/set.js +3 -1
- package/test/create.test.js +1 -1
- package/test/isMethod.test.js +38 -0
- package/test/set.test.js +1 -1
- package/test/update.test.js +1 -1
package/create.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
import createNode from './node'
|
|
4
|
+
|
|
3
5
|
import { isObject, isFunction, isString, exec, is, isNode, isUndefined, createKey } from '@domql/utils'
|
|
4
6
|
import { ROOT } from './tree'
|
|
5
7
|
import { TAGS } from '@domql/registry'
|
|
6
8
|
import { triggerEventOn } from '@domql/event'
|
|
7
9
|
import { appendNode, assignNode } from '@domql/render'
|
|
8
|
-
import { assignClass } from '@domql/classlist'
|
|
9
10
|
import { cacheNode, detectTag } from '@domql/node'
|
|
10
11
|
import { createState } from '@domql/state'
|
|
11
12
|
|
|
12
13
|
import { isMethod } from './methods'
|
|
13
|
-
|
|
14
14
|
import { createProps } from './props'
|
|
15
|
-
|
|
16
|
-
import createNode from './node'
|
|
17
15
|
import { applyExtend } from './extend'
|
|
18
16
|
import { registry } from './mixins'
|
|
17
|
+
import { addMethods } from './methods/set'
|
|
18
|
+
import { assignClass } from './mixins/classList'
|
|
19
19
|
import { throughInitialExec } from './iterate'
|
|
20
|
+
|
|
20
21
|
import OPTIONS from './cache/options'
|
|
21
22
|
|
|
22
23
|
import {
|
|
@@ -26,7 +27,6 @@ import {
|
|
|
26
27
|
checkIfKeyIsComponent,
|
|
27
28
|
isVariant
|
|
28
29
|
} from './utils/component'
|
|
29
|
-
import { addMethods } from './methods/set'
|
|
30
30
|
|
|
31
31
|
const ENV = process.env.NODE_ENV
|
|
32
32
|
|
|
@@ -71,7 +71,7 @@ const create = (element, parent, key, options = OPTIONS.create || {}) => {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
// define KEY
|
|
74
|
-
const assignedKey = (
|
|
74
|
+
const assignedKey = (key || element.key || createKey()).toString()
|
|
75
75
|
|
|
76
76
|
if (checkIfKeyIsComponent(assignedKey)) {
|
|
77
77
|
element = applyKeyComponentAsExtend(element, parent, assignedKey)
|
package/dist/cjs/create.js
CHANGED
|
@@ -31,23 +31,23 @@ __export(create_exports, {
|
|
|
31
31
|
default: () => create_default
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(create_exports);
|
|
34
|
+
var import_node = __toESM(require("./node"), 1);
|
|
34
35
|
var import_utils = require("@domql/utils");
|
|
35
36
|
var import_tree = require("./tree");
|
|
36
37
|
var import_registry = require("@domql/registry");
|
|
37
38
|
var import_event = require("@domql/event");
|
|
38
39
|
var import_render = require("@domql/render");
|
|
39
|
-
var
|
|
40
|
-
var import_node = require("@domql/node");
|
|
40
|
+
var import_node2 = require("@domql/node");
|
|
41
41
|
var import_state = require("@domql/state");
|
|
42
42
|
var import_methods = require("./methods");
|
|
43
43
|
var import_props = require("./props");
|
|
44
|
-
var import_node2 = __toESM(require("./node"), 1);
|
|
45
44
|
var import_extend = require("./extend");
|
|
46
45
|
var import_mixins = require("./mixins");
|
|
46
|
+
var import_set = require("./methods/set");
|
|
47
|
+
var import_classList = require("./mixins/classList");
|
|
47
48
|
var import_iterate = require("./iterate");
|
|
48
49
|
var import_options = __toESM(require("./cache/options"), 1);
|
|
49
50
|
var import_component = require("./utils/component");
|
|
50
|
-
var import_set = require("./methods/set");
|
|
51
51
|
const ENV = "development";
|
|
52
52
|
const create = (element, parent, key, options = import_options.default.create || {}) => {
|
|
53
53
|
if (options && !import_options.default.create) {
|
|
@@ -80,7 +80,7 @@ const create = (element, parent, key, options = import_options.default.create ||
|
|
|
80
80
|
if (checkIfPrimitive(element)) {
|
|
81
81
|
element = applyValueAsText(element, parent, key);
|
|
82
82
|
}
|
|
83
|
-
const assignedKey = (
|
|
83
|
+
const assignedKey = (key || element.key || (0, import_utils.createKey)()).toString();
|
|
84
84
|
if ((0, import_component.checkIfKeyIsComponent)(assignedKey)) {
|
|
85
85
|
element = (0, import_component.applyKeyComponentAsExtend)(element, parent, assignedKey);
|
|
86
86
|
}
|
|
@@ -121,7 +121,7 @@ const create = (element, parent, key, options = import_options.default.create ||
|
|
|
121
121
|
if (initReturns === false)
|
|
122
122
|
return element;
|
|
123
123
|
(0, import_event.triggerEventOn)("beforeClassAssign", element, options);
|
|
124
|
-
(0,
|
|
124
|
+
(0, import_classList.assignClass)(element);
|
|
125
125
|
renderElement(element, parent, options);
|
|
126
126
|
if (parent.__ref && parent.__ref.__children)
|
|
127
127
|
parent.__ref.__children.push(element.key);
|
|
@@ -130,7 +130,7 @@ const create = (element, parent, key, options = import_options.default.create ||
|
|
|
130
130
|
};
|
|
131
131
|
const renderElement = (element, parent, options) => {
|
|
132
132
|
const { __ref: ref, key } = element;
|
|
133
|
-
(0,
|
|
133
|
+
(0, import_node.default)(element, options);
|
|
134
134
|
if (!ref.__if)
|
|
135
135
|
return element;
|
|
136
136
|
(0, import_render.assignNode)(element, parent, key);
|
|
@@ -160,7 +160,7 @@ const checkIf = (element, parent) => {
|
|
|
160
160
|
if ((0, import_utils.isFunction)(element.if)) {
|
|
161
161
|
const ifPassed = element.if(element, element.state);
|
|
162
162
|
if (!ifPassed) {
|
|
163
|
-
const ifFragment = (0,
|
|
163
|
+
const ifFragment = (0, import_node2.cacheNode)({ tag: "fragment" });
|
|
164
164
|
ref.__ifFragment = (0, import_render.appendNode)(ifFragment, parent.node);
|
|
165
165
|
delete ref.__if;
|
|
166
166
|
} else
|
|
@@ -202,7 +202,7 @@ const addCaching = (element, parent) => {
|
|
|
202
202
|
};
|
|
203
203
|
const resolveExtends = (element, parent, options) => {
|
|
204
204
|
const { __ref } = element;
|
|
205
|
-
element.tag = (0,
|
|
205
|
+
element.tag = (0, import_node2.detectTag)(element);
|
|
206
206
|
if (!__ref.__exec)
|
|
207
207
|
__ref.__exec = {};
|
|
208
208
|
if (!__ref.__attr)
|
package/dist/cjs/extend.js
CHANGED
|
@@ -50,7 +50,7 @@ const applyExtend = (element, parent, options = {}) => {
|
|
|
50
50
|
return;
|
|
51
51
|
childExtendStack = (0, import_utils2.getExtendStack)(parent.childExtend);
|
|
52
52
|
if (parent.childExtendRecursive) {
|
|
53
|
-
const canExtendRecursive = !
|
|
53
|
+
const canExtendRecursive = !props.ignoreChildExtendRecursive && element.key !== "__text";
|
|
54
54
|
if (canExtendRecursive) {
|
|
55
55
|
const childExtendRecursiveStack = (0, import_utils2.getExtendStack)(parent.childExtendRecursive);
|
|
56
56
|
childExtendStack = childExtendStack.concat(childExtendRecursiveStack);
|
package/dist/cjs/set.js
CHANGED
|
@@ -39,8 +39,9 @@ var import_content = require("./mixins/content");
|
|
|
39
39
|
const set = function(params, options = {}, el) {
|
|
40
40
|
const element = el || this;
|
|
41
41
|
const __contentRef = element.content && element.content.__ref;
|
|
42
|
-
if (__contentRef && __contentRef.__cached && (0, import_utils.isEqualDeep)(params, element.content))
|
|
42
|
+
if (__contentRef && __contentRef.__cached && (0, import_utils.isEqualDeep)(params, element.content)) {
|
|
43
43
|
return element;
|
|
44
|
+
}
|
|
44
45
|
(0, import_content.removeContent)(element);
|
|
45
46
|
if (params) {
|
|
46
47
|
const { childExtend } = params;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
const dom = (0,
|
|
2
|
+
var import__ = require("../");
|
|
3
|
+
const dom = (0, import__.create)({});
|
|
4
4
|
test("should create EMPTY element", () => {
|
|
5
5
|
expect(dom).toHaveProperty("key");
|
|
6
6
|
expect(dom).toHaveProperty("state");
|
|
@@ -18,30 +18,30 @@ test("must be able to create valid PATH", () => {
|
|
|
18
18
|
});
|
|
19
19
|
test("if it HAS a NODE, don't recreate", () => {
|
|
20
20
|
const node = document.createElement("div");
|
|
21
|
-
const dom2 = (0,
|
|
21
|
+
const dom2 = (0, import__.create)({ node });
|
|
22
22
|
expect(dom2.node.parentElement).toBe(document.body);
|
|
23
23
|
});
|
|
24
24
|
test("create with number", () => {
|
|
25
|
-
const numb = (0,
|
|
25
|
+
const numb = (0, import__.create)(0);
|
|
26
26
|
expect(numb.text).toBe(0);
|
|
27
27
|
expect(numb.tag).toBe("string");
|
|
28
28
|
expect(numb.node.nodeType).toBe(3);
|
|
29
29
|
});
|
|
30
30
|
test("create with string", () => {
|
|
31
|
-
const str = (0,
|
|
31
|
+
const str = (0, import__.create)("hello");
|
|
32
32
|
expect(str.text).toBe("hello");
|
|
33
33
|
expect(str.tag).toBe("string");
|
|
34
34
|
expect(str.node.nodeType).toBe(3);
|
|
35
35
|
});
|
|
36
36
|
test("creating conditions", () => {
|
|
37
|
-
const element = (0,
|
|
37
|
+
const element = (0, import__.create)({
|
|
38
38
|
data: { visible: true },
|
|
39
39
|
if: (element2) => element2.data.visible
|
|
40
40
|
});
|
|
41
41
|
expect(element.tag).toBe("div");
|
|
42
42
|
});
|
|
43
43
|
test("creating nesting", () => {
|
|
44
|
-
const element = (0,
|
|
44
|
+
const element = (0, import__.create)({
|
|
45
45
|
header: {
|
|
46
46
|
h1: {}
|
|
47
47
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const { isMethod, METHODS } = require("../dist/cjs");
|
|
2
|
+
describe("isMethod", () => {
|
|
3
|
+
test("returns true if parameter is a method", () => {
|
|
4
|
+
const validMethod = "set";
|
|
5
|
+
const result = isMethod(validMethod);
|
|
6
|
+
expect(result).toBe(true);
|
|
7
|
+
});
|
|
8
|
+
test("returns false if parameter is not a method", () => {
|
|
9
|
+
const invalidMethod = "invalidMethod";
|
|
10
|
+
const result = isMethod(invalidMethod);
|
|
11
|
+
expect(result).toBe(false);
|
|
12
|
+
});
|
|
13
|
+
test("returns false if parameter is not a string", () => {
|
|
14
|
+
const invalidParam = 123;
|
|
15
|
+
const result = isMethod(invalidParam);
|
|
16
|
+
expect(result).toBe(false);
|
|
17
|
+
});
|
|
18
|
+
test("returns true if parameter is a valid method in the METHODS array", () => {
|
|
19
|
+
const validMethod = METHODS[0];
|
|
20
|
+
const result = isMethod(validMethod);
|
|
21
|
+
expect(result).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
test("returns false if parameter is not a valid method in the METHODS array", () => {
|
|
24
|
+
const invalidMethod = "invalidMethod";
|
|
25
|
+
const result = isMethod(invalidMethod);
|
|
26
|
+
expect(result).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
const element = (0,
|
|
2
|
+
var import__ = require("../");
|
|
3
|
+
const element = (0, import__.create)({});
|
|
4
4
|
test("should SET element", () => {
|
|
5
5
|
element.set({ text: "test" });
|
|
6
6
|
expect(element.content.text).toBe("test");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
const element = (0,
|
|
2
|
+
var import__ = require("../");
|
|
3
|
+
const element = (0, import__.create)({});
|
|
4
4
|
test("should UPDATE element", () => {
|
|
5
5
|
expect(element.text).toBeUndefined();
|
|
6
6
|
element.update("test");
|
package/extend.js
CHANGED
|
@@ -45,7 +45,7 @@ export const applyExtend = (element, parent, options = {}) => {
|
|
|
45
45
|
|
|
46
46
|
// if (parent.childExtendRecursive && (props && !props.ignoreChildExtendRecursive)) {
|
|
47
47
|
if (parent.childExtendRecursive) {
|
|
48
|
-
const canExtendRecursive = !props
|
|
48
|
+
const canExtendRecursive = !props.ignoreChildExtendRecursive && element.key !== '__text'
|
|
49
49
|
if (canExtendRecursive) {
|
|
50
50
|
const childExtendRecursiveStack = getExtendStack(parent.childExtendRecursive)
|
|
51
51
|
// add error if childExtendRecursive contains element which goes to infinite loop
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/element",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@domql/state": "latest",
|
|
32
32
|
"@domql/utils": "latest"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "7d5af56fe712bac2369db9e07e8ec70df585764e",
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/core": "^7.12.0"
|
|
37
37
|
}
|
package/set.js
CHANGED
|
@@ -11,7 +11,9 @@ const set = function (params, options = {}, el) {
|
|
|
11
11
|
const element = el || this
|
|
12
12
|
const __contentRef = element.content && element.content.__ref
|
|
13
13
|
|
|
14
|
-
if (__contentRef && __contentRef.__cached && isEqualDeep(params, element.content))
|
|
14
|
+
if (__contentRef && __contentRef.__cached && isEqualDeep(params, element.content)) {
|
|
15
|
+
return element
|
|
16
|
+
}
|
|
15
17
|
removeContent(element)
|
|
16
18
|
|
|
17
19
|
if (params) {
|
package/test/create.test.js
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const { isMethod, METHODS } = require('../dist/cjs')
|
|
2
|
+
|
|
3
|
+
describe('isMethod', () => {
|
|
4
|
+
test('returns true if parameter is a method', () => {
|
|
5
|
+
const validMethod = 'set'
|
|
6
|
+
const result = isMethod(validMethod)
|
|
7
|
+
|
|
8
|
+
expect(result).toBe(true)
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
test('returns false if parameter is not a method', () => {
|
|
12
|
+
const invalidMethod = 'invalidMethod'
|
|
13
|
+
const result = isMethod(invalidMethod)
|
|
14
|
+
|
|
15
|
+
expect(result).toBe(false)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
test('returns false if parameter is not a string', () => {
|
|
19
|
+
const invalidParam = 123
|
|
20
|
+
const result = isMethod(invalidParam)
|
|
21
|
+
|
|
22
|
+
expect(result).toBe(false)
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
test('returns true if parameter is a valid method in the METHODS array', () => {
|
|
26
|
+
const validMethod = METHODS[0]
|
|
27
|
+
const result = isMethod(validMethod)
|
|
28
|
+
|
|
29
|
+
expect(result).toBe(true)
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
test('returns false if parameter is not a valid method in the METHODS array', () => {
|
|
33
|
+
const invalidMethod = 'invalidMethod'
|
|
34
|
+
const result = isMethod(invalidMethod)
|
|
35
|
+
|
|
36
|
+
expect(result).toBe(false)
|
|
37
|
+
})
|
|
38
|
+
})
|
package/test/set.test.js
CHANGED