{"version":3,"sources":["jsdelivr-header.js","/npm/starry-sky@1.1.2/docs/starry-sky.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNC,SAAU,EAAQ,GACQ,iBAAZ,SAA0C,oBAAX,OACtC,OAAO,QAAU,EAEK,mBAAX,QAAyB,OAAO,IACvC,QAAO,IAAM,IAEb,EAAO,EAAQ,MAAQ,CAGnC,CAVC,CAUC,KAAM,MACJ,WAAA,CAAY,GAAI,UACZ,EAAY,EAAI,IAAG,SACnB,EAAW,IAAG,cACd,EAAgB,IAAK,oBACrB,EAAsB,EAAC,2BACvB,EAA6B,EAAC,eAC9B,EAAiB,GAAG,eACpB,EAAiB,KACjB,CAAC,GACD,KAAK,GAAK,EACV,KAAK,UAAY,EACjB,KAAK,SAAW,EAChB,KAAK,cAAgB,EACrB,KAAK,2BAA6B,EAClC,KAAK,oBAAsB,EAC3B,KAAK,eAAiB,EACtB,KAAK,eAAiB,EAEtB,KAAK,UAAY,QAAQ,OAAO,KAAK,UAAU,OAAO,KAC1B,aAAxB,SAAS,WACT,KAAK,OAEL,OAAO,iBAAiB,oBAAoB,IAAM,KAAK,QAE/D,CAEA,IAAA,GACI,KAAK,eACL,KAAK,OAAS,MACV,MAAM,EAAQ,iBAAiB,KAAK,IACpC,OAAO,SAAS,EAAM,OAAS,SAAS,EAAM,OACjD,EAHa,GAKT,KAAK,QAKV,KAAK,YAAc,IAAI,MAAM,KAAK,YAC7B,KAAK,MACL,KAAI,IAAM,KAAK,sBAEpB,KAAK,GAAG,YAAY,KAAK,sBACzB,KAAK,YAAY,SAAQ,GAAK,KAAK,GAAG,YAAY,MAT9C,OAAO,iBAAiB,QAAQ,IAAM,KAAK,QAUnD,CAEA,cAAI,GAAe,OAAO,KAAK,IAAI,SAAS,KAAK,UAAY,KAAK,QAAS,KAAK,cAAgB,CAEhG,YAAA,GACI,KAAK,GAAG,MAAM,MAAQ,OACtB,KAAK,GAAG,MAAM,OAAS,OACvB,KAAK,GAAG,MAAM,SAAW,SACzB,KAAK,GAAG,MAAM,SAAW,UAC7B,CACA,kBAAA,GACI,MAAM,EAAe,SAAS,cAAc,SAiB5C,OAhBA,EAAa,UAAY,kBAClB,KAAK,yYASW,KAAK,qGAGL,KAAK,6CAGrB,CACX,CACA,iBAAA,GACI,MAAM,EAAc,SAAS,cAAc,OAErC,EAAoC,GAA1B,OAAO,iBACjB,EAAe,KAAK,SACpB,EAAO,KAAK,UAAY,KAAK,SAAW,GAAW,EACnD,EAAW,KAAK,SAAW,KAAK,2BAA6B,KAAK,oBAaxE,OAXA,EAAY,UAAU,IAAI,KAAK,WAC/B,EAAY,MAAQ,iCACE,EAAe,GAAM,aAAe,sCAC3C,oCACQ,EAAW,KAAK,SAAW,wCACxB,0BACE,IAAhB,KAAK,gCACU,IAAhB,KAAK,mCACF,4BACD,iBACX,MAAM,MAAM,KAAI,GAAK,EAAE,SAAQ,KAAK,IAC/B,CACX","file":"/npm/starry-sky@1.1.2/docs/starry-sky.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/starry-sky@1.1.2/docs/starry-sky.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","~function (global, content) {\r\n    if (typeof exports === 'object' && typeof module !== 'undefined') {\r\n        module.exports = content;\r\n    } else {\r\n        if (typeof define === 'function' && define.amd) {\r\n            define(() => content);\r\n        } else {\r\n            global[content.name] = content;\r\n        }\r\n    }\r\n}(this, class StarrySky {\r\n    constructor(el, {\r\n        starRatio = 1 / 800,\r\n        starSize = 1.2,\r\n        maxStarNumber = 10000,\r\n        flickerBaseDuration = 2,\r\n        flickerRandomDurationRange = 5,\r\n        minStarOpacity = 0.1,\r\n        maxStarOpacity = 0.75,\r\n    } = {}) {\r\n        this.el = el;\r\n        this.starRatio = starRatio;\r\n        this.starSize = starSize;\r\n        this.maxStarNumber = maxStarNumber;\r\n        this.flickerRandomDurationRange = flickerRandomDurationRange;\r\n        this.flickerBaseDuration = flickerBaseDuration;\r\n        this.minStarOpacity = minStarOpacity;\r\n        this.maxStarOpacity = maxStarOpacity;\r\n\r\n        this.starClass = `star-${String(Math.random()).substr(2)}`;\r\n        if (document.readyState === 'complete') {\r\n            this.draw();\r\n        } else {\r\n            window.addEventListener('DOMContentLoaded', () => this.draw());\r\n        }\r\n    }\r\n\r\n    draw() {\r\n        this.setRootStyle();\r\n        this.elArea = (() => {\r\n            const style = getComputedStyle(this.el);\r\n            return parseInt(style.width) * parseInt(style.height);\r\n        })();\r\n\r\n        if (!this.elArea) {\r\n            window.addEventListener('load', () => this.draw());\r\n            return;\r\n        }\r\n\r\n        this.starDomList = new Array(this.starNumber)\r\n            .fill(null)\r\n            .map(() => this.createStarElement())\r\n        ;\r\n        this.el.appendChild(this.createStyleElement());\r\n        this.starDomList.forEach(i => this.el.appendChild(i));\r\n    }\r\n\r\n    get starNumber() { return Math.min(parseInt(this.starRatio * this.elArea), this.maxStarNumber); }\r\n\r\n    setRootStyle(){\r\n        this.el.style.width = '100%';\r\n        this.el.style.height = '100%';\r\n        this.el.style.overflow = 'hidden';\r\n        this.el.style.position = 'relative';\r\n    }\r\n    createStyleElement(){\r\n        const styleElement = document.createElement('style');\r\n        styleElement.innerText = `\r\n            .${this.starClass} {\r\n                animation-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);\r\n                animation-direction: alternate;\r\n                animation-iteration-count: infinite;\r\n                background: #fff;\r\n                border-radius: 50%;\r\n                position: absolute;\r\n            }\r\n            @keyframes flickerOut {\r\n                to {opacity: ${this.minStarOpacity};}\r\n            }\r\n            @keyframes flickerIn {\r\n                to {opacity: ${this.maxStarOpacity};;}\r\n            }\r\n        `;\r\n        return styleElement\r\n    }\r\n    createStarElement(){\r\n        const starElement = document.createElement('div');\r\n\r\n        const minSize = window.devicePixelRatio * 0.1;\r\n        const startOpacity = Math.random();\r\n        const size = Math.random() * (this.starSize - minSize) + minSize;\r\n        const duration = Math.random() * this.flickerRandomDurationRange + this.flickerBaseDuration;\r\n\r\n        starElement.classList.add(this.starClass);\r\n        starElement.style = `\r\n            animation-name: ${startOpacity > 0.5 ? 'flickerOut' : 'flickerIn'};\r\n            opacity: ${startOpacity};\r\n            animation-delay: ${duration * Math.random() / 2}s;\r\n            animation-duration: ${duration}s;\r\n            left: ${Math.random() * 100}%;\r\n            top: ${Math.random() * 100}%;\r\n            height: ${size}px;\r\n            width: ${size}px;\r\n        `.split('\\n').map(s => s.trim()).join('');\r\n        return starElement\r\n    }\r\n});\r\n"]}