{"ast":null,"code":"// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type             | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default          | 0            | 100           | 100\n * negative (spec*) | -100         | 0             | 0\n * reverse          | 100          | 0             | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\n\nexport function detectScrollType() {\n  if (cachedType) {\n    return cachedType;\n  }\n\n  const dummy = document.createElement('div');\n  const container = document.createElement('div');\n  container.style.width = '10px';\n  container.style.height = '1px';\n  dummy.appendChild(container);\n  dummy.dir = 'rtl';\n  dummy.style.fontSize = '14px';\n  dummy.style.width = '4px';\n  dummy.style.height = '1px';\n  dummy.style.position = 'absolute';\n  dummy.style.top = '-1000px';\n  dummy.style.overflow = 'scroll';\n  document.body.appendChild(dummy);\n  cachedType = 'reverse';\n\n  if (dummy.scrollLeft > 0) {\n    cachedType = 'default';\n  } else {\n    dummy.scrollLeft = 1;\n\n    if (dummy.scrollLeft === 0) {\n      cachedType = 'negative';\n    }\n  }\n\n  document.body.removeChild(dummy);\n  return cachedType;\n} // Based on https://stackoverflow.com/a/24394376\n\nexport function getNormalizedScrollLeft(element, direction) {\n  const scrollLeft = element.scrollLeft; // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n\n  if (direction !== 'rtl') {\n    return scrollLeft;\n  }\n\n  const type = detectScrollType();\n\n  switch (type) {\n    case 'negative':\n      return element.scrollWidth - element.clientWidth + scrollLeft;\n\n    case 'reverse':\n      return element.scrollWidth - element.clientWidth - scrollLeft;\n\n    default:\n      return scrollLeft;\n  }\n}","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/node_modules/@material-ui/data-grid/node_modules/@material-ui/utils/esm/scrollLeft.js"],"names":["cachedType","detectScrollType","dummy","document","createElement","container","style","width","height","appendChild","dir","fontSize","position","top","overflow","body","scrollLeft","removeChild","getNormalizedScrollLeft","element","direction","type","scrollWidth","clientWidth"],"mappings":"AAAA;AACA,IAAIA,UAAJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,gBAAT,GAA4B;AACjC,MAAID,UAAJ,EAAgB;AACd,WAAOA,UAAP;AACD;;AAED,QAAME,KAAK,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd;AACA,QAAMC,SAAS,GAAGF,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACAC,EAAAA,SAAS,CAACC,KAAV,CAAgBC,KAAhB,GAAwB,MAAxB;AACAF,EAAAA,SAAS,CAACC,KAAV,CAAgBE,MAAhB,GAAyB,KAAzB;AACAN,EAAAA,KAAK,CAACO,WAAN,CAAkBJ,SAAlB;AACAH,EAAAA,KAAK,CAACQ,GAAN,GAAY,KAAZ;AACAR,EAAAA,KAAK,CAACI,KAAN,CAAYK,QAAZ,GAAuB,MAAvB;AACAT,EAAAA,KAAK,CAACI,KAAN,CAAYC,KAAZ,GAAoB,KAApB;AACAL,EAAAA,KAAK,CAACI,KAAN,CAAYE,MAAZ,GAAqB,KAArB;AACAN,EAAAA,KAAK,CAACI,KAAN,CAAYM,QAAZ,GAAuB,UAAvB;AACAV,EAAAA,KAAK,CAACI,KAAN,CAAYO,GAAZ,GAAkB,SAAlB;AACAX,EAAAA,KAAK,CAACI,KAAN,CAAYQ,QAAZ,GAAuB,QAAvB;AACAX,EAAAA,QAAQ,CAACY,IAAT,CAAcN,WAAd,CAA0BP,KAA1B;AACAF,EAAAA,UAAU,GAAG,SAAb;;AAEA,MAAIE,KAAK,CAACc,UAAN,GAAmB,CAAvB,EAA0B;AACxBhB,IAAAA,UAAU,GAAG,SAAb;AACD,GAFD,MAEO;AACLE,IAAAA,KAAK,CAACc,UAAN,GAAmB,CAAnB;;AAEA,QAAId,KAAK,CAACc,UAAN,KAAqB,CAAzB,EAA4B;AAC1BhB,MAAAA,UAAU,GAAG,UAAb;AACD;AACF;;AAEDG,EAAAA,QAAQ,CAACY,IAAT,CAAcE,WAAd,CAA0Bf,KAA1B;AACA,SAAOF,UAAP;AACD,C,CAAC;;AAEF,OAAO,SAASkB,uBAAT,CAAiCC,OAAjC,EAA0CC,SAA1C,EAAqD;AAC1D,QAAMJ,UAAU,GAAGG,OAAO,CAACH,UAA3B,CAD0D,CACnB;;AAEvC,MAAII,SAAS,KAAK,KAAlB,EAAyB;AACvB,WAAOJ,UAAP;AACD;;AAED,QAAMK,IAAI,GAAGpB,gBAAgB,EAA7B;;AAEA,UAAQoB,IAAR;AACE,SAAK,UAAL;AACE,aAAOF,OAAO,CAACG,WAAR,GAAsBH,OAAO,CAACI,WAA9B,GAA4CP,UAAnD;;AAEF,SAAK,SAAL;AACE,aAAOG,OAAO,CAACG,WAAR,GAAsBH,OAAO,CAACI,WAA9B,GAA4CP,UAAnD;;AAEF;AACE,aAAOA,UAAP;AARJ;AAUD","sourcesContent":["// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type             | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default          | 0            | 100           | 100\n * negative (spec*) | -100         | 0             | 0\n * reverse          | 100          | 0             | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\n\nexport function detectScrollType() {\n  if (cachedType) {\n    return cachedType;\n  }\n\n  const dummy = document.createElement('div');\n  const container = document.createElement('div');\n  container.style.width = '10px';\n  container.style.height = '1px';\n  dummy.appendChild(container);\n  dummy.dir = 'rtl';\n  dummy.style.fontSize = '14px';\n  dummy.style.width = '4px';\n  dummy.style.height = '1px';\n  dummy.style.position = 'absolute';\n  dummy.style.top = '-1000px';\n  dummy.style.overflow = 'scroll';\n  document.body.appendChild(dummy);\n  cachedType = 'reverse';\n\n  if (dummy.scrollLeft > 0) {\n    cachedType = 'default';\n  } else {\n    dummy.scrollLeft = 1;\n\n    if (dummy.scrollLeft === 0) {\n      cachedType = 'negative';\n    }\n  }\n\n  document.body.removeChild(dummy);\n  return cachedType;\n} // Based on https://stackoverflow.com/a/24394376\n\nexport function getNormalizedScrollLeft(element, direction) {\n  const scrollLeft = element.scrollLeft; // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n\n  if (direction !== 'rtl') {\n    return scrollLeft;\n  }\n\n  const type = detectScrollType();\n\n  switch (type) {\n    case 'negative':\n      return element.scrollWidth - element.clientWidth + scrollLeft;\n\n    case 'reverse':\n      return element.scrollWidth - element.clientWidth - scrollLeft;\n\n    default:\n      return scrollLeft;\n  }\n}"]},"metadata":{},"sourceType":"module"}