{"version":3,"file":"styleChecker.cjs","sources":["../../../../../packages/utils/dom/styleChecker.ts"],"sourcesContent":["import { canUseDom } from './canUseDom';\n\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\n\nfunction isStyleNameSupport(styleName: string | string[]): boolean {\n  if (canUseDom() && window.document.documentElement) {\n    const styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n    const { documentElement } = window.document;\n\n    return styleNameList.some(name => name in documentElement.style);\n  }\n  return false;\n}\n\nfunction isStyleValueSupport(styleName: string, value: any) {\n  if (!isStyleNameSupport(styleName))\n    return false;\n\n  const ele = document.createElement('div');\n  const origin = ele.style[styleName];\n  ele.style[styleName] = value;\n  return ele.style[styleName] !== origin;\n}\n\nexport function isStyleSupport(styleName: string | string[], styleValue?: any) {\n  if (!Array.isArray(styleName) && styleValue !== undefined)\n    return isStyleValueSupport(styleName, styleValue);\n\n  return isStyleNameSupport(styleName);\n}\n\nlet flexGapSupported: boolean | undefined;\nexport function detectFlexGapSupported() {\n  if (!canUseDocElement())\n    return false;\n\n  if (flexGapSupported !== undefined)\n    return flexGapSupported;\n\n  // create flex container with row-gap set\n  const flex = document.createElement('div');\n  flex.style.display = 'flex';\n  flex.style.flexDirection = 'column';\n  flex.style.rowGap = '1px';\n\n  // create two, elements inside it\n  flex.appendChild(document.createElement('div'));\n  flex.appendChild(document.createElement('div'));\n\n  // append to the DOM (needed to obtain scrollHeight)\n  document.body.appendChild(flex);\n  flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n  document.body.removeChild(flex);\n\n  return flexGapSupported;\n}\n"],"names":["canUseDom"],"mappings":";;;;AAEO,MAAM,gBAAmB,GAAA,MAAMA,mBAAU,EAAA,IAAK,OAAO,QAAS,CAAA,gBAAA;AAErE,SAAS,mBAAmB,SAAuC,EAAA;AACjE,EAAA,IAAIA,mBAAU,EAAA,IAAK,MAAO,CAAA,QAAA,CAAS,eAAiB,EAAA;AAClD,IAAA,MAAM,gBAAgB,KAAM,CAAA,OAAA,CAAQ,SAAS,CAAI,GAAA,SAAA,GAAY,CAAC,SAAS,CAAA,CAAA;AACvE,IAAM,MAAA,EAAE,eAAgB,EAAA,GAAI,MAAO,CAAA,QAAA,CAAA;AAEnC,IAAA,OAAO,aAAc,CAAA,IAAA,CAAK,CAAQ,IAAA,KAAA,IAAA,IAAQ,gBAAgB,KAAK,CAAA,CAAA;AAAA,GACjE;AACA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEA,SAAS,mBAAA,CAAoB,WAAmB,KAAY,EAAA;AAC1D,EAAI,IAAA,CAAC,mBAAmB,SAAS,CAAA;AAC/B,IAAO,OAAA,KAAA,CAAA;AAET,EAAM,MAAA,GAAA,GAAM,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AACxC,EAAM,MAAA,MAAA,GAAS,GAAI,CAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAClC,EAAI,GAAA,CAAA,KAAA,CAAM,SAAS,CAAI,GAAA,KAAA,CAAA;AACvB,EAAO,OAAA,GAAA,CAAI,KAAM,CAAA,SAAS,CAAM,KAAA,MAAA,CAAA;AAClC,CAAA;AAEgB,SAAA,cAAA,CAAe,WAA8B,UAAkB,EAAA;AAC7E,EAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,SAAS,KAAK,UAAe,KAAA,KAAA,CAAA;AAC9C,IAAO,OAAA,mBAAA,CAAoB,WAAW,UAAU,CAAA,CAAA;AAElD,EAAA,OAAO,mBAAmB,SAAS,CAAA,CAAA;AACrC,CAAA;AAEA,IAAI,gBAAA,CAAA;AACG,SAAS,sBAAyB,GAAA;AACvC,EAAA,IAAI,CAAC,gBAAiB,EAAA;AACpB,IAAO,OAAA,KAAA,CAAA;AAET,EAAA,IAAI,gBAAqB,KAAA,KAAA,CAAA;AACvB,IAAO,OAAA,gBAAA,CAAA;AAGT,EAAM,MAAA,IAAA,GAAO,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AACzC,EAAA,IAAA,CAAK,MAAM,OAAU,GAAA,MAAA,CAAA;AACrB,EAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,QAAA,CAAA;AAC3B,EAAA,IAAA,CAAK,MAAM,MAAS,GAAA,KAAA,CAAA;AAGpB,EAAA,IAAA,CAAK,WAAY,CAAA,QAAA,CAAS,aAAc,CAAA,KAAK,CAAC,CAAA,CAAA;AAC9C,EAAA,IAAA,CAAK,WAAY,CAAA,QAAA,CAAS,aAAc,CAAA,KAAK,CAAC,CAAA,CAAA;AAG9C,EAAS,QAAA,CAAA,IAAA,CAAK,YAAY,IAAI,CAAA,CAAA;AAC9B,EAAA,gBAAA,GAAmB,KAAK,YAAiB,KAAA,CAAA,CAAA;AACzC,EAAS,QAAA,CAAA,IAAA,CAAK,YAAY,IAAI,CAAA,CAAA;AAE9B,EAAO,OAAA,gBAAA,CAAA;AACT;;;;;;"}