@domql/element 3.1.2 → 3.2.7

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.
Files changed (135) hide show
  1. package/README.md +4 -6
  2. package/children.js +45 -18
  3. package/create.js +58 -46
  4. package/define.js +1 -1
  5. package/dist/cjs/children.js +43 -13
  6. package/dist/cjs/create.js +57 -27
  7. package/dist/cjs/define.js +1 -1
  8. package/dist/cjs/event/animationFrame.js +96 -0
  9. package/dist/cjs/event/can.js +28 -0
  10. package/dist/cjs/event/index.js +20 -0
  11. package/dist/cjs/event/on.js +84 -0
  12. package/dist/cjs/event/store.js +27 -0
  13. package/dist/cjs/extend.js +88 -0
  14. package/dist/cjs/index.js +9 -6
  15. package/dist/cjs/iterate.js +89 -33
  16. package/dist/cjs/methods/set.js +5 -0
  17. package/dist/cjs/methods/v2.js +1 -1
  18. package/dist/cjs/mixins/attr.js +3 -2
  19. package/dist/cjs/mixins/classList.js +11 -1
  20. package/dist/cjs/mixins/content.js +72 -0
  21. package/dist/cjs/mixins/html.js +1 -2
  22. package/dist/cjs/mixins/registry.js +2 -2
  23. package/dist/cjs/mixins/scope.js +1 -1
  24. package/dist/cjs/mixins/state.js +4 -4
  25. package/dist/cjs/mixins/style.js +11 -2
  26. package/dist/cjs/mixins/text.js +9 -5
  27. package/dist/cjs/node.js +22 -19
  28. package/dist/cjs/render/append.js +72 -0
  29. package/dist/cjs/render/cache.js +80 -0
  30. package/dist/cjs/render/create.js +25 -0
  31. package/dist/cjs/render/index.js +20 -0
  32. package/dist/cjs/set.js +33 -40
  33. package/dist/cjs/update.js +100 -69
  34. package/dist/cjs/utils/applyParam.js +7 -7
  35. package/dist/cjs/utils/extendUtils.js +132 -0
  36. package/dist/cjs/utils/index.js +2 -0
  37. package/dist/cjs/utils/propEvents.js +56 -0
  38. package/dist/esm/children.js +44 -14
  39. package/dist/esm/create.js +58 -27
  40. package/dist/esm/define.js +1 -1
  41. package/dist/esm/event/animationFrame.js +76 -0
  42. package/dist/esm/event/can.js +8 -0
  43. package/dist/esm/event/index.js +3 -0
  44. package/dist/esm/event/on.js +64 -0
  45. package/dist/esm/event/store.js +7 -0
  46. package/dist/esm/extend.js +74 -0
  47. package/dist/esm/index.js +8 -6
  48. package/dist/esm/iterate.js +90 -35
  49. package/dist/esm/methods/set.js +10 -0
  50. package/dist/esm/methods/v2.js +1 -1
  51. package/dist/esm/mixins/attr.js +4 -3
  52. package/dist/esm/mixins/classList.js +11 -1
  53. package/dist/esm/mixins/content.js +52 -0
  54. package/dist/esm/mixins/html.js +1 -2
  55. package/dist/esm/mixins/registry.js +1 -1
  56. package/dist/esm/mixins/scope.js +1 -1
  57. package/dist/esm/mixins/state.js +5 -5
  58. package/dist/esm/mixins/style.js +12 -3
  59. package/dist/esm/mixins/text.js +10 -6
  60. package/dist/esm/node.js +22 -19
  61. package/dist/esm/render/append.js +52 -0
  62. package/dist/esm/render/cache.js +60 -0
  63. package/dist/esm/render/create.js +5 -0
  64. package/dist/esm/render/index.js +3 -0
  65. package/dist/esm/set.js +34 -41
  66. package/dist/esm/update.js +100 -71
  67. package/dist/esm/utils/applyParam.js +8 -8
  68. package/dist/esm/utils/extendUtils.js +119 -0
  69. package/dist/esm/utils/index.js +1 -0
  70. package/dist/esm/utils/propEvents.js +36 -0
  71. package/dist/iife/index.js +4718 -0
  72. package/extend.js +95 -0
  73. package/index.js +9 -6
  74. package/iterate.js +100 -38
  75. package/node.js +25 -23
  76. package/package.json +44 -20
  77. package/set.js +28 -32
  78. package/update.js +111 -82
  79. package/__tests__/checkIfOnUpdate.test.js +0 -103
  80. package/__tests__/children.test.js +0 -213
  81. package/__tests__/define.test.js +0 -75
  82. package/__tests__/inheritStateUpdates.test.js +0 -79
  83. package/__tests__/renderElement.test.js +0 -131
  84. package/__tests__/resetElement.test.js +0 -44
  85. package/__tests__/set.test.js +0 -316
  86. package/__tests__/throughExecProps.test.js +0 -86
  87. package/__tests__/throughInitialDefine.test.js +0 -104
  88. package/__tests__/throughInitialExec.test.js +0 -92
  89. package/__tests__/throughUpdatedDefine.test.js +0 -92
  90. package/__tests__/throughUpdatedExec.test.js +0 -110
  91. package/__tests__/tree.test.js +0 -15
  92. package/__tests__/update.test.js +0 -256
  93. package/dist/cjs/__tests__/checkIfOnUpdate.test.js +0 -73
  94. package/dist/cjs/__tests__/children.test.js +0 -177
  95. package/dist/cjs/__tests__/define.test.js +0 -75
  96. package/dist/cjs/__tests__/inheritStateUpdates.test.js +0 -62
  97. package/dist/cjs/__tests__/renderElement.test.js +0 -138
  98. package/dist/cjs/__tests__/resetElement.test.js +0 -35
  99. package/dist/cjs/__tests__/set.test.js +0 -256
  100. package/dist/cjs/__tests__/throughExecProps.test.js +0 -62
  101. package/dist/cjs/__tests__/throughInitialDefine.test.js +0 -79
  102. package/dist/cjs/__tests__/throughInitialExec.test.js +0 -73
  103. package/dist/cjs/__tests__/throughUpdatedDefine.test.js +0 -69
  104. package/dist/cjs/__tests__/throughUpdatedExec.test.js +0 -84
  105. package/dist/cjs/__tests__/tree.test.js +0 -11
  106. package/dist/cjs/__tests__/update.test.js +0 -222
  107. package/dist/cjs/package.json +0 -4
  108. package/dist/esm/__tests__/checkIfOnUpdate.test.js +0 -73
  109. package/dist/esm/__tests__/children.test.js +0 -177
  110. package/dist/esm/__tests__/define.test.js +0 -53
  111. package/dist/esm/__tests__/inheritStateUpdates.test.js +0 -62
  112. package/dist/esm/__tests__/renderElement.test.js +0 -116
  113. package/dist/esm/__tests__/resetElement.test.js +0 -35
  114. package/dist/esm/__tests__/set.test.js +0 -256
  115. package/dist/esm/__tests__/throughExecProps.test.js +0 -62
  116. package/dist/esm/__tests__/throughInitialDefine.test.js +0 -79
  117. package/dist/esm/__tests__/throughInitialExec.test.js +0 -73
  118. package/dist/esm/__tests__/throughUpdatedDefine.test.js +0 -69
  119. package/dist/esm/__tests__/throughUpdatedExec.test.js +0 -84
  120. package/dist/esm/__tests__/tree.test.js +0 -11
  121. package/dist/esm/__tests__/update.test.js +0 -222
  122. package/methods/set.js +0 -63
  123. package/methods/v2.js +0 -83
  124. package/mixins/attr.js +0 -32
  125. package/mixins/classList.js +0 -54
  126. package/mixins/data.js +0 -26
  127. package/mixins/html.js +0 -21
  128. package/mixins/index.js +0 -23
  129. package/mixins/registry.js +0 -46
  130. package/mixins/scope.js +0 -23
  131. package/mixins/state.js +0 -19
  132. package/mixins/style.js +0 -16
  133. package/mixins/text.js +0 -26
  134. package/utils/applyParam.js +0 -34
  135. package/utils/index.js +0 -3
