{"version":3,"file":"elpro-css-styles.cjs.mjs","sources":["../../src/utils/index.js","../../src/sanitize/sanitize.critical.chars.js","../../src/sanitize/sanitize.prettify.js","../../src/sanitize/sanitize.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","\nimport { removeDoubleSpace, removeLineBreak } from \"../utils\";\n\n// ......................................\n////  critical Decl Char\n// ......................................\n\n/*--- prevents replacing class names with colons\n      e.g. &.classname p:not(.classic)\n*/\nconst preventClassnameColons = (str) => {\n    const index = str.indexOf('{');\n    const noReplaceable = str.substring(0, index);\n    const replaceable = str.substring(index);\n    return `${noReplaceable}${replaceable\n      .replaceAll(':', ':  ')\n      .replaceAll(';', ';  ')}`;\n  };\n  \n  const replacementCriticalDecl = (match, p1, p2, p3) => {\n    if (match.includes('{')) {\n      return preventClassnameColons(match);\n    }\n    return match.replaceAll(':', ':  ').replaceAll(';', ';  ');\n  };\n  \n  // ......................................\n  ////  critical Class Char\n  // ......................................\n  \n  const criticalDeclChar = (str) => {\n    return str.replaceAll(/[a-z\\-\\s]+:.*?;/gm, replacementCriticalDecl);\n  };\n  \n  // ......................................\n  ////  critical Class Char\n  // ......................................\n  \n  const criticalClassChar = (str) => {\n    return str\n      .replaceAll(/\\{|\\}/g, ' $& ')\n      .replaceAll('&', '  &');\n  };\n  \n  // ......................................\n  ////  sanitize Critical Chars\n  // ......................................\n  \n  export const sanitizeCriticalChars = (str) => {\n    const string = removeDoubleSpace(\n      removeLineBreak(str).trim()\n    );\n  \n    return criticalDeclChar(criticalClassChar(string));\n  };","import { regExp, removeDoubleSpace, removeSpace } from '../utils';\n\n// ......................................\n////  prettify Attributes\n// ......................................\n\nconst attributePattern = /\\(.*?\\)|\\[.*?\\]/gm;\n\nconst replacementPrettifyAttrs = (match, p1, p2) => {\n  if (match.includes('[')) {\n    return removeSpace(match);\n    //--- match.includes('(')\n  } else {\n    //--- hyphenated compound words  e.g. min-width:\n    if (regExp.test(match, /[a-z]-[a-z]/gm)) {\n      return removeSpace(match);\n    }\n    // no replace\n    return match;\n  }\n};\n\n/*--- prevents substitution in case of declaration value\n   e.g. translate3d(0, 100, 0)  , calc(100% - 30px) \n   and in case of classes with attributes or atrules\n   e.g. @media (min-width:760px)\n   */\nconst prettifyAttributes = (str) => {\n  return str.replaceAll(attributePattern, replacementPrettifyAttrs);\n};\n\n\n// ......................................\n////  prettify Atrules\n// ......................................\n\nconst replacementPrettifyAtrules = (match, p1, p2) => {\nreturn removeSpace(match).replace('{', ' {')\n}\n\nconst prettifyAtrules = (str) => {\n  return str.replaceAll(/@.*?\\{/gm, replacementPrettifyAtrules);\n};\n\n// ......................................\n////  prettify\n// ......................................\n\nexport const prettify = (str) => {\n  const string = removeDoubleSpace(str)\n    .replaceAll(' ;', ';')\n    .replaceAll(' :', ':')\n    .replaceAll(' (', '(')\n    .replaceAll('( ', '(')\n    .replaceAll(' )', ')')\n    .replaceAll(' [', '[')\n    .replaceAll('[ ', '[')\n    .replaceAll(' ]', ']')\n    .replaceAll(/(;){1,}/gm, '; ')\n    .replaceAll(/;\\s{1,};/gm, '; ')\n    .replaceAll('};', '}');\n\n  const attrPrettified = prettifyAttributes(string);\n  const atrulesPrettified =prettifyAtrules(attrPrettified)   \n  return removeDoubleSpace(atrulesPrettified).trim();\n};\n","import { isArray, removeDoubleSpace } from '../utils';\nimport { sanitizeCriticalChars } from './sanitize.critical.chars';\nimport { prettify } from './sanitize.prettify';\n\n// ......................................\n////  sanitizeString\n// ......................................\n\nconst sanitizeString = (str) => {\n  const sanitized = sanitizeCriticalChars(str);\n \n  const string = prettify(sanitized);\n\n  return string\n};\n\n// ......................................\n////  sanitize\n// ......................................\n\nexport const sanitize = (x) => {\n  if (!x) {\n    return isArray(x) ? [] : '';\n  }\n\n  return isArray(x) ? x.map((_x) => sanitizeString(_x)) : sanitizeString(x);\n};\n"],"names":["lineBreakPattern","newRegexExp","pattern","flag","arguments","length","undefined","regex","RegExp","lastIndex","regExp","match","str","test","exec","removeDoubleSpace","x","isArray","map","replace","removeSpace","split","join","removeLineBreak","replaceAll","Array","preventClassnameColons","index","indexOf","noReplaceable","substring","replaceable","concat","replacementCriticalDecl","p1","p2","p3","includes","criticalDeclChar","criticalClassChar","sanitizeCriticalChars","string","trim","attributePattern","replacementPrettifyAttrs","prettifyAttributes","replacementPrettifyAtrules","prettifyAtrules","prettify","attrPrettified","atrulesPrettified","sanitizeString","sanitized","sanitize","_x"],"mappings":"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"}