{"version":3,"file":"elpro-css-styles.esm.mjs","sources":["../../src/utils/index.js","../../src/cache/index.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 { newRegexExp,  ownValue,  ownkey, regExp, removeDoubleSpace, removeLabel } from '../utils';\n\nconst isBrowser = typeof document !== 'undefined';\n\nexport const insertDocument = (cache) => {\n  const date = new Date();\n  cache.document = {\n    isBrowser,\n    environment: isBrowser ? 'client' : 'server',\n    created_at: date.toLocaleString('pt-BR', {\n      timeZone: 'America/Sao_Paulo',\n    }),\n    id: `${cache.key}-${date.getTime() + Math.random()}`,\n  };\n};\n\n//---\nconst stylesToCssString = (styles) => {\n  return styles.reduce((acc, prev) => {\n    const key = ownkey(prev);\n    const classname = key.startsWith('.') ? key : `.${key}`;\n    const value = ownValue(prev);\n    const css = ` ${classname} { ${removeLabel(value)} }`;\n    acc += css;\n    return acc.trim();\n  }, '');\n};\n\nexport const registerStyles = (cache, serialized) => {\n  if (!serialized.styles) {\n    return cache;\n  }\n\n  //--- 'serialized.name' contains classnameHash\n  cache.registered = {\n    ...cache.registered,\n    [serialized.name]: removeDoubleSpace(stylesToCssString(serialized.styles)),\n  };\n};\n\n// ......................................\n////  insert Styles\n// ......................................\n\nexport const insertStyles = (cache, serialized) => {\n  const name = serialized.name;\n  const propKey = name.startsWith('.') ? name.slice(1) : name;\n  const classnameHash = propKey.replace(`${cache.key}-`, '');\n  serialized.styles.forEach((element) => {\n    const key = ownkey(element);\n    const value = ownValue(element);\n    cache.insert(cache, {\n      name: classnameHash,\n      styles: { [key]: value },\n    });\n  });\n\n  registerStyles(cache, {\n    name: classnameHash,\n    styles: serialized.styles,\n  });\n\n  insertDocument(cache);\n  return cache;\n};\n\n// ......................................\n////  insert Styles Server\n// ......................................\n\nexport const insertStylesServer = (cache, serialized) => {\n  let insert = [];\n  registerStyles(cache, serialized);\n  serialized.styles.forEach((element) => {\n    const key = Object.keys(element)[0];\n    insert.push({\n      name: key.startsWith('.') ? key.slice(1) : key,\n      styles: element,\n    });\n  });\n\n  insertDocument(cache);\n  const _cache = cache.insert(cache, {\n    name: serialized.name,\n    styles: insert,\n  });\n  return _cache;\n};\n\n/*---e.g. [\"elpro\", \"_E_\", \".elpro-165cwbw\", \"elpro-165cwbw\" ]*/\nconst getClassnameHash = (attr) => {\n  const arr = attr.split(' ');\n  const key = arr[0];\n  const str = arr[2] || arr[1];\n  const hash = str\n    .replace(`${key}-`, '')\n    .match(/[0-9a-z]+/)[0]\n    .trim();\n\n  return hash;\n};\n\n// ......................................\n////  Global cache\n// ......................................\n\n//--- Global cache\nlet insertedStyled = isBrowser ? {} : [];\nlet insertedCss = isBrowser ? {} : [];\n\n// ......................................\n////  processCreateCacheStyle\n// ......................................\n\nconst processCreateCacheStyle = (key, inserted, src) => {\n  let registered = {};\n  let insert;\n  let compact = false;\n  const nodesToHydrate = [];\n\n  if (isBrowser) {\n    const ssrStyles = document.querySelectorAll(\n      `style[data-e-style^=\"${key} \"]`\n      );\n\n    let classnameHash = undefined;\n\n    Array.prototype.forEach.call(ssrStyles, (node, i) => {\n      const dataAttribute = node.getAttribute('data-e-style');\n\n      const cssText = node.innerHTML;\n      classnameHash = getClassnameHash(dataAttribute);\n \n      //--- for 'Process Instance' to identify whether it exists in cache or not\n      registered[classnameHash] = registered[classnameHash]\n        ? (registered[classnameHash] += ` ${cssText}`)\n        : ` ${cssText}`;\n      registered[classnameHash] = registered[classnameHash].trim();\n      inserted = { ...inserted, [classnameHash]: true };\n\n      compact = true;\n      nodesToHydrate.push(node);\n    });\n    // client\n    insert = (cache, serialized) => {\n      if (!cache.inserted[serialized.name]) {\n        compact = true;\n        inserted = { ...cache.inserted, [serialized.name]: true };\n        cache.inserted = inserted;\n        //--- saving to global cache\n        if (key === 'css') {\n          insertedCss = cache.inserted;\n        } else {\n          insertedStyled = cache.inserted;\n        }\n        return cache;\n      }\n    };\n  } else {\n    // server\n    insert = (cache, serialized) => {\n      if (!cache.compact) {\n        //--- prevents duplicate insertion\n        const hasCach = cache.inserted.findIndex(\n          (elel) => elel.name === serialized.name\n        );\n        if (hasCach >= 0) {\n          return cache;\n        }\n\n        inserted = serialized.styles.flat();\n        cache.inserted = [...cache.inserted, ...inserted];\n        //--- saving to global cache\n        if (key === 'css') {\n          insertedCss = cache.inserted;\n        } else {\n          insertedStyled = cache.inserted;\n        }\n\n        return cache;\n      }\n    };\n  }\n\n  const cache = {\n    src,\n    document: {},\n    key: key,\n    compact,\n    sheet: { tags: nodesToHydrate },\n    registered: registered,\n    inserted: inserted,\n    insert,\n  };\n  insertDocument(cache);\n\n  return cache;\n};\n\n// ......................................\n////  createCacheStyle\n// ......................................\n\nconst createCacheStyle = (options, src) => {\n  const key = options && options.key ? options.key : 'css';\n  return src === '_CSS'\n    ? processCreateCacheStyle(key, insertedCss, src)\n    : processCreateCacheStyle(key, insertedStyled, src);\n};\n\nexport default createCacheStyle;\n"],"names":["labelPattern","ownkey","obj","Object","keys","ownValue","values","removeDoubleSpace","x","isArray","map","str","replace","removeLabel","Array","isBrowser","document","insertDocument","cache","date","Date","environment","created_at","toLocaleString","timeZone","id","concat","key","getTime","Math","random","stylesToCssString","styles","reduce","acc","prev","classname","startsWith","value","css","trim","registerStyles","serialized","registered","_objectSpread","_defineProperty","name","insertStyles","propKey","slice","classnameHash","forEach","element","insert","insertStylesServer","push","_cache","getClassnameHash","attr","arr","split","hash","match","insertedStyled","insertedCss","processCreateCacheStyle","inserted","src","compact","nodesToHydrate","ssrStyles","querySelectorAll","undefined","prototype","call","node","i","dataAttribute","getAttribute","cssText","innerHTML","hasCach","findIndex","elel","flat","_toConsumableArray","sheet","tags","createCacheStyle","options"],"mappings":"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"}