{"version":3,"file":"static/js/814.17d08bbc.chunk.js","mappings":"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","sources":["components/Feature/Reusable/YouTubeGetID.js","components/Feature/Testimonial/Testimonial.js","../../../../node_modules/@sitecore-jss/sitecore-jss-react/dist/esm/components/Text.js","../../../../node_modules/dom-helpers/esm/scrollbarSize.js","../../../../node_modules/react-bootstrap/esm/ModalBody.js","../../../../node_modules/react-bootstrap/esm/ModalDialog.js","../../../../node_modules/react-bootstrap/esm/ModalFooter.js","../../../../node_modules/react-bootstrap/esm/ModalHeader.js","../../../../node_modules/react-bootstrap/esm/ModalTitle.js","../../../../node_modules/react-bootstrap/esm/Modal.js"],"sourcesContent":["const YouTubeGetID = (url) => {\r\n  if (typeof url !== 'string') {\r\n    console.error('Invalid URL type. Expected a string:', url);\r\n    return null;\r\n  }\r\n\r\n  // RegEx to match various YouTube video URL formats\r\n  const regex =\r\n    /(?:youtube\\.com\\/(?:embed\\/([\\w\\-]{11})|watch\\?v=([\\w\\-]{11})|.+\\/(?:v|e(?:mbed)?)\\/([\\w\\-]{11}))|youtu\\.be\\/([\\w\\-]{11}))/;\r\n  const match = url.match(regex);\r\n\r\n  if (match) {\r\n    // Extract the video ID from matched groups\r\n    return match[1] || match[2] || match[3] || match[4];\r\n  } else {\r\n    // Log the expected error message\r\n    console.error('No video ID found in the URL', url);\r\n    return null;\r\n  }\r\n};\r\n\r\nexport default YouTubeGetID;\r\n","import React, { useState } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { Image, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { Modal } from 'react-bootstrap';\r\nimport YouTubeGetID from '../Reusable/YouTubeGetID';\r\n\r\nconst Testimonial = (props) => {\r\n  const isEditing = props.sitecoreContext.pageEditing;\r\n\r\n  const settings = {\r\n    infinite: false,\r\n    slidesToShow: 2.5,\r\n    slidesToScroll: 1,\r\n    responsive: [\r\n      {\r\n        breakpoint: 1440,\r\n        settings: {\r\n          slidesToShow: 2.5,\r\n          slidesToScroll: 1,\r\n        },\r\n      },\r\n      {\r\n        breakpoint: 768,\r\n        settings: {\r\n          slidesToShow: 1.2,\r\n          slidesToScroll: 1,\r\n          arrows: false,\r\n        },\r\n      },\r\n    ],\r\n  };\r\n\r\n  const [show, setShow] = useState(false);\r\n  const [videoUrl, setVideoUrl] = useState('');\r\n\r\n  const modalClose = () => setShow(false);\r\n  const modalShow = (url) => {\r\n    const videoID = YouTubeGetID(url); // Extract the video ID from the URL\r\n    const embedUrl = `https://www.youtube.com/embed/${videoID}`; // Fallback URL\r\n    setVideoUrl(embedUrl); // Set the generated embed URL\r\n    setShow(true);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <div className={!isEditing ? 'testimonial-wrapper' : ''}>\r\n        <div className=\"bg-image\">\r\n          <Image field={props?.fields?.BackgroundImage} />\r\n        </div>\r\n        <div className=\"testimonial-content\">\r\n          <div className=\"top-content\">\r\n            <Text field={props?.fields?.Title} tag=\"h2\" />\r\n          </div>\r\n          <Slider {...settings} className=\"testimonial-slider\">\r\n            {props?.fields?.Card?.map((card, index) => (\r\n              <div key={index} className=\"spaceLR\">\r\n                <div className=\"review-box\">\r\n                  <div className=\"image-box\">\r\n                    <Image field={card?.fields?.cardImage} />\r\n                    <Text field={card?.fields?.overlayTitle} tag=\"h3\" />\r\n                  </div>\r\n                  <div className=\"review-content\">\r\n                    <span>\r\n                      <Image field={card?.fields?.CommaImage} />\r\n                    </span>\r\n                    <Text field={card?.fields?.overlayText} tag=\"p\" />\r\n                    <a className=\"play-btn\" onClick={() => modalShow(card?.fields?.VideoUrl.value)}>\r\n                      <i>\r\n                        <Image field={card?.fields?.VideoIcon} />\r\n                      </i>\r\n                      <span>Watch Video</span>\r\n                    </a>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            ))}\r\n          </Slider>\r\n        </div>\r\n      </div>\r\n      <div className=\"modal-wrapper\">\r\n        <Modal show={show} onHide={modalClose} className=\"testimonial-video-wrapper\">\r\n          <Modal.Header closeButton></Modal.Header>\r\n          <Modal.Body>\r\n            <div className=\"ratio ratio-16x9\">\r\n              <iframe\r\n                src={`${videoUrl}?autoplay=1&rel=0&showinfo=0`}\r\n                title=\"YouTube video\"\r\n                allow=\"autoplay; encrypted-media\"\r\n                allowFullScreen\r\n              ></iframe>\r\n            </div>\r\n          </Modal.Body>\r\n        </Modal>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nexport default withSitecoreContext()(Testimonial);\r\n","var __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nexport const Text = (_a) => {\n    var { field, tag, editable, encode } = _a, otherProps = __rest(_a, [\"field\", \"tag\", \"editable\", \"encode\"]);\n    if (!field || (!field.editable && (field.value === undefined || field.value === ''))) {\n        return null;\n    }\n    // can't use editable value if we want to output unencoded\n    if (!encode) {\n        // eslint-disable-next-line no-param-reassign\n        editable = false;\n    }\n    const isEditable = field.editable && editable;\n    let output = isEditable\n        ? field.editable || ''\n        : field.value === undefined\n            ? ''\n            : field.value;\n    // when string value isn't formatted, we should format line breaks\n    if (!field.editable && typeof output === 'string') {\n        const splitted = String(output).split('\\n');\n        if (splitted.length) {\n            const formatted = [];\n            splitted.forEach((str, i) => {\n                const isLast = i === splitted.length - 1;\n                formatted.push(str);\n                if (!isLast) {\n                    formatted.push(React.createElement(\"br\", { key: i }));\n                }\n            });\n            output = formatted;\n        }\n    }\n    const setDangerously = isEditable || !encode;\n    let children = null;\n    const htmlProps = Object.assign({}, otherProps);\n    if (setDangerously) {\n        htmlProps.dangerouslySetInnerHTML = {\n            __html: output,\n        };\n    }\n    else {\n        children = output;\n    }\n    if (tag || setDangerously) {\n        return React.createElement(tag || 'span', htmlProps, children);\n    }\n    else {\n        return React.createElement(React.Fragment, null, children);\n    }\n};\nText.propTypes = {\n    field: PropTypes.shape({\n        value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n        editable: PropTypes.string,\n    }),\n    tag: PropTypes.string,\n    editable: PropTypes.bool,\n    encode: PropTypes.bool,\n};\nText.defaultProps = {\n    editable: true,\n    encode: true,\n};\nText.displayName = 'Text';\n","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n  if (!size && size !== 0 || recalc) {\n    if (canUseDOM) {\n      var scrollDiv = document.createElement('div');\n      scrollDiv.style.position = 'absolute';\n      scrollDiv.style.top = '-9999px';\n      scrollDiv.style.width = '50px';\n      scrollDiv.style.height = '50px';\n      scrollDiv.style.overflow = 'scroll';\n      document.body.appendChild(scrollDiv);\n      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n    }\n  }\n\n  return size;\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalBody = /*#__PURE__*/React.forwardRef(({\n  className,\n  bsPrefix,\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-body');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    ...props\n  });\n});\nModalBody.displayName = 'ModalBody';\nexport default ModalBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  contentClassName,\n  centered,\n  size,\n  fullscreen,\n  children,\n  scrollable,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n  const dialogClass = `${bsPrefix}-dialog`;\n  const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n  return /*#__PURE__*/_jsx(\"div\", {\n    ...props,\n    ref: ref,\n    className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n    children: /*#__PURE__*/_jsx(\"div\", {\n      className: classNames(`${bsPrefix}-content`, contentClassName),\n      children: children\n    })\n  });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalFooter = /*#__PURE__*/React.forwardRef(({\n  className,\n  bsPrefix,\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-footer');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    ...props\n  });\n});\nModalFooter.displayName = 'ModalFooter';\nexport default ModalFooter;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  closeLabel = 'Close',\n  closeButton = false,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n  return /*#__PURE__*/_jsx(AbstractModalHeader, {\n    ref: ref,\n    ...props,\n    className: classNames(className, bsPrefix),\n    closeLabel: closeLabel,\n    closeButton: closeButton\n  });\n});\nModalHeader.displayName = 'ModalHeader';\nexport default ModalHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport divWithClassName from './divWithClassName';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nconst ModalTitle = /*#__PURE__*/React.forwardRef(({\n  className,\n  bsPrefix,\n  as: Component = DivStyledAsH4,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-title');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    ...props\n  });\n});\nModalTitle.displayName = 'ModalTitle';\nexport default ModalTitle;","\"use client\";\n\nimport classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable no-use-before-define, react/no-multi-comp */\nfunction DialogTransition(props) {\n  return /*#__PURE__*/_jsx(Fade, {\n    ...props,\n    timeout: null\n  });\n}\nfunction BackdropTransition(props) {\n  return /*#__PURE__*/_jsx(Fade, {\n    ...props,\n    timeout: null\n  });\n}\n\n/* eslint-enable no-use-before-define */\nconst Modal = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  style,\n  dialogClassName,\n  contentClassName,\n  children,\n  dialogAs: Dialog = ModalDialog,\n  'data-bs-theme': dataBsTheme,\n  'aria-labelledby': ariaLabelledby,\n  'aria-describedby': ariaDescribedby,\n  'aria-label': ariaLabel,\n  /* BaseModal props */\n\n  show = false,\n  animation = true,\n  backdrop = true,\n  keyboard = true,\n  onEscapeKeyDown,\n  onShow,\n  onHide,\n  container,\n  autoFocus = true,\n  enforceFocus = true,\n  restoreFocus = true,\n  restoreFocusOptions,\n  onEntered,\n  onExit,\n  onExiting,\n  onEnter,\n  onEntering,\n  onExited,\n  backdropClassName,\n  manager: propsManager,\n  ...props\n}, ref) => {\n  const [modalStyle, setStyle] = useState({});\n  const [animateStaticModal, setAnimateStaticModal] = useState(false);\n  const waitingForMouseUpRef = useRef(false);\n  const ignoreBackdropClickRef = useRef(false);\n  const removeStaticModalAnimationRef = useRef(null);\n  const [modal, setModalRef] = useCallbackRef();\n  const mergedRef = useMergedRefs(ref, setModalRef);\n  const handleHide = useEventCallback(onHide);\n  const isRTL = useIsRTL();\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n  const modalContext = useMemo(() => ({\n    onHide: handleHide\n  }), [handleHide]);\n  function getModalManager() {\n    if (propsManager) return propsManager;\n    return getSharedManager({\n      isRTL\n    });\n  }\n  function updateDialogStyle(node) {\n    if (!canUseDOM) return;\n    const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n    const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n    setStyle({\n      paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n      paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n    });\n  }\n  const handleWindowResize = useEventCallback(() => {\n    if (modal) {\n      updateDialogStyle(modal.dialog);\n    }\n  });\n  useWillUnmount(() => {\n    removeEventListener(window, 'resize', handleWindowResize);\n    removeStaticModalAnimationRef.current == null || removeStaticModalAnimationRef.current();\n  });\n\n  // We prevent the modal from closing during a drag by detecting where the\n  // click originates from. If it starts in the modal and then ends outside\n  // don't close.\n  const handleDialogMouseDown = () => {\n    waitingForMouseUpRef.current = true;\n  };\n  const handleMouseUp = e => {\n    if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n      ignoreBackdropClickRef.current = true;\n    }\n    waitingForMouseUpRef.current = false;\n  };\n  const handleStaticModalAnimation = () => {\n    setAnimateStaticModal(true);\n    removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n      setAnimateStaticModal(false);\n    });\n  };\n  const handleStaticBackdropClick = e => {\n    if (e.target !== e.currentTarget) {\n      return;\n    }\n    handleStaticModalAnimation();\n  };\n  const handleClick = e => {\n    if (backdrop === 'static') {\n      handleStaticBackdropClick(e);\n      return;\n    }\n    if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n      ignoreBackdropClickRef.current = false;\n      return;\n    }\n    onHide == null || onHide();\n  };\n  const handleEscapeKeyDown = e => {\n    if (keyboard) {\n      onEscapeKeyDown == null || onEscapeKeyDown(e);\n    } else {\n      // Call preventDefault to stop modal from closing in @restart/ui.\n      e.preventDefault();\n      if (backdrop === 'static') {\n        // Play static modal animation.\n        handleStaticModalAnimation();\n      }\n    }\n  };\n  const handleEnter = (node, isAppearing) => {\n    if (node) {\n      updateDialogStyle(node);\n    }\n    onEnter == null || onEnter(node, isAppearing);\n  };\n  const handleExit = node => {\n    removeStaticModalAnimationRef.current == null || removeStaticModalAnimationRef.current();\n    onExit == null || onExit(node);\n  };\n  const handleEntering = (node, isAppearing) => {\n    onEntering == null || onEntering(node, isAppearing);\n\n    // FIXME: This should work even when animation is disabled.\n    addEventListener(window, 'resize', handleWindowResize);\n  };\n  const handleExited = node => {\n    if (node) node.style.display = ''; // RHL removes it sometimes\n    onExited == null || onExited(node);\n\n    // FIXME: This should work even when animation is disabled.\n    removeEventListener(window, 'resize', handleWindowResize);\n  };\n  const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n    ...backdropProps,\n    className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n  }), [animation, backdropClassName, bsPrefix]);\n  const baseModalStyle = {\n    ...style,\n    ...modalStyle\n  };\n\n  // If `display` is not set to block, autoFocus inside the modal fails\n  // https://github.com/react-bootstrap/react-bootstrap/issues/5102\n  baseModalStyle.display = 'block';\n  const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n    role: \"dialog\",\n    ...dialogProps,\n    style: baseModalStyle,\n    className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`, !animation && 'show'),\n    onClick: backdrop ? handleClick : undefined,\n    onMouseUp: handleMouseUp,\n    \"data-bs-theme\": dataBsTheme,\n    \"aria-label\": ariaLabel,\n    \"aria-labelledby\": ariaLabelledby,\n    \"aria-describedby\": ariaDescribedby,\n    children: /*#__PURE__*/_jsx(Dialog, {\n      ...props,\n      onMouseDown: handleDialogMouseDown,\n      className: dialogClassName,\n      contentClassName: contentClassName,\n      children: children\n    })\n  });\n  return /*#__PURE__*/_jsx(ModalContext.Provider, {\n    value: modalContext,\n    children: /*#__PURE__*/_jsx(BaseModal, {\n      show: show,\n      ref: mergedRef,\n      backdrop: backdrop,\n      container: container,\n      keyboard: true // Always set true - see handleEscapeKeyDown\n      ,\n      autoFocus: autoFocus,\n      enforceFocus: enforceFocus,\n      restoreFocus: restoreFocus,\n      restoreFocusOptions: restoreFocusOptions,\n      onEscapeKeyDown: handleEscapeKeyDown,\n      onShow: onShow,\n      onHide: onHide,\n      onEnter: handleEnter,\n      onEntering: handleEntering,\n      onEntered: onEntered,\n      onExit: handleExit,\n      onExiting: onExiting,\n      onExited: handleExited,\n      manager: getModalManager(),\n      transition: animation ? DialogTransition : undefined,\n      backdropTransition: animation ? BackdropTransition : undefined,\n      renderBackdrop: renderBackdrop,\n      renderDialog: renderDialog\n    })\n  });\n});\nModal.displayName = 'Modal';\nexport default Object.assign(Modal, {\n  Body: ModalBody,\n  Header: ModalHeader,\n  Title: ModalTitle,\n  Footer: ModalFooter,\n  Dialog: ModalDialog,\n  TRANSITION_DURATION: 300,\n  BACKDROP_TRANSITION_DURATION: 150\n});"],"names":["url","console","error","match","withSitecoreContext","props","_props$fields","_props$fields2","_props$fields3","_props$fields3$Card","isEditing","sitecoreContext","pageEditing","show","setShow","useState","videoUrl","setVideoUrl","_jsxs","_Fragment","children","className","_jsx","Image","field","fields","BackgroundImage","Text","Title","tag","Slider","infinite","slidesToShow","slidesToScroll","responsive","breakpoint","settings","arrows","Card","map","card","index","_card$fields","_card$fields2","_card$fields3","_card$fields4","_card$fields6","cardImage","overlayTitle","CommaImage","overlayText","onClick","_card$fields5","videoID","YouTubeGetID","modalShow","VideoUrl","value","VideoIcon","Modal","onHide","modalClose","closeButton","src","title","allow","allowFullScreen","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","_a","editable","encode","otherProps","undefined","isEditable","output","splitted","String","split","formatted","forEach","str","isLast","push","React","key","setDangerously","htmlProps","assign","dangerouslySetInnerHTML","__html","propTypes","PropTypes","defaultProps","displayName","size","scrollbarSize","recalc","canUseDOM","scrollDiv","document","createElement","style","position","top","width","height","overflow","body","appendChild","offsetWidth","clientWidth","removeChild","ModalBody","_ref","ref","bsPrefix","as","Component","useBootstrapPrefix","classNames","ModalDialog","contentClassName","centered","fullscreen","scrollable","dialogClass","fullScreenClass","ModalFooter","ModalHeader","closeLabel","AbstractModalHeader","DivStyledAsH4","divWithClassName","ModalTitle","DialogTransition","Fade","timeout","BackdropTransition","dialogClassName","dialogAs","Dialog","dataBsTheme","ariaLabelledby","ariaDescribedby","ariaLabel","animation","backdrop","keyboard","onEscapeKeyDown","onShow","container","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","onEntered","onExit","onExiting","onEnter","onEntering","onExited","backdropClassName","manager","propsManager","modalStyle","setStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","useRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","modal","setModalRef","useCallbackRef","mergedRef","useMergedRefs","handleHide","useEventCallback","isRTL","useIsRTL","modalContext","useMemo","getModalManager","getSharedManager","updateDialogStyle","node","containerIsOverflowing","getScrollbarWidth","modalIsOverflowing","scrollHeight","ownerDocument","documentElement","clientHeight","paddingRight","getScrollbarSize","paddingLeft","handleWindowResize","dialog","useWillUnmount","removeEventListener","window","current","handleDialogMouseDown","handleMouseUp","target","handleStaticModalAnimation","transitionEnd","handleClick","currentTarget","handleStaticBackdropClick","renderBackdrop","useCallback","backdropProps","baseModalStyle","display","ModalContext","BaseModal","preventDefault","handleEnter","isAppearing","handleEntering","addEventListener","transition","backdropTransition","renderDialog","dialogProps","role","onMouseUp","onMouseDown","Body","Header","Footer","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION"],"sourceRoot":""}