@@ -1,46 +0,0 @@
1
- 'use strict'
2
-
3
- import attr from './attr.js'
4
- import { classList } from './classList.js'
5
- import data from './data.js'
6
- import html from './html.js'
7
- import scope from './scope.js'
8
- import state from './state.js'
9
- import style from './style.js'
10
- import text from './text.js'
11
-
12
- export const REGISTRY = {
13
- attr,
14
- style,
15
- text,
16
- html,
17
- data,
18
- classlist: classList,
19
- state,
20
- scope,
21
- deps: (param, el) => param || el.parent.deps,
22
-
23
- extends: {},
24
- children: {},
25
- content: {},
26
- childExtends: {},
27
- childExtendsRecursive: {},
28
- props: {},
29
- if: {},
30
- define: {},
31
- __name: {},
32
- __ref: {},
33
- __hash: {},
34
- __text: {},
35
- key: {},
36
- tag: {},
37
- query: {},
38
- parent: {},
39
- node: {},
40
- variables: {},
41
- on: {},
42
- component: {},
43
- context: {}
44
- }
45
-
46
- export default REGISTRY
package/mixins/scope.js DELETED
@@ -1,23 +0,0 @@
1
- 'use strict'
2
-
3
- import { isFunction, isObject } from '@domql/utils'
4
-
5
- /**
6
- * Apply data parameters on the DOM nodes
7
- * this should only work if `showOnNode: true` is passed
8
- */
9
- export async function scope (params, element, node) {
10
- if (!isObject(params)) return
11
-
12
- // Apply data params on node
13
- for (const scopeItem in params) {
14
- const value = params[scopeItem]
15
- if (isFunction(value)) {
16
- element.scope[scopeItem] = value.bind(element)
17
- } else {
18
- element.scope[scopeItem] = value
19
- }
20
- }
21
- }
22
-
23
- export default scope
package/mixins/state.js DELETED
@@ -1,19 +0,0 @@
1
- 'use strict'
2
-
3
- import { execPromise, isObject, STATE_METHODS } from '@domql/utils'
4
-
5
- export async function state (params, element, node) {
6
- const state = await execPromise(params, element)
7
-
8
- if (isObject(state)) {
9
- for (const param in state) {
10
- if (STATE_METHODS.includes(param)) continue
11
- if (!Object.hasOwnProperty.call(state, param)) continue
12
- // element.state[param] = exec(state[param], element)
13
- }
14
- }
15
-
16
- return element
17
- }
18
-
19
- export default state
package/mixins/style.js DELETED
@@ -1,16 +0,0 @@
1
- 'use strict'
2
-
3
- import { isObject, map } from '@domql/utils'
4
- import { report } from '@domql/report'
5
-
6
- /**
7
- * Recursively add styles to a DOM node
8
- */
9
- export function style (params, element, node) {
10
- if (params) {
11
- if (isObject(params)) map(node.style, params, element)
12
- else report('HTMLInvalidStyles', params)
13
- }
14
- }
15
-
16
- export default style
package/mixins/text.js DELETED
@@ -1,26 +0,0 @@
1
- 'use strict'
2
-
3
- import { create } from '../create.js'
4
- import { exec, isString } from '@domql/utils'
5
-
6
- /**
7
- * Creates a text node and appends into
8
- * an original one as a child
9
- */
10
- export async function text (param, element, node) {
11
- let prop = exec(param || element.props.text, element)
12
- if (isString(prop) && prop.includes('{{')) {
13
- prop = element.call('replaceLiteralsWithObjectFields', prop)
14
- }
15
- if (element.tag === 'string') {
16
- node.nodeValue = prop
17
- } else if (param !== undefined || param !== null) {
18
- if (element.__text) {
19
- if (element.__text.text === prop) return
20
- element.__text.text = prop
21
- if (element.__text.node) element.__text.node.nodeValue = prop
22
- } else await create({ tag: 'string', text: prop }, element, '__text')
23
- }
24
- }
25
-
26
- export default text
@@ -1,34 +0,0 @@
1
- 'use strict'
2
-
3
- import { isFunction } from '@domql/utils'
4
- import { REGISTRY } from '../mixins/index.js'
5
-
6
- export const applyParam = async (param, element, options) => {
7
- const { node, context, __ref: ref } = element
8
- const prop = element[param]
9
-
10
- const { onlyUpdate } = options
11
-
12
- const DOMQLProperty = REGISTRY[param]
13
- const DOMQLPropertyFromContext =
14
- context && context.registry && context.registry[param]
15
- const isGlobalTransformer = DOMQLPropertyFromContext || DOMQLProperty
16
-
17
- const hasDefine = element.define && element.define[param]
18
- const hasContextDefine = context && context.define && context.define[param]
19
-
20
- if (!ref.__if) return
21
-
22
- const hasOnlyUpdate = onlyUpdate
23
- ? onlyUpdate === param || element.lookup(onlyUpdate)
24
- : true
25
-
26
- if (isGlobalTransformer && !hasContextDefine && hasOnlyUpdate) {
27
- if (isFunction(isGlobalTransformer)) {
28
- await isGlobalTransformer(prop, element, node, options)
29
- return
30
- }
31
- }
32
-
33
- return { hasDefine, hasContextDefine }
34
- }
package/utils/index.js DELETED
@@ -1,3 +0,0 @@
1
- 'use strict'
2
-
3
- export const METHODS_EXL = [] // this is needed because of unit tests