@domql/element 2.5.50 → 2.5.52

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/node.js CHANGED
@@ -41,6 +41,7 @@ var import_iterate = require("./iterate");
41
41
  var import_mixins = require("./mixins");
42
42
  var import_applyParam = require("./utils/applyParam");
43
43
  var import_utils2 = require("./utils");
44
+ var import_propEvents = require("./utils/propEvents");
44
45
  const ENV = "development";
45
46
  const createNode = (element, options) => {
46
47
  let { node, tag, __ref: ref } = element;
@@ -63,6 +64,7 @@ const createNode = (element, options) => {
63
64
  (0, import_iterate.throughInitialDefine)(element);
64
65
  (0, import_iterate.throughInitialExec)(element);
65
66
  if (element.tag !== "string" && element.tag !== "fragment") {
67
+ (0, import_propEvents.propagateEventsFromProps)(element);
66
68
  if (isNewNode && (0, import_utils.isObject)(element.on))
67
69
  (0, import_event.applyEventsOnNode)(element, options);
68
70
  }
@@ -147,7 +147,6 @@ const captureSnapshot = (element, options) => {
147
147
  return [snapshotOnCallee, calleeElement];
148
148
  };
149
149
  const checkIfOnUpdate = (element, parent, options) => {
150
- var _a;
151
150
  if (!(0, import_utils.isFunction)(element.if) || !parent)
152
151
  return;
153
152
  const ref = element.__ref;
@@ -163,13 +162,15 @@ const checkIfOnUpdate = (element, parent, options) => {
163
162
  }
164
163
  if (ref.__state) {
165
164
  element.state = ref.__state;
165
+ } else if (!ref.__hasRootState) {
166
+ delete element.state;
166
167
  }
167
- (_a = element.node) == null ? void 0 : _a.remove();
168
+ element.node && element.node.remove();
168
169
  const previousElement = element.previousElement();
169
170
  const nextElement = element.nextElement();
170
171
  const hasPrevious = previousElement && previousElement.node;
171
172
  const hasNext = nextElement && nextElement.node;
172
- const attachOptions = ((hasPrevious == null ? void 0 : hasPrevious.parentNode) || (hasNext == null ? void 0 : hasNext.parentNode)) && {
173
+ const attachOptions = (hasPrevious && hasPrevious.parentNode || hasNext && hasNext.parentNode) && {
173
174
  position: hasPrevious ? "after" : hasNext ? "before" : null,
174
175
  node: hasPrevious || hasNext
175
176
  };
@@ -205,13 +206,13 @@ const inheritStateUpdates = (element, options) => {
205
206
  if (!keyInParentState || options.preventInheritedStateUpdate)
206
207
  return;
207
208
  if (!options.preventInitStateUpdateListener) {
208
- const initStateReturns = (0, import_event.triggerEventOnUpdate)("initStateUpdated", keyInParentState, element, options);
209
+ const initStateReturns = (0, import_event.triggerEventOnUpdate)("initStateUpdate", keyInParentState, element, options);
209
210
  if (initStateReturns === false)
210
211
  return element;
211
212
  }
212
213
  const newState = createStateUpdate(element, parent, options);
213
214
  if (!options.preventStateUpdateListener) {
214
- (0, import_event.triggerEventOnUpdate)("stateUpdated", newState.parse(), element, options);
215
+ (0, import_event.triggerEventOnUpdate)("stateUpdate", newState.parse(), element, options);
215
216
  }
216
217
  };
217
218
  const createStateUpdate = (element, parent, options) => {
@@ -80,7 +80,7 @@ const extendizeByKey = (element, parent, key) => {
80
80
  const { context, tag, extend, props, attr, state, childExtend, childProps, on, if: condition } = element;
81
81
  const hasComponentAttrs = extend || childExtend || props || state || on || condition || attr;
82
82
  const extendFromKey = key.includes("+") ? key.split("+") : key.includes("_") ? key.split("_")[0] : key.includes(".") ? key.split(".")[0] : [key];
83
- const isExtendKeyComponent = context == null ? void 0 : context.components[extendFromKey];
83
+ const isExtendKeyComponent = context && context.components[extendFromKey];
84
84
  if (element === isExtendKeyComponent)
85
85
  return element;
86
86
  else if (!hasComponentAttrs || childProps) {
@@ -0,0 +1,38 @@
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 propEvents_exports = {};
20
+ __export(propEvents_exports, {
21
+ propagateEventsFromProps: () => propagateEventsFromProps
22
+ });
23
+ module.exports = __toCommonJS(propEvents_exports);
24
+ var import_utils = require("@domql/utils");
25
+ const propagateEventsFromProps = (element) => {
26
+ const { props, on } = element;
27
+ const eventKeysFromProps = Object.keys(props).filter((key) => key.startsWith("on"));
28
+ eventKeysFromProps.forEach((v) => {
29
+ const eventName = (0, import_utils.lowercaseFirstLetter)(v.split("on")[1]);
30
+ if (on[eventName]) {
31
+ on[eventName] = (...args) => {
32
+ on[eventName](...args);
33
+ props[v](...args);
34
+ };
35
+ } else
36
+ on[eventName] = props[v];
37
+ });
38
+ };
package/node.js CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  import { registry } from './mixins'
15
15
  import { applyParam } from './utils/applyParam'
16
16
  import { isVariant } from './utils'
17
+ import { propagateEventsFromProps } from './utils/propEvents'
17
18
  // import { defineSetter } from './methods'
18
19
 
19
20
  const ENV = process.env.NODE_ENV
@@ -51,6 +52,7 @@ export const createNode = (element, options) => {
51
52
  throughInitialExec(element)
52
53
 
53
54
  if (element.tag !== 'string' && element.tag !== 'fragment') {
55
+ propagateEventsFromProps(element)
54
56
  // apply events
55
57
  if (isNewNode && isObject(element.on)) applyEventsOnNode(element, options)
56
58
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/element",
3
- "version": "2.5.50",
3
+ "version": "2.5.52",
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": "6fa0575bec43db642ce4846641729459984339b6",
34
+ "gitHead": "d417eb4852233ff71f790eae23b67b521e80c4f9",
35
35
  "devDependencies": {
36
36
  "@babel/core": "^7.12.0"
37
37
  }
package/update.js CHANGED
@@ -170,11 +170,14 @@ const checkIfOnUpdate = (element, parent, options) => {
170
170
  if (!ref.__hasRootState) {
171
171
  delete element.state
172
172
  }
173
+
173
174
  if (ref.__state) {
174
175
  element.state = ref.__state
176
+ } else if (!ref.__hasRootState) {
177
+ delete element.state
175
178
  }
176
179
 
177
- element.node?.remove()
180
+ element.node && element.node.remove()
178
181
 
179
182
  const previousElement = element.previousElement()
180
183
  const nextElement = element.nextElement()
@@ -182,7 +185,7 @@ const checkIfOnUpdate = (element, parent, options) => {
182
185
  const hasPrevious = previousElement && previousElement.node
183
186
  const hasNext = nextElement && nextElement.node
184
187
 
185
- const attachOptions = (hasPrevious?.parentNode || hasNext?.parentNode) && {
188
+ const attachOptions = ((hasPrevious && hasPrevious.parentNode) || (hasNext && hasNext.parentNode)) && {
186
189
  position: hasPrevious ? 'after' : hasNext ? 'before' : null,
187
190
  node: hasPrevious || hasNext
188
191
  }
@@ -210,8 +213,8 @@ const checkIfOnUpdate = (element, parent, options) => {
210
213
  * @param {boolean} [options.execStateFunction] - Execute the state functions.
211
214
  * @param {boolean} [options.stateFunctionOverwrite] - If true, overwrite (not merge) current state with what function returns.
212
215
  * @param {boolean} [options.preventInheritedStateUpdate] - If true, prevent inheriting state updates.
213
- * @param {boolean} [options.preventInitStateUpdateListener] - If true, prevent the 'initStateUpdated' event listener.
214
- * @param {boolean} [options.preventStateUpdateListener] - If true, prevent the 'stateUpdated' event listener.
216
+ * @param {boolean} [options.preventInitStateUpdateListener] - If true, prevent the 'initStateUpdate' event listener.
217
+ * @param {boolean} [options.preventStateUpdateListener] - If true, prevent the 'stateUpdate' event listener.
215
218
  * @returns {boolean} - If returns false, it breaks the update function
216
219
  */
217
220
  const inheritStateUpdates = (element, options) => {
@@ -240,18 +243,18 @@ const inheritStateUpdates = (element, options) => {
240
243
  const keyInParentState = findInheritedState(element, element.parent)
241
244
  if (!keyInParentState || options.preventInheritedStateUpdate) return
242
245
 
243
- // Trigger on.initStateUpdated event
246
+ // Trigger on.initStateUpdate event
244
247
  if (!options.preventInitStateUpdateListener) {
245
- const initStateReturns = triggerEventOnUpdate('initStateUpdated', keyInParentState, element, options)
248
+ const initStateReturns = triggerEventOnUpdate('initStateUpdate', keyInParentState, element, options)
246
249
  if (initStateReturns === false) return element
247
250
  }
248
251
 
249
252
  // Recreate the state again
250
253
  const newState = createStateUpdate(element, parent, options)
251
254
 
252
- // Trigger on.stateUpdated event
255
+ // Trigger on.stateUpdate event
253
256
  if (!options.preventStateUpdateListener) {
254
- triggerEventOnUpdate('stateUpdated', newState.parse(), element, options)
257
+ triggerEventOnUpdate('stateUpdate', newState.parse(), element, options)
255
258
  }
256
259
  }
257
260
 
@@ -60,7 +60,7 @@ export const extendizeByKey = (element, parent, key) => {
60
60
  ? key.split('.')[0] // get component key split .
61
61
  : [key]
62
62
 
63
- const isExtendKeyComponent = context?.components[extendFromKey]
63
+ const isExtendKeyComponent = context && context.components[extendFromKey]
64
64
 
65
65
  if (element === isExtendKeyComponent) return element
66
66
  else if (!hasComponentAttrs || childProps) {
@@ -0,0 +1,17 @@
1
+ 'use strict'
2
+
3
+ import { lowercaseFirstLetter } from '@domql/utils'
4
+
5
+ export const propagateEventsFromProps = (element) => {
6
+ const { props, on } = element
7
+ const eventKeysFromProps = Object.keys(props).filter(key => key.startsWith('on'))
8
+ eventKeysFromProps.forEach(v => {
9
+ const eventName = lowercaseFirstLetter(v.split('on')[1])
10
+ if (on[eventName]) {
11
+ on[eventName] = (...args) => {
12
+ on[eventName](...args)
13
+ props[v](...args)
14
+ }
15
+ } else on[eventName] = props[v]
16
+ })
17
+ }