domql 1.5.120 → 1.5.122

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 CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "domql",
3
3
  "description": "DOM rendering Javascript framework at early stage.",
4
4
  "author": "symbo.ls",
5
- "version": "1.5.120",
5
+ "version": "1.5.122",
6
6
  "repository": "https://github.com/domql/domql",
7
7
  "publishConfig": {
8
8
  "registry": "https://registry.npmjs.org"
@@ -29,6 +29,7 @@
29
29
  "dependencies": {
30
30
  "@domql/globals": "latest",
31
31
  "@domql/registry": "latest",
32
+ "@domql/event": "latest",
32
33
  "@domql/report": "latest",
33
34
  "@domql/emotion": "latest",
34
35
  "@domql/utils": "latest",
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { isObject, isFunction, isString, createID, isNode, exec, is } from '@domql/utils'
4
4
  import { TAGS } from '@domql/registry'
5
+ import { triggerEventOn } from '@domql/event'
5
6
 
6
7
  import root from './root'
7
8
  import createNode from './node'
@@ -11,7 +12,6 @@ import set, { removeContentElement } from './set'
11
12
  import createState from './state'
12
13
  import createProps from './props'
13
14
  import update from './update'
14
- import { on } from '../event'
15
15
  import { assignClass } from './mixins/classList'
16
16
  import { remove, lookup, setProps, log, keys, parse, parseDeep, spotByPath, nextElement, previousElement, isMethod } from './methods'
17
17
  import cacheNode, { detectTag } from './cache'
@@ -113,14 +113,10 @@ const create = (element, parent, key, options = OPTIONS.create || {}) => {
113
113
  if (__ref.__if) createProps(element, parent)
114
114
 
115
115
  // run `on.init`
116
- if (element.on && isFunction(element.on.init)) {
117
- on.init(element.on.init, element, element.state)
118
- }
116
+ triggerEventOn('init', element)
119
117
 
120
118
  // run `on.beforeClassAssign`
121
- if (element.on && isFunction(element.on.beforeClassAssign)) {
122
- on.beforeClassAssign(element.on.beforeClassAssign, element, element.state)
123
- }
119
+ triggerEventOn('beforeClassAssign', element)
124
120
 
125
121
  // generate a CLASS name
126
122
  assignClass(element)
@@ -134,14 +130,10 @@ const create = (element, parent, key, options = OPTIONS.create || {}) => {
134
130
  assignNode(element, parent, key)
135
131
 
136
132
  // run `on.renderRouter`
137
- if (element.on && isFunction(element.on.renderRouter)) {
138
- on.render(element.on.renderRouter, element, element.state)
139
- }
133
+ triggerEventOn('renderRouter', element)
140
134
 
141
135
  // run `on.render`
142
- if (element.on && isFunction(element.on.render)) {
143
- on.render(element.on.render, element, element.state)
144
- }
136
+ triggerEventOn('render', element)
145
137
 
146
138
  if (parent.__ref && parent.__ref.__children) parent.__ref.__children.push(element.key)
147
139
  // console.groupEnd(element.key)
@@ -9,14 +9,22 @@ export const applyEvents = element => {
9
9
  for (const param in on) {
10
10
  if (
11
11
  param === 'init' ||
12
+ param === 'beforeClassAssign' ||
12
13
  param === 'render' ||
14
+ param === 'renderRouter' ||
15
+ param === 'attachNode' ||
16
+ param === 'stateInit' ||
17
+ param === 'stateCreated' ||
18
+ param === 'initStateUpdated' ||
19
+ param === 'stateUpdated' ||
20
+ param === 'initUpdate' ||
13
21
  param === 'update'
14
22
  ) continue
15
23
 
16
24
  const appliedFunction = element.on[param]
17
25
  if (isFunction(appliedFunction)) {
18
26
  node.addEventListener(param, event =>
19
- appliedFunction(event, element, element.state),
27
+ appliedFunction(event, element, element.state, element.context),
20
28
  true)
21
29
  }
22
30
  }
@@ -1,9 +1,10 @@
1
1
  'use strict'
2
2
 
3
3
  import { exec, isFunction, isObject } from '@domql/utils'
4
+ import { triggerEventOn } from '@domql/event'
5
+
4
6
  import create from './create'
5
7
  import cacheNode from './cache'
6
- import * as on from '../event/on'
7
8
 
8
9
  import {
9
10
  throughInitialDefine,
@@ -32,10 +33,8 @@ export const createNode = (element, options) => {
32
33
  node = element.node = element.parent.node.attachShadow({ mode: 'open' })
33
34
  } else node = element.node = cacheNode(element)
34
35
 
35
- // run `on.attachNode`
36
- if (element.on && isFunction(element.on.attachNode)) {
37
- on.attachNode(element.on.attachNode, element, element.state)
38
- }
36
+ // trigger `on.attachNode`
37
+ triggerEventOn('attachNode', element)
39
38
  }
40
39
 
41
40
  // node.dataset // .key = element.key
@@ -1,6 +1,7 @@
1
1
  'use strict'
2
2
 
3
3
  import { on } from '../event'
4
+ import { triggerEventOn } from '@domql/event'
4
5
  import { is, isObject, exec, isFunction, isUndefined } from '@domql/utils'
5
6
  import { deepClone, overwriteShallow, overwriteDeep } from '../utils'
6
7
 
@@ -120,10 +121,8 @@ export const createState = function (element, parent, opts) {
120
121
  __elementRef.__hasRootState = true
121
122
  }
122
123
 
123
- // run `on.init`
124
- if (element.on && isFunction(element.on.stateInit)) {
125
- on.stateInit(element.on.stateInit, element, element.state)
126
- }
124
+ // trigger `on.stateInit`
125
+ triggerEventOn('stateInit', element)
127
126
 
128
127
  let stateKey = __elementRef.__state
129
128
  if (stateKey) {
@@ -191,10 +190,8 @@ export const createState = function (element, parent, opts) {
191
190
  state.__projectPages = state.__root.PROJECT_PAGES
192
191
  state.__projectSnippets = state.__root.PROJECT_SNIPPETS
193
192
 
194
- // run `on.stateCreated`
195
- if (element.on && isFunction(element.on.stateCreated)) {
196
- on.stateCreated(element.on.stateCreated, element, state)
197
- }
193
+ // trigger `on.stateCreated`
194
+ triggerEventOn('stateCreated', element)
198
195
 
199
196
  return state
200
197
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { window } from '@domql/globals'
4
4
  import { diff, isFunction, isNumber, isObject, isString, createSnapshotId } from '@domql/utils'
5
+ import { applyEvent, triggerEventOn } from '@domql/event'
5
6
  import { merge, overwrite } from '../utils'
6
7
 
7
8
  import { on } from '../event'
@@ -58,8 +59,10 @@ const update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {
58
59
  if (!__ref.__hasRootState) delete element.state
59
60
  if (__ref.__state) element.state = __ref.__state
60
61
  const created = create(element, element.parent, element.key)
61
- if (!options.preventUpdate && element.on && isFunction(element.on.update)) {
62
- on.update(element.on.update, created, created.state)
62
+ if (!options.preventUpdate) {
63
+ if (element.on && isFunction(element.on.update)) {
64
+ applyEvent(element.on.update, created, created.state)
65
+ }
63
66
  }
64
67
  return created
65
68
  } else if (element.node && !ifPassed) {
@@ -143,8 +146,8 @@ const update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {
143
146
  }
144
147
  }
145
148
 
146
- if (!options.preventUpdate && element.on && isFunction(element.on.update)) {
147
- on.update(element.on.update, element, element.state)
149
+ if (!options.preventUpdate) {
150
+ triggerEventOn('update', element)
148
151
  }
149
152
  }
150
153
 
package/src/event/on.js CHANGED
@@ -1,31 +1,7 @@
1
1
  'use strict'
2
2
 
3
- export const beforeClassAssign = (param, element, state) => {
4
- return param(element, state)
5
- }
6
-
7
- export const init = (param, element, state) => {
8
- return param(element, state)
9
- }
10
-
11
- export const render = (param, element, state) => {
12
- return param(element, state)
13
- }
14
-
15
- export const initUpdate = (param, element, state) => {
16
- return param(element, state)
17
- }
18
-
19
- export const attachNode = (param, element, state) => {
20
- return param(element, state)
21
- }
22
-
23
- export const stateInit = (param, element, state) => {
24
- return param(element, state)
25
- }
26
-
27
- export const stateCreated = (param, element, state) => {
28
- return param(element, state)
3
+ export const initUpdate = (param, element, state, changes) => {
4
+ return param(element, state, changes)
29
5
  }
30
6
 
31
7
  export const initStateUpdated = (param, element, state, changes) => {
@@ -35,11 +11,3 @@ export const initStateUpdated = (param, element, state, changes) => {
35
11
  export const stateUpdated = (param, element, state, changes) => {
36
12
  return param(element, state, changes)
37
13
  }
38
-
39
- export const update = (param, element, state) => {
40
- return param(element, state)
41
- }
42
-
43
- export default (param, element, state) => {
44
- return param(element, state)
45
- }