one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 5.66 kB
Source Map (JSON)
{"version":3,"file":"NativeSafeAreaProvider.js","names":[],"sources":["esm/safe-area-context/NativeSafeAreaProvider.js"],"sourcesContent":["import * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst CSSTransitions = {\n WebkitTransition: \"webkitTransitionEnd\",\n Transition: \"transitionEnd\",\n MozTransition: \"transitionend\",\n MSTransition: \"msTransitionEnd\",\n OTransition: \"oTransitionEnd\"\n};\nfunction NativeSafeAreaProvider({\n children,\n style,\n onInsetsChange\n}) {\n React.useEffect(() => {\n if (typeof document === \"undefined\") {\n return;\n }\n const element = createContextElement();\n document.body.appendChild(element);\n const onEnd = () => {\n const { paddingTop, paddingBottom, paddingLeft, paddingRight } = window.getComputedStyle(element);\n const insets = {\n top: paddingTop ? Number.parseInt(paddingTop, 10) : 0,\n bottom: paddingBottom ? Number.parseInt(paddingBottom, 10) : 0,\n left: paddingLeft ? Number.parseInt(paddingLeft, 10) : 0,\n right: paddingRight ? Number.parseInt(paddingRight, 10) : 0\n };\n const frame = {\n x: 0,\n y: 0,\n width: document.documentElement.offsetWidth,\n height: document.documentElement.offsetHeight\n };\n onInsetsChange({ nativeEvent: { insets, frame } });\n };\n element.addEventListener(getSupportedTransitionEvent(), onEnd);\n onEnd();\n return () => {\n document.body.removeChild(element);\n element.removeEventListener(getSupportedTransitionEvent(), onEnd);\n };\n }, [onInsetsChange]);\n if (style) {\n const styleValue = style;\n const styleValues = Array.isArray(styleValue) ? styleValue.flat(Number.POSITIVE_INFINITY) : [styleValue];\n const flattenedStyle = styleValues.reduce(\n (result, value) => value && typeof value === \"object\" ? Object.assign(result, value) : result,\n {}\n );\n return /* @__PURE__ */ jsx(\"div\", { style: flattenedStyle, children });\n }\n return children;\n}\nlet _supportedTransitionEvent = null;\nfunction getSupportedTransitionEvent() {\n if (_supportedTransitionEvent != null) {\n return _supportedTransitionEvent;\n }\n const element = document.createElement(\"invalidtype\");\n _supportedTransitionEvent = CSSTransitions.Transition;\n for (const key in CSSTransitions) {\n if (element.style[key] !== void 0) {\n _supportedTransitionEvent = CSSTransitions[key];\n break;\n }\n }\n return _supportedTransitionEvent;\n}\nlet _supportedEnv = null;\nfunction getSupportedEnv() {\n if (_supportedEnv !== null) {\n return _supportedEnv;\n }\n const { CSS } = window;\n if (CSS && CSS.supports && CSS.supports(\"top: constant(safe-area-inset-top)\")) {\n _supportedEnv = \"constant\";\n } else {\n _supportedEnv = \"env\";\n }\n return _supportedEnv;\n}\nfunction getInset(side) {\n return `${getSupportedEnv()}(safe-area-inset-${side})`;\n}\nfunction createContextElement() {\n const element = document.createElement(\"div\");\n const { style } = element;\n style.position = \"fixed\";\n style.left = \"0\";\n style.top = \"0\";\n style.width = \"0\";\n style.height = \"0\";\n style.zIndex = \"-1\";\n style.overflow = \"hidden\";\n style.visibility = \"hidden\";\n style.transitionDuration = \"0.05s\";\n style.transitionProperty = \"padding\";\n style.transitionDelay = \"0s\";\n style.paddingTop = getInset(\"top\");\n style.paddingBottom = getInset(\"bottom\");\n style.paddingLeft = getInset(\"left\");\n style.paddingRight = getInset(\"right\");\n return element;\n}\nexport {\n NativeSafeAreaProvider\n};\n//# sourceMappingURL=NativeSafeAreaProvider.js.map\n"],"mappings":";;;;AAEA,MAAM,iBAAiB;CACrB,kBAAkB;CAClB,YAAY;CACZ,eAAe;CACf,cAAc;CACd,aAAa;AACf;AACA,SAAS,uBAAuB,EAC9B,UACA,OACA,kBACC;CACD,MAAM,gBAAgB;EACpB,IAAI,OAAO,aAAa,aAAa;GACnC;EACF;EACA,MAAM,UAAU,qBAAqB;EACrC,SAAS,KAAK,YAAY,OAAO;EACjC,MAAM,cAAc;GAClB,MAAM,EAAE,YAAY,eAAe,aAAa,iBAAiB,OAAO,iBAAiB,OAAO;GAChG,MAAM,SAAS;IACb,KAAK,aAAa,OAAO,SAAS,YAAY,EAAE,IAAI;IACpD,QAAQ,gBAAgB,OAAO,SAAS,eAAe,EAAE,IAAI;IAC7D,MAAM,cAAc,OAAO,SAAS,aAAa,EAAE,IAAI;IACvD,OAAO,eAAe,OAAO,SAAS,cAAc,EAAE,IAAI;GAC5D;GACA,MAAM,QAAQ;IACZ,GAAG;IACH,GAAG;IACH,OAAO,SAAS,gBAAgB;IAChC,QAAQ,SAAS,gBAAgB;GACnC;GACA,eAAe,EAAE,aAAa;IAAE;IAAQ;GAAM,EAAE,CAAC;EACnD;EACA,QAAQ,iBAAiB,4BAA4B,GAAG,KAAK;EAC7D,MAAM;EACN,aAAa;GACX,SAAS,KAAK,YAAY,OAAO;GACjC,QAAQ,oBAAoB,4BAA4B,GAAG,KAAK;EAClE;CACF,GAAG,CAAC,cAAc,CAAC;CACnB,IAAI,OAAO;EACT,MAAM,aAAa;EACnB,MAAM,cAAc,MAAM,QAAQ,UAAU,IAAI,WAAW,KAAK,OAAO,iBAAiB,IAAI,CAAC,UAAU;EACvG,MAAM,iBAAiB,YAAY,QAChC,QAAQ,UAAU,SAAS,OAAO,UAAU,WAAW,OAAO,OAAO,QAAQ,KAAK,IAAI,QACvF,CAAC,CACH;EACA,OAAuB,oBAAI,OAAO;GAAE,OAAO;GAAgB;EAAS,CAAC;CACvE;CACA,OAAO;AACT;AACA,IAAI,4BAA4B;AAChC,SAAS,8BAA8B;CACrC,IAAI,6BAA6B,MAAM;EACrC,OAAO;CACT;CACA,MAAM,UAAU,SAAS,cAAc,aAAa;CACpD,4BAA4B,eAAe;CAC3C,KAAK,MAAM,OAAO,gBAAgB;EAChC,IAAI,QAAQ,MAAM,SAAS,KAAK,GAAG;GACjC,4BAA4B,eAAe;GAC3C;EACF;CACF;CACA,OAAO;AACT;AACA,IAAI,gBAAgB;AACpB,SAAS,kBAAkB;CACzB,IAAI,kBAAkB,MAAM;EAC1B,OAAO;CACT;CACA,MAAM,EAAE,QAAQ;CAChB,IAAI,OAAO,IAAI,YAAY,IAAI,SAAS,oCAAoC,GAAG;EAC7E,gBAAgB;CAClB,OAAO;EACL,gBAAgB;CAClB;CACA,OAAO;AACT;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,GAAG,gBAAgB,EAAE,mBAAmB,KAAK;AACtD;AACA,SAAS,uBAAuB;CAC9B,MAAM,UAAU,SAAS,cAAc,KAAK;CAC5C,MAAM,EAAE,UAAU;CAClB,MAAM,WAAW;CACjB,MAAM,OAAO;CACb,MAAM,MAAM;CACZ,MAAM,QAAQ;CACd,MAAM,SAAS;CACf,MAAM,SAAS;CACf,MAAM,WAAW;CACjB,MAAM,aAAa;CACnB,MAAM,qBAAqB;CAC3B,MAAM,qBAAqB;CAC3B,MAAM,kBAAkB;CACxB,MAAM,aAAa,SAAS,KAAK;CACjC,MAAM,gBAAgB,SAAS,QAAQ;CACvC,MAAM,cAAc,SAAS,MAAM;CACnC,MAAM,eAAe,SAAS,OAAO;CACrC,OAAO;AACT"}