UNPKG

@gsretail.com/gui-core

Version:

A skeleton to create your own React component library using Rollup, TypeScript, Sass and Storybook

2 lines (1 loc) 3.94 kB
import e from"../../../../@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js";import t from"../../../../@babel/runtime/helpers/esm/extends.js";import*as r from"react";import n from"@mui/material/Grow";import o from"@mui/material/Paper";import c from"@mui/material/Popper";import i from"@mui/material/Unstable_TrapFocus";import{useForkRef as s,useEventCallback as u,ownerDocument as a}from"@mui/material/utils";import{styled as m,useThemeProps as l}from"@mui/material/styles";import{unstable_composeClasses as p}from"@mui/material";import{getPickersPopperUtilityClass as d}from"./pickersPopperClasses.js";import{getActiveElement as f}from"../utils/utils.js";import{jsx as v,jsxs as E}from"react/jsx-runtime";import{PickersActionBar as h}from"../../PickersActionBar/PickersActionBar.js";const P=["onClick","onTouchStart"],k=m(c,{name:"MuiPickersPopper",slot:"Root",overridesResolver:(e,t)=>t.root})((({theme:e})=>({zIndex:e.zIndex.modal}))),L=m(o,{name:"MuiPickersPopper",slot:"Paper",overridesResolver:(e,t)=>t.paper})((({ownerState:e})=>t({transformOrigin:"top center",outline:0},"top"===e.placement&&{transformOrigin:"bottom center"})));function b(o){var c;const m=l({props:o,name:"MuiPickersPopper"}),{anchorEl:b,children:C,containerRef:T=null,onBlur:R,onClose:y,onClear:w,onAccept:g,onCancel:j,onSetToday:x,open:S,PopperProps:A,role:F,TransitionComponent:B=n,TrapFocusProps:M,PaperProps:H={},components:I,componentsProps:O}=m;r.useEffect((()=>{function e(e){!S||"Escape"!==e.key&&"Esc"!==e.key||y()}return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[y,S]);const z=r.useRef(null);r.useEffect((()=>{"tooltip"!==F&&(S?z.current=f(document):z.current&&z.current instanceof HTMLElement&&setTimeout((()=>{z.current instanceof HTMLElement&&z.current.focus()})))}),[S,F]);const[N,W,X]=function(e,t){const n=r.useRef(!1),o=r.useRef(!1),c=r.useRef(null),i=r.useRef(!1);r.useEffect((()=>{if(e)return document.addEventListener("mousedown",t,!0),document.addEventListener("touchstart",t,!0),()=>{document.removeEventListener("mousedown",t,!0),document.removeEventListener("touchstart",t,!0),i.current=!1};function t(){i.current=!0}}),[e]);const s=u((e=>{if(!i.current)return;const r=o.current;o.current=!1;const s=a(c.current);if(!c.current||"clientX"in e&&function(e,t){return t.documentElement.clientWidth<e.clientX||t.documentElement.clientHeight<e.clientY}(e,s))return;if(n.current)return void(n.current=!1);let u;u=e.composedPath?e.composedPath().indexOf(c.current)>-1:!s.documentElement.contains(e.target)||c.current.contains(e.target),u||r||t(e)})),m=()=>{o.current=!0};return r.useEffect((()=>{if(e){const e=a(c.current),t=()=>{n.current=!0};return e.addEventListener("touchstart",s),e.addEventListener("touchmove",t),()=>{e.removeEventListener("touchstart",s),e.removeEventListener("touchmove",t)}}}),[e,s]),r.useEffect((()=>{if(e){const e=a(c.current);return e.addEventListener("click",s),()=>{e.removeEventListener("click",s),o.current=!1}}}),[e,s]),[c,m,m]}(S,null!=R?R:y),D=r.useRef(null),G=s(D,T),K=s(G,N),U=m,Y=(e=>{const{classes:t}=e;return p({root:["root"],paper:["paper"]},d,t)})(U),{onClick:_,onTouchStart:q}=H,J=e(H,P),Q=null!=(c=null==I?void 0:I.ActionBar)?c:h,V=(null==I?void 0:I.PaperContent)||r.Fragment;return v(k,t({transition:!0,role:F,open:S,anchorEl:b,onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),y())},className:Y.root},A,{children:({TransitionProps:e,placement:r})=>v(i,t({open:S,disableAutoFocus:!0,disableRestoreFocus:!0,disableEnforceFocus:"tooltip"===F,isEnabled:()=>!0},M,{children:v(B,t({},e,{children:v(L,t({tabIndex:-1,elevation:8,ref:K,onClick:e=>{W(e),_&&_(e)},onTouchStart:e=>{X(e),q&&q(e)},ownerState:t({},U,{placement:r}),className:Y.paper},J,{children:E(V,t({},null==O?void 0:O.paperContent,{children:[C,v(Q,t({onAccept:g,onClear:w,onCancel:j,onSetToday:x,actions:[]},null==O?void 0:O.actionBar))]}))}))}))}))}))}export{b as PickersPopper};