domql 1.5.5 → 1.5.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.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "DOM rendering Javascript framework at early stage.",
4
4
  "private": false,
5
5
  "author": "rackai",
6
- "version": "1.5.5",
6
+ "version": "1.5.7",
7
7
  "repository": "https://github.com/rackai/domql",
8
8
  "publishConfig": {
9
9
  "registry": "https://registry.npmjs.org"
@@ -5,7 +5,7 @@ import createNode from './node'
5
5
  import { appendNode, assignNode } from './assign'
6
6
  import { applyExtend } from './extend'
7
7
  import nodes from './nodes'
8
- import set from './set'
8
+ import set, { removeContentElement } from './set'
9
9
  import createState from './state'
10
10
  import createProps from './props'
11
11
  import update from './update'
@@ -95,6 +95,7 @@ const create = (element, parent, key, options = {}) => {
95
95
  element.set = set
96
96
  element.update = update
97
97
  element.remove = remove
98
+ element.removeContent = removeContentElement
98
99
  element.setProps = setProps
99
100
  element.lookup = lookup
100
101
  element.parse = parse
@@ -1,7 +1,10 @@
1
1
  'use strict'
2
2
 
3
- import { isObject, isObjectLike } from '../utils'
3
+ import { isFunction, isObject, isObjectLike } from '../utils'
4
4
  import { registry } from './mixins'
5
+ import { removeContentElement } from './set'
6
+
7
+ const ENV = process.env.NODE_ENV
5
8
 
6
9
  // TODO: update these files
7
10
  export const lookup = function (key) {
@@ -18,7 +21,11 @@ export const lookup = function (key) {
18
21
 
19
22
  export const remove = function (params) {
20
23
  const element = this
21
- element.node.remove()
24
+ if (isFunction(element.node.remove)) element.node.remove()
25
+ else if (ENV === 'test' || ENV === 'development') {
26
+ console.warn('This item cant be removed')
27
+ element.log()
28
+ }
22
29
  delete element.parent[element.key]
23
30
  }
24
31
 
@@ -94,6 +101,7 @@ export const isMethod = function (param) {
94
101
  return param === 'set' ||
95
102
  param === 'update' ||
96
103
  param === 'remove' ||
104
+ param === 'removeContent' ||
97
105
  param === 'lookup' ||
98
106
  param === 'keys' ||
99
107
  param === 'parse' ||
@@ -48,6 +48,7 @@ export default {
48
48
  update: {},
49
49
  setProps: {},
50
50
  remove: {},
51
+ removeContent: {},
51
52
  lookup: {},
52
53
  keys: {},
53
54
  log: {},
@@ -4,8 +4,9 @@ import create from './create'
4
4
  import { isEqualDeep } from '../utils'
5
5
  import { registry } from './mixins'
6
6
 
7
- const removeContentElement = (params, element) => {
8
- if (params && element.content) {
7
+ export const removeContentElement = function (el) {
8
+ const element = el || this
9
+ if (element.content) {
9
10
  if (element.content.node) {
10
11
  if (element.content.tag === 'fragment') element.node.innerHTML = ''
11
12
  else element.node.removeChild(element.content.node)
@@ -20,13 +21,13 @@ const removeContentElement = (params, element) => {
20
21
  }
21
22
  }
22
23
 
23
- const set = function (params, options) {
24
- const element = this
24
+ const set = function (params, options, el) {
25
+ const element = el || this
25
26
 
26
27
  const isEqual = isEqualDeep(params, element.content)
27
28
  if (isEqual && element.content.__cached) return element
28
29
 
29
- removeContentElement(params, element)
30
+ removeContentElement(element)
30
31
 
31
32
  if (params) {
32
33
  const { childExtend } = params