UNPKG

d3-decompose

Version:

Addon to d3.js that can decompose SVG/CSS transform strings

1 lines 1.79 kB
{"version":3,"file":"d3-decompose.mjs","sources":["../src/d3-decompose.js"],"sourcesContent":["/**\n * Decomposes transform attribute in an object\n * @param {string} input Transform string to decompose\n * @param {boolean=true} asString Return the values as arrays (false) or transform strings (true)\n * @returns {}\n */\nexport default function decompose(input = '', asString = true) {\n let transform = {};\n\n if(!input || input === '') return transform;\n\n const typeRegex = /(\\w+\\([\\w+., -]*\\))/g;\n const valuesRegex = /([-\\d.]+)[, ]?/g;\n\n let t = null;\n\n while (t = typeRegex.exec(input)) {\n const typeValuesRegex = /(\\w+)\\(([^\\)]+)\\)/g;\n let tv = typeValuesRegex.exec(t[1]);\n\n const key = tv[1];\n const valueString = tv[2];\n let values = [];\n\n let v = null;\n while (v = valuesRegex.exec(valueString)) {\n values.push(v[1]);\n }\n\n transform[key] = asString === true ? `${key}(${values.join(',')})` : values;\n }\n\n return transform;\n}"],"names":["decompose","input","asString","transform","typeRegex","valuesRegex","t","exec","typeValuesRegex","tv","key","valueString","values","v","push","join"],"mappings":"AAAA;;;;;;AAMA,AAAe,SAASA,SAAT,GAAgD;MAA7BC,KAA6B,uEAArB,EAAqB;MAAjBC,QAAiB,uEAAN,IAAM;;MACzDC,YAAY,EAAhB;;MAEG,CAACF,KAAD,IAAUA,UAAU,EAAvB,EAA2B,OAAOE,SAAP;;MAErBC,YAAY,sBAAlB;MACMC,cAAc,iBAApB;;MAEIC,IAAI,IAAR;;SAEOA,IAAIF,UAAUG,IAAV,CAAeN,KAAf,CAAX,EAAkC;QAC1BO,kBAAkB,oBAAxB;QACIC,KAAKD,gBAAgBD,IAAhB,CAAqBD,EAAE,CAAF,CAArB,CAAT;;QAEMI,MAAMD,GAAG,CAAH,CAAZ;QACME,cAAcF,GAAG,CAAH,CAApB;QACIG,SAAS,EAAb;;QAEIC,IAAI,IAAR;WACOA,IAAIR,YAAYE,IAAZ,CAAiBI,WAAjB,CAAX,EAA0C;aACjCG,IAAP,CAAYD,EAAE,CAAF,CAAZ;;;cAGQH,GAAV,IAAiBR,aAAa,IAAb,GAAuBQ,GAAvB,SAA8BE,OAAOG,IAAP,CAAY,GAAZ,CAA9B,SAAoDH,MAArE;;;SAGKT,SAAP;;;"}