oops-ui 1.0.3 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client.mjs +1 -2
- package/index.mjs +33 -2
- package/layoutUtil.mjs +1 -2
- package/package.json +10 -9
- package/server.mjs +1 -2
- package/type/components/Details/index.d.ts +20 -0
- package/type/index.client.d.ts +1 -0
- package/type/index.d.ts +3 -2
- package/client.mjs.map +0 -1
- package/layoutUtil.mjs.map +0 -1
- package/server.mjs.map +0 -1
package/client.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","mappings":"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","sources":["webpack://enr/external module \"a-type-of-js\"","webpack://enr/./customHooks/useRipples/tools.ts","webpack://enr/./customHooks/useRipples/rippersData/loadConfig.ts","webpack://enr/./customHooks/useRipples/rippersData/index.ts","webpack://enr/./customHooks/useRipples/buildBackground/default-background/circleDataList.ts","webpack://enr/./customHooks/useRipples/rippersData/defaultData.ts","webpack://enr/./customHooks/useRipples/buildBackground/default-background/createCanvasElementBySize.ts","webpack://enr/./customHooks/useRipples/buildBackground/default-background/createDefault.ts","webpack://enr/./customHooks/useRipples/buildBackground/default-background/index.ts","webpack://enr/./customHooks/useRipples/callback/get-new-image.ts","webpack://enr/./customHooks/useRipples/callback/extract-url.ts","webpack://enr/./customHooks/useRipples/buildBackground/create-background-color.ts","webpack://enr/./customHooks/useRipples/buildBackground/create-linear-gradient.ts","webpack://enr/./customHooks/useRipples/buildBackground/load-image.ts","webpack://enr/./customHooks/useRipples/buildBackground/utils/create-image-by-src.ts","webpack://enr/./customHooks/useRipples/buildBackground/utils/hide-css-background.ts","webpack://enr/./customHooks/useRipples/buildBackground/utils/get-background-style.ts","webpack://enr/./customHooks/useRipples/buildBackground/utils/restore-css-background.ts","webpack://enr/./customHooks/useRipples/rippersData/renderData.ts","webpack://enr/./customHooks/useRipples/render/computeTextureBoundaries.ts","webpack://enr/./customHooks/useRipples/render/drawQuad.ts","webpack://enr/./customHooks/useRipples/render/draw.ts","webpack://enr/./customHooks/useRipples/render/swapBufferIndices.ts","webpack://enr/./customHooks/useRipples/render/update.ts","webpack://enr/./customHooks/useRipples/render/index.ts","webpack://enr/./customHooks/useRipples/render/dropAtPointer.ts","webpack://enr/./customHooks/useRipples/init/initEvent.ts","webpack://enr/./customHooks/useRipples/rippersData/vertexSource.ts","webpack://enr/./customHooks/useRipples/init/initShaders.ts","webpack://enr/./customHooks/useRipples/init/initTexture.ts","webpack://enr/./customHooks/useRipples/buildBackground/utils/bind-image.ts","webpack://enr/./customHooks/useRipples/init/index.ts","webpack://enr/./customHooks/useRipples/callback/reload-background.ts","webpack://enr/./customHooks/useRipples/callback/destroy.ts","webpack://enr/./customHooks/useRipples/callback/drop.ts","webpack://enr/./customHooks/useRipples/rippersData/useOptions.ts","webpack://enr/./customHooks/useRipples/callback/can-side.ts","webpack://enr/./customHooks/useRipples/buildBackground/run-side.ts","webpack://enr/./customHooks/useRipples/callback/fade.ts","webpack://enr/./customHooks/useRipples/rippersData/fadeData.ts","webpack://enr/./customHooks/useRipples/ripplesClass.ts","webpack://enr/webpack/bootstrap","webpack://enr/webpack/runtime/define property getters","webpack://enr/webpack/runtime/hasOwnProperty shorthand","webpack://enr/./customHooks/useRipples/use-lazy-ripple.ts","webpack://enr/./customHooks/useRipples/index.ts","webpack://enr/./components/ripples/useOptionUpdate.ts","webpack://enr/./components/ripples/Content.tsx","webpack://enr/./components/ripples/RipplesEle.tsx","webpack://enr/./components/ripples/LazyRippleEle.tsx","webpack://enr/./customHooks/useTimeId.ts","webpack://enr/./customHooks/useAnimationFrame.ts","webpack://enr/./customHooks/useInputIsComposing.ts","webpack://enr/./components/image/useSrcChange.ts","webpack://enr/./components/image/index.tsx","webpack://enr/./storage/main-logic .ts","webpack://enr/./storage/storage-store.ts","webpack://enr/./utilities/cookie.ts","webpack://enr/./utilities/sys.ts","webpack://enr/./components/ThemeContext/index.tsx","webpack://enr/./components/switch/SwitchContent.ts","webpack://enr/./components/switch/SwitchLabel.ts","webpack://enr/./components/switch/SwitchContainer.ts","webpack://enr/./components/switch/index.tsx"],"sourcesContent":["var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nmodule.exports = x({ [\"isArray\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isArray), [\"isBoolean\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isBoolean), [\"isBusinessEmptyString\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isBusinessEmptyString), [\"isEmptyArray\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isEmptyArray), [\"isFalse\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isFalse), [\"isFunction\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isFunction), [\"isNull\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isNull), [\"isPlainObject\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isPlainObject), [\"isString\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isString), [\"isUndefined\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isUndefined), [\"isZero\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.isZero), [\"typeOf\"]: () => (__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__.typeOf) });","/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName website\n * @FileName tools.ts\n * @CreateDate 周六 12/07/2024\n * @Description 工具\n ****************************************************************************/\n\nimport { setStyle } from 'a-element-inline-style';\nimport { isNull } from 'a-type-of-js';\n\n/**\n *\n * 增加 WebGLProgram\n *\n *\n */\nexport function createProgram(vertexSource, fragmentSource, gl,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_uniformValues) {\n /**\n * 编译一个着色器\n */\n function compileSource(type, source) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, source); /// 设置 WebGLShader 着色器\n gl.compileShader(shader); /// 编译一个着色器,使其成为二进制数据,然后就可以被 WebGLProgram 对象所使用\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) throw new Error('compile error: ' + gl.getShaderInfoLog(shader));\n return shader;\n }\n var program = {\n id: gl.createProgram(),\n uniforms: {},\n locations: {}\n };\n /** 向 WebGLProgram 添加一个片段 */\n gl.attachShader(program.id, compileSource(gl.VERTEX_SHADER, vertexSource));\n /** 向 WebGLProgram 添加一个顶点着色器 */\n gl.attachShader(program.id, compileSource(gl.FRAGMENT_SHADER, fragmentSource));\n gl.linkProgram(program.id); /// 链接给定的 WebGLProgram ,从而完成程序的片元和顶点着色器准备\n if (!gl.getProgramParameter(program.id, gl.LINK_STATUS)) throw new Error('link error: ' + gl.getProgramInfoLog(program.id));\n gl.useProgram(program.id);\n gl.enableVertexAttribArray(0);\n var match;\n var shaderCode = vertexSource + fragmentSource;\n /** 待搜索的正则表达式 */\n var regex = /uniform (\\w+) (\\w+)/g;\n /**\n * 多次匹配\n *\n * 并在找不到时返回 null\n *\n * 每一次匹配都会更新 lastIndex 的数值\n *\n * 该方法是正则表达式的原始方法,强大而有效,但通常不能表达清楚调用的目的\n */\n while (!isNull(match = regex.exec(shaderCode))) {\n var name = match[2];\n program.locations[name] = gl.getUniformLocation(program.id, name);\n }\n return program;\n}\n\n/**\n *\n * 绑定纹理\n *\n */\nexport function bindTexture(texture) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var gl = this.gl;\n /** 激活纹理单元 */\n gl.activeTexture(gl.TEXTURE0 + (unit || 0));\n /** 将给定的 WebGLTexture 绑定到目标点 */\n gl.bindTexture(gl.TEXTURE_2D, texture);\n}\n\n/**\n * 给 canvas 设置样式\n */\nexport function setCanvasStyle(canvas) {\n var parentElement = canvas.parentElement;\n canvas.width = parentElement.clientWidth;\n canvas.height = parentElement.clientHeight;\n // 给 canvas 元素赋值行内样式\n setStyle(canvas, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n zIndex: -1,\n pointerEvents: 'none'\n });\n}\n\n/** 背景色值为空 */\nexport function isNoneBackGroundColor(color) {\n return color === 'rgba(0, 0, 0, 0)' || color === '#ffffffff' || color === 'transport';\n}\n\n/** 背景图为空 */\nexport function isNoneBackgroundImage(src) {\n return src === 'none' || src === '';\n}","/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName website\n * @FileName loadConfig.ts\n * @CreateDate 周五 12/13/2024\n * @Description 加载 config\n ****************************************************************************/\n\n/**\n * 执行的配置数据\n *\n */\nexport function loadConfig() {\n var _this = this;\n /** 构建失败 */\n var buildFail = function buildFail() {\n return _this.initState = false, null;\n };\n if (!this.gl) return buildFail();\n var gl = this.gl;\n\n /**\n * webGL 扩展\n */\n var extensions = Object.fromEntries(['OES_texture_float', 'OES_texture_half_float', 'OES_texture_float_linear', 'OES_texture_half_float_linear'].reduce(function (previousValue, currentName) {\n var currentExtension = gl.getExtension(currentName);\n if (currentExtension) previousValue.push([currentName, currentExtension]);\n return previousValue;\n }, []));\n\n /** 如果不支持浮点扩展,我们可以提前退出 */\n if (!extensions.OES_texture_float) return buildFail();\n\n /** 配置 */\n var configs = [];\n /**\n * 创建配置数据\n */\n function createConfig(type, glType, arrayType) {\n /** webGL 扩展名 */\n var name = 'OES_texture_' + type;\n /** webGL 扩展名 */\n var nameLinear = name + '_linear';\n /** 是否支持线性过滤 */\n var linearSupport = nameLinear in extensions;\n return {\n type: glType,\n linearSupport: linearSupport,\n arrayType: arrayType,\n extensions: linearSupport ? [name, nameLinear] : [name]\n };\n }\n configs.push(createConfig('float', gl.FLOAT, Float32Array));\n if (extensions.OES_texture_half_float) {\n /**\n * 数组类型应该是 Uint16Array,但至少在 iOS 上会中断。在这种情况下,我们\n * 只需使用 data=null 而不是 data=new Uint16Array(...) 初始化纹理即可。\n * 这使得初始化速度稍慢,但仍然可以忽略不计。\n */\n configs.push(\n // eslint-disable-next-line jsdoc/check-tag-names\n /** @ts-expect-error: 123 */\n createConfig('half_float', extensions.OES_texture_half_float.HALF_FLOAT_OES, null));\n }\n\n /** 纹理 */\n var texture = gl.createTexture();\n /** 数据流 */\n var framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n /** 检测每一个纹理的支持情况 */\n var config = null;\n for (var i = 0; i < configs.length; i++) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 32, 32, 0, gl.RGBA, configs[i].type, null);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n /** 检测当前的状态 */\n if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE) {\n config = configs[i];\n break;\n }\n }\n return config;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName website\n * @FileName dataStore.ts\n * @CreateDate 周六 12/07/2024\n * @Description 数据库\n ****************************************************************************/\n\nimport { isNull } from 'a-type-of-js';\nimport { loadConfig } from './loadConfig';\n\n// const id = 'earthnut_ripper_element_style';\n\n/**\n * Ripple 使用的数据,Ripple 继承该类\n */\nexport var RipplesData = /*#__PURE__*/_createClass(\n/**\n * 构造方法\n *\n * @param canvas 传入 canvas 元素来初始化必要的数据\n */\nfunction RipplesData(canvas) {\n _classCallCheck(this, RipplesData);\n /**\n * canvas 元素\n */\n _defineProperty(this, \"canvas\", void 0);\n /**\n * WebGL 绘图上下文\n */\n _defineProperty(this, \"gl\", void 0);\n /**\n * 配置\n */\n _defineProperty(this, \"config\", void 0);\n /**\n * 初始化情况\n */\n _defineProperty(this, \"initState\", true);\n this.canvas = canvas;\n var gl = canvas.getContext('webgl');\n /** 浏览器不支持 WebGL */\n if (isNull(gl)) {\n this.initState = false; /// 初始化失败\n this.config = null; /// 配置为 0\n return;\n }\n this.gl = gl;\n this.config = Reflect.apply(loadConfig, this, []);\n});\n\n// if (isNull(document.querySelector(`style#${id}`))) {\n// const style = this.styleElement;\n// style.id = id;\n// style.innerHTML = `\n// .earthnut-ripples {\n// position: relative;\n// z-index: 0;\n// top: 0;\n// left: 0;\n// width: 100%;\n// height: 100%;\n// transform: translate(0,0);\n// }\n// `;\n// const head = document.head;\n// if (head.prepend) head.prepend(style);\n// else head.insertBefore(style, head.firstChild);\n// }","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _cum;\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { getRandomInt } from 'a-js-tools';\n\nvar _build = function build() {\n var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var darkMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n /** 构建数据 */\n var data = {\n list: [],\n diameter: 48,\n radius: 0,\n cells: 0\n };\n // 防止为单\n if (data.diameter % 2 !== 0) data.diameter++;\n /** 宽 */\n var d = data.diameter,\n l = data.list;\n /** 半宽 */\n var r = d / 2;\n data.radius = r;\n data.cells = Math.pow(d, 2);\n for (var x = 0; x < d; x++) {\n l[x] = [];\n for (var y = 0; y < d; y++) l[x][y] = [0, 0, 0, 0];\n }\n // 绘制 1 / 8\n for (var _x = 0; _x <= r; _x++) {\n var _loop = function _loop() {\n /** 子项数据 */\n var column = l[_x][_y];\n /** 当前是否为圈内 */\n var isInCircle = Math.ceil(Math.sqrt(Math.pow(_x, 2) + Math.pow(_y, 2))) <= r;\n /** 色值范围开始 */\n var colorStart = darkMode ? 10 : 255;\n /** 色值范围结束 */\n var colorEnd = darkMode ? 25 : 180;\n /** 透明度范围的开始 */\n var opacityStart = isInCircle ? darkMode ? 160 : 120 : darkMode ? 160 : 180;\n /** 透明度范围开始 */\n var opacityEnd = isInCircle ? darkMode ? 230 : 160 : darkMode ? 250 : 240;\n var noise = function noise() {\n return getRandomInt(colorStart, colorEnd);\n };\n column[0] = noise(); // R\n column[1] = noise(); // G\n column[2] = noise(); // B\n /** 小于半宽则为圆内 */\n column[3] = getRandomInt(opacityStart, opacityEnd);\n };\n for (var _y = _x; _y <= r; _y++) {\n _loop();\n }\n }\n // 绘制 1 / 8\n for (var _x2 = 0; _x2 <= r; _x2++) for (var _y2 = 0; _y2 <= _x2; _y2++) l[_x2][_y2] = l[_y2][_x2];\n // 绘制为右上半圆\n for (var _x3 = r; _x3 < d; _x3++) for (var _y3 = 0; _y3 <= r; _y3++) l[_x3][_y3] = l[d - _x3][_y3];\n // 绘制左下为 3 / 4 圆\n for (var _x4 = 0; _x4 < r; _x4++) for (var _y4 = r; _y4 < d; _y4++) l[_x4][_y4] = l[_x4][d - _y4];\n // 绘制右下为全圆\n for (var _x5 = r; _x5 < d; _x5++) for (var _y5 = r; _y5 < d; _y5++) l[_x5][_y5] = l[_x5][d - _y5];\n var k = times % d; // 偏移值,让图有动感\n data.list = [].concat(_toConsumableArray(l.slice(k)), _toConsumableArray(l.slice(0, k)));\n return data;\n};\n\n/** 圆数据 */\nexport var circleDataList = new (_cum = /*#__PURE__*/new WeakMap(), /*#__PURE__*/function () {\n function _class() {\n _classCallCheck(this, _class);\n /** 计数器 */\n _classPrivateFieldInitSpec(this, _cum, 1);\n /** 数据依据 */\n _defineProperty(this, \"data\", _build());\n }\n return _createClass(_class, [{\n key: \"build\",\n value: /** 构建新的数据依据 */\n function build(darkMode) {\n var _this$cum, _this$cum2;\n if (_classPrivateFieldGet(_cum, this) > 100) _classPrivateFieldSet(_cum, this, 0);\n this.data = _build((_classPrivateFieldSet(_cum, this, (_this$cum = _classPrivateFieldGet(_cum, this), _this$cum2 = _this$cum++, _this$cum)), _this$cum2), darkMode);\n }\n }]);\n}())();","/**\n * 默认值\n */\nexport var defaultData = {\n imgUrl: null,\n resolution: 360,\n dropRadius: 12,\n perturbance: 0.01,\n interactive: true,\n crossOrigin: 'no-cors',\n playingState: true,\n accelerating: 1,\n raindropsTimeInterval: 3600,\n idleFluctuations: true,\n darkMode: undefined\n};\n\n/** 冷冻执行 */\nObject.freeze(defaultData);","import { isNull } from 'a-type-of-js';\nimport { createDefault } from './createDefault';\n\n\n/** 通过尺寸创建一个默认图 */\nexport function createCanvasElementBySize(width, height) {\n /** 构建空的 canvas */\n var canvas = document.createElement('canvas');\n var canvasR = document.createElement('canvas');\n /** 执行上下文 */\n var ctx = canvas.getContext('2d');\n var ctxR = canvasR.getContext('2d');\n if (isNull(ctx) || isNull(ctxR)) return canvas;\n canvas.width = canvasR.width = width || 1;\n canvas.height = canvasR.height = height || 1;\n ctx.clearRect(0, 0, width, height); // 清理画布\n ctxR.clearRect(0, 0, width, height);\n ctx.globalAlpha = 1;\n ctx.putImageData(createDefault(width, height), 0, 0);\n ctxR.fillStyle = '#ffffff';\n ctxR.fillRect(0, 0, width, height);\n // ctxR.globalCompositeOperation = 'copy';\n ctxR.drawImage(canvas, 0, 0, width || 1, height || 1);\n ctxR.globalCompositeOperation = 'source-over';\n return canvasR;\n}","\nimport { circleDataList } from './circleDataList';\n\n/** 构建默认的背景图 */\nexport function createDefault(width, height) {\n var time = Date.now();\n /** 图像数据 */\n var imageData = new ImageData(width || 1, height || 1);\n /** 数据流 */\n var data = imageData.data;\n // dog(circleDataList);\n var _circleDataList$data = circleDataList.data,\n diameter = _circleDataList$data.diameter,\n list = _circleDataList$data.list;\n /** 完全的占用的粒子数 */\n var row = width * diameter;\n for (var i = 0; i < data.length; i += 4) {\n /** 当前晶格技位置 */\n var subscript = i / 4 % row;\n var x = subscript % width % diameter;\n var y = Math.floor(subscript / width);\n var ele = list[x][y];\n data[i] = ele[0];\n data[i + 1] = ele[1];\n data[i + 2] = ele[2];\n data[i + 3] = ele[3];\n }\n return imageData;\n}","import { createCanvasElementBySize } from './createCanvasElementBySize';\nimport { circleDataList } from './circleDataList';\nimport { getRandomString } from 'a-js-tools';\n\n/**\n *\n * 设置透明的纹理\n *\n *\n * 透明的纹理*默认会自动切换*\n *\n * @param [executeImmediately=true] 立即执行\n *\n */\nexport function setTransparentTexture() {\n var _options$darkMode;\n var executeImmediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var fadeData = this.fadeData,\n options = this.options;\n var backgroundInfo = fadeData.backgroundInfo,\n toBeList = fadeData.toBeList;\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n var tag = getRandomString({\n length: 8,\n includeNumbers: true,\n includeUppercaseLetters: true\n });\n circleDataList.build((_options$darkMode = options.darkMode) !== null && _options$darkMode !== void 0 ? _options$darkMode : fadeData.isDark); // 构建新的执行图(很重要)\n\n // if (fadeData.isTransitioning)\n // /// 当前处于渐变过程,仅保留第一个\n // fadeData.toBeList = [fadeData.toBeList[0]];\n // else\n // /// 当前不在渐变状态,直接清空渲染层\n // fadeData.toBeList = [];\n // 当前渲染的纹理(下一个)\n toBeList.push({\n resource: createCanvasElementBySize(width, height),\n width: width,\n height: height,\n kind: 'default',\n tag: tag\n });\n if (executeImmediately) fadeData.run(); // 开启渐变\n}","import { isArray, isString } from 'a-type-of-js';\nimport { extractUrl } from './extract-url';\n/** 获取当前的背景图的地址 */\nexport function getNewImage(options, lastStyle) {\n var imgUrl = options.imgUrl;\n return isString(imgUrl) && imgUrl || extractUrl(lastStyle.backgroundImage);\n}\n\n/** 获取新的背景图 */\nexport function getNewColor(options, originStyle) {\n return isArray(options.imgUrl) && options.imgUrl.length === 1 && options.imgUrl[0] || originStyle.backgroundColor;\n}\n\n/** 获取新的渐变 */\nexport function getNewGradient() {}","import { isNull } from 'a-type-of-js';\n\n/** 检测数据是否为 url 外联图像地址 */\nexport function extractUrl(value) {\n var urlMatch = /url\\([\"']?([^\"']*)[\"']?\\)/.exec(value);\n return isNull(urlMatch) ? null : urlMatch[1];\n}","import { isArray, isEmptyArray, isNull } from 'a-type-of-js';\nimport { setTransparentTexture } from './default-background';\nimport { isNoneBackGroundColor } from '../tools';\nimport { getNewColor } from '../callback/get-new-image';\n\n\n/** 构建背景色 */\nexport function createBackgroundColor() {\n var renderData = this.renderData,\n fadeData = this.fadeData,\n options = this.options;\n if (isNull(renderData)) {\n // 没有值时设置为默认的类透明背景色\n\n return Reflect.apply(setTransparentTexture, this, []);\n }\n var originStyle = renderData.originStyle;\n // 验证不完全\n if (isNoneBackGroundColor(originStyle.backgroundColor) && (!isArray(options.imgUrl) || options.imgUrl.length !== 1)) {\n return Reflect.apply(setTransparentTexture, this, []);\n }\n /** 画布 */\n var canvas = document.createElement('canvas');\n /** 执行上下文 */\n var ctx = canvas.getContext('2d');\n if (isNull(ctx)) {\n return Reflect.apply(setTransparentTexture, this, []);\n }\n var _fadeData$backgroundI = fadeData.backgroundInfo,\n width = _fadeData$backgroundI.width,\n height = _fadeData$backgroundI.height;\n canvas.width = width;\n canvas.height = height;\n // 清理画布\n ctx.clearRect(0, 0, width, height);\n var drawColor = getNewColor(options, originStyle);\n ctx.beginPath();\n ctx.fillStyle = drawColor;\n ctx.fillRect(0, 0, width, height);\n ctx.fill();\n if (fadeData.isTransitioning && !isEmptyArray(fadeData.toBeList)) {\n /// 当前处于渐变过程,仅保留第一个\n fadeData.toBeList = [fadeData.toBeList[0]];\n } else {\n /// 当前不在渐变状态,直接清空渲染层\n fadeData.toBeList = [];\n }\n var nestDrawImage = {\n resource: canvas,\n kind: 'background-color',\n tag: drawColor,\n width: width,\n height: height\n };\n /// 在上面更改了 toBeList 的指向,这里必须使用全新的 fadeData.toBeList\n fadeData.toBeList.push(nestDrawImage);\n fadeData.run(); // 执行渐变\n}","import { isArray, isEmptyArray, isNull } from 'a-type-of-js';\nimport { createBackgroundColor } from './create-background-color';\n\n\n/** 构建渐变背景色图 */\nexport function createLinearGradient() {\n var fadeData = this.fadeData,\n renderData = this.renderData,\n options = this.options;\n if (isNull(renderData)) {\n return Reflect.apply(createBackgroundColor, this, []);\n }\n var originStyle = renderData.originStyle;\n if (!/linear-gradient\\(.*\\)/.test(originStyle.backgroundImage) && !isArray(options.imgUrl)) {\n return Reflect.apply(createBackgroundColor, this, []);\n }\n var colorList = isArray(options.imgUrl) && options.imgUrl.length > 1 && options.imgUrl || originStyle.backgroundImage.replace(/^.*linear-gradient\\((.*)\\).*$/, '$1').split('),').map(function (e) {\n e = e.trim();\n if (!e.endsWith(')')) e += ')';\n return e;\n }).filter(function (e) {\n return e.startsWith('rgb') || e.startsWith('#');\n });\n if (colorList.length < 2) {\n return Reflect.apply(createBackgroundColor, this, []);\n }\n /** 构建画布 */\n var canvas = document.createElement('canvas');\n /** 构建执行上下文 */\n var ctx = canvas.getContext('2d');\n if (isNull(ctx)) {\n return Reflect.apply(createBackgroundColor, this, []);\n }\n var backgroundInfo = fadeData.backgroundInfo;\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n canvas.width = width;\n canvas.height = height;\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, width, height);\n /** 渐变画笔 */\n var gradient = ctx.createLinearGradient(0, 0, 0, height);\n colorList.forEach(function (e, i) {\n return gradient.addColorStop(i / (colorList.length - 1), e);\n });\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, width, height);\n if (fadeData.isTransitioning && !isEmptyArray(fadeData.toBeList)) {\n /// 当前处于渐变过程,仅保留第一个\n fadeData.toBeList = [fadeData.toBeList[0]];\n } else {\n /// 当前不在渐变状态,直接清空渲染层\n fadeData.toBeList = [];\n }\n fadeData.toBeList.push({\n resource: canvas,\n kind: 'linear-gradient',\n tag: colorList.join('_'),\n width: width,\n height: height\n });\n fadeData.run();\n}","function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { isEmptyArray, isNull } from 'a-type-of-js';\nimport { createImageBySrc } from './utils/create-image-by-src';\nimport { createLinearGradient } from './create-linear-gradient';\nimport { getNewImage } from '../callback/get-new-image';\n\n/**\n *\n * 加载图像\n *\n * - 初始化的时候首先触发加载背景图像\n * - 通过 Ripple 的 set 方法设置属性 imgUrl 值时将触发\n * - 尺寸发生变化时亦将触发更改\n * - 父元素的样式属性发生变更时也会触发\n *\n * 在加载过程中如果渲染的图片为非法的(加载错误)那么将查找当前的背景色或是背景图作为依据,再就是都没有的情况下将会渲染一个类似于旧地板的色\n */\nexport function loadImage() {\n var _this = this;\n var renderData = this.renderData,\n options = this.options,\n fadeData = this.fadeData;\n if (isNull(renderData)) {\n Reflect.apply(createLinearGradient, this, []);\n return;\n }\n var lastUseStyle = renderData.lastUseStyle;\n var backgroundInfo = fadeData.backgroundInfo;\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n var newImageSource = getNewImage(options, lastUseStyle);\n // 倘若图片资源未更改,则无需从新下载(但需要有值前提下)\n // 图片资源未更改,但是尺寸发生变化时亦会触发该方法\n // if (newImageSource === renderData.imageSource && newImageSource) return;\n renderData.imageSource = newImageSource;\n // 虚假来源意味着没有背景。\n if (!newImageSource) {\n Reflect.apply(createLinearGradient, this, []);\n return;\n }\n // 从新图像加载纹理。\n var image = createImageBySrc(newImageSource, width, height);\n image.onload = function () {\n clearTimeout(fadeData.transparentId); // 清理默认的渲染透明\n\n // 当前是否在渲染\n if (fadeData.isTransitioning && !isEmptyArray(fadeData.toBeList)) {\n // 下载有效背景时清理默认的背景纹理和同地址的背景纹理\n fadeData.toBeList = [fadeData.toBeList[0]].concat(_toConsumableArray(fadeData.toBeList.slice(1).filter(function (e) {\n return e.kind === 'image' && (Math.abs(e.width - width) > 2 || Math.abs(e.height - height) > 2 || e.tag !== newImageSource);\n })));\n } else {\n /// 当前并不在渐变直接清空带渲染层\n fadeData.toBeList = [];\n }\n fadeData.toBeList.push({\n resource: image,\n width: width,\n height: height,\n kind: 'image',\n tag: newImageSource\n }); // 设置渐变过去\n\n fadeData.run(); // 开启渐变\n };\n\n // 下载图像出错\n image.onerror = function () {\n Reflect.apply(createLinearGradient, _this, []);\n };\n\n // 当图像源是数据 URI 时禁用 CORS。\n // TODO\n image.crossOrigin = options.crossOrigin;\n}","/** 根据给出的 src 获取一个 img 对象 */\nexport function createImageBySrc(src, width, height) {\n var img = new Image(width, height);\n img.width = width;\n img.height = height;\n img.src = src;\n return img;\n}","\nimport { isNull } from 'a-type-of-js';\n\n/**\n * ## 隐藏背景\n *\n * 触发于\n * - 手动恢复背景 webGl 的显示\n * - 初始化时隐藏\n * - 父级样式属性发生变更的时候\n */\nexport function hideCssBackground() {\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement;\n if (!parentElement) return;\n // renderData.dropProgram = [];\n // 检测是否更改了行内样式或是重写了该样式\n [\n // ['background', 'transparent'],\n ['background-image', 'none'], ['background-color', 'transparent']].forEach(function (e) {\n return parentElement.style.setProperty(e[0], e[1], 'important');\n });\n}","/** 获取元素的样式 */\nexport function getBackgroundStyles(element) {\n var computedStyle = window.getComputedStyle(element);\n var style = element.style;\n return {\n inlineBackground: style.background,\n inlineBackgroundColor: style.backgroundColor,\n inlineBackgroundImage: style.backgroundImage,\n backgroundColor: computedStyle.backgroundColor,\n backgroundImage: computedStyle.backgroundImage,\n backgroundSize: computedStyle.backgroundSize,\n backgroundPosition: computedStyle.backgroundPosition,\n backgroundRepeat: computedStyle.backgroundRepeat,\n backgroundClip: computedStyle.backgroundClip,\n backgroundOrigin: computedStyle.backgroundOrigin,\n backgroundAttachment: computedStyle.backgroundAttachment,\n position: computedStyle.position,\n width: parseInt(computedStyle.width),\n height: parseInt(computedStyle.height)\n };\n}","import { isNull } from 'a-type-of-js';\n/**\n * 恢复背景样式\n *\n * 在使用过程中,可能会切换 webGL 的显隐状态,而手动处理背景的更替\n */\nexport function restoreCssBackground() {\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement,\n originStyle = renderData.originStyle;\n // parentElement.style.setProperty('background', originStyle.inlineBackground);\n parentElement.style.setProperty('background-image', originStyle.inlineBackgroundImage);\n parentElement.style.setProperty('background-color', originStyle.inlineBackgroundColor);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getBackgroundStyles } from '../buildBackground/utils/get-background-style';\nimport { enArr } from 'a-js-tools';\nimport { isEmptyArray } from 'a-type-of-js';\nimport { hideCssBackground } from '../buildBackground/utils/hide-css-background';\nimport { isNoneBackGroundColor, isNoneBackgroundImage } from '../tools';\nimport { restoreCssBackground } from '../buildBackground/utils/restore-css-background';\n\n\n/**\n *\n * 原始数据类\n *\n * 记录了除参数数据外的运行数据\n *\n */\nexport var RipplesRenderData = /*#__PURE__*/function () {\n /**\n * 构建 Ripple 的渲染数据\n *\n * @param canvas 使用初始化的 Canvas 元素\n * @param callback 执行的回调,这里要对页面背景进行更新\n * @param _Ripples 上一个回调在使用中的 this\n */\n function RipplesRenderData(canvas, callback, _Ripples) {\n var _canvas$parentElement,\n _this = this;\n _classCallCheck(this, RipplesRenderData);\n /** 渲染数据流\n *\n * 该值在 init 中进行初始化\n */\n _defineProperty(this, \"quad\", null);\n /**\n * 上一次雨滴滴落的时间\n *\n * 该时间更新触发时机:\n * - 2.2s 内没有事件触发\n * - 鼠标交互更新\n */\n _defineProperty(this, \"lastRaindropsFallTime\", 0);\n // 该值不为 0 将会导致\n /** canvas 父级元素 该值在主 class 中初始化 */\n _defineProperty(this, \"parentElement\", void 0);\n /** 父级元素的属性变化监听者 */\n _defineProperty(this, \"mutationObserver\", void 0);\n /** 父级尺寸变化监听者 */\n _defineProperty(this, \"resizeObserver\", void 0);\n /** 渲染程序 */\n _defineProperty(this, \"renderProgram\", void 0);\n /** 图像资源的配置 */\n _defineProperty(this, \"imageSource\", '');\n /** 该值于初始化着色器时初始化 */\n _defineProperty(this, \"dropProgram\", void 0);\n /** 更新流 */\n _defineProperty(this, \"updateProgram\", void 0);\n /** 纹理 */\n _defineProperty(this, \"textures\", []);\n /** 背景纹理 */\n _defineProperty(this, \"backgroundTexture\", []);\n /** 纹理数据 */\n _defineProperty(this, \"textureDelta\", void 0);\n /** */\n _defineProperty(this, \"framebuffers\", []);\n /** */\n _defineProperty(this, \"bufferWriteIndex\", 0);\n /** */\n _defineProperty(this, \"bufferReadIndex\", 1);\n /** 最原始的样式 */\n _defineProperty(this, \"originStyle\", void 0);\n /** 上一次使用的样式 */\n _defineProperty(this, \"lastUseStyle\", void 0);\n /** 事件 */\n _defineProperty(this, \"events\", {});\n /** 渲染 id */\n _defineProperty(this, \"animationFrameId\", 0);\n this.parentElement = (_canvas$parentElement = canvas.parentElement) !== null && _canvas$parentElement !== void 0 ? _canvas$parentElement : document.body;\n //\n Reflect.apply(hideCssBackground, _Ripples, []);\n this.originStyle = this.lastUseStyle = getBackgroundStyles(this.parentElement);\n // 注册监听属性变化\n this.mutationObserver = new MutationObserver(function (mutations) {\n /** 变化值 */\n mutations.forEach(function (mutation) {\n if (mutation.target !== _this.parentElement) return;\n if (mutation.type === 'attributes' && _Ripples.options.visible) {\n /** 上一次使用的值 */\n var lastStyleValues = Object.values(_this.lastUseStyle);\n /** 现在的样式 */\n var currentStyle = getBackgroundStyles(_this.parentElement);\n /** 本次的样式值 */\n var currentStyleValues = Object.values(currentStyle);\n // 由于最后使用与原始备份的数据相同\n if (isEmptyArray(enArr.difference(lastStyleValues, currentStyleValues))) {\n return;\n }\n /** 当前没有背景图配置 */\n var isNoneImage = isNoneBackgroundImage(currentStyle.backgroundImage);\n\n /** 当前没有背景色配置 */\n var isNoneColor = isNoneBackGroundColor(currentStyle.backgroundColor);\n // 新值为空\n if (isNoneImage && isNoneColor) {\n return;\n }\n _this.lastUseStyle = currentStyle; // 赋新值\n Reflect.apply(callback, _Ripples, []); // 触发事件\n Reflect.apply(hideCssBackground, _Ripples, []); // 触发隐藏元素的\n }\n });\n });\n // 开始监听属性变化\n this.mutationObserver.observe(this.parentElement, {\n subtree: true,\n // 不监听子元素的变化\n attributes: true,\n // 监听属性的变化\n attributeFilter: ['class', 'style'] // 监听的属性\n });\n // 监听尺寸变化\n this.resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function (e) {\n // 非目标元素\n if (e.target !== _this.parentElement) return;\n // 避免页面微变和子元素加载后页面的回流导致的重绘引起的微调\n\n // 仅允许在 canvas 渲染时触发尺寸的监听计划\n Reflect.apply(callback, _Ripples, []);\n });\n });\n this.resizeObserver.observe(this.parentElement);\n }\n /** 销毁 */\n return _createClass(RipplesRenderData, [{\n key: \"destroy\",\n value: function destroy() {\n if (this.animationFrameId) window.cancelAnimationFrame(this.animationFrameId);\n /// 恢复父级节点的背景样式\n Reflect.apply(restoreCssBackground, {\n renderData: this\n }, []);\n // 移除事件监听\n if (this.parentElement && this.events) {\n try {\n var parentElement = this.parentElement,\n events = this.events;\n /// 移除监听的事件\n Object.keys(events).forEach(function (e) {\n return parentElement.removeEventListener && parentElement.removeEventListener(e, events[e]);\n });\n /// 移除属性\n if (parentElement.removeAttribute) parentElement.removeAttribute('data-ripples');\n {\n var _this$mutationObserve, _this$mutationObserve2, _this$resizeObserver;\n // 移除父级元素的监听,防止内存泄露\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 || _this$mutationObserve.takeRecords();\n (_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 || _this$mutationObserve2.disconnect();\n this.mutationObserver = null;\n (_this$resizeObserver = this.resizeObserver) === null || _this$resizeObserver === void 0 || _this$resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n } catch (error) {}\n }\n }\n }]);\n}();","import { isNull } from 'a-type-of-js';\n\n\n/** 计算纹理边界及背景图 */\nexport function computeTextureBoundaries() {\n var renderData = this.renderData,\n fadeData = this.fadeData;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement;\n /** 获取的父级元素的样式 */\n var style = window.getComputedStyle(parentElement);\n /** 父元素样式 background-size 的值 */\n var backgroundSize = style.backgroundSize,\n backgroundAttachment = style.backgroundAttachment,\n parentBackgroundPosition = style.backgroundPosition;\n /** 父元素样式 background-position 的值 */\n var backgroundPosition = translateBackgroundPosition(parentBackgroundPosition);\n // 这里的 'container' 是背景适应的元素(Chrome 窗口或某些元素,具体取决于附件)\n var container = {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n if (backgroundAttachment === 'fixed') {\n container.height = window.innerHeight;\n container.left = window.screenX;\n container.top = window.screenY;\n container.width = window.innerWidth;\n } else {\n // const parentRect = parentElement.getBoundingClientRect();\n container.left = 0;\n container.top = 0;\n container.width = parentElement.scrollWidth;\n container.height = parentElement.scrollHeight;\n }\n\n // TODO: background-clip\n /** 背景图的宽度 */\n var backgroundWidth;\n /** 背景图的高度 */\n var backgroundHeight;\n var _ref = fadeData.backgroundInfo || {\n width: 100,\n height: 100\n },\n width = _ref.width,\n height = _ref.height;\n /** 背景图的尺寸 */\n if (backgroundSize === 'cover') {\n var scale = Math.max(container.width / width, container.height / height);\n backgroundWidth = width * scale;\n backgroundHeight = height * scale;\n } else if (backgroundSize === 'contain') {\n var _scale = Math.min(container.width / width, container.height / height);\n backgroundWidth = width * _scale;\n backgroundHeight = height * _scale;\n } else {\n var _backgroundSize = backgroundSize.split(' ');\n backgroundWidth = _backgroundSize[0] || '';\n backgroundHeight = _backgroundSize[1] || backgroundWidth;\n if (isPercentage(backgroundWidth)) {\n backgroundWidth = container.width * parseFloat(backgroundWidth) / 100;\n } else if (backgroundWidth !== 'auto') {\n backgroundWidth = parseFloat(backgroundWidth);\n }\n if (isPercentage(backgroundHeight)) {\n backgroundHeight = container.height * parseFloat(backgroundHeight) / 100;\n } else if (backgroundHeight !== 'auto') {\n backgroundHeight = parseFloat(backgroundHeight);\n }\n if (backgroundWidth === 'auto' && backgroundHeight === 'auto') {\n backgroundWidth = width;\n backgroundHeight = height;\n } else {\n if (backgroundWidth === 'auto') {\n backgroundWidth = width * (Number(backgroundHeight) / height);\n }\n if (backgroundHeight === 'auto') {\n backgroundHeight = height * (Number(backgroundWidth) / width);\n }\n }\n }\n\n // 计算 backgroundX 及 backgroundY 在的值\n /** 计算背景的渲染横轴位置 */\n var backgroundX = backgroundPosition && backgroundPosition[0] || '0%';\n /** 计算背景的渲染纵轴位置 */\n var backgroundY = backgroundPosition && backgroundPosition[1] || '0%';\n if (isPercentage(backgroundX)) {\n backgroundX = (container.left + (container.width - Number(backgroundWidth)) * parseFloat(backgroundX) / 100).toString();\n } else {\n backgroundX = (container.left + parseFloat(backgroundX)).toString();\n }\n if (isPercentage(backgroundY)) {\n backgroundY = (container.top + (container.height - Number(backgroundHeight)) * parseFloat(backgroundY) / 100).toString();\n } else {\n backgroundY = (container.top + parseFloat(backgroundY)).toString();\n }\n /** 计算在 WebGL 着色器中使用的纹理坐标 (UV 坐标)的起点(左上角位置) */\n renderData.renderProgram.uniforms.topLeft = new Float32Array([-Number(backgroundX) / backgroundWidth, -Number(backgroundY) / backgroundHeight]);\n // renderData.renderProgram.uniforms.topLeft = new Float32Array([\n // (parentElement.offsetLeft - Number(backgroundX)) / backgroundWidth,\n // (parentElement.offsetTop - Number(backgroundY)) / backgroundHeight,\n // ]);\n\n /** */\n renderData.renderProgram.uniforms.bottomRight = new Float32Array([renderData.renderProgram.uniforms.topLeft[0] + parentElement.clientWidth / backgroundWidth, renderData.renderProgram.uniforms.topLeft[1] + parentElement.clientHeight / backgroundHeight]);\n /** canvas 中较大的边 */\n var maxSide = Math.max(this.canvas.width, this.canvas.height);\n renderData.renderProgram.uniforms.containerRatio = new Float32Array([this.canvas.width / maxSide, this.canvas.height / maxSide]);\n}\n/**\n *\n * 转换背景的位置为特定的格式\n *\n */\nfunction translateBackgroundPosition(value) {\n if (/\\s+/.test(value)) {\n return value.replace(/center/, '50%').replace(/top|left/, '0%').replace(/bottom/, '100%').replace(/\\s+/, ' ').split(' ');\n } else if (isPercentage(value)) {\n return [value, '50%'];\n } else {\n return {\n center: ['50%', '50%'],\n top: ['50%', '0%'],\n bottom: ['50%', '100%'],\n left: ['0%', '50%'],\n right: ['100%', '50%']\n }[value];\n }\n}\n/**\n *\n * 给定的字符串是否为百分数\n *\n */\nfunction isPercentage(value) {\n return value.endsWith('%');\n}","import { isNull } from 'a-type-of-js';\n/**\n *\n * 绘制 GL 数据流\n *\n */\nexport function drawQuad() {\n var gl = this.gl;\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n gl.bindBuffer(gl.ARRAY_BUFFER, renderData.quad);\n gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);\n gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);\n}","import { isNull } from 'a-type-of-js';\nimport { bindTexture } from '../tools';\nimport { drawQuad } from './drawQuad';\n\n/**\n *\n * 绘制\n *\n */\nexport function draw() {\n var gl = this.gl;\n /** 渲染数据 */\n var renderData = this.renderData,\n options = this.options;\n if (isNull(renderData)) return;\n\n /** 扰动系数 */\n var textures = renderData.textures,\n backgroundTexture = renderData.backgroundTexture;\n var perturbance = options.perturbance;\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n gl.viewport(0, 0, this.canvas.width, this.canvas.height);\n gl.enable(gl.BLEND);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); // 全量清理\n gl.useProgram(renderData.renderProgram.id);\n Reflect.apply(bindTexture, this, [backgroundTexture, 0]);\n Reflect.apply(bindTexture, this, [textures[0], 1]);\n gl.uniform1f(renderData.renderProgram.locations.perturbance, perturbance);\n gl.uniform2fv(renderData.renderProgram.locations.topLeft, renderData.renderProgram.uniforms.topLeft);\n gl.uniform2fv(renderData.renderProgram.locations.bottomRight, renderData.renderProgram.uniforms.bottomRight);\n gl.uniform2fv(renderData.renderProgram.locations.containerRatio, renderData.renderProgram.uniforms.containerRatio);\n gl.uniform1i(renderData.renderProgram.locations.samplerBackground, 0);\n gl.uniform1i(renderData.renderProgram.locations.samplerRipples, 1);\n Reflect.apply(drawQuad, this, []);\n gl.disable(gl.BLEND);\n}","import { isNull } from 'a-type-of-js';\n/**\n * swap 缓冲区索引\n */\nexport function swapBufferIndices() {\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n var bufferWriteIndex = renderData.bufferWriteIndex,\n bufferReadIndex = renderData.bufferReadIndex;\n renderData.bufferWriteIndex = 1 - bufferWriteIndex;\n renderData.bufferReadIndex = 1 - bufferReadIndex;\n}","import { isNull } from 'a-type-of-js';\nimport { bindTexture } from '../tools';\nimport { drawQuad } from './drawQuad';\nimport { swapBufferIndices } from './swapBufferIndices';\n\n/**\n * 更新\n */\nexport function update() {\n var gl = this.gl;\n var renderData = this.renderData,\n options = this.options;\n if (isNull(renderData)) {\n return;\n }\n var updateProgram = renderData.updateProgram,\n textures = renderData.textures,\n framebuffers = renderData.framebuffers,\n bufferWriteIndex = renderData.bufferWriteIndex,\n bufferReadIndex = renderData.bufferReadIndex;\n var resolution = options.resolution;\n /** 视口设定。官网指出在 canvas 的尺寸变化时需要告知视口 */\n gl.viewport(0, 0, resolution, resolution);\n /** 将给定的 WebGLFramebuffer 绑定到目标\n * - gl.FRAMEBUFFER 收集永远渲染的颜色\n * - this.#Framebuffers\n */\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffers[bufferWriteIndex]);\n Reflect.apply(bindTexture, this, [textures[bufferReadIndex]]);\n /** 将定义好的 WebGLProgram 对象添加到当前的渲染状态中 */\n gl.useProgram(updateProgram.id);\n Reflect.apply(drawQuad, this, []);\n Reflect.apply(swapBufferIndices, this, []);\n}","import { isNull } from 'a-type-of-js';\nimport { computeTextureBoundaries } from './computeTextureBoundaries';\nimport { draw } from './draw';\nimport { update } from './update';\n\n/**\n * 开启绘制\n *\n */\nexport function render() {\n var _this = this;\n var renderData = this.renderData,\n options = this.options,\n fadeData = this.fadeData;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement;\n var isTransitioning = fadeData.isTransitioning;\n var running = options.running,\n idleFluctuations = options.idleFluctuations,\n lastRunningState = options.lastRunningState;\n {\n // 获取边界尺寸\n var styles = getComputedStyle(parentElement);\n fadeData.backgroundInfo = {\n width: parseInt(styles.width),\n height: parseInt(styles.height)\n };\n }\n /// 计算当前的纹理边界及背景图\n Reflect.apply(computeTextureBoundaries, this, []);\n // 当前状态为执行\n if (running) {\n // 上一次状态为不执行\n if (!lastRunningState) {\n options.lastRunningState = true; // 设置下次执行状态\n this.show(); // 展示背景\n }\n // 是否设置了闲时动画\n if (idleFluctuations) this.raindropsFall();\n /**\n * TODO 这里调用触发了错误\n *\n * 可能是值 isTransitioning 出现了故障\n *\n * Cannot read properties of undefined (reading 'resource')\n */\n // 当前绘制图像间转换\n if (isTransitioning) this.fade();\n /** 数据更新 */\n Reflect.apply(update, this, []);\n /** 渲染 */\n Reflect.apply(draw, this, []);\n }\n // 当前状态为未执行但是上一次是在执行(清理状态)\n else if (lastRunningState) {\n options.lastRunningState = false;\n this.hide();\n }\n // 渲染\n renderData.animationFrameId = requestAnimationFrame(function () {\n return Reflect.apply(render, _this, []);\n });\n}","import { isNull } from 'a-type-of-js';\n/**\n *\n * 触发的点\n *\n */\nexport function dropAtPointer(pointer, radius, strength) {\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement;\n var style = window.getComputedStyle(parentElement);\n var borderLeft = parseInt(style.borderLeftWidth) || 0,\n borderTop = parseInt(style.borderTopWidth) || 0;\n /**\n *\n * pointer.pageX 点击事件触发的位置相对于页面来说的,包含滚动的距离\n * this.#parentElement.offsetLeft 父元素左上角相对于定位元素的左边界偏移像素值\n * borderLeft 边框的宽度\n */\n var parentPosition = parentElement.getBoundingClientRect();\n var dropX = pointer.clientX - parentPosition.left - borderLeft;\n var dropY = pointer.clientY - parentPosition.top - borderTop;\n this.drop(dropX, dropY, radius, strength);\n}","import { isNull } from 'a-type-of-js';\nimport { dropAtPointer } from '../render/dropAtPointer';\n/**\n * 初始化事件\n */\nexport function setupPointerEvents() {\n var _this = this;\n var renderData = this.renderData,\n options = this.options;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement,\n events = renderData.events;\n /// visible、running 的值应当取当前值而不是提前取到固定值\n /** 当前是否允许鼠标操作 */\n var pointerEventsEnabled = function pointerEventsEnabled() {\n return options.visible && options.running && options.interactive;\n };\n /** 触发滴落效果 */\n var _dropAtPointer = function _dropAtPointer(pointer) {\n var big = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pointerEventsEnabled()) {\n renderData.lastRaindropsFallTime = Date.now(); /// 更新上一次触发时机,延迟主动触发的雨滴\n Reflect.apply(dropAtPointer, _this, [pointer, options.dropRadius * (big ? 1.5 : 1), big ? 0.03 : 0.01]);\n }\n };\n // 鼠标划过\n events.mousemove = function (e) {\n for (var i = options.accelerating; i--;) _dropAtPointer(e);\n };\n // 手持端手指划过\n events.touchmove = events.touchstart = function (e) {\n var touches = e.touches;\n for (var i = 0; i < touches.length; i++) _dropAtPointer(touches[i]);\n };\n // 鼠标点击\n events.mousedown = function (e) {\n return _dropAtPointer(e, true);\n };\n\n // 注册鼠标或触摸事件\n Object.keys(events).forEach(function (e) {\n return parentElement === null || parentElement === void 0 ? void 0 : parentElement.addEventListener(e, events[e], {\n passive: true\n });\n });\n}","/**\n *\n */\nexport var vertexShader = \"\\n attribute vec2 vertex;\\n varying vec2 coord;\\n void main() {\\n coord = vertex * 0.5 + 0.5;\\n gl_Position = vec4(vertex, 0.0, 1.0);\\n }\";\n\n/**\n *\n *\n *\n */\nexport var updateProgramFragmentSource = \"\\n precision highp float;\\n\\n uniform sampler2D texture;\\n uniform vec2 delta;\\n\\n varying vec2 coord;\\n\\n void main() {\\n vec4 info = texture2D(texture, coord);\\n \\n vec2 dx = vec2(delta.x, 0.0);\\n vec2 dy = vec2(0.0, delta.y);\\n \\n float average = (\\n texture2D(texture, coord - dx).r +\\n texture2D(texture, coord - dy).r +\\n texture2D(texture, coord + dx).r +\\n texture2D(texture, coord + dy).r\\n ) * 0.25;\\n \\n info.g += (average - info.r) * 2.0;\\n info.g *= 0.995;\\n info.r += info.g;\\n \\n gl_FragColor = info;\\n }\\n \";\n\n/**\n *\n *\n *\n */\nexport var renderVertexSource = \"\\n precision highp float;\\n\\n attribute vec2 vertex;\\n uniform vec2 topLeft;\\n uniform vec2 bottomRight;\\n uniform vec2 containerRatio;\\n varying vec2 ripplesCoord;\\n varying vec2 backgroundCoord;\\n void main() {\\n backgroundCoord = mix(topLeft, bottomRight, vertex * 0.5 + 0.5);\\n backgroundCoord.y = 1.0 - backgroundCoord.y;\\n ripplesCoord = vec2(vertex.x, -vertex.y) * containerRatio * 0.5 + 0.5;\\n gl_Position = vec4(vertex.x, -vertex.y, 0.0, 1.0);\\n }\\n \";\n/**\n *\n *\n *\n */\n\nexport var renderProgramFragmentSource = \"\\n precision highp float;\\n\\n uniform sampler2D samplerBackground;\\n uniform sampler2D samplerRipples;\\n uniform vec2 delta;\\n\\n uniform float perturbance;\\n varying vec2 ripplesCoord;\\n varying vec2 backgroundCoord;\\n\\n void main() {\\n float height = texture2D(samplerRipples, ripplesCoord).r;\\n float heightX = texture2D(samplerRipples, vec2(ripplesCoord.x + delta.x, ripplesCoord.y)).r;\\n float heightY = texture2D(samplerRipples, vec2(ripplesCoord.x, ripplesCoord.y + delta.y)).r;\\n vec3 dx = vec3(delta.x, heightX - height, 0.0);\\n vec3 dy = vec3(0.0, heightY - height, delta.y);\\n vec2 offset = -normalize(cross(dy, dx)).xz;\\n float specular = pow(max(0.0, dot(offset, normalize(vec2(-0.6, 1.0)))), 4.0);\\n gl_FragColor = texture2D(samplerBackground, backgroundCoord + offset * perturbance) + specular;\\n }\";\n/**\n *\n * fragmentSource\n *\n */\nexport var dropProgramFragmentSource = \"precision highp float;\\n\\n const float PI = 3.141592653589793;\\n uniform sampler2D texture;\\n uniform vec2 center;\\n uniform float radius;\\n uniform float strength;\\n\\n varying vec2 coord;\\n\\n void main() {\\n vec4 info = texture2D(texture, coord);\\n\\n float drop = max(0.0, 1.0 - length(center * 0.5 + 0.5 - coord) / radius);\\n drop = 0.5 - cos(drop * PI) * 0.5;\\n info.r += drop * strength;\\n gl_FragColor = info;\\n }\";","import { isNull } from 'a-type-of-js';\nimport { dropProgramFragmentSource, renderProgramFragmentSource, renderVertexSource, updateProgramFragmentSource, vertexShader } from '../rippersData/vertexSource';\nimport { createProgram } from '../tools';\n/**\n *\n * 初始化着色器\n *\n */\nexport function initShaders() {\n var gl = this.gl;\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n var textureDelta = renderData.textureDelta;\n renderData.dropProgram = createProgram(vertexShader, dropProgramFragmentSource, gl);\n var updateProgram = renderData.updateProgram = createProgram(vertexShader, updateProgramFragmentSource, this.gl);\n gl.uniform2fv(updateProgram.locations.delta, textureDelta);\n renderData.renderProgram = createProgram(renderVertexSource, renderProgramFragmentSource, gl);\n gl.uniform2fv(renderData.renderProgram.locations.delta, textureDelta);\n}","import { isNull } from 'a-type-of-js';\n/**\n *\n * 初始化纹理\n *\n */\nexport function initTexture() {\n var gl = this.gl;\n var renderData = this.renderData;\n if (isNull(renderData)) return;\n var _backgroundTexture = renderData.backgroundTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _backgroundTexture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n}","import { isNull, isZero } from 'a-type-of-js';\n\n\n/** 绑定图片 */\nexport function bindImage(textImageSource) {\n var gl = this.gl,\n renderData = this.renderData,\n fadeData = this.fadeData;\n if (isNull(renderData)) {\n return;\n }\n var backgroundTexture = renderData.backgroundTexture;\n var backgroundInfo = fadeData.backgroundInfo;\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n\n /** 只有维度为 2 的幂的纹理才能重复换行 */\n var isPowerOfTwo = function isPowerOfTwo(x) {\n return isZero(x & x - 1);\n };\n var wrapping = isPowerOfTwo(width) && isPowerOfTwo(height) ? gl.REPEAT : gl.CLAMP_TO_EDGE;\n // 将给定的 WebGLTexture 绑定到目标(绑定点)\n gl.bindTexture(gl.TEXTURE_2D, backgroundTexture);\n /**\n * gl.texParameteri(target: GLenum, pname: GLenum, param: GLenum);\n *\n * - target 指定目标的纹理类型\n * - gl.TEXTURE_D 二维纹理\n * - gl.TEXTURE_CUBE_MAP 立方体贴图\n * - pname 设置纹理参数类型\n * - gl.TEXTURE_WRAP_S: 水平方向(U轴)的纹理坐标超出 [0,1] 时的处理方式。\n * - gl.TEXTURE_WRAP_T: 垂直方向(V轴)的纹理坐标超出 [0,1] 时的处理方式。\n * - gl.TEXTURE_MIN_FILTER: 纹理缩小(远距离观察)时的采样滤波方式。\n * - gl.TEXTURE_MAG_FILTER: 纹理放大(近距离观察)时的采样滤波方式。\n * - param 参数的具体值,取决于 pname:\n * - 对于 WRAP_S/WRAP_T:\n * - gl.REPEAT:重复纹理(默认值)。\n * - gl.CLAMP_TO_EDGE:拉伸边缘像素。\n * - gl.MIRRORED_REPEAT:镜像重复纹理。\n * - 对于 MIN_FILTER/MAG_FILTER:\n * - gl.LINEAR:线性插值(平滑过渡)。\n * - gl.NEAREST:最近邻采样(保留像素感)。\n * - (MIN_FILTER 还支持多级渐远纹理相关选项如 gl.LINEAR_MIPMAP_LINEAR)\n *\n */\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, wrapping);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, wrapping);\n // dog('即将创建的图像', image);\n /// 指定二维纹理图像\n\n // parentElement.dataset['render_img'] = textImageSource.tag;\n // parentElement.dataset['render_width'] = textImageSource.width + 'px';\n // parentElement.dataset['render_height'] = textImageSource.height + 'px';\n\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textImageSource.resource);\n}","import { isNull } from 'a-type-of-js';\nimport { render } from '../render';\nimport { setupPointerEvents } from './initEvent';\nimport { initShaders } from './initShaders';\nimport { initTexture } from './initTexture';\nimport { loadImage } from '../buildBackground/load-image';\nimport { bindImage } from '../buildBackground/utils/bind-image';\n\n/**\n * 初始化 webGL\n */\nexport function initGL() {\n var _this = this;\n var renderData = this.renderData,\n options = this.options,\n fadeData = this.fadeData;\n if (isNull(renderData) || !this.config) return;\n var textures = renderData.textures,\n framebuffers = renderData.framebuffers;\n var resolution = options.resolution;\n var gl = this.gl;\n var _resolution = 1 / resolution;\n renderData.textureDelta = new Float32Array([_resolution, _resolution]); // 纹理增量\n /// 加载扩展\n this.config.extensions.forEach(function (currentName) {\n return gl.getExtension(currentName);\n });\n // 移除了在 window 监听页面尺寸变化,相反的,将监听注册在了父组件\n // window.removeEventListener('resize', this.updateSize);\n // this.updateSize = this.updateSize.bind(this); /// 大哥说这样可以让绘制框变成新的\n // window.addEventListener('resize', this.updateSize);\n\n // TODO\n var arrayType = this.config.arrayType;\n var textureData = arrayType ? new arrayType(resolution * resolution * 4) : null;\n var config = this.config;\n for (var i = 0; i < 2; i++) {\n /** 初始化 WebGLTexture 对象 */\n var texture = gl.createTexture();\n /** 初始化 WebGLFramebuffer 对象 */\n var framebuffer = gl.createFramebuffer();\n /** 将给定的 WebGLFramebuffer 绑定到目标 */\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n /** 将给定的 WebGLTexture 绑定给目标(绑定点) */\n gl.bindTexture(gl.TEXTURE_2D, texture);\n /** 动画纹理 */\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, config.linearSupport ? gl.LINEAR : gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, config.linearSupport ? gl.LINEAR : gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n /**\n *\n * (指定二维纹理图像)[https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/texImage2D]\n *\n */\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, resolution, resolution, 0, gl.RGBA, config.type, textureData);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n textures.push(texture);\n framebuffers.push(framebuffer);\n }\n\n // 初始化 gl 数据流\n renderData.quad = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, renderData.quad);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, +1, -1, +1, +1, -1, +1]), gl.STATIC_DRAW);\n Reflect.apply(initShaders, this, []);\n Reflect.apply(initTexture, this, []);\n // 设置背景\n Reflect.apply(loadImage, this, []);\n // 设置透明背景色\n gl.clearColor(0, 0, 0, 0);\n // 设置颜色的混合方式\n gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);\n\n // 插件初始化成功\n options.visible = true;\n options.running = true;\n Reflect.apply(setupPointerEvents, this, []); /// 初始化监听事件\n Reflect.apply(bindImage, this, [fadeData.lastDrawImage]); // 绑定初始化的默认纹理\n renderData.animationFrameId = requestAnimationFrame(function () {\n return Reflect.apply(render, _this, []);\n });\n}","import { isNull } from 'a-type-of-js';\nimport { loadImage } from '../buildBackground/load-image';\n\nimport { debounce } from 'a-js-tools';\nvar setCanvasSize = debounce(function (canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n}, 1000);\n\n/**\n * 重新加载背景图片\n *\n *\n * 为了避免在高频父元素尺寸变化时触发 canvas 的 width、height 属性变化。\n * 使用防抖进行处理设置 canvas 的 width、height 值\n *\n */\nexport function reloadBackground() {\n var renderData = this.renderData,\n fadeData = this.fadeData,\n canvas = this.canvas;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement;\n var backgroundInfo = fadeData.backgroundInfo;\n var width = parentElement.offsetWidth,\n height = parentElement.offsetHeight,\n oldWidth = canvas.width,\n oldHeight = canvas.height;\n if (width < 3 || height < 3) {\n return;\n }\n // canvas.width =\n backgroundInfo.width = width;\n // canvas.height =\n backgroundInfo.height = height;\n setCanvasSize(canvas, width, height);\n Reflect.apply(loadImage, this, []);\n}","import { isNull } from 'a-type-of-js';\n\n\n/** 注销 */\nexport function destroy() {\n var renderData = this.renderData,\n fadeData = this.fadeData;\n if (!isNull(renderData)) {\n renderData.destroy();\n /// 销毁执行上下文本身\n Object.keys(renderData).forEach(function (e) {\n return renderData[e] = null;\n });\n this.renderData = null;\n }\n {\n fadeData.destroy();\n Object.keys(fadeData).forEach(function (e) {\n return fadeData[e] = null;\n });\n this.fadeData = null;\n }\n {\n /// 销毁当前对 WebGLRenderingContext 的引用\n if (this.gl) this.gl = null;\n }\n}","import { isNull } from 'a-type-of-js';\nimport { bindTexture } from '../tools';\nimport { drawQuad } from '../render/drawQuad';\nimport { swapBufferIndices } from '../render/swapBufferIndices';\n\n/** 触发滴落效果 */\nexport function drop(x, y, radius, strength) {\n var renderData = this.renderData,\n options = this.options;\n var gl = this.gl;\n if (isNull(renderData)) return;\n var parentElement = renderData.parentElement,\n dropProgram = renderData.dropProgram,\n textures = renderData.textures,\n framebuffers = renderData.framebuffers,\n bufferWriteIndex = renderData.bufferWriteIndex,\n bufferReadIndex = renderData.bufferReadIndex;\n var resolution = options.resolution;\n /** 元素的宽 */\n var parentWidth = parentElement.offsetWidth;\n /** 元素的高 */\n var parentHeight = parentElement.offsetHeight;\n /** 元素较长的一边 */\n var longestSide = Math.max(parentWidth, parentHeight);\n radius = radius / longestSide;\n var dropPosition = new Float32Array([(2 * x - parentWidth) / longestSide, (parentHeight - 2 * y) / longestSide]);\n gl.viewport(0, 0, resolution, resolution);\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffers[bufferWriteIndex]);\n Reflect.apply(bindTexture, this, [textures[bufferReadIndex]]);\n gl.useProgram(dropProgram.id);\n gl.uniform2fv(dropProgram.locations.center, dropPosition);\n gl.uniform1f(dropProgram.locations.radius, radius);\n gl.uniform1f(dropProgram.locations.strength, strength);\n Reflect.apply(drawQuad, this, []);\n Reflect.apply(swapBufferIndices, this, []);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nimport { isBoolean, isUndefined } from 'a-type-of-js';\nimport { defaultData } from './defaultData';\n\n\n/** 用户使用参数 */\nvar _accelerating = /*#__PURE__*/new WeakMap();\nvar _interactive = /*#__PURE__*/new WeakMap();\nvar _resolution = /*#__PURE__*/new WeakMap();\nvar _perturbance = /*#__PURE__*/new WeakMap();\nvar _dropRadius = /*#__PURE__*/new WeakMap();\nvar _idleFluctuations = /*#__PURE__*/new WeakMap();\nvar _raindropsTimeInterval = /*#__PURE__*/new WeakMap();\nvar _darkMode = /*#__PURE__*/new WeakMap();\nexport var UseOptions = /*#__PURE__*/function () {\n /**\n * 构建使用参数的数据\n */\n function UseOptions(options) {\n var _options$playingState;\n _classCallCheck(this, UseOptions);\n /** 倍级触发光标事件(值) */\n _classPrivateFieldInitSpec(this, _accelerating, defaultData.accelerating);\n /** 是否与鼠标互动(值) */\n _classPrivateFieldInitSpec(this, _interactive, defaultData.interactive);\n /** 分辨率(值) */\n _classPrivateFieldInitSpec(this, _resolution, defaultData.resolution);\n /** 扰动系数 (值) */\n _classPrivateFieldInitSpec(this, _perturbance, defaultData.perturbance);\n /** 扩散半径(值) */\n _classPrivateFieldInitSpec(this, _dropRadius, defaultData.dropRadius);\n /** 传入的背景图片 */\n _defineProperty(this, \"imgUrl\", defaultData.imgUrl);\n /** 闲置波动 (值) */\n _classPrivateFieldInitSpec(this, _idleFluctuations, defaultData.idleFluctuations);\n /** 雨滴落下的时间间隔(值) */\n _classPrivateFieldInitSpec(this, _raindropsTimeInterval, defaultData.raindropsTimeInterval);\n /** crossOrigin (是否跨域) */\n _defineProperty(this, \"crossOrigin\", 'no-cors');\n /** canvas 的显隐 */\n _defineProperty(this, \"visible\", false);\n /** 当前执行的状态 */\n _defineProperty(this, \"running\", false);\n /** 当前时候为暗黑模式 */\n _classPrivateFieldInitSpec(this, _darkMode, undefined);\n /** 上一次执行渲染状态 */\n _defineProperty(this, \"lastRunningState\", false);\n this.perturbance = options.perturbance;\n this.resolution = options.resolution;\n this.raindropsTimeInterval = options.raindropsTimeInterval;\n this.accelerating = options.accelerating;\n this.interactive = options.interactive;\n this.dropRadius = options.dropRadius;\n this.imgUrl = options.imgUrl;\n this.idleFluctuations = options.idleFluctuations;\n this.running = Boolean((_options$playingState = options.playingState) !== null && _options$playingState !== void 0 ? _options$playingState : true);\n this.crossOrigin = options.crossOrigin;\n this.darkMode = options.darkMode;\n }\n return _createClass(UseOptions, [{\n key: \"accelerating\",\n get:\n /**\n * 倍级触发光标事件\n */\n function get() {\n return _classPrivateFieldGet(_accelerating, this);\n },\n set: /** 倍级触发光标事件 */\n function set(value) {\n if (value > 100 || value < 2) return;\n _classPrivateFieldSet(_accelerating, this, value);\n }\n }, {\n key: \"interactive\",\n get:\n /**\n * 是否与鼠标互动\n */\n function get() {\n return _classPrivateFieldGet(_interactive, this);\n },\n set: /** 是否与鼠标互动 */\n function set(value) {\n if (!isBoolean(value)) return;\n _classPrivateFieldSet(_interactive, this, value);\n }\n }, {\n key: \"resolution\",\n get:\n /**\n * 纹理的尺寸,该项目中该值为纹理的宽和高\n */\n function get() {\n return _classPrivateFieldGet(_resolution, this);\n },\n set:\n /** 分辨率\n *\n * 纹理的尺寸,该项目中该值为纹理的宽和高\n *\n */\n function set(value) {\n if (value < 100 || value > 550) return;\n _classPrivateFieldSet(_resolution, this, value);\n }\n }, {\n key: \"perturbance\",\n get:\n /**\n * 扰动系数\n */\n function get() {\n return _classPrivateFieldGet(_perturbance, this);\n },\n set:\n /**\n * 扰动系数\n *\n * 缺省 `0.01`\n *\n * 取之范围 `0.01 - 1`\n */\n function set(value) {\n if (value < 0.0001 || value > 1) return;\n _classPrivateFieldSet(_perturbance, this, value);\n }\n }, {\n key: \"dropRadius\",\n get:\n /**\n * 扩散半径\n */\n function get() {\n return _classPrivateFieldGet(_dropRadius, this);\n },\n set:\n /**\n * 扩散半径\n *\n * 缺省为 `20`\n */\n function set(value) {\n if (!isFinite(value) || value < 10) return;\n _classPrivateFieldSet(_dropRadius, this, value);\n }\n }, {\n key: \"idleFluctuations\",\n get:\n /**\n * 闲置波动\n */\n function get() {\n return _classPrivateFieldGet(_idleFluctuations, this);\n },\n set: /** 闲置波动 */\n function set(value) {\n if (!isBoolean(value)) return;\n _classPrivateFieldSet(_idleFluctuations, this, value);\n }\n }, {\n key: \"raindropsTimeInterval\",\n get:\n /**\n * 雨滴落下的时间间隔\n */\n function get() {\n return _classPrivateFieldGet(_raindropsTimeInterval, this);\n },\n set: /** 雨滴落下的时间间隔 */\n function set(value) {\n if (value < 10 || value > 12000) return;\n _classPrivateFieldSet(_raindropsTimeInterval, this, value);\n }\n }, {\n key: \"playingState\",\n get:\n /**\n * 当前执行的状态\n */\n function get() {\n return this.running;\n },\n set: /** 当前执行的状态 */\n function set(value) {\n this.running = Boolean(value !== null && value !== void 0 ? value : true);\n }\n }, {\n key: \"darkMode\",\n get: /** 当前时候为暗黑模式 */\n function get() {\n return _classPrivateFieldGet(_darkMode, this);\n }\n /** 当前时候为暗黑模式 */,\n set: function set(value) {\n _classPrivateFieldSet(_darkMode, this, isUndefined(value) ? undefined : Boolean(value));\n }\n }]);\n}();","import { isArray, isNull, isString } from 'a-type-of-js';\nimport { getNewColor, getNewImage } from './get-new-image';\n\n\n/**\n * 是否能执行渐变\n *\n * 返回值为 true 时禁止渐变\n *\n */\nexport function forbiddenRunSide() {\n var fadeData = this.fadeData,\n options = this.options,\n renderData = this.renderData;\n // 没有渲染环境禁止渐变\n if (isNull(renderData)) return true;\n var imgUrl = options.imgUrl;\n var lastUseStyle = renderData.lastUseStyle;\n var lastDrawImage = fadeData.lastDrawImage,\n backgroundInfo = fadeData.backgroundInfo;\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n var tag = lastDrawImage.tag,\n kind = lastDrawImage.kind;\n\n /** 当前的渲染地址 */\n var newImageSource = getNewImage(options, lastUseStyle);\n /** 宽相等 */\n var widthIsEqual = lastDrawImage.width === width;\n /** 高相等 */\n var heightIsEqual = lastDrawImage.height === height;\n /** 尺寸没有变换 */\n var sizeEqual = widthIsEqual && heightIsEqual;\n // 尺寸相同,资源相同,禁止变化\n if (kind === 'image' && sizeEqual && isString(newImageSource) && newImageSource === tag) return true;\n /** 新的获取的渐变资源 */\n var newGradientValue = isArray(imgUrl) && imgUrl.join('_') || '';\n // 渐变禁止执行变化\n if (kind === 'linear-gradient' && sizeEqual && newGradientValue === tag) return true;\n /** 当前的背景色值 */\n var newBackgroundColor = getNewColor(options, lastUseStyle);\n // 当前渲染为色值,且色值发生了变化\n if (kind === 'background-color' && sizeEqual && tag === newBackgroundColor) return true;\n return false;\n}","\nimport { forbiddenRunSide } from '../callback/can-side';\nimport { isUndefined } from 'a-type-of-js';\n\n/**\n * 设置缓变\n *\n * 缓变分两种,一种是没有任何设置的缓变;另一种就是两个不同类型之间的缓变\n *\n *\n */\nexport function runSide() {\n var _this = this;\n var options = this.options,\n fadeData = this.fadeData;\n if (isUndefined(fadeData)) return; // 防空\n\n /// 设置下一个循环\n fadeData.transparentId = setTimeout(function () {\n clearTimeout(fadeData.transparentId); // 清理栈中未执行的同类型调用,防止多次触发\n if (!fadeData || !fadeData.toBeList) return; // 防空\n // 当前上一次为执行完毕放弃本次子执行,创建下一次执行\n if (fadeData.isTransitioning) return Reflect.apply(runSide, _this, []);\n // 校验当前是否可执行\n\n // 执行为图片且执行环境相同\n if (Reflect.apply(forbiddenRunSide, _this, [])) {\n return;\n }\n fadeData.run();\n },\n // 触发渐变\n options.raindropsTimeInterval * 2);\n}","import { isBusinessEmptyString, isEmptyArray, isNull, isZero } from 'a-type-of-js';\nimport { bindImage } from '../buildBackground/utils/bind-image';\nimport { runSide } from '../buildBackground/run-side';\nimport { isNoneBackGroundColor, isNoneBackgroundImage } from '../tools';\nimport { setTransparentTexture } from '../buildBackground/default-background';\n\n\n/** 两个图像间的淡入淡出 */\nexport function fade() {\n var renderData = this.renderData,\n fadeData = this.fadeData,\n options = this.options;\n var toBeList = fadeData.toBeList;\n if (isNull(renderData)) {\n return Reflect.apply(exitFade, this, ['还没有准备好,即将退出']);\n }\n if (isEmptyArray(toBeList)) {\n return Reflect.apply(exitFade, this, ['由于缺少当前渲染的背景,退出']);\n }\n if (fadeData.drawProgress === 0) {\n toBeList.forEach(function (e) {\n return;\n });\n }\n // 进度完成则结束当前的进度\n if (fadeData.drawProgress > 1000) {\n // 最后使用的纹理\n fadeData.lastDrawImage = toBeList.shift();\n // 渲染到背景图\n // error 此处在原来使用了 laseDrawImage 忽略了\n Reflect.apply(bindImage, this, [fadeData.lastDrawImage]);\n // 尚有未执行完毕的\n if (isEmptyArray(toBeList)) {\n var lastUseStyle = renderData.lastUseStyle;\n // 没有设置背景色或是背景图\n if ((isNull(options.imgUrl) || isBusinessEmptyString(options.imgUrl) || isZero(options.imgUrl.length)) && isNoneBackGroundColor(lastUseStyle.backgroundColor) && isNoneBackgroundImage(lastUseStyle.backgroundImage)) {\n // 因为此时渲染为空,需要手动添加一个默认渲染\n Reflect.apply(setTransparentTexture, this, [false]);\n }\n }\n // 启用下一轮的循环\n return Reflect.apply(exitFade, this, ['当前执行完毕,开启下次执行']);\n }\n var lastDrawImage = fadeData.lastDrawImage,\n backgroundInfo = fadeData.backgroundInfo;\n fadeData.drawProgress += 18;\n // dog('当前的渲染进度', fadeData.drawProgress, fadeData.lastDrawImage);\n\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n /**\n * bug: 2508021258(2)\n *\n * 这里判定了当前的执行环境并退出了执行,但是并没有设定 `isTransitioning` 值\n *\n */\n if (isNull(ctx) || isNull(lastDrawImage.resource) || isEmptyArray(toBeList)) {\n return Reflect.apply(exitFade, this, '环境值错误');\n }\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n canvas.width = width;\n canvas.height = height;\n ctx.clearRect(0, 0, width, height);\n // ctx.globalCompositeOperation = 'destination-over';\n {\n // ctx.globalAlpha = 1 - drawProgress;\n ctx.drawImage(lastDrawImage.resource, 0, 0, width, height); // 绘制上一次的图案\n ctx.globalAlpha = fadeData.drawProgress / 1000; // 设置透明度\n /**\n * bug: 2508021258(1)\n *\n * TODO 这里 报错\n *\n * Cannot read properties of undefined (reading 'resource')\n *\n *\n * 报错说这里没有数据,在复现的 bug 数据中,数组第一位为 undefined,而 2、3 位有真实数据\n *\n * 确认该错误是由于在判定 `fadeData.isTransitioning` 为 `true` 造成的第一个待执行项不存在却被设置为新的数组的第一项\n *\n */\n ctx.drawImage(toBeList[0].resource, 0, 0, width, height);\n }\n ctx.globalAlpha = 1;\n /** 当前渲染项 */\n var currentDrawImage = {\n resource: canvas,\n width: width,\n height: height,\n kind: 'mix',\n tag: \"\".concat(lastDrawImage.tag, \" >> \").concat(toBeList[0].tag)\n };\n // 渲染渐变过程中的纹理\n Reflect.apply(bindImage, this, [currentDrawImage]);\n // 当前执行的列表中有两个(两个以上的可能性比较小)\n if (toBeList.length > 1) {\n fadeData.lastDrawImage = currentDrawImage;\n toBeList.shift();\n fadeData.drawProgress = 0;\n }\n}\n\n/** 退出当前的渐变执行 */\nfunction exitFade(message) {\n var fadeData = this.fadeData;\n fadeData.isTransitioning = false;\n Reflect.apply(runSide, this, []);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nimport { isNull } from 'a-type-of-js';\nimport { createCanvasElementBySize } from '../buildBackground/default-background/createCanvasElementBySize';\nimport { setTransparentTexture } from '../buildBackground/default-background';\nimport { forbiddenRunSide } from '../callback/can-side';\n\nvar _mediaQuery = /*#__PURE__*/new WeakMap();\nvar _FadeData_brand = /*#__PURE__*/new WeakSet();\n/** 背景渐变的数据 */\nexport var FadeData = /*#__PURE__*/function () {\n /** 创建背景渐变的数据 */\n function FadeData(_Ripples) {\n _classCallCheck(this, FadeData);\n /** 暗黑模式监听的事件 */\n _classPrivateMethodInitSpec(this, _FadeData_brand);\n /** 背景页面的数据 */\n _defineProperty(this, \"backgroundInfo\", {\n width: 0,\n height: 0\n });\n /** 缺省背景图时的 id */\n _defineProperty(this, \"transparentId\", setTimeout(Boolean));\n /** 最后使用\n *\n * 如果没有 toBeList 为空值,则当前渲染的为此纹理)绘制的图像\n */\n _defineProperty(this, \"lastDrawImage\", void 0);\n /** 当前绘制的图像\n *\n * 该值仅出现在需要渐变过程中,一旦渐变完成,实际渲染的值就成了最后渲染的值\n */\n _defineProperty(this, \"toBeList\", []);\n /** 绘制进度 */\n _defineProperty(this, \"drawProgress\", 0);\n /** 是否处于绘制过渡状态 */\n _defineProperty(this, \"isTransitioning\", false);\n /** 当前的状态 (暗黑模式) */\n _classPrivateFieldInitSpec(this, _mediaQuery, void 0);\n _defineProperty(this, \"isDark\", false);\n var renderData = _Ripples.renderData;\n var width, height;\n if (isNull(renderData)) {\n width = 10;\n height = 10;\n } else {\n // 获取边界尺寸并保存,防止后续步骤多次重复获取该数据并解析\n var styles = getComputedStyle(renderData.parentElement);\n width = parseInt(styles.width);\n height = parseInt(styles.height);\n }\n // 背景的尺寸\n this.backgroundInfo = {\n width: width,\n height: height\n };\n // 最后使用的渲染项\n this.lastDrawImage = {\n resource: createCanvasElementBySize(width, height),\n width: width,\n height: height,\n kind: 'default',\n tag: ''\n };\n {\n /// 暗黑模式查询\n _classPrivateFieldSet(_mediaQuery, this, window.matchMedia('(prefers-color-scheme: dark)'));\n this.isDark = _classPrivateFieldGet(_mediaQuery, this).matches;\n _classPrivateFieldGet(_mediaQuery, this).addEventListener('change', _assertClassBrand(_FadeData_brand, this, _mediaQueryChange));\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var _ = this;\n Object.defineProperty(_classPrivateFieldGet(_mediaQuery, this), 'isDark', {\n get: function get() {\n return _.isDark;\n },\n set: function set(value) {\n _.isDark = value;\n // 在后续变化的进程都是默认\n if (!Reflect.apply(forbiddenRunSide, _Ripples, [])) Reflect.apply(setTransparentTexture, _Ripples, [true]);\n }\n });\n }\n }\n return _createClass(FadeData, [{\n key: \"run\",\n value: /** 执行渐变 */\n function run() {\n //如果当前正处于渐变过程,直接退出,让渐变自己处理当前的状态\n if (this.isTransitioning) return;\n this.drawProgress = 0;\n this.isTransitioning = true;\n }\n /** 销毁 */\n }, {\n key: \"destroy\",\n value: function destroy() {\n _classPrivateFieldGet(_mediaQuery, this).removeEventListener('change', _assertClassBrand(_FadeData_brand, this, _mediaQueryChange));\n if (this.transparentId) {\n clearTimeout(this.transparentId);\n }\n }\n }]);\n}();\nfunction _mediaQueryChange(ev) {\n this.isDark = ev.matches;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName website\n * @FileName ripples/index.ts\n * @CreateDate 周六 12/07/2024\n * @Description ripples 水涟漪效果\n ****************************************************************************/\nimport { setCanvasStyle } from './tools';\nimport { RipplesData } from './rippersData';\nimport { getRandomInt } from 'a-js-tools';\nimport { defaultData } from './rippersData/defaultData';\nimport { loadImage } from './buildBackground/load-image';\nimport { hideCssBackground } from './buildBackground/utils/hide-css-background';\nimport { RipplesRenderData } from './rippersData/renderData';\nimport { isFalse, isNull } from 'a-type-of-js';\nimport { initGL } from './init';\nimport { reloadBackground } from './callback/reload-background';\nimport { destroy as _destroy } from './callback/destroy';\nimport { restoreCssBackground } from './buildBackground/utils/restore-css-background';\nimport { drop as _drop } from './callback/drop';\nimport { UseOptions } from './rippersData/useOptions';\nimport { fade as _fade } from './callback/fade';\nimport { FadeData } from './rippersData/fadeData';\nimport { setTransparentTexture } from './buildBackground/default-background';\nimport { forbiddenRunSide } from './callback/can-side';\n\n\n/**\n *\n * ## 水波动涟漪的效果\n *\n * 魔改自大佬的[jQuey 代码](https://github.com/sirxemic/jquery.ripples)\n */\nexport var Ripples = /*#__PURE__*/function (_RipplesData) {\n /**\n * 构建 Ripple 对象\n */\n function Ripples(canvas, options) {\n var _this;\n _classCallCheck(this, Ripples);\n _this = _callSuper(this, Ripples, [canvas]);\n /** 渲染数据 */\n _defineProperty(_this, \"renderData\", null);\n /** 使用参数 */\n _defineProperty(_this, \"options\", void 0);\n /** 背景使用的数据 */\n _defineProperty(_this, \"fadeData\", void 0);\n _defineProperty(_this, \"defaults\", defaultData);\n /** 初始化状态 */\n _defineProperty(_this, \"initialized\", false);\n /// 定义不可写的默认值\n Object.defineProperties(_this, {\n defaults: {\n value: _this.defaults,\n writable: false,\n enumerable: false,\n configurable: false\n }\n });\n _this.options = new UseOptions(_objectSpread(_objectSpread({}, _this.defaults), options));\n\n /** 初始化带 this 指向的重加载回调 */\n var withThisReload = reloadBackground.bind(_this);\n // 数据初始化\n _this.renderData = new RipplesRenderData(canvas, withThisReload, _this);\n // 渐变的数据\n _this.fadeData = new FadeData(_this);\n if (isFalse(_this.initState) || isNull(canvas.parentElement) || isNull(_this.config) || isNull(_this.gl)) _this.initState = false;else {\n setCanvasStyle(canvas); /// 设置 canvas 的样式\n /// 初始化 gl 及渲染粒子(动画)\n Reflect.apply(initGL, _this, []);\n }\n /// 注册一个当前主题模式的监听系统\n window.matchMedia('(prefers-color-scheme: dark)');\n return _this;\n }\n\n /** 模拟雨滴下落 */\n _inherits(Ripples, _RipplesData);\n return _createClass(Ripples, [{\n key: \"raindropsFall\",\n value: function raindropsFall() {\n var renderData = this.renderData,\n options = this.options,\n fadeData = this.fadeData;\n if (isNull(renderData)) return;\n var backgroundInfo = fadeData.backgroundInfo;\n var lastRaindropsFallTime = renderData.lastRaindropsFallTime;\n var raindropsTimeInterval = options.raindropsTimeInterval,\n dropRadius = options.dropRadius;\n var now = Date.now();\n /** 模拟雨滴坠落 */\n if (now - lastRaindropsFallTime < raindropsTimeInterval) return;\n renderData.lastRaindropsFallTime = now; // 设置新的时间\n\n var getValue = function getValue(size) {\n return getRandomInt(size || 1);\n };\n var width = backgroundInfo.width,\n height = backgroundInfo.height;\n this.drop(getValue(width), getValue(height), dropRadius, 0.03);\n }\n\n /** 公共方法,触发 */\n }, {\n key: \"drop\",\n value: function drop(x, y, radius, strength) {\n Reflect.apply(_drop, this, [x, y, radius, strength]);\n }\n /**\n * 缓进缓出\n */\n }, {\n key: \"fade\",\n value: function fade() {\n Reflect.apply(_fade, this, []);\n }\n\n /** 销毁 */\n }, {\n key: \"destroy\",\n value: function destroy() {\n Reflect.apply(_destroy, this, []);\n }\n\n /** 展示元素 */\n }, {\n key: \"show\",\n value: function show() {\n this.options.visible = true;\n this.canvas.style.visibility = 'visible';\n Reflect.apply(hideCssBackground, this, []);\n }\n\n /** 隐藏元素 */\n }, {\n key: \"hide\",\n value: function hide() {\n this.options.visible = false;\n this.canvas.style.visibility = 'hidden';\n Reflect.apply(restoreCssBackground, this, []); /// 恢复父级节点的背景样式\n }\n\n /** 暂停动画涟漪状态 */\n }, {\n key: \"pause\",\n value: function pause() {\n this.options.running = false;\n }\n\n /** 播放动画涟漪状态 */\n }, {\n key: \"play\",\n value: function play() {\n this.options.running = true;\n }\n /** 切换当前状态 */\n }, {\n key: \"changePlayingState\",\n value: function changePlayingState() {\n var options = this.options;\n options.running = !options.running;\n }\n /** 给初始化变量赋值 */\n }, {\n key: \"set\",\n value: function set(property, value) {\n if (property === 'imgUrl') {\n this.options.imgUrl = value;\n Reflect.apply(loadImage, this, []);\n } else if (property === 'darkMode') {\n this.options.darkMode = value;\n if (!Reflect.apply(forbiddenRunSide, this, [])) Reflect.apply(setTransparentTexture, this, [true]);\n } else this.options[property] = value;\n }\n }]);\n}(RipplesData);","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","'use client';\n\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { useEffect, useRef, useState } from 'react';\nimport { isNull } from 'a-type-of-js';\n\n\n/** 动态加载包含的自定义的钩子 */\nexport function useLazyRipples(canvas, option) {\n /** react dom */\n var ripples = useRef(null);\n /** 当前是否被卸载 */\n var isUnmounted = useRef(true);\n /** 是否已加载 */\n var isLoaded = useRef(false);\n // 加载状态\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isLoading = _useState2[0],\n setIsLoading = _useState2[1];\n // 错误状态\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n error = _useState4[0],\n setError = _useState4[1];\n\n /** 卸载 */\n function unmounted() {\n isUnmounted.current = true;\n setTimeout(function () {\n // 当前是被卸载状态\n if (isUnmounted.current) {\n var _ripples$current;\n (_ripples$current = ripples.current) === null || _ripples$current === void 0 || _ripples$current.destroy();\n }\n }, 0);\n }\n useEffect(function () {\n isUnmounted.current = false;\n /** 非空检验(这里一般都是有值的,除非故障) */\n if (isNull(canvas.current) || isLoaded.current) {\n return unmounted;\n }\n // 设置加载状态\n setIsLoading(true);\n isLoaded.current = true;\n import('./ripplesClass').then(function (module) {\n if (isNull(canvas.current) || isUnmounted.current) {\n return;\n }\n ripples.current = new module.Ripples(canvas.current, option);\n })[\"catch\"](function (err) {\n setError(err);\n })[\"finally\"](function () {\n setIsLoading(false);\n });\n return unmounted;\n }, []);\n return {\n ripples: ripples,\n isLoading: isLoading,\n error: error\n };\n}","/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName earthnut\n * @FileName index.ts\n * @CreateDate 周五 06/20/2025\n * @Description 使用 ripple 的主要核心逻辑\n ****************************************************************************/\n'use client';\n\nimport { useEffect, useRef } from 'react';\nimport { Ripples } from './ripplesClass';\nimport { isNull } from 'a-type-of-js';\n\n/**\n *\n * ## 使用绘制 ripples 上一层\n *\n *\n * @param canvas `usrRef` 包裹的 `HTMLCanvasElement`,用于绘制图像\n * @param option 初始化的\n * @version 0.0.3\n * @see https://earthnut.dev/custom-hooks/use-ripples\n * @see JQuery https://github.com/sirxemic/jquery.ripples\n * @example\n *\n * 下面是在 <BackgroundRipple> 中使用\n *\n * ```ts\n * import { useRipples } from 'earthnut';\n *\n * export function BackgroundRipple(props: BackgroundRipplesProps) {\n *\n * // canvas 元素\n * const canvas = useRef<HTMLCanvasElement>(null);\n *\n * // 使用 ripples\n * const ripplesRef = useRipples(canvas, props);\n *\n * return (<>\n * <canvas ref={canvas}></canvas>\n * {props.children}\n * </>);\n * }\n *\n * ```\n *\n */\nexport function useRipples(canvas, option) {\n /** react dom */\n var ripples = useRef(null);\n\n // 初始化数据\n useEffect(function () {\n /** 非空检验(这里一般都是有值的,除非故障) */\n if (isNull(canvas.current)) return;\n ripples.current = new Ripples(canvas.current, option);\n return function () {\n var _ripples$current;\n return (_ripples$current = ripples.current) === null || _ripples$current === void 0 ? void 0 : _ripples$current.destroy();\n };\n }, []);\n return ripples;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { isArray } from 'a-type-of-js';\nimport { useEffect, useRef } from 'react';\n\n\n/**\n * 更新参数数据\n */\nexport function useOptionUpdate(ripplesRef, option) {\n var oldOption = useRef(_objectSpread({}, option));\n /** 监听数据变化并给值 */\n useEffect(function () {\n if (!option || !ripplesRef.current) {\n return;\n }\n Object.keys(ripplesRef.current.defaults).forEach(function (e) {\n /** 新的值 */\n var value = option[e];\n /** 测试值是否相等 */\n var checkArr = function (v, ov) {\n return isArray(v) && isArray(ov) && (v.length !== ov.length || v.some(function (k, i) {\n return k !== ov[i];\n })) || (!isArray(v) || !isArray(ov)) && v !== ov;\n }(value, oldOption.current[e]);\n if (ripplesRef.current && checkArr) {\n // 使用转化后的值\n oldOption.current[e] = isArray(value) ? _toConsumableArray(value) : option[e];\n ripplesRef.current.set(e, value);\n }\n });\n }, [option]);\n}","import { styled } from 'styled-components';\n\n/** 内容组件 */\nexport var Content = styled.div.withConfig({\n displayName: \"Content\",\n componentId: \"sc-1rvy95w-0\"\n})([\"position:relative;top:0px;left:0px;z-index:1;width:100%;height:100%;min-width:1px;min-height:1px;contain:layout paint style;will-change:transform,opacity;\"]);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"style\", \"option\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport React from 'react';\n\n/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName website\n * @FileName index.tsx\n * @CreateDate 周四 12/12/2024\n * @Description 涟漪\n ****************************************************************************/\n'use client';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { useRipples } from '../../customHooks/useRipples';\nimport { useOptionUpdate } from './useOptionUpdate';\nimport { isUndefined } from 'a-type-of-js';\nimport { Content } from './Content';\n\n/**\n *\n * ### 一个 ripple 背景组件\n *\n *\n * *需要为该组件或父组件设置背景,否则即便的渲染了,效果不明显*\n *\n * 参数 props 属性:\n * - children 内嵌的 ReactNode\n * - style 更改显示的样式\n * - option 初始化 ripples 的原始数据\n * @param props 使用参数\n * @version 0.0.1\n * @see https://earthnut.dev/earthnut/background-ripple\n * @example\n * 使用:\n *\n * ```ts\n * import { BackgroundRipple } from 'earthnut';\n * // 也可以全量导入\n * // import { BackgroundRipple } from 'earthnut';\n * ...\n * const animationFrameId = useAnimationFrame();\n *\n * return <BackgroundRipple>\n * ...\n * </BackgroundRipple>\n * ```\n *\n */\nvar BackgroundRipple = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n style = _ref.style,\n option = _ref.option,\n props = _objectWithoutProperties(_ref, _excluded);\n /** canvas 元素 */\n var canvas = useRef(null);\n /** 使用 ripples */\n var ripplesRef = useRipples(canvas, option);\n\n /// 使用 配置更新\n useOptionUpdate(ripplesRef, option);\n\n // 抛出事件 (自定义抛出事件)\n useImperativeHandle(ref, function () {\n return {\n toggleState: function toggleState() {\n var _ripplesRef$current;\n (_ripplesRef$current = ripplesRef.current) === null || _ripplesRef$current === void 0 || _ripplesRef$current.changePlayingState();\n },\n get state() {\n var _ripplesRef$current$o, _ripplesRef$current2;\n return (_ripplesRef$current$o = (_ripplesRef$current2 = ripplesRef.current) === null || _ripplesRef$current2 === void 0 ? void 0 : _ripplesRef$current2.options.playingState) !== null && _ripplesRef$current$o !== void 0 ? _ripplesRef$current$o : false;\n },\n pause: function pause() {\n var _ripplesRef$current3;\n (_ripplesRef$current3 = ripplesRef.current) === null || _ripplesRef$current3 === void 0 || _ripplesRef$current3.pause();\n },\n set: function set(options) {\n if (isUndefined(options)) return;\n var keys = Object.keys(options);\n for (var i = 0, j = keys.length; i < j; i++) {\n var _ripplesRef$current4;\n var key = keys[i];\n (_ripplesRef$current4 = ripplesRef.current) === null || _ripplesRef$current4 === void 0 || _ripplesRef$current4.set(key, options[key]);\n }\n }\n };\n });\n return /*#__PURE__*/React.createElement(Content, _extends({\n style: _objectSpread({\n backgroundRepeat: 'round'\n }, style)\n }, props), /*#__PURE__*/React.createElement(\"canvas\", {\n ref: canvas,\n \"data-earthnut-ui\": \"canvas\",\n width: 0,\n height: 0\n }), children);\n});\nBackgroundRipple.displayName = 'en-background-ripple';\nexport { BackgroundRipple };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"style\", \"option\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport React from 'react';\n\n/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName website\n * @FileName index.tsx\n * @CreateDate 周四 12/12/2024\n * @Description 涟漪\n ****************************************************************************/\n'use client';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { useOptionUpdate } from './useOptionUpdate';\nimport { isUndefined } from 'a-type-of-js';\nimport { Content } from './Content';\nimport { useLazyRipples } from '../../customHooks/useRipples/use-lazy-ripple';\n\n/**\n *\n * ### 一个 ripple 背景组件\n *\n *\n * *需要为该组件或父组件设置背景,否则即便的渲染了,效果不明显*\n *\n * 参数 props 属性:\n * - children 内嵌的 ReactNode\n * - style 更改显示的样式\n * - option 初始化 ripples 的原始数据\n * @param props 使用参数\n * @version 0.0.1\n * @see https://earthnut.dev/earthnut/lazy-background-ripple\n * @example\n * 使用:\n *\n * ```ts\n * import { BackgroundRipple } from 'earthnut/BackgroundRipple';\n * // 也可以全量导入\n * // import { BackgroundRipple } from 'earthnut';\n * ...\n * const animationFrameId = useAnimationFrame();\n *\n * return <BackgroundRipple>\n * ...\n * </BackgroundRipple>\n * ```\n *\n */\nvar LazyBackgroundRipple = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n style = _ref.style,\n option = _ref.option,\n props = _objectWithoutProperties(_ref, _excluded);\n /** canvas 元素 */\n var canvas = useRef(null);\n /** 使用 ripples */\n var _useLazyRipples = useLazyRipples(canvas, option),\n ripples = _useLazyRipples.ripples;\n /** 初始状态 */\n\n /// 使用 配置更新\n useOptionUpdate(ripples, option);\n\n // 抛出事件 (自定义抛出事件)\n useImperativeHandle(ref, function () {\n return {\n toggleState: function toggleState() {\n var _ripples$current;\n (_ripples$current = ripples.current) === null || _ripples$current === void 0 || _ripples$current.changePlayingState();\n },\n get state() {\n var _ripples$current$opti, _ripples$current2;\n return (_ripples$current$opti = (_ripples$current2 = ripples.current) === null || _ripples$current2 === void 0 ? void 0 : _ripples$current2.options.playingState) !== null && _ripples$current$opti !== void 0 ? _ripples$current$opti : false;\n },\n pause: function pause() {\n var _ripples$current3;\n (_ripples$current3 = ripples.current) === null || _ripples$current3 === void 0 || _ripples$current3.pause();\n },\n set: function set(options) {\n if (isUndefined(options)) return;\n var keys = Object.keys(options);\n for (var i = 0, j = keys.length; i < j; i++) {\n var _ripples$current4;\n var key = keys[i];\n (_ripples$current4 = ripples.current) === null || _ripples$current4 === void 0 || _ripples$current4.set(key, options[key]);\n }\n }\n };\n });\n return /*#__PURE__*/React.createElement(Content, _extends({\n style: _objectSpread({\n backgroundRepeat: 'round'\n }, style)\n }, props), /*#__PURE__*/React.createElement(\"canvas\", {\n ref: canvas,\n \"data-earthnut-ui\": \"canvas\",\n width: 0,\n height: 0\n }), children);\n});\nLazyBackgroundRipple.displayName = 'en-lazy-background-ripple';\nexport { LazyBackgroundRipple };","/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName earthnut\n * @FilePath /src/customHooks/useAnimationFrame.ts\n * @FileName useTimeId.ts\n * @CreateDate 周二 01/07/2025\n * @Description 使用定时器返回的时间戳\n ****************************************************************************/\n'use client';\n\nimport { useEffect, useRef } from 'react';\n/**\n *\n * ### 导出一个使用 `useRef` 创建的 `NodeJS.Timeout`\n *\n * 该数值在组件卸载时会自动调用 `clearTimeout` 清理\n *\n * @version 0.0.3\n * @see https://earthnut.dev/custom-hooks/use-time-id\n * @example\n *\n * 使用:\n *\n * ```ts\n * // import { useTimeId } from 'earthnut';\n * ...\n * const timeoutId = useTimeId();\n *\n * useEffect(()=>{\n * timeoutId.current = setTimeout(()=>{\n * ...\n * } ,delay);\n * });\n * ...\n *\n * ```\n *\n * 其实,正确的用法是这样的:\n *\n * ```ts\n *\n * useEffect(()=>{\n * const timeId = setTimeout(()=>{\n * ...\n * }, delay) ;\n *\n * return ()=> timeId && clearTimeout(timeId);\n * });\n *\n * ```\n *\n * 根本就不用引入这个自定义 `hook` , 哈哈哈哈哈\n *\n */\nexport function useTimeId() {\n var timeId = useRef(undefined);\n useEffect(function () {\n return function () {\n return timeId.current && clearTimeout(timeId.current);\n };\n }, []);\n return timeId;\n}","/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName earthnut\n * @FilePath /src/customHooks/useAnimationFrame.ts\n * @FileName useAnimationFrame.ts\n * @CreateDate 周二 01/07/2025\n * @Description 使用 animationFrame\n ****************************************************************************/\n'use client';\n\nimport { isBoolean, isPlainObject } from 'a-type-of-js';\n\nimport { useCallback, useEffect, useRef } from 'react';\n\n/** 使用动画结果 */\n\n/**\n *\n * 该钩子在组件卸载时会自动调用 `window.cancelAnimationFrame` 清理传入的回调方法。\n * 默认是传入即启动调用方法\n *\n * @description 创建一个会自己关闭(组建卸载时)的 animationFrame。当然,可以通过返回值手动终止\n * @param callback 使用回调函数。回调函数有两个参数,除了默认的时间,还有另一个用于暂停后的记时时间。如果没有主动暂停,两者时间总是趋近于相等的(可能有其他延迟造成时间差越来越大)。如果没有暂停需求,使用第一个默认时间就可以了。\n * @param [option=false] 使用第二参数,可指定是否立即执行及是否仅执行一次\n * @returns 返回值包含执行状态\n * @version 0.2.0\n * @see https://earthnut.dev/custom-hooks/use-animation-frame\n * @example\n * 使用:\n *\n * ```ts\n * // import { useAnimationFrame } from 'earthnut';\n * ...\n *\n * export function Home () {\n * // 如果没有主动暂停的需要,直接使用默认的 time 最好。如果中间有使用暂停。那么 time 值是不连贯的,而 runTime 是连贯的\n * const result = useAnimationFrame((time ,runTime) => {\n * ... //\n * });\n *\n *\n * return <>\n *\n * <button onclick={() => result.cancel()}>暂停</button>\n * <button onclick={() => result.render()}>恢复</button>\n * </>\n * }\n * ...\n *\n * ```\n *\n * 当然,可使用第二参数执行立即执行还是仅执行一次(作用不大,不与赘述)\n *\n */\nexport function useAnimationFrame(callback) {\n var _option$immediately, _option$once;\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isBoolean(option)) {\n option = {\n immediately: option,\n once: false\n };\n } else if (isPlainObject(option)) {\n option = {\n once: isBoolean(option.once) ? option.once : false,\n immediately: isBoolean(option.immediately) ? option.immediately : false\n };\n } else {\n option = {\n immediately: false,\n once: false\n };\n }\n\n /** */\n var animationFrame = useRef({\n id: 0,\n immediately: (_option$immediately = option.immediately) !== null && _option$immediately !== void 0 ? _option$immediately : true,\n once: (_option$once = option.once) !== null && _option$once !== void 0 ? _option$once : false,\n noun: false,\n time: 0,\n cancelTime: 0,\n firstRunEffect: true,\n isUnmounted: true,\n result: {\n cancel: function cancel() {\n var id = animationFrame.current.id;\n if (id) window.cancelAnimationFrame(id);\n animationFrame.current.result.canceled = true;\n },\n canceled: false,\n render: function render() {\n var current = animationFrame.current;\n var result = current.result;\n current.cancelTime = performance.now();\n result.cancel();\n result.canceled = false;\n current.id = window.requestAnimationFrame(_);\n }\n }\n });\n var current = animationFrame.current;\n\n /** 转化为函数 */\n var _ = useCallback(function (time) {\n var result = current.result;\n var _time = time - current.cancelTime;\n current.time += _time < 0 ? 16.7 : _time;\n callback(time, current.time);\n // 如果不是仅执行一次,进入下一次执行\n if (!current.once) result.render();\n }, [callback]);\n\n // 首次执行\n if (current.immediately && !current.noun && current.result.canceled) {\n current.noun = true;\n current.result.render();\n }\n useEffect(function () {\n /// 非仅执行一次再次这里需要执行\n if (!current.once) {\n if (current.firstRunEffect) {\n current.result.render();\n current.firstRunEffect = false; // 标记为不允许执行\n } else if (!current.firstRunEffect && !current.result.canceled) {\n /** 非第一次执行 */\n current.result.render();\n }\n }\n }, [callback]);\n\n /// 在组件退出时保证能正确的退出\n useEffect(function () {\n current.isUnmounted = false;\n return function () {\n current.isUnmounted = true;\n setTimeout(function () {\n if (current.isUnmounted) current.result.cancel();\n }, 0);\n };\n }, []);\n return current.result;\n}","/****************************************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName earthnut\n * @FilePath /src/customHooks/useAnimationFrame.ts\n * @FileName useInputIsComposing.ts\n * @CreateDate 周二 01/07/2025\n * @Description 使用输入框是否完成输入状态\n ****************************************************************************/\n'use client';\n\nimport { useEffect, useRef } from 'react';\n/**\n *\n * ### 导出一个使用 `useRef` 创建的 `boolean`\n *\n * *由于是包裹在 RefObject 之中,判断时务必使用 `isComposing.current` 进行判断*\n * @description 用于判断当前的输入状态是否结束\n * @param inputRef [RefObject<HTMLInputElement | HTMLTextAreaElement>] 输入框的 ref\n * @returns RefObject<boolean>\n * @version 0.0.4\n * @see https://earthnut.dev/custom-hooks/use-input-is-composing\n * @example\n *\n * 使用:\n *\n * ```ts\n * import { useInputIsComposing } from 'earthnut';\n *\n * ...\n * const inputRef = useRef<HTMLInputElement>(null);\n *\n * const inputIsComposing = useInputIsComposing(inputRef);\n * ...\n * function enterDown(e: React.KeyboardEvent<HTMLInputElement>) {\n * if (e.key === 'Enter') {\n * if (isComposing.current) {\n * console.log(\"此时此景,按回车键说明为了从候选词中挑选\");\n * } else {\n * console.log(\"输入完毕,敲回车是为了看一些开发者是否绑定了其他事件\");\n * }\n * }\n * }\n * ...\n * <input type=\"text\" onKeyDown={enterDown} ref={inputRef} />\n * ...\n * ```\n */\nexport function useInputIsComposing(inputRef) {\n /** 当前输入框是否输入模式结束 */\n var isComposing = useRef(false);\n\n /** 监视当前编辑器输入状态 */\n useEffect(function () {\n var _i = inputRef.current; /// 当前元素\n if (!_i) return; /// 没有(不可能事件但是)获取元素直接返回\n var handleCompositionStart = function handleCompositionStart() {\n return isComposing.current = true;\n }; /// 键盘输入\n var handleCompositionEnd = function handleCompositionEnd() {\n return isComposing.current = false;\n }; /// 键盘输入结束\n // _i.focus(); /// 让该元素显示时自动聚焦\n _i.addEventListener('compositionstart', handleCompositionStart); /// 监听键盘输入事件\n _i.addEventListener('compositionend', handleCompositionEnd); /// 监听键盘输入结束事件\n return function () {\n _i.removeEventListener('compositionstart', handleCompositionStart); /// 取消监听键盘输入事件\n _i.removeEventListener('compositionend', handleCompositionEnd); /// 取消监听键盘输入结束事件\n };\n }, []);\n return isComposing;\n}","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { isString } from 'a-type-of-js';\nimport { useEffect, useState } from 'react';\nimport defaultImg from './default.png';\n\n/** 图片最终的地址 */\n\n/** 当地址触发变更 */\nexport function useSrcChange(src, fallbackSrc) {\n /** 实际展示的地址 */\n var _useState = useState(defaultImg),\n _useState2 = _slicedToArray(_useState, 2),\n resultSrc = _useState2[0],\n setResultSrc = _useState2[1];\n /** 当前状态\n *\n * - 0 初始化\n * - 1 加载中\n * - 2 加载完成\n * - 4 加载失败\n *\n */\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n loadComplete = _useState4[0],\n setLoadComplete = _useState4[1];\n useEffect(function () {\n setLoadComplete(1); /// 设置当前状态为未完成\n if (!isString(src)) src = defaultImg;\n // setResultSrc(src); /// 设置新的图片路径\n var img = new Image();\n img.onload = function () {\n /// 下载完毕后设置状态\n setLoadComplete(2);\n setResultSrc(src); /// 设置新的值\n };\n img.onerror = function () {\n setResultSrc(fallbackSrc || defaultImg); /// 下载出错则设置必用地址\n setLoadComplete(4); /// 设置为新的地址\n };\n img.src = src;\n img.crossOrigin = 'anonymous';\n }, [src, fallbackSrc]);\n return {\n resultSrc: resultSrc,\n loadComplete: loadComplete\n };\n}","var _excluded = [\"loadingSrc\", \"className\", \"src\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport React from 'react';\n'use client';\nimport { styled } from 'styled-components';\nimport defaultImgSrc from './default.png';\nimport { useSrcChange } from './useSrcChange';\nimport { xcn } from 'xcn';\nimport { forwardRef } from 'react';\n\n/** 片 */\nvar Content = styled.img.withConfig({\n displayName: \"image__Content\",\n componentId: \"sc-qt83ib-0\"\n})([\"margin:0;padding:0;user-select:none;\"]);\n\n/** 简单的图像 */\nvar Image = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _ref$loadingSrc = _ref.loadingSrc,\n loadingSrc = _ref$loadingSrc === void 0 ? defaultImgSrc : _ref$loadingSrc,\n className = _ref.className,\n src = _ref.src,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useSrcChange = useSrcChange(src !== null && src !== void 0 ? src : loadingSrc),\n resultSrc = _useSrcChange.resultSrc,\n loadComplete = _useSrcChange.loadComplete;\n return /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n ref: ref,\n src: resultSrc || loadingSrc,\n className: xcn(loadComplete === 1 && 'loading', className)\n }));\n});\nImage.displayName = 'en-image';\nexport { Image };","'use client';\n\nfunction set(key, value) {\n localStorage.setItem(key, JSON.stringify(value));\n}\nfunction get(key) {\n var value = localStorage.getItem(key);\n try {\n return value != null && JSON.parse(value) || '';\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n return value || '';\n }\n}\nfunction getAndDel(key) {\n var value = get(key);\n del(key);\n return value;\n}\nfunction del(key) {\n return localStorage.removeItem(key);\n}\nfunction clear() {\n localStorage.clear();\n}\nfunction setSession(key, value) {\n sessionStorage.setItem(key, JSON.stringify(value));\n}\nfunction getSession(key) {\n var value = sessionStorage.getItem(key);\n return value != null && JSON.parse(value) || '';\n}\nfunction delSession(key) {\n return sessionStorage.removeItem(key);\n}\nexport { del as delStorage, set as setStorage, get as getStorage, getAndDel as getStorageAndDel, clear as clearStorage, setSession as setSessionStorage, getSession as getSessionStorage, delSession as delSessionStorage };\nvar storageMainLogic = {\n del: del,\n set: set,\n get: get,\n getAndDel: getAndDel,\n clear: clear,\n setSession: setSession,\n getSession: getSession,\n delSession: delSession\n};\nexport { storageMainLogic };","import { isBusinessEmptyString, isString } from 'a-type-of-js';\nimport { storageMainLogic } from './main-logic ';\n/** storage 的数据仓库 */\nexport var storageStore = {\n /** 获取本地的数据中的主题值 */\n get theme() {\n return storageMainLogic.get('theme');\n },\n /** 设置本地的数据的主题值 */\n set theme(newTheme) {\n if (['light', 'dark'].includes(newTheme)) storageMainLogic.set('theme', newTheme);else if (isBusinessEmptyString(newTheme)) storageMainLogic.del('theme');\n },\n /** 获取本地储存的 token */\n get token() {\n return storageMainLogic.get('token');\n },\n /** 设置本地储存的 token 值 */\n set token(newToken) {\n if (isString(newToken) && !isBusinessEmptyString(newToken)) storageMainLogic.set('token', newToken);\n }\n};","/*****************************************************\n * @Author earthnut\n * @Email earthnut.dev@outlook.com\n * @ProjectName nest\n * @FileName cookie.ts\n * @CreateDate 周五 01/10/2025\n * @Description cookie 管理\n ******************************************************/\nimport { typeOf } from 'a-type-of-js';\n\nexport var manageCookie = {\n getItem: function getItem(keyItem) {\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(keyItem).replace(/[-.+*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || null;\n },\n setItem: function setItem(option) {\n var keyItem = option.keyItem,\n value = option.value,\n end = option.end,\n path = option.path,\n domain = option.domain,\n secure = option.secure;\n if (!keyItem || /^(?:expires|max-age|path|domain|secure)$/i.test(keyItem)) {\n return false;\n }\n var expires = '';\n switch (typeOf(end)) {\n case 'undefined':\n expires = '; expires=Fri, 31 Dec 9999 23:59:59 GMT';\n break;\n case 'number':\n expires = end === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + end;\n break;\n case 'string':\n expires = '; expires=' + end;\n break;\n case 'date':\n expires = '; expires=' + end.toUTCString();\n break;\n }\n document.cookie = encodeURIComponent(keyItem).concat('=').concat(encodeURIComponent(value)).concat(expires).concat(domain ? '; domain='.concat(domain) : '').concat(path ? '; path='.concat(path) : '').concat(secure ? '; secure' : '');\n return true;\n },\n deleteItem: function deleteItem(key, path, domain) {\n if (!key || !this.exist(key)) return false;\n document.cookie = encodeURIComponent(key).concat('=; expires=Thu, 01 Jan 1970 00:00:00 GMT').concat(domain ? '; domain='.concat(domain) : '').concat(path ? '; path='.concat(path) : '');\n return true;\n },\n /** 校验当前 key 是否存在 */exist: function exist(key) {\n var result = new RegExp('(?:^|;\\\\s*)' + encodeURIComponent(key).replace(/[-.+*]/g, '\\\\$&') + '\\\\s*\\\\=').test(document.cookie);\n return result;\n },\n keys: function keys() {\n var keyList = document.cookie.replace(/((?:^|\\s*;)[^=]+)(?=;|$)|^\\s*|\\s*(?:=[^;]*)?(?:1|$)/g, '').split(/\\s*(?:=[^;]*)?;\\s*/);\n for (var i = 0; i < keyList.length; i++) {\n keyList[i] = decodeURIComponent(keyList[i]);\n }\n return keyList;\n }\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nvar _SysInfo_brand = /*#__PURE__*/new WeakSet();\nvar SysInfo = /*#__PURE__*/function () {\n function SysInfo() {\n _classCallCheck(this, SysInfo);\n _classPrivateMethodInitSpec(this, _SysInfo_brand);\n }\n return _createClass(SysInfo, [{\n key: \"vibrate\",\n value:\n /**\n * 设备振动\n **/\n function vibrate() {\n var _window;\n if ((_window = window) !== null && _window !== void 0 && (_window = _window.navigator) !== null && _window !== void 0 && _window.vibrate) window.navigator.vibrate(200);\n }\n /**\n * 分享网站\n * @param [url='https://letmiseesee.pages.dev'] 网页地址 默认值 https://letmiseesee.pages.dev\n * @param [text=''] text 文本\n * @param [title='随笔记余生'] title 网站标题,缺省值\n * @description\n **/\n }, {\n key: \"share\",\n value: function share() {\n var _window2;\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'https://letmiseesee.pages.dev';\n var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var title = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '慧土灵核';\n if ((_window2 = window) !== null && _window2 !== void 0 && (_window2 = _window2.navigator) !== null && _window2 !== void 0 && _window2.share) window.navigator.share({\n url: url,\n text: text,\n title: title\n });\n }\n /**\n * 当前是否为手机设备\n **/\n }, {\n key: \"isPhone\",\n value: function isPhone() {\n var _window3;\n return !_assertClassBrand(_SysInfo_brand, this, _getMedia).call(this, 'any-hover: hover') && !_assertClassBrand(_SysInfo_brand, this, _getMedia).call(this, 'any-pointer: fine') && ((_window3 = window) === null || _window3 === void 0 || (_window3 = _window3.navigator) === null || _window3 === void 0 ? void 0 : _window3.maxTouchPoints) > 0;\n }\n\n /**\n * 当前设备是否为小平设备\n **/\n }, {\n key: \"isSmallScreen\",\n get: function get() {\n return _assertClassBrand(_SysInfo_brand, this, _getMedia).call(this, 'max-width: 576px') ? 'small' : _assertClassBrand(_SysInfo_brand, this, _getMedia).call(this, 'max-width: 996px') ? 'middle' : 'large';\n }\n\n /**\n * 是否为暗黑模式\n **/\n }, {\n key: \"isDark\",\n get: function get() {\n return _assertClassBrand(_SysInfo_brand, this, _getMedia).call(this, 'prefers-color-scheme: dark');\n }\n /**\n * 设备当前的旋转状态\n *\n * 只返回是否旋转\n **/\n }, {\n key: \"isOrientation\",\n get: function get() {\n var orientation = (screen.orientation || {}).type || /** @ts-expect-error: 兼容 moz 浏览器 */\n screen.mozOrientation || /** @ts-expect-error: 兼容 ms 浏览器 */\n screen.msOrientation;\n /**\n *\n * - portrait-primary 旋转 360\n * - portrait-secondary 旋转 180\n * - landscape-primary 旋转 90\n * - landscape-secondary 旋转 270\n *\n *\n */\n if (orientation === 'landscape-primary' || orientation === 'landscape-secondary') return false;\n return true;\n }\n }]);\n}();\nfunction _getMedia(str) {\n var _window$matchMedia$ma, _window4;\n return (_window$matchMedia$ma = (_window4 = window) === null || _window4 === void 0 ? void 0 : _window4.matchMedia(/:/.test(str) && !/\\(|\\)/.test(str) ? \"(\".concat(str, \")\") : str).matches) !== null && _window$matchMedia$ma !== void 0 ? _window$matchMedia$ma : false;\n}\nexport var sysInfo = new SysInfo();","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport React from 'react';\n'use client';\nimport { createContext, useContext, useEffect, useState } from 'react';\nimport { storageStore } from 'storage/storage-store';\nimport { manageCookie } from 'utilities/cookie';\nimport { sysInfo } from 'utilities/sys';\n\n\n/** 用于判断是否正确放置的 */\nvar defaultCall = function defaultCall() {\n return 'light';\n};\nvar ThemeColorModeContext = /*#__PURE__*/createContext({\n autoColorMode: true,\n colorModeClassName: 'en-light',\n colorMode: 'light',\n toggleColorMode: defaultCall,\n setColorMode: defaultCall,\n clearColorMode: function clearColorMode() {}\n});\n\n/**\n * 使用主题颜色模式\n *\n * ```ts\n * interface ThemeContextType {\n * autoColorMode: boolean;\n * colorMode: ColorMode;\n * colorModeClassName: string;\n * toggleColorMode: () => ColorMode;\n * setColorMode: (newColorMode: ColorMode) => ColorMode;\n * // 清理主题设置,让主题跟随系统\n * clearColorMode: () => void;\n * }\n * ```\n */\nexport function useColorMode() {\n var result = useContext(ThemeColorModeContext);\n if (result.setColorMode === defaultCall || result.toggleColorMode === defaultCall) {\n console.warn('use ColorMode 应当在 <ThemeColorModeProvider /> 内部使用');\n }\n return result;\n}\n\n/** */\nexport function ThemeColorModeProvider(_ref) {\n var children = _ref.children,\n initialTheme = _ref.initialTheme;\n /** 颜色类型 */\n var _useState = useState(initialTheme),\n _useState2 = _slicedToArray(_useState, 2),\n colorMode = _useState2[0],\n setColorMode = _useState2[1];\n /** 是否为自动 */\n var _useState3 = useState(true),\n _useState4 = _slicedToArray(_useState3, 2),\n auto = _useState4[0],\n setAuto = _useState4[1];\n /** 切换主题 */\n var toggleColorMode = function toggleColorMode() {\n /** 新的主题色值 */\n var newColorMode = colorMode === 'light' ? 'dark' : 'light';\n return setSpecifiedColorMode(newColorMode);\n };\n /** 自动切换 */\n var autoChange = function autoChange(newColorMode) {\n // 这是当前的\n var _auto = !storageStore.theme;\n if (_auto) {\n manageCookie.deleteItem('theme');\n storageStore.theme = '';\n } else manageCookie.setItem({\n keyItem: 'theme',\n value: newColorMode\n }); // 将值同步到 cookie ,以防止水合有误\n window.document.documentElement.setAttribute('data-theme', newColorMode);\n setAuto(_auto);\n };\n /** 设置指定的色值 */\n var setSpecifiedColorMode = function setSpecifiedColorMode(newColorMode) {\n if (['light', 'dark'].indexOf(newColorMode) < 0) {\n return colorMode;\n }\n storageStore.theme = newColorMode; // 将新的主题色值类型保存到本地\n // 设置新的值触发响应,新旧值不一致,自动触发 colorMode 更改的副作用 useEffect\n if (newColorMode !== colorMode) setColorMode(newColorMode);\n // 手动触发副作用\n else autoChange(colorMode);\n return newColorMode;\n };\n\n /** 移除指定,设置为跟随系统 */\n var clear = function clear() {\n setAuto(true); // 设置为跟随系统\n setColorMode(sysInfo.isDark ? 'dark' : 'light'); // 设置新的值\n storageStore.theme = ''; // 移除本地的值\n manageCookie.deleteItem('theme'); // 移除本地的 cookie\n };\n useEffect(function () {\n /** 本地储存的值 */\n var storageOldColorMode = storageStore.theme;\n setAuto(!storageOldColorMode);\n /** 当前设备是否处于暗黑模式 */\n var systemPrefersDark = sysInfo.isDark;\n // 有旧值存在\n if (storageOldColorMode) setSpecifiedColorMode(storageOldColorMode);else\n // 否则初始化为当前设备的值\n setColorMode(systemPrefersDark ? 'dark' : 'light');\n }, []);\n useEffect(function () {\n /** 当前的设备的暗黑模式是否开启 */\n var mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n /** 如果本地没有储存值,则认为是系统默认值,接受系统暗黑模式事件 */\n var handleSystemChange = function handleSystemChange(e) {\n return !storageStore.theme && setColorMode(e.matches ? 'dark' : 'light');\n };\n mediaQuery.addEventListener('change', handleSystemChange); // 监听\n return function () {\n return mediaQuery.removeEventListener('change', handleSystemChange);\n };\n }, []);\n useEffect(function () {\n autoChange(colorMode);\n }, [colorMode]);\n return /*#__PURE__*/ /** 派发数据 */React.createElement(ThemeColorModeContext.Provider, {\n value: {\n colorMode: colorMode,\n colorModeClassName: \"en-\".concat(colorMode),\n toggleColorMode: toggleColorMode,\n setColorMode: setSpecifiedColorMode,\n clearColorMode: clear,\n autoColorMode: auto\n }\n }, children);\n}","import { styled, css } from 'styled-components';\n\n/** 开关的内容包装 */\nexport var SwitchContent = styled.div.withConfig({\n displayName: \"SwitchContent\",\n componentId: \"sc-1i8tohq-0\"\n})([\"cursor:pointer;position:relative;top:0px;left:0px;color:#000;display:inline-block;width:54px;height:27px;margin:0;padding:0;vertical-align:text-bottom;background-color:transparent;background-image:linear-gradient(to right,rgb(90,90,90),rgba(70,120,240)),radial-gradient( circle closest-corner at 100% 50%,rgb(90,90,90),rgb(90,90,90) 100%,transparent 100% ),radial-gradient( circle closest-corner at 0% 50%,rgba(70,120,240),rgba(70,120,240) 100%,transparent 100% );background-size:40% 50%,20% 50%,20% 50%;background-position:50% 50%,13.25% 50%,85% 50%;background-repeat:no-repeat;overflow:hidden;&::before{content:'';position:absolute;top:10%;width:40%;height:80%;text-align:center;line-height:1.3;font-size:40%;border-radius:50%;transition:all 1s;\", \"}\"], function (_ref) {\n var $type = _ref.$type;\n return $type === 'left' && css([\"left:15%;background-color:rgb(120,120,120);\"]) || css([\"left:45%;background-color:rgba(35,70,247,1);\"]);\n});","var _templateObject, _templateObject2;\nfunction _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\nimport { css, styled } from 'styled-components';\nexport var SwitchLabel = styled.div.withConfig({\n displayName: \"SwitchLabel\",\n componentId: \"sc-yl5nc4-0\"\n})([\"display:inline-block;vertical-align:super;transition:color 1.28s;\", \"\"], function (_ref) {\n var $type = _ref.$type;\n return $type === true && css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n color: rgb(55\\uFF0C80\\uFF0C210);\\n font-weight: 800;\\n \"]))) || css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n color: #666;\\n \"])));\n});","import { styled } from 'styled-components';\nexport var SwitchContainer = styled.div.withConfig({\n displayName: \"SwitchContainer\",\n componentId: \"sc-ixe4ua-0\"\n})([\"display:inline-block;padding:4px 12px;\"]);","var _excluded = [\"value\", \"change\", \"children\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport React from 'react';\n'use client';\nimport { isFunction } from 'a-type-of-js';\nimport { SwitchContent } from './SwitchContent';\nimport { SwitchContainer } from './SwitchContainer';\nimport { SwitchLabel } from './SwitchLabel';\n\n/**\n * 开关\n */\nexport function Switch(_ref) {\n var value = _ref.value,\n change = _ref.change,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n var changed = function changed(e) {\n e.preventDefault();\n e.stopPropagation();\n if (isFunction(change)) Reflect.apply(change, null, [e]);\n };\n return /*#__PURE__*/React.createElement(SwitchContainer, null, children && /*#__PURE__*/React.createElement(SwitchLabel, {\n $type: value\n }, children), /*#__PURE__*/React.createElement(SwitchContent, _extends({\n $type: value ? 'right' : 'left',\n onClick: changed\n }, props)));\n}"],"names":["y","x","module","exports","__WEBPACK_EXTERNAL_MODULE_a_type_of_js_83866600__","__webpack_require__","d","createProgram","vertexSource","fragmentSource","gl","_uniformValues","compileSource","type","source","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","Error","getShaderInfoLog","match","program","id","uniforms","locations","attachShader","VERTEX_SHADER","FRAGMENT_SHADER","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","enableVertexAttribArray","shaderCode","regex","isNull","exec","name","getUniformLocation","bindTexture","texture","unit","arguments","length","undefined","this","activeTexture","TEXTURE0","TEXTURE_2D","isNoneBackGroundColor","color","isNoneBackgroundImage","src","loadConfig","_this","buildFail","initState","extensions","Object","fromEntries","reduce","previousValue","currentName","currentExtension","getExtension","push","OES_texture_float","configs","createConfig","glType","arrayType","nameLinear","linearSupport","FLOAT","Float32Array","OES_texture_half_float","HALF_FLOAT_OES","createTexture","framebuffer","createFramebuffer","bindFramebuffer","FRAMEBUFFER","texParameteri","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","config","i","texImage2D","RGBA","framebufferTexture2D","COLOR_ATTACHMENT0","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","_typeof","o","Symbol","iterator","constructor","prototype","_defineProperties","e","r","t","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","_defineProperty","value","toPrimitive","call","TypeError","String","_toPrimitive","_cum","RipplesData","canvas","a","n","_classCallCheck","getContext","Reflect","apply","defaultData","imgUrl","resolution","dropRadius","perturbance","interactive","crossOrigin","playingState","accelerating","raindropsTimeInterval","idleFluctuations","darkMode","_classPrivateFieldSet","s","set","_assertClassBrand","_classPrivateFieldGet","get","has","_toConsumableArray","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","from","_iterableToArray","toString","slice","test","_unsupportedIterableToArray","_nonIterableSpread","freeze","_build","times","data","list","diameter","radius","cells","l","Math","pow","_x","_loop","column","_y","isInCircle","ceil","sqrt","colorStart","colorEnd","opacityStart","opacityEnd","noise","_x2","_y2","_x3","_y3","_x4","_y4","_x5","_y5","k","concat","circleDataList","WeakMap","_class","_checkPrivateRedeclaration","_classPrivateFieldInitSpec","_this$cum","_this$cum2","createCanvasElementBySize","width","height","document","createElement","canvasR","ctx","ctxR","clearRect","globalAlpha","putImageData","Date","now","imageData","ImageData","_circleDataList$data","row","subscript","floor","ele","createDefault","fillStyle","fillRect","drawImage","globalCompositeOperation","setTransparentTexture","_options$darkMode","executeImmediately","fadeData","options","backgroundInfo","toBeList","tag","includeNumbers","includeUppercaseLetters","build","isDark","resource","kind","run","getNewImage","lastStyle","urlMatch","isString","backgroundImage","getNewColor","originStyle","backgroundColor","createBackgroundColor","renderData","_fadeData$backgroundI","drawColor","beginPath","fill","isTransitioning","isEmptyArray","nestDrawImage","createLinearGradient","colorList","replace","split","map","trim","endsWith","filter","startsWith","gradient","forEach","addColorStop","join","loadImage","lastUseStyle","newImageSource","imageSource","image","img","Image","createImageBySrc","onload","clearTimeout","transparentId","abs","onerror","hideCssBackground","parentElement","style","setProperty","getBackgroundStyles","element","computedStyle","window","getComputedStyle","inlineBackground","background","inlineBackgroundColor","inlineBackgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","backgroundClip","backgroundOrigin","backgroundAttachment","position","parseInt","restoreCssBackground","RipplesRenderData","callback","_Ripples","_canvas$parentElement","body","mutationObserver","MutationObserver","mutations","mutation","target","visible","lastStyleValues","values","currentStyle","currentStyleValues","difference","isNoneImage","isNoneColor","observe","subtree","attributes","attributeFilter","resizeObserver","ResizeObserver","entries","animationFrameId","cancelAnimationFrame","events","_this$mutationObserve","_this$mutationObserve2","_this$resizeObserver","keys","removeEventListener","removeAttribute","takeRecords","disconnect","error","computeTextureBoundaries","backgroundWidth","backgroundHeight","parentBackgroundPosition","isPercentage","center","top","bottom","left","right","container","innerHeight","screenX","screenY","innerWidth","scrollWidth","scrollHeight","_ref","scale","max","_scale","min","_backgroundSize","parseFloat","Number","backgroundX","backgroundY","renderProgram","topLeft","bottomRight","clientWidth","clientHeight","maxSide","containerRatio","drawQuad","bindBuffer","ARRAY_BUFFER","quad","vertexAttribPointer","drawArrays","TRIANGLE_FAN","draw","textures","backgroundTexture","viewport","enable","BLEND","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","uniform1f","uniform2fv","uniform1i","samplerBackground","samplerRipples","disable","swapBufferIndices","bufferWriteIndex","bufferReadIndex","update","updateProgram","framebuffers","render","running","lastRunningState","styles","show","raindropsFall","fade","hide","requestAnimationFrame","dropAtPointer","pointer","strength","borderLeft","borderLeftWidth","borderTop","borderTopWidth","parentPosition","getBoundingClientRect","dropX","clientX","dropY","clientY","drop","setupPointerEvents","_dropAtPointer","big","lastRaindropsFallTime","mousemove","touchmove","touchstart","touches","mousedown","addEventListener","passive","vertexShader","initShaders","textureDelta","dropProgram","delta","initTexture","_backgroundTexture","pixelStorei","UNPACK_FLIP_Y_WEBGL","LINEAR","bindImage","textImageSource","isPowerOfTwo","isZero","wrapping","REPEAT","UNSIGNED_BYTE","initGL","_resolution","textureData","createBuffer","bufferData","STATIC_DRAW","clearColor","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","lastDrawImage","setCanvasSize","reloadBackground","offsetWidth","offsetHeight","destroy","parentWidth","parentHeight","longestSide","dropPosition","_accelerating","_interactive","_perturbance","_dropRadius","_idleFluctuations","_raindropsTimeInterval","_darkMode","UseOptions","_options$playingState","Boolean","isBoolean","isFinite","isUndefined","forbiddenRunSide","widthIsEqual","heightIsEqual","sizeEqual","newGradientValue","newBackgroundColor","runSide","setTimeout","exitFade","drawProgress","shift","isBusinessEmptyString","currentDrawImage","message","_mediaQuery","_FadeData_brand","WeakSet","FadeData","add","matchMedia","matches","_mediaQueryChange","_","ev","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","_isNativeReflectConstruct","valueOf","construct","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","Ripples","_RipplesData","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_callSuper","defaults","withThisReload","isFalse","zIndex","pointerEvents","setCanvasStyle","create","_inherits","getValue","size","visibility","property","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","obj","prop","hasOwnProperty","_slicedToArray","_arrayWithHoles","u","f","next","done","_iterableToArrayLimit","_nonIterableRest","useLazyRipples","option","ripples","isUnmounted","isLoaded","_useState2","isLoading","setIsLoading","_useState4","setError","unmounted","current","_ripples$current","then","err","useRipples","useOptionUpdate","ripplesRef","oldOption","v","ov","checkArr","some","Content","div","withConfig","displayName","componentId","_excluded","_extends","assign","BackgroundRipple","ref","children","props","indexOf","_objectWithoutPropertiesLoose","propertyIsEnumerable","_objectWithoutProperties","toggleState","_ripplesRef$current","changePlayingState","state","_ripplesRef$current$o","_ripplesRef$current2","pause","_ripplesRef$current3","j","_ripplesRef$current4","LazyBackgroundRipple","_ripples$current$opti","_ripples$current2","_ripples$current3","_ripples$current4","useTimeId","timeId","useAnimationFrame","_option$immediately","_option$once","immediately","once","isPlainObject","animationFrame","noun","time","cancelTime","firstRunEffect","result","cancel","canceled","performance","_time","useInputIsComposing","inputRef","isComposing","_i","handleCompositionStart","handleCompositionEnd","_ref$loadingSrc","loadingSrc","className","_useSrcChange","fallbackSrc","resultSrc","setResultSrc","loadComplete","setLoadComplete","useSrcChange","localStorage","getItem","JSON","parse","del","removeItem","storageMainLogic","setItem","stringify","getAndDel","setSession","sessionStorage","getSession","delSession","storageStore","theme","newTheme","includes","token","newToken","manageCookie","keyItem","decodeURIComponent","cookie","RegExp","encodeURIComponent","end","path","domain","secure","expires","typeOf","Infinity","toUTCString","deleteItem","exist","keyList","_SysInfo_brand","_getMedia","str","_window$matchMedia$ma","_window4","sysInfo","SysInfo","_classPrivateMethodInitSpec","_window","navigator","vibrate","_window2","url","text","title","share","_window3","maxTouchPoints","orientation","screen","mozOrientation","msOrientation","defaultCall","ThemeColorModeContext","autoColorMode","colorModeClassName","colorMode","toggleColorMode","setColorMode","clearColorMode","useColorMode","console","warn","ThemeColorModeProvider","initialTheme","auto","setAuto","autoChange","newColorMode","_auto","documentElement","setAttribute","setSpecifiedColorMode","storageOldColorMode","systemPrefersDark","mediaQuery","handleSystemChange","Provider","_templateObject","_templateObject2","SwitchContent","$type","SwitchContainer","_taggedTemplateLiteral","raw","SwitchLabel","Switch","change","onClick","preventDefault","stopPropagation","isFunction"],"sourceRoot":""}
|