{"version":3,"file":"util.mjs","sources":["../../../../../../packages/vue-components/vc-align/src/util.ts"],"sourcesContent":["import type { TargetPoint } from './interface';\nimport { contains } from '@antdv/utils';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nexport function isSamePoint(prev: TargetPoint, next: TargetPoint) {\n  if (prev === next) return true;\n  if (!prev || !next) return false;\n\n  if ('pageX' in next && 'pageY' in next)\n    return prev.pageX === next.pageX && prev.pageY === next.pageY;\n\n  if ('clientX' in next && 'clientY' in next)\n    return prev.clientX === next.clientX && prev.clientY === next.clientY;\n\n  return false;\n}\n\nexport function restoreFocus(activeElement, container) {\n  // Focus back if is in the container\n  if (\n    activeElement !== document.activeElement\n    && contains(container, activeElement)\n    && typeof activeElement.focus === 'function'\n  ) {\n    activeElement.focus();\n  }\n}\n\nexport function monitorResize(element: HTMLElement, callback: Function) {\n  let prevWidth: number = null;\n  let prevHeight: number = null;\n\n  function onResize([{ target }]: ResizeObserverEntry[]) {\n    if (!document.documentElement.contains(target)) return;\n    const { width, height } = target.getBoundingClientRect();\n    const fixedWidth = Math.floor(width);\n    const fixedHeight = Math.floor(height);\n\n    if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n      // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n      Promise.resolve().then(() => {\n        callback({ width: fixedWidth, height: fixedHeight });\n      });\n    }\n\n    prevWidth = fixedWidth;\n    prevHeight = fixedHeight;\n  }\n\n  const resizeObserver = new ResizeObserver(onResize);\n  if (element)\n    resizeObserver.observe(element);\n\n  return () => {\n    resizeObserver.disconnect();\n  };\n}\n"],"names":[],"mappings":";;;;AAIgB,SAAA,WAAA,CAAY,MAAmB,IAAmB,EAAA;AAChE,EAAA,IAAI,IAAS,KAAA,IAAA;AAAM,IAAO,OAAA,IAAA,CAAA;AAC1B,EAAI,IAAA,CAAC,QAAQ,CAAC,IAAA;AAAM,IAAO,OAAA,KAAA,CAAA;AAE3B,EAAI,IAAA,OAAA,IAAW,QAAQ,OAAW,IAAA,IAAA;AAChC,IAAA,OAAO,KAAK,KAAU,KAAA,IAAA,CAAK,KAAS,IAAA,IAAA,CAAK,UAAU,IAAK,CAAA,KAAA,CAAA;AAE1D,EAAI,IAAA,SAAA,IAAa,QAAQ,SAAa,IAAA,IAAA;AACpC,IAAA,OAAO,KAAK,OAAY,KAAA,IAAA,CAAK,OAAW,IAAA,IAAA,CAAK,YAAY,IAAK,CAAA,OAAA,CAAA;AAEhE,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEgB,SAAA,YAAA,CAAa,eAAe,SAAW,EAAA;AAErD,EACE,IAAA,aAAA,KAAkB,QAAS,CAAA,aAAA,IACxB,QAAS,CAAA,SAAA,EAAW,aAAa,CACjC,IAAA,OAAO,aAAc,CAAA,KAAA,KAAU,UAClC,EAAA;AACA,IAAA,aAAA,CAAc,KAAM,EAAA,CAAA;AAAA,GACtB;AACF,CAAA;AAEgB,SAAA,aAAA,CAAc,SAAsB,QAAoB,EAAA;AACtE,EAAA,IAAI,SAAoB,GAAA,IAAA,CAAA;AACxB,EAAA,IAAI,UAAqB,GAAA,IAAA,CAAA;AAEzB,EAAA,SAAS,QAAS,CAAA,CAAC,EAAE,MAAA,EAAQ,CAA0B,EAAA;AACrD,IAAA,IAAI,CAAC,QAAA,CAAS,eAAgB,CAAA,QAAA,CAAS,MAAM,CAAA;AAAG,MAAA,OAAA;AAChD,IAAA,MAAM,EAAE,KAAA,EAAO,MAAO,EAAA,GAAI,OAAO,qBAAsB,EAAA,CAAA;AACvD,IAAM,MAAA,UAAA,GAAa,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AACnC,IAAM,MAAA,WAAA,GAAc,IAAK,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAErC,IAAI,IAAA,SAAA,KAAc,UAAc,IAAA,UAAA,KAAe,WAAa,EAAA;AAE1D,MAAQ,OAAA,CAAA,OAAA,EAAU,CAAA,IAAA,CAAK,MAAM;AAC3B,QAAA,QAAA,CAAS,EAAE,KAAA,EAAO,UAAY,EAAA,MAAA,EAAQ,aAAa,CAAA,CAAA;AAAA,OACpD,CAAA,CAAA;AAAA,KACH;AAEA,IAAY,SAAA,GAAA,UAAA,CAAA;AACZ,IAAa,UAAA,GAAA,WAAA,CAAA;AAAA,GACf;AAEA,EAAM,MAAA,cAAA,GAAiB,IAAI,cAAA,CAAe,QAAQ,CAAA,CAAA;AAClD,EAAI,IAAA,OAAA;AACF,IAAA,cAAA,CAAe,QAAQ,OAAO,CAAA,CAAA;AAEhC,EAAA,OAAO,MAAM;AACX,IAAA,cAAA,CAAe,UAAW,EAAA,CAAA;AAAA,GAC5B,CAAA;AACF;;;;"}