{"version":3,"file":"elpro-css-styles.cjs.mjs","sources":["../../src/utils/index.js","../../src/server/createRenderStyles.js"],"sourcesContent":["// ......................................\r\n////  compose\r\n// ......................................\r\n\r\nexport const compose =\r\n  (...fns) =>\r\n  (arg) =>\r\n    fns.reduceRight((acc, fn) => (fn ? fn(acc) : acc), arg);\r\n\r\n// ......................................\r\n////  partition\r\n// ......................................\r\n\r\nconst accept = ([x, ...xs], fn, index = 0) => {\r\n  if (undef(x)) return [];\r\n  if (fn(x, index)) {\r\n    return [x, ...accept(xs, fn, (index += 1))];\r\n  } else {\r\n    return [...accept(xs, fn, (index += 1))];\r\n  }\r\n};\r\n\r\nconst reject = ([x, ...xs], fn, index = 0) => {\r\n  if (undef(x)) return [];\r\n  if (!fn(x, index)) {\r\n    return [x, ...reject(xs, fn, (index += 1))];\r\n  } else {\r\n    return [...reject(xs, fn, (index += 1))];\r\n  }\r\n};\r\n\r\n// ......................................\r\n////  partition\r\n// ......................................\r\n\r\nexport const partition = (xs, fn) => [accept(xs, fn), reject(xs, fn)];\r\n\r\nexport const def = (x) => typeof x !== 'undefined' && x !== null;\r\nexport const undef = (x) => !def(x);\r\n\r\n//--- pattern\r\nexport const labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\r\nexport const lineBreakPattern = /(\\r\\n|\\n|\\r)/gm;\r\nexport const removeCommentPattern = /\\/\\*[\\s\\S]*?\\*\\//g;\r\nexport const inLineCommentsPattern = /(\\/\\/).*?__\\$__/gm;\r\n\r\n\r\n//--- regex\r\nexport const newRegexExp = (pattern, flag = '') => {\r\n  const regex = new RegExp(pattern, flag);\r\n  regex.lastIndex = 0;\r\n  return regex;\r\n};\r\nexport const regExp = {\r\n  regex: (pattern, flag) => newRegexExp(pattern, flag),\r\n  match: (str, pattern, flag) => str.match(regExp.regex(pattern, flag)) || [],\r\n  test: (str, pattern, flag) => regExp.regex(pattern, flag).test(str),\r\n  exec: (str, pattern, flag) => regExp.regex(pattern, flag).exec(str) || [],\r\n};\r\n\r\n//--- object\r\nexport const ownkey = (obj) => Object.keys(obj)[0];\r\nexport const ownValue = (obj) => Object.values(obj)[0];\r\nexport const arrayOwnProperties = (obj) =>\r\n  isArray(obj) ? obj : Object.keys(obj).map((m) => ({ [m]: obj[m] }));\r\n\r\n//--- remove\r\nexport const removeDoubleSpace = (x) =>\r\n  isArray(x)\r\n    ? x.map((str) => str.replace(/\\s{2,}/g, ' '))\r\n    : x.replace(/\\s{2,}/g, ' ');\r\nexport const removeLabel = (str) => str.replace(labelPattern, '');\r\nexport const removeSpace = (str) => str.split(/\\s+/).join('');\r\nexport const removeLineBreak = (str) => str.replaceAll(lineBreakPattern, '');\r\n\r\n//--- is\r\nexport const isArray = (x) => Array.isArray(x);\r\nexport const isObject = (x) =>\r\n  x != null && !Array.isArray(x) && typeof x === 'object';\r\nexport const isString = (x) => def(x) && typeof x === 'string';\r\nexport const isFunc = (x) => def(x) && typeof x === 'function';\r\nexport const isBrowser = typeof document !== 'undefined';\r\nexport const isPlainObject = (x) =>\r\n  x !== null &&\r\n  typeof x === 'object' &&\r\n  x.constructor.name === Object.name &&\r\n  !('props' in x && x.$$typeof);\r\nexport const isFalsish = (x) =>\r\n  x === undefined || x === null || x === false || x === '';\r\n\r\n//---  Memoize\r\n\r\nexport const memoize = (func, src) => {\r\n  const cache = {};\r\n  return (...args) => {\r\n    const key = JSON.stringify(args);\r\n    if (!cache[key]) {\r\n      cache[key] = func(...args);\r\n    }\r\n    console.log('memodized...', `[ ${src} ]`);\r\n    return cache[key];\r\n  };\r\n};\r\n","import {\n  labelPattern,\n  ownValue,\n  ownkey,\n  removeDoubleSpace,\n  removeLabel,\n} from '../utils';\n\n// ......................................\n////  utils\n// ......................................\n\nconst getNameByLabel = (str) => {\n  const label = str.match(labelPattern) || [];\n\n  const nameLabel = label\n    .join(' ')\n    .split(' ')[1]\n    .replace('.', '')\n    .replace(';', '')\n    .trim();\n\n  return nameLabel.trim();\n};\n\n// ......................................\n////  create Render Styles\n// ......................................\n\n\n export const createRenderStyles = (inserted, cachekey) => {\n  if (inserted && inserted && Array.isArray(inserted)) {\n    let _key = '';\n    let _ids = new Set();\n    let _css = '';\n\n    const styles = inserted.reduce((acc, prev) => {\n      const { name, styles } = prev;\n      const key = name.includes('css-') ? 'css' : cachekey;\n      const classname = ownkey(styles);\n      const value = ownValue(styles);\n      const nameLabel = getNameByLabel(value);\n      const nameIds = name.includes('@') ? [nameLabel, name] : [nameLabel];\n      const css = `${\n        classname.includes('@')\n          ? classname\n          : classname.startsWith('.')\n          ? classname\n          : `.${classname}`\n      } { ${removeLabel(value)} }`;\n\n      return [\n        ...acc,\n        {\n          key: key,\n          ids: nameIds,\n          css: removeDoubleSpace(css),\n        },\n      ];\n      \n      // //--- single style tag like all css\n      // const ids = name.split(' ')[0];\n      // _key = key;\n      // _ids.add(ids);\n      // _css += ` ${css}`;\n\n    }, []);\n\n    return {\n      styles,\n      // //--- single style tag like all css\n      //   styles: [\n      //     {\n      //       key: _key,\n      //       ids: [..._ids],\n      //       css: _css.trim(),\n      //     },\n      //   ],\n    };\n  }\n  return {\n    styles: [],\n  };\n};\n"],"names":["labelPattern","ownkey","obj","Object","keys","ownValue","values","removeDoubleSpace","x","isArray","map","str","replace","removeLabel","Array","getNameByLabel","label","match","nameLabel","join","split","trim","createRenderStyles","inserted","cachekey","styles","reduce","acc","prev","name","key","includes","classname","value","nameIds","css","concat","startsWith","_toConsumableArray","ids"],"mappings":"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"}