@domql/emotion 3.0.6 → 3.0.8
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/classList.js +54 -0
- package/index.js +4 -5
- package/package.json +3 -4
package/classList.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
import { exec, isObject, isString } from '@domql/utils'
|
|
4
|
+
|
|
5
|
+
export const assignKeyAsClassname = element => {
|
|
6
|
+
const { key } = element
|
|
7
|
+
if (element.classlist === true) element.classlist = key
|
|
8
|
+
else if (
|
|
9
|
+
!element.classlist &&
|
|
10
|
+
typeof key === 'string' &&
|
|
11
|
+
key.charAt(0) === '_' &&
|
|
12
|
+
key.charAt(1) !== '_'
|
|
13
|
+
) {
|
|
14
|
+
element.classlist = key.slice(1)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// stringifies class object
|
|
19
|
+
export const classify = (obj, element) => {
|
|
20
|
+
let className = ''
|
|
21
|
+
for (const item in obj) {
|
|
22
|
+
const param = obj[item]
|
|
23
|
+
if (typeof param === 'boolean' && param) className += ` ${item}`
|
|
24
|
+
else if (typeof param === 'string') className += ` ${param}`
|
|
25
|
+
else if (typeof param === 'function') {
|
|
26
|
+
className += ` ${exec(param, element)}`
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return className
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const classList = (params, element) => {
|
|
33
|
+
if (!params) return
|
|
34
|
+
const { key } = element
|
|
35
|
+
if (params === true) params = element.classlist = { key }
|
|
36
|
+
if (isString(params)) params = element.classlist = { default: params }
|
|
37
|
+
if (isObject(params)) params = classify(params, element)
|
|
38
|
+
// TODO: fails on string
|
|
39
|
+
const className = params.replace(/\s+/g, ' ').trim()
|
|
40
|
+
return className
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// LEGACY (still needed in old domql)
|
|
44
|
+
export const applyClassListOnNode = (params, element, node) => {
|
|
45
|
+
const className = classList(params, element)
|
|
46
|
+
node.classList = className
|
|
47
|
+
return className
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function applyClasslist (params, element, node) {
|
|
51
|
+
applyClassListOnNode(params, element, node)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default applyClasslist
|
package/index.js
CHANGED
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
// import DOM from '../../src'
|
|
4
4
|
import { isObjectLike, isString, isNumber, isBoolean, exec } from '@domql/utils'
|
|
5
|
-
import { applyClassListOnNode } from '
|
|
5
|
+
import { applyClassListOnNode } from './classList'
|
|
6
6
|
import createEmotion from '@emotion/css/create-instance'
|
|
7
7
|
|
|
8
8
|
export const transformEmotionStyle = emotion => {
|
|
9
9
|
return (params, element, state) => {
|
|
10
10
|
const execParams = exec(params, element)
|
|
11
11
|
if (params) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
else element.classlist = { elementStyle: execParams }
|
|
12
|
+
const { __ref: ref } = element
|
|
13
|
+
ref.__class.style = execParams
|
|
15
14
|
}
|
|
16
15
|
transformEmotionClass(emotion)(
|
|
17
16
|
element.classlist,
|
|
@@ -68,7 +67,7 @@ export const transformDOMQLEmotion = (emotion, options) => {
|
|
|
68
67
|
if (!emotion) emotion = createEmotion(options || { key: 'smbls' })
|
|
69
68
|
|
|
70
69
|
return {
|
|
71
|
-
|
|
70
|
+
style: transformEmotionStyle(emotion),
|
|
72
71
|
classlist: transformEmotionClass(emotion)
|
|
73
72
|
}
|
|
74
73
|
}
|
package/package.json
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/emotion",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@domql/
|
|
8
|
-
"@domql/utils": "^3.0.6"
|
|
7
|
+
"@domql/utils": "^3.0.7"
|
|
9
8
|
},
|
|
10
9
|
"peerDependencies": {
|
|
11
10
|
"@emotion/css": "*"
|
|
12
11
|
},
|
|
13
|
-
"gitHead": "
|
|
12
|
+
"gitHead": "27111e6f0edd42aeeb844b89641343f47d113381",
|
|
14
13
|
"source": "index.js"
|
|
15
14
|
}
|