beyond-rails 0.0.214 → 0.0.215

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64b522414fe0b7fa86cb3df83c81bba74875f7c52b5ee3706b37bd573926bc13
4
- data.tar.gz: 305bd9944bccb2a77e40c75042576d12b366d827366b2deee387d6f24b26cdaf
3
+ metadata.gz: 2f68ab9a79de99e40d9e8460452b9cf7fdaa43ff92b2a553f5c1715f0f99fd6d
4
+ data.tar.gz: 2ba5dd5bb3e6ffa51fdb779d32c08e25a03a442cefa7e5803c3a1a66dd8f7f9d
5
5
  SHA512:
6
- metadata.gz: 81acdccfca585e4e420833a6a859ff319e367fe72d4d20a908fc3c755d0e59832ff4ee87094aa69a83b12c266381862e103fa5a778de0dc3b884478fb9b21787
7
- data.tar.gz: ded05312ca85dd45d648c215d6f9c725349a4e062ed3d76635b42f0e1af903e1beae70c59b7e7c53f873a32d719d6c75983c99a8e107746a91444ebac76ecf67
6
+ metadata.gz: 83b82acf5fb118c6e6c26177cb0886bb90772f556b0da4ae371a18e77f3541f2427358eedfef4af09bd09bd03fa01fad89c117bd34cbce3b4893898aac5e1f17
7
+ data.tar.gz: 205e57cafe9e23882c7cf5614142d573cc5685550d718ba02b2fae32fa917111642ff75dbc2025f2b50664abfa84a74aa189657717b5580985b4c4c91754f880
@@ -1,19 +1,20 @@
1
1
  import { isFunction } from '../utils'
2
- import isUndef from '../utils/isUndef'
3
2
  import createdComponents from '../consts/createdComponents'
4
3
 
5
4
  const domMap = new Map()
6
5
 
7
6
  export default function supportDom(target) {
8
7
 
8
+ const targetName = target.name
9
+
9
10
  return class extends target {
10
11
 
11
12
  init() {
12
- if (domMap.has(this.dom) && isUndef(this._skipDomChecking)) {
13
- console.warn('This dom has already been initialized.', this.dom)
13
+ if (this.classNameUsed) {
14
+ console.warn(`This dom has already been initialized by ${targetName}`, this.dom)
14
15
  return
15
16
  }
16
- this.setDomToMap()
17
+ this.setClassNameByDom(target)
17
18
 
18
19
  this._listeners = []
19
20
  this._externalListeners = []
@@ -23,18 +24,38 @@ export default function supportDom(target) {
23
24
  createdComponents.push(this)
24
25
  }
25
26
 
26
- setDomToMap() {
27
+ get classNameUsed() {
28
+ if (this._skipDomChecking) {
29
+ return false
30
+ }
31
+ const classnames = domMap.get(this.dom) || []
32
+ return classnames.includes(targetName)
33
+ }
34
+
35
+ setClassNameByDom(target) {
27
36
  const { dom } = this
28
37
  if (dom) {
29
- domMap.set(dom, true)
38
+ const classes = domMap.get(dom) || []
39
+ classes.push(targetName)
40
+ domMap.set(dom, classes)
30
41
  }
31
42
  }
32
43
 
33
- deleteDomFromMap() {
44
+ deleteClassNameByDom(target) {
34
45
  const { dom } = this
35
- if (dom) {
46
+ if (! dom) {
47
+ return
48
+ }
49
+ const { name } = target
50
+ const classnames = (domMap.get(dom) || [])
51
+ .filter(classname => classname !== name)
52
+
53
+ if (classnames.length === 0) {
36
54
  domMap.delete(dom)
37
55
  }
56
+ else {
57
+ domMap.set(dom, classnames)
58
+ }
38
59
  }
39
60
 
40
61
  on(name, func) {
@@ -59,7 +80,7 @@ export default function supportDom(target) {
59
80
  }
60
81
 
61
82
  destroy() {
62
- this.deleteDomFromMap()
83
+ this.deleteClassNameByDom(target)
63
84
  this._externalListeners.length = 0
64
85
  this.removeEvents()
65
86
  if (isFunction(super.destroy)) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beyond-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.214
4
+ version: 0.0.215
5
5
  platform: ruby
6
6
  authors:
7
7
  - kmsheng
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-09-26 00:00:00.000000000 Z
12
+ date: 2020-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sassc