{"version":3,"names":["React","router","jsx","LoadProgressBar","startDelay","finishDelay","initialPercent","updateInterval","sporadicness","style","onLayout","props","loaded","setLoaded","useState","width","setWidth","elementRef","useRef","useEffect","loadInterval","dispose","onLoadState","state","clearTimeout","setTimeout","intervalCount","setInterval","previous","increment","Math","random","min","clearInterval","element","current","updateLayout","rect","getBoundingClientRect","nativeEvent","layout","x","y","height","observer","ResizeObserver","observe","disconnect","flattenedStyle","useMemo","styleValue","styleValues","Array","isArray","flat","Number","POSITIVE_INFINITY","reduce","result","value","Object","assign","ref","display","position","top","left","right","backgroundColor","transform","zIndex","MAX_SAFE_INTEGER"],"sources":["LoadProgressBar.mjs"],"sourcesContent":["import * as React from \"react\";\nimport { router } from \"../router/imperative-api\";\nimport { jsx } from \"react/jsx-runtime\";\nconst LoadProgressBar = ({\n  startDelay = 500,\n  finishDelay = 50,\n  initialPercent = 20,\n  updateInterval = 300,\n  sporadicness = 3,\n  style,\n  onLayout,\n  ...props\n}) => {\n  const [loaded, setLoaded] = React.useState(0);\n  const [width, setWidth] = React.useState(0);\n  const elementRef = React.useRef(null);\n  React.useEffect(() => {\n    let loadInterval;\n    const dispose = router.onLoadState((state) => {\n      clearTimeout(loadInterval);\n      switch (state) {\n        case \"loading\": {\n          loadInterval = setTimeout(() => {\n            setLoaded(initialPercent);\n            let intervalCount = 0;\n            loadInterval = setInterval(() => {\n              intervalCount++;\n              if (intervalCount % sporadicness === 0) {\n                return;\n              }\n              setLoaded((previous) => {\n                const increment = (100 - previous) * (previous > 80 ? 0.05 : 0.1) * Math.random();\n                return Math.min(previous + increment, 100);\n              });\n            }, updateInterval);\n          }, startDelay);\n          break;\n        }\n        case \"loaded\": {\n          setLoaded(100);\n          clearInterval(loadInterval);\n          setTimeout(() => {\n            setLoaded(0);\n          }, finishDelay);\n          break;\n        }\n      }\n    });\n    return () => {\n      dispose();\n      clearInterval(loadInterval);\n    };\n  }, [finishDelay, initialPercent, sporadicness, startDelay, updateInterval]);\n  React.useEffect(() => {\n    const element = elementRef.current;\n    if (!element) return;\n    const updateLayout = () => {\n      const rect = element.getBoundingClientRect();\n      setWidth(rect.width);\n      onLayout?.({\n        nativeEvent: {\n          layout: { x: rect.x, y: rect.y, width: rect.width, height: rect.height }\n        }\n      });\n    };\n    updateLayout();\n    const observer = new ResizeObserver(updateLayout);\n    observer.observe(element);\n    return () => observer.disconnect();\n  }, [onLayout]);\n  const flattenedStyle = React.useMemo(() => {\n    const styleValue = style;\n    const styleValues = Array.isArray(styleValue) ? styleValue.flat(Number.POSITIVE_INFINITY) : [styleValue];\n    return styleValues.reduce(\n      (result, value) => value && typeof value === \"object\" ? Object.assign(result, value) : result,\n      {}\n    );\n  }, [style]);\n  return /* @__PURE__ */ jsx(\n    \"div\",\n    {\n      ...props,\n      ref: elementRef,\n      style: {\n        display: loaded === 0 ? \"none\" : \"flex\",\n        height: 1,\n        position: \"fixed\",\n        top: 0,\n        left: 0,\n        right: 0,\n        backgroundColor: \"rgba(60, 100, 200, 0.65)\",\n        width: \"100%\",\n        transform: `translateX(${-(1 - loaded * 0.01) * width}px)`,\n        zIndex: Number.MAX_SAFE_INTEGER,\n        ...flattenedStyle\n      }\n    }\n  );\n};\nexport {\n  LoadProgressBar\n};\n//# sourceMappingURL=LoadProgressBar.web.js.map\n"],"mappings":"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","ignoreList":[]}