| 1 |
export const getDeviceType = (key) => { |
| 2 |
let type = 'desktop'; |
| 3 |
key = key.toLowerCase(); |
| 4 |
|
| 5 |
switch (true) { |
| 6 |
case key.indexOf('desktop') > -1: |
| 7 |
type = 'desktop'; |
| 8 |
break; |
| 9 |
case key.indexOf('mobile') > -1: |
| 10 |
type = 'mobile'; |
| 11 |
break; |
| 12 |
case key.indexOf('tab') > -1: |
| 13 |
type = 'tab'; |
| 14 |
break; |
| 15 |
} |
| 16 |
|
| 17 |
const isHover = key.indexOf('hover') > -1; |
| 18 |
if( isHover ) { |
| 19 |
type += 'Hover'; |
| 20 |
} |
| 21 |
|
| 22 |
return type; |
| 23 |
} |
| 24 |
|
| 25 |
|
| 26 |
|
| 27 |
export const addProperty = (type, id, options = {}) => { |
| 28 |
let defultArgs = {}; |
| 29 |
const { class: hasClass = false, attr = false, filter = false, args = {}, ...optionalArgs } = options; |
| 30 |
|
| 31 |
if( hasClass ) { |
| 32 |
defultArgs.classPrefix = `betterdocs-${id}-`; |
| 33 |
} |
| 34 |
if( attr ) { |
| 35 |
defultArgs.attrPrefix = id; |
| 36 |
} |
| 37 |
|
| 38 |
let controlArgs = { |
| 39 |
controlName: id, |
| 40 |
...args |
| 41 |
} |
| 42 |
|
| 43 |
if( filter === 'number' ) { |
| 44 |
defultArgs.filter = (value, key, data) => (data[key] = +value.replace(/\D/g, "")); |
| 45 |
} |
| 46 |
|
| 47 |
return { |
| 48 |
id, |
| 49 |
type, |
| 50 |
class: hasClass, |
| 51 |
attr: attr, |
| 52 |
args: controlArgs, |
| 53 |
...defultArgs, |
| 54 |
...optionalArgs |
| 55 |
}; |
| 56 |
} |
| 57 |
|
| 58 |
export const htmlToElem = (html) => wp.element.RawHTML({children: html}); |
| 59 |
|