@domql/emotion 3.0.7 → 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.
Files changed (3) hide show
  1. package/classList.js +54 -0
  2. package/index.js +1 -1
  3. package/package.json +2 -3
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,7 +2,7 @@
2
2
 
3
3
  // import DOM from '../../src'
4
4
  import { isObjectLike, isString, isNumber, isBoolean, exec } from '@domql/utils'
5
- import { applyClassListOnNode } from '@domql/classlist'
5
+ import { applyClassListOnNode } from './classList'
6
6
  import createEmotion from '@emotion/css/create-instance'
7
7
 
8
8
  export const transformEmotionStyle = emotion => {
package/package.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "name": "@domql/emotion",
3
- "version": "3.0.7",
3
+ "version": "3.0.8",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
7
- "@domql/classlist": "latest",
8
7
  "@domql/utils": "^3.0.7"
9
8
  },
10
9
  "peerDependencies": {
11
10
  "@emotion/css": "*"
12
11
  },
13
- "gitHead": "ad8d42d52cce0024e5df6b2e364f660e0e4dd02d",
12
+ "gitHead": "27111e6f0edd42aeeb844b89641343f47d113381",
14
13
  "source": "index.js"
15
14
  }