51c562095c8482c9a14dbebf1ab135f0.json 16.5 KB
{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/**\n * Removed props:\n *  - childrenProps\n */\n\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n  if (typeof func !== 'function') return null;\n  return func();\n}\n\nfunction getPoint(point) {\n  if (_typeof(point) !== 'object' || !point) return null;\n  return point;\n}\n\nvar Align = function Align(_ref, ref) {\n  var children = _ref.children,\n      disabled = _ref.disabled,\n      target = _ref.target,\n      align = _ref.align,\n      onAlign = _ref.onAlign,\n      monitorWindowResize = _ref.monitorWindowResize,\n      _ref$monitorBufferTim = _ref.monitorBufferTime,\n      monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n  var cacheRef = React.useRef({});\n  var nodeRef = React.useRef();\n  var childNode = React.Children.only(children); // ===================== Align ======================\n  // We save the props here to avoid closure makes props ood\n\n  var forceAlignPropsRef = React.useRef({});\n  forceAlignPropsRef.current.disabled = disabled;\n  forceAlignPropsRef.current.target = target;\n  forceAlignPropsRef.current.onAlign = onAlign;\n\n  var _useBuffer = useBuffer(function () {\n    var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n        latestDisabled = _forceAlignPropsRef$c.disabled,\n        latestTarget = _forceAlignPropsRef$c.target,\n        latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n    if (!latestDisabled && latestTarget) {\n      var source = nodeRef.current;\n      var result;\n      var element = getElement(latestTarget);\n      var point = getPoint(latestTarget);\n      cacheRef.current.element = element;\n      cacheRef.current.point = point; // IE lose focus after element realign\n      // We should record activeElement and restore later\n\n      var _document = document,\n          activeElement = _document.activeElement; // We only align when element is visible\n\n      if (element && isVisible(element)) {\n        result = alignElement(source, element, align);\n      } else if (point) {\n        result = alignPoint(source, point, align);\n      }\n\n      restoreFocus(activeElement, source);\n\n      if (latestOnAlign && result) {\n        latestOnAlign(source, result);\n      }\n\n      return true;\n    }\n\n    return false;\n  }, monitorBufferTime),\n      _useBuffer2 = _slicedToArray(_useBuffer, 2),\n      _forceAlign = _useBuffer2[0],\n      cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n  // Listen for target updated\n\n\n  var resizeMonitor = React.useRef({\n    cancel: function cancel() {}\n  }); // Listen for source updated\n\n  var sourceResizeMonitor = React.useRef({\n    cancel: function cancel() {}\n  });\n  React.useEffect(function () {\n    var element = getElement(target);\n    var point = getPoint(target);\n\n    if (nodeRef.current !== sourceResizeMonitor.current.element) {\n      sourceResizeMonitor.current.cancel();\n      sourceResizeMonitor.current.element = nodeRef.current;\n      sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n    }\n\n    if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n      _forceAlign(); // Add resize observer\n\n\n      if (resizeMonitor.current.element !== element) {\n        resizeMonitor.current.cancel();\n        resizeMonitor.current.element = element;\n        resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n      }\n    }\n  }); // Listen for disabled change\n\n  React.useEffect(function () {\n    if (!disabled) {\n      _forceAlign();\n    } else {\n      cancelForceAlign();\n    }\n  }, [disabled]); // Listen for window resize\n\n  var winResizeRef = React.useRef(null);\n  React.useEffect(function () {\n    if (monitorWindowResize) {\n      if (!winResizeRef.current) {\n        winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n      }\n    } else if (winResizeRef.current) {\n      winResizeRef.current.remove();\n      winResizeRef.current = null;\n    }\n  }, [monitorWindowResize]); // Clear all if unmount\n\n  React.useEffect(function () {\n    return function () {\n      resizeMonitor.current.cancel();\n      sourceResizeMonitor.current.cancel();\n      if (winResizeRef.current) winResizeRef.current.remove();\n      cancelForceAlign();\n    };\n  }, []); // ====================== Ref =======================\n\n  React.useImperativeHandle(ref, function () {\n    return {\n      forceAlign: function forceAlign() {\n        return _forceAlign(true);\n      }\n    };\n  }); // ===================== Render =====================\n\n  if (React.isValidElement(childNode)) {\n    childNode = React.cloneElement(childNode, {\n      ref: composeRef(childNode.ref, nodeRef)\n    });\n  }\n\n  return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-align/es/Align.js"],"names":["_slicedToArray","_typeof","React","composeRef","isVisible","alignElement","alignPoint","addEventListener","isSamePoint","restoreFocus","monitorResize","useBuffer","getElement","func","getPoint","point","Align","_ref","ref","children","disabled","target","align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","useRef","nodeRef","childNode","Children","only","forceAlignPropsRef","current","_useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","source","result","element","_document","document","activeElement","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","cancel","sourceResizeMonitor","useEffect","winResizeRef","window","remove","useImperativeHandle","forceAlign","isValidElement","cloneElement","RefAlign","forwardRef","displayName"],"mappings":"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","sourcesContent":["import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n *  - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n  if (typeof func !== 'function') return null;\n  return func();\n}\n\nfunction getPoint(point) {\n  if (_typeof(point) !== 'object' || !point) return null;\n  return point;\n}\n\nvar Align = function Align(_ref, ref) {\n  var children = _ref.children,\n      disabled = _ref.disabled,\n      target = _ref.target,\n      align = _ref.align,\n      onAlign = _ref.onAlign,\n      monitorWindowResize = _ref.monitorWindowResize,\n      _ref$monitorBufferTim = _ref.monitorBufferTime,\n      monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n  var cacheRef = React.useRef({});\n  var nodeRef = React.useRef();\n  var childNode = React.Children.only(children); // ===================== Align ======================\n  // We save the props here to avoid closure makes props ood\n\n  var forceAlignPropsRef = React.useRef({});\n  forceAlignPropsRef.current.disabled = disabled;\n  forceAlignPropsRef.current.target = target;\n  forceAlignPropsRef.current.onAlign = onAlign;\n\n  var _useBuffer = useBuffer(function () {\n    var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n        latestDisabled = _forceAlignPropsRef$c.disabled,\n        latestTarget = _forceAlignPropsRef$c.target,\n        latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n    if (!latestDisabled && latestTarget) {\n      var source = nodeRef.current;\n      var result;\n      var element = getElement(latestTarget);\n      var point = getPoint(latestTarget);\n      cacheRef.current.element = element;\n      cacheRef.current.point = point; // IE lose focus after element realign\n      // We should record activeElement and restore later\n\n      var _document = document,\n          activeElement = _document.activeElement; // We only align when element is visible\n\n      if (element && isVisible(element)) {\n        result = alignElement(source, element, align);\n      } else if (point) {\n        result = alignPoint(source, point, align);\n      }\n\n      restoreFocus(activeElement, source);\n\n      if (latestOnAlign && result) {\n        latestOnAlign(source, result);\n      }\n\n      return true;\n    }\n\n    return false;\n  }, monitorBufferTime),\n      _useBuffer2 = _slicedToArray(_useBuffer, 2),\n      _forceAlign = _useBuffer2[0],\n      cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n  // Listen for target updated\n\n\n  var resizeMonitor = React.useRef({\n    cancel: function cancel() {}\n  }); // Listen for source updated\n\n  var sourceResizeMonitor = React.useRef({\n    cancel: function cancel() {}\n  });\n  React.useEffect(function () {\n    var element = getElement(target);\n    var point = getPoint(target);\n\n    if (nodeRef.current !== sourceResizeMonitor.current.element) {\n      sourceResizeMonitor.current.cancel();\n      sourceResizeMonitor.current.element = nodeRef.current;\n      sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n    }\n\n    if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n      _forceAlign(); // Add resize observer\n\n\n      if (resizeMonitor.current.element !== element) {\n        resizeMonitor.current.cancel();\n        resizeMonitor.current.element = element;\n        resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n      }\n    }\n  }); // Listen for disabled change\n\n  React.useEffect(function () {\n    if (!disabled) {\n      _forceAlign();\n    } else {\n      cancelForceAlign();\n    }\n  }, [disabled]); // Listen for window resize\n\n  var winResizeRef = React.useRef(null);\n  React.useEffect(function () {\n    if (monitorWindowResize) {\n      if (!winResizeRef.current) {\n        winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n      }\n    } else if (winResizeRef.current) {\n      winResizeRef.current.remove();\n      winResizeRef.current = null;\n    }\n  }, [monitorWindowResize]); // Clear all if unmount\n\n  React.useEffect(function () {\n    return function () {\n      resizeMonitor.current.cancel();\n      sourceResizeMonitor.current.cancel();\n      if (winResizeRef.current) winResizeRef.current.remove();\n      cancelForceAlign();\n    };\n  }, []); // ====================== Ref =======================\n\n  React.useImperativeHandle(ref, function () {\n    return {\n      forceAlign: function forceAlign() {\n        return _forceAlign(true);\n      }\n    };\n  }); // ===================== Render =====================\n\n  if (React.isValidElement(childNode)) {\n    childNode = React.cloneElement(childNode, {\n      ref: composeRef(childNode.ref, nodeRef)\n    });\n  }\n\n  return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;"]},"metadata":{},"sourceType":"module"}