@domql/event 2.30.2 → 2.31.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/on.js CHANGED
@@ -32,8 +32,16 @@ const getOnOrPropsEvent = (param, element) => {
32
32
  const onPropEvent = (_b = element.props) == null ? void 0 : _b["on" + param.slice(0, 1).toUpperCase() + param.slice(1)];
33
33
  return onEvent || onPropEvent;
34
34
  };
35
- const applyEvent = (param, element, state, context, options) => {
36
- return param.call(element, element, state || element.state, context || element.context, options);
35
+ const applyEvent = (fnValue, element, state, context, options) => {
36
+ if ((0, import_utils.isString)(fnValue)) fnValue = import_utils.getContextFunction.call(element, fnValue);
37
+ if (!fnValue.call) element.warn(`Event is not executable: ${fnValue}`);
38
+ return fnValue.call(
39
+ element,
40
+ element,
41
+ state || element.state,
42
+ context || element.context,
43
+ options
44
+ );
37
45
  };
38
46
  const triggerEventOn = async (param, element, options) => {
39
47
  const appliedFunction = getOnOrPropsEvent(param, element);
@@ -42,25 +50,45 @@ const triggerEventOn = async (param, element, options) => {
42
50
  return await applyEvent(appliedFunction, element, state, context, options);
43
51
  }
44
52
  };
45
- const applyEventUpdate = (param, updatedObj, element, state, context, options) => {
46
- return param.call(element, updatedObj, element, state || element.state, context || element.context, options);
53
+ const applyEventUpdate = (fnValue, updatedObj, element, state, context, options) => {
54
+ if ((0, import_utils.isString)(fnValue)) fnValue = import_utils.getContextFunction.call(element, fnValue);
55
+ if (!fnValue.call) element.warn(`Event is not executable: ${fnValue}`);
56
+ return fnValue.call(
57
+ element,
58
+ updatedObj,
59
+ element,
60
+ state || element.state,
61
+ context || element.context,
62
+ options
63
+ );
47
64
  };
48
65
  const triggerEventOnUpdate = async (param, updatedObj, element, options) => {
49
66
  const appliedFunction = getOnOrPropsEvent(param, element);
50
67
  if (appliedFunction) {
51
68
  const { state, context } = element;
52
- return await applyEventUpdate(appliedFunction, updatedObj, element, state, context, options);
69
+ return await applyEventUpdate(
70
+ appliedFunction,
71
+ updatedObj,
72
+ element,
73
+ state,
74
+ context,
75
+ options
76
+ );
53
77
  }
54
78
  };
55
79
  const applyEventsOnNode = (element, options) => {
56
80
  const { node, on } = element;
57
81
  for (const param in on) {
58
- if (param === "init" || param === "beforeClassAssign" || param === "render" || param === "renderRouter" || param === "attachNode" || param === "stateInit" || param === "stateCreated" || param === "beforeStateUpdate" || param === "stateUpdate" || param === "beforeUpdate" || param === "done" || param === "create" || param === "complete" || param === "frame" || param === "update") continue;
59
- const appliedFunction = getOnOrPropsEvent(param, element);
60
- if ((0, import_utils.isFunction)(appliedFunction)) {
82
+ if (param === "init" || param === "beforeClassAssign" || param === "render" || param === "renderRouter" || param === "attachNode" || param === "stateInit" || param === "stateCreated" || param === "beforeStateUpdate" || param === "stateUpdate" || param === "beforeUpdate" || param === "done" || param === "create" || param === "complete" || param === "frame" || param === "update")
83
+ continue;
84
+ let fnValue = getOnOrPropsEvent(param, element);
85
+ if ((0, import_utils.isString)(fnValue)) {
86
+ fnValue = import_utils.getContextFunction.call(element, fnValue);
87
+ }
88
+ if ((0, import_utils.isFunction)(fnValue)) {
61
89
  node.addEventListener(param, async (event) => {
62
90
  const { state, context } = element;
63
- await appliedFunction.call(element, event, element, state, context, options);
91
+ await fnValue.call(element, event, element, state, context, options);
64
92
  });
65
93
  }
66
94
  }
package/dist/esm/on.js CHANGED
@@ -1,12 +1,20 @@
1
- import { isFunction } from "@domql/utils";
1
+ import { isFunction, isString, getContextFunction } from "@domql/utils";
2
2
  const getOnOrPropsEvent = (param, element) => {
3
3
  var _a, _b;
4
4
  const onEvent = (_a = element.on) == null ? void 0 : _a[param];
5
5
  const onPropEvent = (_b = element.props) == null ? void 0 : _b["on" + param.slice(0, 1).toUpperCase() + param.slice(1)];
6
6
  return onEvent || onPropEvent;
7
7
  };
8
- const applyEvent = (param, element, state, context, options) => {
9
- return param.call(element, element, state || element.state, context || element.context, options);
8
+ const applyEvent = (fnValue, element, state, context, options) => {
9
+ if (isString(fnValue)) fnValue = getContextFunction.call(element, fnValue);
10
+ if (!fnValue.call) element.warn(`Event is not executable: ${fnValue}`);
11
+ return fnValue.call(
12
+ element,
13
+ element,
14
+ state || element.state,
15
+ context || element.context,
16
+ options
17
+ );
10
18
  };
11
19
  const triggerEventOn = async (param, element, options) => {
12
20
  const appliedFunction = getOnOrPropsEvent(param, element);
@@ -15,25 +23,45 @@ const triggerEventOn = async (param, element, options) => {
15
23
  return await applyEvent(appliedFunction, element, state, context, options);
16
24
  }
17
25
  };
18
- const applyEventUpdate = (param, updatedObj, element, state, context, options) => {
19
- return param.call(element, updatedObj, element, state || element.state, context || element.context, options);
26
+ const applyEventUpdate = (fnValue, updatedObj, element, state, context, options) => {
27
+ if (isString(fnValue)) fnValue = getContextFunction.call(element, fnValue);
28
+ if (!fnValue.call) element.warn(`Event is not executable: ${fnValue}`);
29
+ return fnValue.call(
30
+ element,
31
+ updatedObj,
32
+ element,
33
+ state || element.state,
34
+ context || element.context,
35
+ options
36
+ );
20
37
  };
21
38
  const triggerEventOnUpdate = async (param, updatedObj, element, options) => {
22
39
  const appliedFunction = getOnOrPropsEvent(param, element);
23
40
  if (appliedFunction) {
24
41
  const { state, context } = element;
25
- return await applyEventUpdate(appliedFunction, updatedObj, element, state, context, options);
42
+ return await applyEventUpdate(
43
+ appliedFunction,
44
+ updatedObj,
45
+ element,
46
+ state,
47
+ context,
48
+ options
49
+ );
26
50
  }
27
51
  };
28
52
  const applyEventsOnNode = (element, options) => {
29
53
  const { node, on } = element;
30
54
  for (const param in on) {
31
- if (param === "init" || param === "beforeClassAssign" || param === "render" || param === "renderRouter" || param === "attachNode" || param === "stateInit" || param === "stateCreated" || param === "beforeStateUpdate" || param === "stateUpdate" || param === "beforeUpdate" || param === "done" || param === "create" || param === "complete" || param === "frame" || param === "update") continue;
32
- const appliedFunction = getOnOrPropsEvent(param, element);
33
- if (isFunction(appliedFunction)) {
55
+ if (param === "init" || param === "beforeClassAssign" || param === "render" || param === "renderRouter" || param === "attachNode" || param === "stateInit" || param === "stateCreated" || param === "beforeStateUpdate" || param === "stateUpdate" || param === "beforeUpdate" || param === "done" || param === "create" || param === "complete" || param === "frame" || param === "update")
56
+ continue;
57
+ let fnValue = getOnOrPropsEvent(param, element);
58
+ if (isString(fnValue)) {
59
+ fnValue = getContextFunction.call(element, fnValue);
60
+ }
61
+ if (isFunction(fnValue)) {
34
62
  node.addEventListener(param, async (event) => {
35
63
  const { state, context } = element;
36
- await appliedFunction.call(element, event, element, state, context, options);
64
+ await fnValue.call(element, event, element, state, context, options);
37
65
  });
38
66
  }
39
67
  }
package/on.js CHANGED
@@ -1,15 +1,24 @@
1
1
  'use strict'
2
2
 
3
- import { isFunction } from '@domql/utils'
3
+ import { isFunction, isString, getContextFunction } from '@domql/utils'
4
4
 
5
5
  const getOnOrPropsEvent = (param, element) => {
6
6
  const onEvent = element.on?.[param]
7
- const onPropEvent = element.props?.['on' + param.slice(0, 1).toUpperCase() + param.slice(1)]
7
+ const onPropEvent =
8
+ element.props?.['on' + param.slice(0, 1).toUpperCase() + param.slice(1)]
8
9
  return onEvent || onPropEvent
9
10
  }
10
11
 
11
- export const applyEvent = (param, element, state, context, options) => {
12
- return param.call(element, element, state || element.state, context || element.context, options)
12
+ export const applyEvent = (fnValue, element, state, context, options) => {
13
+ if (isString(fnValue)) fnValue = getContextFunction.call(element, fnValue)
14
+ if (!fnValue.call) element.warn(`Event is not executable: ${fnValue}`)
15
+ return fnValue.call(
16
+ element,
17
+ element,
18
+ state || element.state,
19
+ context || element.context,
20
+ options
21
+ )
13
22
  }
14
23
 
15
24
  export const triggerEventOn = async (param, element, options) => {
@@ -20,15 +29,43 @@ export const triggerEventOn = async (param, element, options) => {
20
29
  }
21
30
  }
22
31
 
23
- export const applyEventUpdate = (param, updatedObj, element, state, context, options) => {
24
- return param.call(element, updatedObj, element, state || element.state, context || element.context, options)
32
+ export const applyEventUpdate = (
33
+ fnValue,
34
+ updatedObj,
35
+ element,
36
+ state,
37
+ context,
38
+ options
39
+ ) => {
40
+ if (isString(fnValue)) fnValue = getContextFunction.call(element, fnValue)
41
+ if (!fnValue.call) element.warn(`Event is not executable: ${fnValue}`)
42
+ return fnValue.call(
43
+ element,
44
+ updatedObj,
45
+ element,
46
+ state || element.state,
47
+ context || element.context,
48
+ options
49
+ )
25
50
  }
26
51
 
27
- export const triggerEventOnUpdate = async (param, updatedObj, element, options) => {
52
+ export const triggerEventOnUpdate = async (
53
+ param,
54
+ updatedObj,
55
+ element,
56
+ options
57
+ ) => {
28
58
  const appliedFunction = getOnOrPropsEvent(param, element)
29
59
  if (appliedFunction) {
30
60
  const { state, context } = element
31
- return await applyEventUpdate(appliedFunction, updatedObj, element, state, context, options)
61
+ return await applyEventUpdate(
62
+ appliedFunction,
63
+ updatedObj,
64
+ element,
65
+ state,
66
+ context,
67
+ options
68
+ )
32
69
  }
33
70
  }
34
71
 
@@ -51,13 +88,17 @@ export const applyEventsOnNode = (element, options) => {
51
88
  param === 'complete' ||
52
89
  param === 'frame' ||
53
90
  param === 'update'
54
- ) continue
91
+ )
92
+ continue
55
93
 
56
- const appliedFunction = getOnOrPropsEvent(param, element)
57
- if (isFunction(appliedFunction)) {
58
- node.addEventListener(param, async event => {
94
+ let fnValue = getOnOrPropsEvent(param, element)
95
+ if (isString(fnValue)) {
96
+ fnValue = getContextFunction.call(element, fnValue)
97
+ }
98
+ if (isFunction(fnValue)) {
99
+ node.addEventListener(param, async (event) => {
59
100
  const { state, context } = element
60
- await appliedFunction.call(element, event, element, state, context, options)
101
+ await fnValue.call(element, event, element, state, context, options)
61
102
  })
62
103
  }
63
104
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/event",
3
- "version": "2.30.2",
3
+ "version": "2.31.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "index.js",
@@ -28,8 +28,8 @@
28
28
  "prepublish": "npm run build; npm run copy:package:cjs"
29
29
  },
30
30
  "dependencies": {
31
- "@domql/report": "^2.30.2",
32
- "@domql/utils": "^2.30.2"
31
+ "@domql/report": "^2.31.1",
32
+ "@domql/utils": "^2.31.1"
33
33
  },
34
- "gitHead": "f16f5ece1e6e13dc967e183452017b49a104cca1"
34
+ "gitHead": "6ac409576cc3b2ac653e9601d5a8c2bed90b83de"
35
35
  }