@domql/element 3.0.6 → 3.1.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/__tests__/inheritStateUpdates.test.js +1 -1
- package/__tests__/throughExecProps.test.js +12 -12
- package/__tests__/throughInitialDefine.test.js +16 -16
- package/__tests__/throughInitialExec.test.js +16 -16
- package/__tests__/throughUpdatedDefine.test.js +14 -14
- package/__tests__/update.test.js +11 -8
- package/create.js +1 -10
- package/dist/cjs/__tests__/checkIfOnUpdate.test.js +73 -0
- package/dist/cjs/__tests__/children.test.js +177 -0
- package/dist/cjs/__tests__/define.test.js +75 -0
- package/dist/cjs/__tests__/inheritStateUpdates.test.js +62 -0
- package/dist/cjs/__tests__/renderElement.test.js +138 -0
- package/dist/cjs/__tests__/resetElement.test.js +35 -0
- package/dist/cjs/__tests__/set.test.js +256 -0
- package/dist/cjs/__tests__/throughExecProps.test.js +62 -0
- package/dist/cjs/__tests__/throughInitialDefine.test.js +79 -0
- package/dist/cjs/__tests__/throughInitialExec.test.js +73 -0
- package/dist/cjs/__tests__/throughUpdatedDefine.test.js +69 -0
- package/dist/cjs/__tests__/throughUpdatedExec.test.js +84 -0
- package/dist/cjs/__tests__/tree.test.js +11 -0
- package/dist/cjs/__tests__/update.test.js +222 -0
- package/dist/cjs/create.js +2 -11
- package/dist/cjs/iterate.js +11 -11
- package/dist/cjs/mixins/registry.js +1 -1
- package/dist/cjs/update.js +3 -2
- package/dist/esm/__tests__/checkIfOnUpdate.test.js +73 -0
- package/dist/esm/__tests__/children.test.js +177 -0
- package/dist/esm/__tests__/define.test.js +53 -0
- package/dist/esm/__tests__/inheritStateUpdates.test.js +62 -0
- package/dist/esm/__tests__/renderElement.test.js +116 -0
- package/dist/esm/__tests__/resetElement.test.js +35 -0
- package/dist/esm/__tests__/set.test.js +256 -0
- package/dist/esm/__tests__/throughExecProps.test.js +62 -0
- package/dist/esm/__tests__/throughInitialDefine.test.js +79 -0
- package/dist/esm/__tests__/throughInitialExec.test.js +73 -0
- package/dist/esm/__tests__/throughUpdatedDefine.test.js +69 -0
- package/dist/esm/__tests__/throughUpdatedExec.test.js +84 -0
- package/dist/esm/__tests__/tree.test.js +11 -0
- package/dist/esm/__tests__/update.test.js +222 -0
- package/dist/esm/create.js +2 -11
- package/dist/esm/iterate.js +13 -12
- package/dist/esm/mixins/registry.js +2 -2
- package/dist/esm/update.js +5 -4
- package/iterate.js +13 -12
- package/mixins/registry.js +2 -2
- package/package.json +11 -12
- package/update.js +6 -4
- package/dist/cjs/utils/onlyResolveExtends.js +0 -85
- package/dist/esm/utils/onlyResolveExtends.js +0 -72
- package/utils/onlyResolveExtends.js +0 -128
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/element",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "index.js",
|
|
@@ -21,20 +21,19 @@
|
|
|
21
21
|
],
|
|
22
22
|
"scripts": {
|
|
23
23
|
"copy:package:cjs": "cp ../../build/package-cjs.json dist/cjs/package.json",
|
|
24
|
-
"build:esm": "npx esbuild
|
|
25
|
-
"build:cjs": "npx esbuild
|
|
26
|
-
"build": "rimraf -I dist; npm run build:cjs; npm run build:esm",
|
|
27
|
-
"prepublish": "rimraf -I dist && npm run build && npm run copy:package:cjs"
|
|
24
|
+
"build:esm": "npx esbuild *.js **/*.js --target=es2019 --format=esm --outdir=dist/esm",
|
|
25
|
+
"build:cjs": "npx esbuild *.js **/*.js --target=node16 --format=cjs --outdir=dist/cjs",
|
|
26
|
+
"build": "npx rimraf -I dist; npm run build:cjs; npm run build:esm",
|
|
27
|
+
"prepublish": "npx rimraf -I dist && npm run build && npm run copy:package:cjs"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@domql/event": "^3.
|
|
31
|
-
"@domql/render": "^3.
|
|
32
|
-
"@domql/
|
|
33
|
-
"@domql/
|
|
34
|
-
"@domql/utils": "^3.0.6"
|
|
30
|
+
"@domql/event": "^3.1.1",
|
|
31
|
+
"@domql/render": "^3.1.1",
|
|
32
|
+
"@domql/state": "^3.1.1",
|
|
33
|
+
"@domql/utils": "^3.1.1"
|
|
35
34
|
},
|
|
36
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "39fb7a8c07355468ccce79e2f787ca3fa0715692",
|
|
37
36
|
"devDependencies": {
|
|
38
|
-
"@babel/core": "^7.
|
|
37
|
+
"@babel/core": "^7.26.0"
|
|
39
38
|
}
|
|
40
39
|
}
|
package/update.js
CHANGED
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
merge,
|
|
13
13
|
overwriteDeep,
|
|
14
14
|
deepClone,
|
|
15
|
-
propertizeElement,
|
|
16
15
|
isMethod,
|
|
17
16
|
findInheritedState,
|
|
18
17
|
deepMerge,
|
|
19
18
|
OPTIONS,
|
|
20
19
|
updateProps,
|
|
21
|
-
captureSnapshot
|
|
20
|
+
captureSnapshot,
|
|
21
|
+
propertizeUpdate
|
|
22
22
|
} from '@domql/utils'
|
|
23
23
|
|
|
24
24
|
import { applyEvent, triggerEventOn, triggerEventOnUpdate } from '@domql/event'
|
|
@@ -84,7 +84,8 @@ export const update = async function (params = {}, opts) {
|
|
|
84
84
|
params = { text: params }
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
// apply new updates
|
|
88
|
+
params = propertizeUpdate.call(element, params)
|
|
88
89
|
|
|
89
90
|
const inheritState = await inheritStateUpdates(element, options)
|
|
90
91
|
if (inheritState === false) return
|
|
@@ -101,10 +102,11 @@ export const update = async function (params = {}, opts) {
|
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
105
|
+
const simulate = { ...params, ...element }
|
|
104
106
|
const beforeUpdateReturns = await triggerEventOnUpdate(
|
|
105
107
|
'beforeUpdate',
|
|
106
108
|
params,
|
|
107
|
-
|
|
109
|
+
simulate,
|
|
108
110
|
options
|
|
109
111
|
)
|
|
110
112
|
if (beforeUpdateReturns === false) return element
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var onlyResolveExtends_exports = {};
|
|
20
|
-
__export(onlyResolveExtends_exports, {
|
|
21
|
-
onlyResolveExtends: () => onlyResolveExtends
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(onlyResolveExtends_exports);
|
|
24
|
-
var import_utils = require("@domql/utils");
|
|
25
|
-
var import__ = require("..");
|
|
26
|
-
var import_mixins = require("../mixins/index.js");
|
|
27
|
-
var import_set = require("../methods/set");
|
|
28
|
-
var import_state = require("@domql/state");
|
|
29
|
-
var import_render = require("@domql/render");
|
|
30
|
-
var import_iterate = require("../iterate");
|
|
31
|
-
const onlyResolveExtends = (element, parent, key, options) => {
|
|
32
|
-
const { __ref } = element;
|
|
33
|
-
element.tag = (0, import_render.detectTag)(element);
|
|
34
|
-
{
|
|
35
|
-
const { __ref: ref2 } = element;
|
|
36
|
-
if (!ref2.__defineCache) ref2.__defineCache = {};
|
|
37
|
-
if (!ref2.__exec) ref2.__exec = {};
|
|
38
|
-
if (!ref2.__execProps) ref2.__execProps = {};
|
|
39
|
-
if (!ref2.__class) ref2.__class = {};
|
|
40
|
-
if (!ref2.__classNames) ref2.__classNames = {};
|
|
41
|
-
if (!ref2.__attr) ref2.__attr = {};
|
|
42
|
-
if (!ref2.__changes) ref2.__changes = [];
|
|
43
|
-
if (!ref2.__children) ref2.__children = [];
|
|
44
|
-
}
|
|
45
|
-
(0, import_set.addMethods)(element, parent, options);
|
|
46
|
-
(0, import_state.createState)(element, parent);
|
|
47
|
-
const ref = __ref;
|
|
48
|
-
if ((0, import_utils.isFunction)(element.if)) {
|
|
49
|
-
const ifPassed = element.if(element, element.state, element.context);
|
|
50
|
-
if (!ifPassed) {
|
|
51
|
-
delete ref.__if;
|
|
52
|
-
} else ref.__if = true;
|
|
53
|
-
} else ref.__if = true;
|
|
54
|
-
if (element.node && ref.__if) {
|
|
55
|
-
parent[key || element.key] = element;
|
|
56
|
-
}
|
|
57
|
-
(0, import_utils.initProps)(element, parent, options);
|
|
58
|
-
if (element.tag !== "string" && element.tag !== "fragment") {
|
|
59
|
-
(0, import_iterate.throughInitialDefine)(element);
|
|
60
|
-
(0, import_iterate.throughInitialExec)(element);
|
|
61
|
-
for (const param in element) {
|
|
62
|
-
const prop = element[param];
|
|
63
|
-
if ((0, import_utils.isUndefined)(prop) || (0, import_utils.isMethod)(param, element) || (0, import_utils.isObject)(import_mixins.REGISTRY[param])) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
const hasDefine = element.define && element.define[param];
|
|
67
|
-
const contextHasDefine = element.context && element.context.define && element.context.define[param];
|
|
68
|
-
const optionsHasDefine = options.define && options.define[param];
|
|
69
|
-
if (import_mixins.REGISTRY[param] && !optionsHasDefine) {
|
|
70
|
-
continue;
|
|
71
|
-
} else if (element[param] && !hasDefine && !optionsHasDefine && !contextHasDefine) {
|
|
72
|
-
(0, import__.create)((0, import_utils.exec)(prop, element), element, param, options);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
parent[key || element.key] = element;
|
|
77
|
-
delete element.update;
|
|
78
|
-
delete element.__element;
|
|
79
|
-
if (element.props) {
|
|
80
|
-
delete element.props.update;
|
|
81
|
-
delete element.props.__element;
|
|
82
|
-
}
|
|
83
|
-
if (!options.keepRef) delete element.__ref;
|
|
84
|
-
return element;
|
|
85
|
-
};
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
exec,
|
|
3
|
-
initProps,
|
|
4
|
-
isFunction,
|
|
5
|
-
isMethod,
|
|
6
|
-
isObject,
|
|
7
|
-
isUndefined
|
|
8
|
-
} from "@domql/utils";
|
|
9
|
-
import { create } from "..";
|
|
10
|
-
import { REGISTRY } from "../mixins/index.js";
|
|
11
|
-
import { addMethods } from "../methods/set";
|
|
12
|
-
import { createState } from "@domql/state";
|
|
13
|
-
import { detectTag } from "@domql/render";
|
|
14
|
-
import { throughInitialDefine, throughInitialExec } from "../iterate";
|
|
15
|
-
const onlyResolveExtends = (element, parent, key, options) => {
|
|
16
|
-
const { __ref } = element;
|
|
17
|
-
element.tag = detectTag(element);
|
|
18
|
-
{
|
|
19
|
-
const { __ref: ref2 } = element;
|
|
20
|
-
if (!ref2.__defineCache) ref2.__defineCache = {};
|
|
21
|
-
if (!ref2.__exec) ref2.__exec = {};
|
|
22
|
-
if (!ref2.__execProps) ref2.__execProps = {};
|
|
23
|
-
if (!ref2.__class) ref2.__class = {};
|
|
24
|
-
if (!ref2.__classNames) ref2.__classNames = {};
|
|
25
|
-
if (!ref2.__attr) ref2.__attr = {};
|
|
26
|
-
if (!ref2.__changes) ref2.__changes = [];
|
|
27
|
-
if (!ref2.__children) ref2.__children = [];
|
|
28
|
-
}
|
|
29
|
-
addMethods(element, parent, options);
|
|
30
|
-
createState(element, parent);
|
|
31
|
-
const ref = __ref;
|
|
32
|
-
if (isFunction(element.if)) {
|
|
33
|
-
const ifPassed = element.if(element, element.state, element.context);
|
|
34
|
-
if (!ifPassed) {
|
|
35
|
-
delete ref.__if;
|
|
36
|
-
} else ref.__if = true;
|
|
37
|
-
} else ref.__if = true;
|
|
38
|
-
if (element.node && ref.__if) {
|
|
39
|
-
parent[key || element.key] = element;
|
|
40
|
-
}
|
|
41
|
-
initProps(element, parent, options);
|
|
42
|
-
if (element.tag !== "string" && element.tag !== "fragment") {
|
|
43
|
-
throughInitialDefine(element);
|
|
44
|
-
throughInitialExec(element);
|
|
45
|
-
for (const param in element) {
|
|
46
|
-
const prop = element[param];
|
|
47
|
-
if (isUndefined(prop) || isMethod(param, element) || isObject(REGISTRY[param])) {
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
const hasDefine = element.define && element.define[param];
|
|
51
|
-
const contextHasDefine = element.context && element.context.define && element.context.define[param];
|
|
52
|
-
const optionsHasDefine = options.define && options.define[param];
|
|
53
|
-
if (REGISTRY[param] && !optionsHasDefine) {
|
|
54
|
-
continue;
|
|
55
|
-
} else if (element[param] && !hasDefine && !optionsHasDefine && !contextHasDefine) {
|
|
56
|
-
create(exec(prop, element), element, param, options);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
parent[key || element.key] = element;
|
|
61
|
-
delete element.update;
|
|
62
|
-
delete element.__element;
|
|
63
|
-
if (element.props) {
|
|
64
|
-
delete element.props.update;
|
|
65
|
-
delete element.props.__element;
|
|
66
|
-
}
|
|
67
|
-
if (!options.keepRef) delete element.__ref;
|
|
68
|
-
return element;
|
|
69
|
-
};
|
|
70
|
-
export {
|
|
71
|
-
onlyResolveExtends
|
|
72
|
-
};
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
exec,
|
|
5
|
-
initProps,
|
|
6
|
-
isFunction,
|
|
7
|
-
isMethod,
|
|
8
|
-
isObject,
|
|
9
|
-
isUndefined
|
|
10
|
-
} from '@domql/utils'
|
|
11
|
-
import { create } from '..'
|
|
12
|
-
import { REGISTRY } from '../mixins/index.js'
|
|
13
|
-
import { addMethods } from '../methods/set'
|
|
14
|
-
import { createState } from '@domql/state'
|
|
15
|
-
import { detectTag } from '@domql/render'
|
|
16
|
-
import { throughInitialDefine, throughInitialExec } from '../iterate'
|
|
17
|
-
|
|
18
|
-
export const onlyResolveExtends = (element, parent, key, options) => {
|
|
19
|
-
const { __ref } = element
|
|
20
|
-
element.tag = detectTag(element)
|
|
21
|
-
|
|
22
|
-
// if (!element.props) element.props = {}
|
|
23
|
-
|
|
24
|
-
// Copy-paste of addCaching()
|
|
25
|
-
{
|
|
26
|
-
const { __ref: ref } = element
|
|
27
|
-
// const { __ref: parentRef } = parent
|
|
28
|
-
|
|
29
|
-
// enable TRANSFORM in data
|
|
30
|
-
// TODO: do we need this at all?
|
|
31
|
-
|
|
32
|
-
// enable CACHING
|
|
33
|
-
if (!ref.__defineCache) ref.__defineCache = {}
|
|
34
|
-
|
|
35
|
-
// enable EXEC
|
|
36
|
-
if (!ref.__exec) ref.__exec = {}
|
|
37
|
-
if (!ref.__execProps) ref.__execProps = {}
|
|
38
|
-
|
|
39
|
-
// enable CLASS CACHING
|
|
40
|
-
if (!ref.__class) ref.__class = {}
|
|
41
|
-
if (!ref.__classNames) ref.__classNames = {}
|
|
42
|
-
|
|
43
|
-
// enable CLASS CACHING
|
|
44
|
-
if (!ref.__attr) ref.__attr = {}
|
|
45
|
-
|
|
46
|
-
// enable CHANGES storing
|
|
47
|
-
if (!ref.__changes) ref.__changes = []
|
|
48
|
-
|
|
49
|
-
// enable CHANGES storing
|
|
50
|
-
if (!ref.__children) ref.__children = []
|
|
51
|
-
|
|
52
|
-
// Add root element property
|
|
53
|
-
// const hasRoot = parent && parent.key === ':root'
|
|
54
|
-
// if (!ref.root) ref.root = hasRoot ? element : parentRef.root
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
addMethods(element, parent, options)
|
|
58
|
-
|
|
59
|
-
createState(element, parent)
|
|
60
|
-
|
|
61
|
-
// Borrowed from createIfConditionFlag()
|
|
62
|
-
const ref = __ref
|
|
63
|
-
if (isFunction(element.if)) {
|
|
64
|
-
const ifPassed = element.if(element, element.state, element.context)
|
|
65
|
-
if (!ifPassed) {
|
|
66
|
-
// const ifFragment = cacheNode({ tag: 'fragment' })
|
|
67
|
-
// ref.__ifFragment = appendNode(ifFragment, parent.node)
|
|
68
|
-
delete ref.__if
|
|
69
|
-
} else ref.__if = true
|
|
70
|
-
} else ref.__if = true
|
|
71
|
-
/// ///
|
|
72
|
-
|
|
73
|
-
if (element.node && ref.__if) {
|
|
74
|
-
parent[key || element.key] = element
|
|
75
|
-
} // Borrowed from assignNode()
|
|
76
|
-
|
|
77
|
-
initProps(element, parent, options)
|
|
78
|
-
|
|
79
|
-
if (element.tag !== 'string' && element.tag !== 'fragment') {
|
|
80
|
-
throughInitialDefine(element)
|
|
81
|
-
throughInitialExec(element)
|
|
82
|
-
|
|
83
|
-
for (const param in element) {
|
|
84
|
-
const prop = element[param]
|
|
85
|
-
if (
|
|
86
|
-
isUndefined(prop) ||
|
|
87
|
-
isMethod(param, element) ||
|
|
88
|
-
isObject(REGISTRY[param])
|
|
89
|
-
) {
|
|
90
|
-
continue
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const hasDefine = element.define && element.define[param]
|
|
94
|
-
const contextHasDefine =
|
|
95
|
-
element.context &&
|
|
96
|
-
element.context.define &&
|
|
97
|
-
element.context.define[param]
|
|
98
|
-
const optionsHasDefine = options.define && options.define[param]
|
|
99
|
-
|
|
100
|
-
if (REGISTRY[param] && !optionsHasDefine) {
|
|
101
|
-
continue
|
|
102
|
-
} else if (
|
|
103
|
-
element[param] &&
|
|
104
|
-
!hasDefine &&
|
|
105
|
-
!optionsHasDefine &&
|
|
106
|
-
!contextHasDefine
|
|
107
|
-
) {
|
|
108
|
-
create(exec(prop, element), element, param, options)
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
parent[key || element.key] = element // Borrowed from assignNode()
|
|
114
|
-
|
|
115
|
-
delete element.update
|
|
116
|
-
delete element.__element
|
|
117
|
-
|
|
118
|
-
// added by initProps
|
|
119
|
-
if (element.props) {
|
|
120
|
-
delete element.props.update
|
|
121
|
-
delete element.props.__element
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// added by createState
|
|
125
|
-
if (!options.keepRef) delete element.__ref
|
|
126
|
-
|
|
127
|
-
return element
|
|
128
|
-
}
|