enr 0.2.3-alpha.2
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/209.mjs +10 -0
- package/209.mjs.map +1 -0
- package/LICENSE +25 -0
- package/README.md +139 -0
- package/client.mjs +10 -0
- package/components/ThemeContext/index.d.ts +11 -0
- package/components/ThemeContext/types.d.ts +26 -0
- package/components/button/button.d.ts +10 -0
- package/components/button/index.d.ts +9 -0
- package/components/image/index.d.ts +11 -0
- package/components/image/types.d.ts +13 -0
- package/components/image/useSrcChange.d.ts +11 -0
- package/components/layout/content.d.ts +17 -0
- package/components/layout/footer.d.ts +21 -0
- package/components/layout/get-value.d.ts +10 -0
- package/components/layout/header.d.ts +23 -0
- package/components/layout/index.d.ts +8 -0
- package/components/layout/is-fragment.d.ts +9 -0
- package/components/layout/layout.d.ts +55 -0
- package/components/layout/sidebar.d.ts +29 -0
- package/components/layout/types.d.ts +99 -0
- package/components/marquee/MarqueeEle.d.ts +15 -0
- package/components/marquee/index.d.ts +7 -0
- package/components/marquee/type.d.ts +9 -0
- package/components/menu/index.d.ts +6 -0
- package/components/menu/menu.d.ts +6 -0
- package/components/ripples/Content.d.ts +8 -0
- package/components/ripples/LazyRippleEle.d.ts +42 -0
- package/components/ripples/RipplesEle.d.ts +42 -0
- package/components/ripples/index.d.ts +11 -0
- package/components/ripples/types.d.ts +17 -0
- package/components/ripples/useOptionUpdate.d.ts +12 -0
- package/components/shared/EnLayoutContent/index.d.ts +19 -0
- package/components/shared/EnLayoutContent/types.d.ts +17 -0
- package/components/switch/SwitchContainer.d.ts +7 -0
- package/components/switch/SwitchContent.d.ts +10 -0
- package/components/switch/SwitchLabel.d.ts +9 -0
- package/components/switch/index.d.ts +14 -0
- package/customHooks/use-xcn/index.d.ts +14 -0
- package/customHooks/useAnimationFrame.d.ts +58 -0
- package/customHooks/useInputIsComposing.d.ts +44 -0
- package/customHooks/useRipples/buildBackground/create-background-color.d.ts +9 -0
- package/customHooks/useRipples/buildBackground/create-linear-gradient.d.ts +9 -0
- package/customHooks/useRipples/buildBackground/default-background/_createImageData.d.ts +13 -0
- package/customHooks/useRipples/buildBackground/default-background/circleDataList.d.ts +24 -0
- package/customHooks/useRipples/buildBackground/default-background/createCanvasElementBySize.d.ts +8 -0
- package/customHooks/useRipples/buildBackground/default-background/createDefault.d.ts +8 -0
- package/customHooks/useRipples/buildBackground/default-background/index.d.ts +18 -0
- package/customHooks/useRipples/buildBackground/load-image.d.ts +19 -0
- package/customHooks/useRipples/buildBackground/run-side.d.ts +15 -0
- package/customHooks/useRipples/buildBackground/type.d.ts +37 -0
- package/customHooks/useRipples/buildBackground/utils/bind-image.d.ts +10 -0
- package/customHooks/useRipples/buildBackground/utils/create-canvas-element.d.ts +9 -0
- package/customHooks/useRipples/buildBackground/utils/create-image-by-src.d.ts +8 -0
- package/customHooks/useRipples/buildBackground/utils/get-background-style.d.ts +9 -0
- package/customHooks/useRipples/buildBackground/utils/hide-css-background.d.ts +16 -0
- package/customHooks/useRipples/buildBackground/utils/restore-css-background.d.ts +13 -0
- package/customHooks/useRipples/callback/can-side.d.ts +14 -0
- package/customHooks/useRipples/callback/destroy.d.ts +9 -0
- package/customHooks/useRipples/callback/drop.d.ts +9 -0
- package/customHooks/useRipples/callback/extract-url.d.ts +8 -0
- package/customHooks/useRipples/callback/fade.d.ts +9 -0
- package/customHooks/useRipples/callback/get-new-image.d.ts +14 -0
- package/customHooks/useRipples/callback/reload-background.d.ts +12 -0
- package/customHooks/useRipples/callback/scale.d.ts +8 -0
- package/customHooks/useRipples/index.d.ts +45 -0
- package/customHooks/useRipples/init/index.d.ts +11 -0
- package/customHooks/useRipples/init/initEvent.d.ts +11 -0
- package/customHooks/useRipples/init/initShaders.d.ts +13 -0
- package/customHooks/useRipples/init/initTexture.d.ts +13 -0
- package/customHooks/useRipples/render/computeTextureBoundaries.d.ts +9 -0
- package/customHooks/useRipples/render/draw.d.ts +13 -0
- package/customHooks/useRipples/render/drawQuad.d.ts +13 -0
- package/customHooks/useRipples/render/dropAtPointer.d.ts +13 -0
- package/customHooks/useRipples/render/index.d.ts +12 -0
- package/customHooks/useRipples/render/swapBufferIndices.d.ts +11 -0
- package/customHooks/useRipples/render/update.d.ts +11 -0
- package/customHooks/useRipples/rippersData/defaultData.d.ts +11 -0
- package/customHooks/useRipples/rippersData/fadeData.d.ts +51 -0
- package/customHooks/useRipples/rippersData/index.d.ts +46 -0
- package/customHooks/useRipples/rippersData/loadConfig.d.ts +25 -0
- package/customHooks/useRipples/rippersData/renderData.d.ts +80 -0
- package/customHooks/useRipples/rippersData/useOptions.d.ts +91 -0
- package/customHooks/useRipples/rippersData/vertexSource.d.ts +34 -0
- package/customHooks/useRipples/ripple.html.d.ts +12 -0
- package/customHooks/useRipples/ripplesClass.d.ts +57 -0
- package/customHooks/useRipples/tools.d.ts +37 -0
- package/customHooks/useRipples/types.d.ts +209 -0
- package/customHooks/useRipples/use-lazy-ripple.d.ts +15 -0
- package/customHooks/useTimeId.d.ts +50 -0
- package/index.client.d.ts +20 -0
- package/index.d.ts +8 -0
- package/index.mjs +3 -0
- package/index.server.d.ts +8 -0
- package/layoutUtil.mjs +10 -0
- package/layoutUtil.mjs.map +1 -0
- package/package.json +82 -0
- package/server.mjs +8 -0
- package/server.mjs.map +1 -0
- package/storage/main-logic .d.ts +26 -0
- package/storage/storage-store.d.ts +14 -0
- package/styles/common.css +1012 -0
- package/styles/common.scss +453 -0
- package/styles/reset.scss +93 -0
- package/styles/respond.scss +54 -0
- package/styles/root.scss +212 -0
- package/styles/vars-color.scss +247 -0
- package/utilities/cookie.d.ts +28 -0
- package/utilities/sys.d.ts +41 -0
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"module": "index.mjs",
|
|
3
|
+
"types": "index.d.ts",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "🥜",
|
|
6
|
+
"email": "earthnut.dev@outlook.com",
|
|
7
|
+
"url": "https://earthnut.dev"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"name": "enr",
|
|
11
|
+
"version": "0.2.3-alpha.2",
|
|
12
|
+
"description": "earthnut 的 react ui",
|
|
13
|
+
"overrides": {
|
|
14
|
+
"css-loader": "6.11.0"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"a-element-inline-style": "^0.1.1",
|
|
18
|
+
"a-js-tools": "^1.0.12",
|
|
19
|
+
"a-type-of-js": "^1.0.7",
|
|
20
|
+
"babel-loader": "^10.0.0",
|
|
21
|
+
"xcn": "^0.1.3"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"components",
|
|
25
|
+
"customHooks",
|
|
26
|
+
"storage",
|
|
27
|
+
"styles",
|
|
28
|
+
"utilities",
|
|
29
|
+
"209.mjs",
|
|
30
|
+
"209.mjs.map",
|
|
31
|
+
"client.mjs",
|
|
32
|
+
"client.mja.map",
|
|
33
|
+
"index.client.d.ts",
|
|
34
|
+
"index.d.ts",
|
|
35
|
+
"index.mjs",
|
|
36
|
+
"index.server.d.ts",
|
|
37
|
+
"layoutUtil.mjs",
|
|
38
|
+
"layoutUtil.mjs.map",
|
|
39
|
+
"server.mjs",
|
|
40
|
+
"server.mjs.map",
|
|
41
|
+
"vendors.mjs",
|
|
42
|
+
"vendors.mjs.map"
|
|
43
|
+
],
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"types": "./index.d.ts",
|
|
47
|
+
"import": "./index.mjs"
|
|
48
|
+
},
|
|
49
|
+
"./client": {
|
|
50
|
+
"types": "./index.client.d.ts",
|
|
51
|
+
"import": "./client.mjs"
|
|
52
|
+
},
|
|
53
|
+
"./server": {
|
|
54
|
+
"types": "./index.server.d.ts",
|
|
55
|
+
"import": "./server.mjs"
|
|
56
|
+
},
|
|
57
|
+
"./scss": "./styles/common.scss",
|
|
58
|
+
"./css": "./styles/common.css"
|
|
59
|
+
},
|
|
60
|
+
"keywords": [
|
|
61
|
+
"earthnut"
|
|
62
|
+
],
|
|
63
|
+
"homepage": "https://earthnut.dev/quickUse",
|
|
64
|
+
"bugs": {
|
|
65
|
+
"url": "https://github.com/earthnutDev/earthnut/issues",
|
|
66
|
+
"email": "earthnut.dev@outlook.com"
|
|
67
|
+
},
|
|
68
|
+
"repository": {
|
|
69
|
+
"type": "git",
|
|
70
|
+
"url": "git+https://github.com/earthnutDev/earthnut.git"
|
|
71
|
+
},
|
|
72
|
+
"publishConfig": {
|
|
73
|
+
"access": "public",
|
|
74
|
+
"registry": "https://registry.npmjs.org/"
|
|
75
|
+
},
|
|
76
|
+
"license": "MIT",
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"react": ">= 17",
|
|
79
|
+
"react-dom": ">= 17",
|
|
80
|
+
"styled-components": ">= 6"
|
|
81
|
+
}
|
|
82
|
+
}
|
package/server.mjs
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* earthnut@server.mjs
|
|
4
|
+
* Copyright (c) 2025 earthnut.dev
|
|
5
|
+
* 请在项目根参看详细许可证明
|
|
6
|
+
*/
|
|
7
|
+
import{xcn as e}from"xcn";import{EnLayoutContent as t,LayoutContentContainer as r,LayoutContentWrapper as n,LayoutFooterContent as a,LayoutHeaderContainer as o,LayoutSideBarContainer as l}from"./layoutUtil.mjs";import{Children as i,Fragment as u,cloneElement as c,forwardRef as s,isValidElement as f}from"react";import{isNumber as y,isString as p,isTrue as m}from"a-type-of-js";var h,v={363:(h,v,d)=>{function b(){return e.apply(void 0,arguments)}d.d(v,{wb:()=>W,Ht:()=>_,zE:()=>R,n5:()=>w,AX:()=>N,PE:()=>W,A1:()=>_,cZ:()=>R,KL:()=>w,nb:()=>N,lk:()=>b});var O=["className","children","height","noSticky"];function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(null,arguments)}var w=s(function(t,r){var n=t.className,a=t.children,l=(t.height,t.noSticky,function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t,O));return React.createElement(o,g({ref:r,className:e(["en-layout-header"],n)},l,{"data-earthnut-ui":"layout-header"}),a)});w.displayName="LayoutHeader";var j=["className","width","right","full"];function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},P.apply(null,arguments)}var N=s(function(t,r){var n=t.className,a=(t.width,t.right,t.full,function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t,j));return React.createElement(l,P({className:e("en-layout-side",n),ref:r},a,{"data-earthnut-ui":"layout-side-bar"}))});N.displayName="LayoutSideBar";var E=["className"];function S(){return S=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},S.apply(null,arguments)}var _=s(function(t,n){var a=t.className,o=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t,E);return React.createElement(r,S({className:e("en-layout-main",a)},o,{"data-earthnut-ui":"layout-content"}))});_.displayName="LayoutContent";var x=["className","height"];function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},L.apply(null,arguments)}var R=s(function(t,r){var n=t.className,o=(t.height,function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t,x));return React.createElement(a,L({ref:r},o,{className:e("en-layout-footer",n),"data-earthnut-ui":"layout-footer"}))});function k(e){return y(e)||parseInt(e)===Number(e)?e+"px":e||0}R.displayName="LayoutFooter";var H=d(209);function $(e){return $="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$(e)}var F=["className","children","style","width","height","classes"];function I(){return I=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},I.apply(null,arguments)}function A(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?A(Object(r),!0).forEach(function(t){B(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):A(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function B(e,t,r){return(t=function(e){var t=function(e){if("object"!=$(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=$(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==$(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function D(e){return y(e)?e>0&&e<=1?"".concat(100*e,"%"):e:/^0\.\d+$/.test(e)?"".concat(100*parseFloat(e),"%"):e}var W=s(function(r,a){var o,l,s,y,h=r.className,v=r.children,d=r.style,b=r.width,O=void 0===b?"100%":b,g=r.height,j=void 0===g?"100%":g,P=r.classes,E=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(r,F),S=i.count(v),x="simple",L=!1,$=!1,A=!1,B=!1,z=!1,K=150,T="2.8rem",X="2rem",Z=!1,q="en-layout-header",U="en-layout-content",G="en-layout-main",J="en-layout-sidebar",M="en-layout-footer";1===S&&i.forEach(v,function(e){var t;if(f(e)){var r,n=i.only(e);f(r=n)&&r.type===u&&(v=i.toArray(null==e||null===(t=e.props)||void 0===t?void 0:t.children))}}),O=D(O),j=D(j),(0,H.H)("Layout 执行渲染"),i.forEach(v,function(t){if(f(t))if($||t.type!==w)if(A||t.type!==N)if(B||t.type!==_)if(B||t.type!==W){if(!z&&t.type===R){var r=t;X=r.props.height||X,y=c(r,{className:e(M,r.props.className)}),z=!0}}else{var a=t;s=React.createElement(n,{"data-earthnut-ui":"layout-content",className:e(G,"en-layout-main")},a),B=!0}else s=c(t,{className:e(G,t.props.className)}),B=!0;else{var i=t,u=i.props;K=u.width||K,x=u.right&&u.full?"side-right-full":u.right?"side-right":u.full?"side-full":"simple",Z=m(u.full),l=c(i,{className:e(J,i.props.className)}),A=!0}else{var p,h=t,v=h.props;T=v.height||T,L=null!==(p=v.noSticky)&&void 0!==p&&p,o=c(h,{className:e(q,h.props.className)}),$=!0}});var Q=$&&A&&B&&z&&"".concat(x,"-all")||$&&B&&A&&"".concat(x,"-no-footer")||A&&B&&z&&"".concat(x,"-no-header")||$&&B&&z&&"no-sidebar"||B&&z&&"only-footer"||B&&$&&"only-header"||B&&A&&(Z=!0)&&"".concat(x,"-only-side")||"simple",V=C({layoutHeight:O,layoutWith:j,sideBarWidth:K,headerHeight:T,footerHeight:X},E.theme||{}),Y=/side.*full/.test(x);return React.createElement(t,I({ref:a,$headerNoSticky:L,$layoutType:Q,$header:q,$sidebar:J,$main:G,$content:U,$footer:M,className:e(Z&&"en-layout-side-full","en-layout-".concat(Q),h,P),style:C({"--layout-self-width":k(O),"--layout-self-height":k(j),"--layout-width":k(p(O)&&O.endsWith("%")?"100%":O),"--layout-height":k(p(j)&&j.endsWith("%")?"100%":j),"--layout-side-bar-width":k(K),"--layout-header-height":k(T),"--layout-footer-height":k(X)},d),theme:V},E,{"data-earthnut-ui":"layout"}),Y?React.createElement(React.Fragment,null,l,o,s,y):React.createElement(React.Fragment,null,o,z?React.createElement("div",{className:e(U),"data-earthnut-ui":"layout-with-foot-content"},l,s):React.createElement(React.Fragment,null,l,s),y))});W.displayName="Layout"}},d={};function b(e){var t=d[e];if(void 0!==t)return t.exports;var r=d[e]={exports:{}};return v[e](r,r.exports,b),r.exports}b.m=v,h=[],b.O=(e,t,r,n)=>{if(!t){var a=1/0;for(u=0;u<h.length;u++){for(var[t,r,n]=h[u],o=!0,l=0;l<t.length;l++)(!1&n||a>=n)&&Object.keys(b.O).every(e=>b.O[e](t[l]))?t.splice(l--,1):(o=!1,n<a&&(a=n));if(o){h.splice(u--,1);var i=r();void 0!==i&&(e=i)}}return e}n=n||0;for(var u=h.length;u>0&&h[u-1][2]>n;u--)h[u]=h[u-1];h[u]=[t,r,n]},b.d=(e,t)=>{for(var r in t)b.o(t,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},b.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var O,g=b;export{g as __webpack_require__};O={750:0},b.C=e=>{var t,r,{__webpack_esm_ids__:n,__webpack_esm_modules__:a,__webpack_esm_runtime__:o}=e,l=0;for(t in a)b.o(a,t)&&(b.m[t]=a[t]);for(o&&o(b);l<n.length;l++)r=n[l],b.o(O,r)&&O[r]&&O[r][0](),O[n[l]]=0;b.O()},b.O.j=e=>0===O[e];import*as w from"./209.mjs";b.C(w);var j=b.O(void 0,[209],()=>b(363));const P=(j=b.O(j)).wb,N=j.Ht,E=j.zE,S=j.n5,_=j.AX,x=j.PE,L=j.A1,R=j.cZ,k=j.KL,H=j.nb,$=j.lk;export{P as EnLayout,N as EnLayoutContent,E as EnLayoutFooter,S as EnLayoutHeader,_ as EnLayoutSideBar,x as Layout,L as LayoutContent,R as LayoutFooter,k as LayoutHeader,H as LayoutSideBar,$ as _en};
|
|
8
|
+
//# sourceMappingURL=server.mjs.map
|
package/server.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.mjs","mappings":"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","sources":["webpack://earthnut/webpack/runtime/chunk loaded","webpack://earthnut/./customHooks/use-xcn/index.ts","webpack://earthnut/./components/layout/header.tsx","webpack://earthnut/./components/layout/sidebar.tsx","webpack://earthnut/./components/layout/content.tsx","webpack://earthnut/./components/layout/footer.tsx","webpack://earthnut/./components/layout/get-value.ts","webpack://earthnut/./components/layout/layout.tsx","webpack://earthnut/./components/layout/is-fragment.ts","webpack://earthnut/webpack/bootstrap","webpack://earthnut/webpack/runtime/define property getters","webpack://earthnut/webpack/runtime/hasOwnProperty shorthand","webpack://earthnut/webpack/runtime/export webpack runtime","webpack://earthnut/webpack/runtime/import chunk loading","webpack://earthnut/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/** 其实这并不是一个自定义钩子 */\nimport { EnTypeofClassNameItem, EnXcn, xcn } from 'xcn';\n\ntype EnClassName =\n | 'en-flex'\n | 'en-flex-row'\n | 'en-flex-row-reverse'\n | 'en-flex-column'\n | 'en-flex-column-reverse'\n | 'en-flex-wrap'\n | 'en-full-container'\n | 'en-inline-block'\n | 'en-padding-horizontal-4'\n | 'en-padding-horizontal-8'\n | 'en-padding-horizontal-12'\n | 'en-padding-horizontal-16'\n | 'en-padding-horizontal-20'\n | 'en-padding-horizontal-24'\n | 'en-padding-horizontal-28'\n | 'en-padding-horizontal-32'\n | 'en-padding-horizontal-36'\n | 'en-padding-horizontal-40'\n | 'en-padding-vertical-4'\n | 'en-padding-vertical-8'\n | 'en-padding-vertical-12'\n | 'en-padding-vertical-16'\n | 'en-padding-vertical-20'\n | 'en-padding-vertical-24'\n | 'en-padding-vertical-28'\n | 'en-padding-vertical-32'\n | 'en-padding-vertical-36'\n | 'en-padding-vertical-40'\n | 'en-padding-4'\n | 'en-padding-8'\n | 'en-padding-12'\n | 'en-padding-16'\n | 'en-padding-20'\n | 'en-padding-24'\n | 'en-padding-28'\n | 'en-padding-32'\n | 'en-padding-36'\n | 'en-padding-40'\n | 'en-margin-horizontal-4'\n | 'en-margin-horizontal-8'\n | 'en-margin-horizontal-12'\n | 'en-margin-horizontal-16'\n | 'en-margin-horizontal-20'\n | 'en-margin-horizontal-24'\n | 'en-margin-horizontal-28'\n | 'en-margin-horizontal-32'\n | 'en-margin-horizontal-36'\n | 'en-margin-horizontal-40'\n | 'en-margin-vertical-4'\n | 'en-margin-vertical-8'\n | 'en-margin-vertical-12'\n | 'en-margin-vertical-16'\n | 'en-margin-vertical-20'\n | 'en-margin-vertical-24'\n | 'en-margin-vertical-28'\n | 'en-margin-vertical-32'\n | 'en-margin-vertical-36'\n | 'en-margin-vertical-40'\n | 'en-margin-4'\n | 'en-margin-8'\n | 'en-margin-12'\n | 'en-margin-16'\n | 'en-margin-20'\n | 'en-margin-24'\n | 'en-margin-28'\n | 'en-margin-32'\n | 'en-margin-36'\n | 'en-margin-40'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-box-shadow-light-red100'\n | 'en-border-radius-4'\n | 'en-border-radius-8'\n | 'en-border-radius-12'\n | 'en-border-radius-16'\n | 'en-border-radius-20'\n | 'en-border-radius-24'\n | 'en-border-radius-28'\n | 'en-border-radius-32'\n | 'en-border-radius-36'\n | 'en-border-radius-40'\n | 'en-center'\n | 'en-dust'\n | 'en-text-in-one-line'\n | 'en-text-in-one-line-hide'\n | 'en-text-in-two-line'\n | 'en-color-text'\n | 'en-bg-red'\n | 'en-float-left'\n | 'en-float'\n | 'en-float-right'\n | 'en-clear-float'\n | 'en-clear'\n | 'en-loading'\n | 'en-text-center'\n | 'en-text-right'\n | 'eb-text-small'\n | 'en-relative'\n | 'en-user-select-text'\n | 'en-cursor-pointer';\n\n/** 在 xcn 中使用 earthnut 样式类 */\nexport function _en<T extends EnClassName[]>(\n ...classNameList: T\n): EnXcn<{\n [K in keyof T]: EnTypeofClassNameItem<T[K]>;\n}> {\n return xcn(...classNameList);\n}\n","import { LayoutHeaderProps } from './types';\nimport { xcn } from 'xcn';\nimport { LayoutHeaderContainer } from 'components/shared/EnLayoutContent';\nimport { forwardRef } from 'react';\n\n/**\n *\n * layout header\n *\n * 布局头部\n *\n * @param className 自定义类名\n * @param height 高度\n * 缺省值为 2.8rem,当未在 `Layout` 中使用,该值不起作用\n * @param noSticky 是否取消悬挂粘连\n * 缺省值为 false\n * @param props 其他属性\n * @returns ReactElement\n */\nconst InternalValueH = forwardRef<\n HTMLDivElement,\n LayoutHeaderProps\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(({ className, children, height, noSticky, ...props }, ref) => {\n return (\n <LayoutHeaderContainer\n ref={ref}\n className={xcn(['en-layout-header'], className)}\n {...props}\n data-earthnut-ui=\"layout-header\"\n >\n {children}\n </LayoutHeaderContainer>\n );\n});\n\nInternalValueH.displayName = 'LayoutHeader';\n\nexport { InternalValueH };\n","import { LayoutSideBarProps } from './types';\nimport { xcn } from 'xcn';\nimport { LayoutSideBarContainer } from 'components/shared/EnLayoutContent';\nimport { forwardRef } from 'react';\n\n/**\n *\n * children side bar\n *\n * 侧边栏\n *\n *\n * @param children 子元素\n * @param ref 组件引用\n * @param props 组件属性\n * @param className 自定义类名\n * @param width 侧边栏的宽度\n * 缺省值为 `150px`\n * @param right 是否居右\n * 缺省值为 `false`\n * @param full 是否占用所有空间\n * 缺省值为 `false`\n * @returns `ReactElement`;\n *\n */\nconst InternalValueS = forwardRef<\n HTMLDivElement,\n LayoutSideBarProps\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(({ className, width = 150, right = false, full = false, ...props }, ref) => {\n return (\n <LayoutSideBarContainer\n className={xcn('en-layout-side', className)}\n ref={ref}\n {...props}\n data-earthnut-ui=\"layout-side-bar\"\n />\n );\n});\n\nInternalValueS.displayName = 'LayoutSideBar';\n\nexport { InternalValueS };\n","import { xcn } from 'xcn';\nimport { LayoutContentContainer } from 'components/shared/EnLayoutContent';\nimport { forwardRef, HTMLAttributes } from 'react';\n\n/**\n *\n * layout content\n *\n *\n * @param {string} className 布局的类名\n *\n */\nconst InternalValueC = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <LayoutContentContainer\n // ref={ref}\n className={xcn('en-layout-main', className)}\n {...props}\n data-earthnut-ui=\"layout-content\"\n />\n );\n },\n);\n\nInternalValueC.displayName = 'LayoutContent';\n\nexport { InternalValueC };\n","import { LayoutFooterProps } from './types';\nimport { xcn } from 'xcn';\nimport { LayoutFooterContent } from 'components/shared/EnLayoutContent';\nimport { forwardRef } from 'react';\n\n/**\n *\n * layout footer\n *\n * 布局底部\n *\n * @param className 自定义类名\n * @param height 自定义高度\n * @param props 其他属性\n * @returns ReactElement\n *\n */\nconst InternalValueF = forwardRef<\n HTMLDivElement,\n LayoutFooterProps\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(({ className, height, ...props }, ref) => {\n return (\n <LayoutFooterContent\n ref={ref}\n {...props}\n className={xcn('en-layout-footer', className)}\n data-earthnut-ui=\"layout-footer\"\n />\n );\n});\n\nInternalValueF.displayName = 'LayoutFooter';\n\nexport { InternalValueF };\n","import { isNumber } from 'a-type-of-js';\n\n/**\n * 获取数值\n */\nexport function getValue(value: number | string) {\n if (isNumber(value) || parseInt(value) === Number(value)) return value + 'px';\n return value || 0;\n}\n","import { InternalValueH as LayoutHeader } from './header';\nimport { InternalValueS as LayoutSideBar } from './sidebar';\nimport { InternalValueC as LayoutContent } from './content';\nimport { InternalValueF as LayoutFooter } from './footer';\nimport {\n EnLayoutContentType,\n LayoutFooterProps,\n LayoutHeaderProps,\n LayoutProps,\n LayoutSideBarProps,\n LayoutTheme,\n} from './types';\nimport { xcn } from 'xcn';\nimport { isNumber, isString, isTrue } from 'a-type-of-js';\nimport { EnLayoutContent, LayoutContentWrapper } from 'components/shared/EnLayoutContent';\nimport { getValue } from './get-value';\nimport { Children, cloneElement, forwardRef, isValidElement, ReactElement } from 'react';\nimport { dog } from 'dog';\nimport { isFragment } from './is-fragment';\n\n/** 数值是否是需要转换的值 */\nfunction isDecimal(value: string | number) {\n if (isNumber(value)) return value > 0 && value <= 1 ? `${value * 100}%` : value;\n return /^0\\.\\d+$/.test(value) ? `${parseFloat(value) * 100}%` : value;\n}\n\n/**\n *\n * ## layout\n *\n * 布局组件,用于构建页面布局。\n *\n * ***为了照顾在 next.js 中的服务端组件中使用,在拥有 `side bar` 时 `Layout` 的 `height` 为百分比时会触发 side bar 滚动***\n *\n * @param {string} className 布局的类名\n * @param {CSSProperties} style 布局的样式\n * @param {string | number} width 布局的宽\n * @param {string | number} height 布局的高\n * @example\n *\n * ```jsx\n * <Layout>\n * <LayoutHeader> 头部 </LayoutHeader>\n * <LayoutSideBar> 侧边栏 </LayoutSideBar>\n * <LayoutContent> 内容区 </LayoutContent>\n * <LayoutFooter> 页脚 </LayoutFooter>\n * </Layout>\n *\n * ```\n *\n * 该组件仅接受 `LayoutHeader`、`LayoutSideBar`、`LayoutContent` 和 `LayoutFooter` 作为(直接)子组件。\n *\n * 可任意搭配使用,但不推荐使用无 `LayoutContent` 使用。\n *\n * 目前已知当 `Layout` 嵌套 `Layout` 时,需要设定内部 `Layout` 的 `width` 和 `height`。\n *\n * ```jsx\n * <Layout width=\"100%\" height=\"100%\">\n * <Layout width=\"100%\" height=\"100%\">\n * <LayoutSideBar width=\"150px\"> 侧边栏 </LayoutSideBar>\n * <LayoutContent> 内容区 </LayoutContent>\n * </Layout>\n * <LayoutFooter> 页脚 </LayoutFooter>\n * </Layout>\n * ```\n *\n *\n */\nconst Layout = forwardRef<HTMLDivElement, LayoutProps>(\n ({ className, children, style, width = '100%', height = '100%', classes, ...props }, ref) => {\n /** 子组件的个数 */\n const childCount = Children.count(children);\n /** 头部 header 是否粘连影响下的样式 */\n // console.log('子元素个数', childCount);\n /** 头部 header 组件 */\n let Header: ReactElement<LayoutHeaderProps> | undefined,\n /** 当前的样式 */\n layout: string = 'simple',\n headerNoSticky: boolean = false,\n /** 是否拥有头部(header) */\n hasHeader: boolean = false,\n /** 侧边栏组件 */\n Sidebar: ReactElement | undefined,\n /** 是否拥有侧边(side bar) */\n hasSideBar: boolean = false,\n /** 内容区,该内容区与 Content、SideBar 组成的 .content 不同 */\n Content: ReactElement | undefined,\n /** 是否拥有内容(Content) */\n hasContent: boolean = false,\n /** 页脚区(Footer) */\n Footer: ReactElement | undefined,\n /** 是否拥有页脚区 */\n hasFooter: boolean = false,\n /** 侧边的宽度,缺省值 `150(px)` */\n sideWidth: string | number = 150,\n /** 头部的高度,缺省值 `2.8rem` */\n headerHeight: string | number = '2.8rem',\n /** 页脚的高度,缺省值为 `2rem` */\n footerHeight: string | number = '2rem',\n /** 侧边是否占据所有尺寸(发生于 side bar 的 full 为 true 和仅有 side bar 时) */\n sideFull: boolean = false;\n /** 头字符串样式类 */\n const $header: string = 'en-layout-header',\n /** 内容字符串样式类 */\n $content: string = 'en-layout-content',\n /** 主区字符串样式类 */\n $main: string = 'en-layout-main',\n /** 侧边字符串样式类 */\n $sidebar: string = 'en-layout-sidebar',\n /** 页脚字符串样式类 */\n $footer: string = 'en-layout-footer';\n /** 由 Fragment 包裹的子元素完成解包 */\n if (childCount === 1) {\n Children.forEach(children, child => {\n if (!isValidElement(child)) return;\n /** 是否仅有一个元素 */\n const onlyOneElement = Children.only(child);\n if (isFragment(onlyOneElement))\n // eslint-disable-next-line jsdoc/check-tag-names\n /** @ts-expect-error: 已知晓其中厉害 */\n children = Children.toArray(child?.props?.children);\n });\n }\n\n // 转化可能是小数设置的宽度\n width = isDecimal(width);\n height = isDecimal(height);\n\n dog('Layout 执行渲染');\n /// 校验所有的子元素,并修改特定的 props\n Children.forEach(children, child => {\n /// 检测 child 是否是有效的 React 元素(避免非元素节点)\n if (!isValidElement(child)) return;\n // 如果没有头且当前的元素是头\n if (!hasHeader && child.type === LayoutHeader) {\n /** 组件 */\n const element = child as ReactElement<LayoutHeaderProps>;\n /** 头部组件的参数们 */\n const headerProps = element.props;\n headerHeight = headerProps.height || headerHeight;\n headerNoSticky = headerProps.noSticky ?? false;\n Header = cloneElement(element, { className: xcn($header, element.props.className) });\n hasHeader = true;\n }\n // 侧边栏\n else if (!hasSideBar && child.type === LayoutSideBar) {\n /** 组件 */\n const element = child as ReactElement<LayoutSideBarProps>;\n const sideBarProps = element.props;\n sideWidth = sideBarProps.width || sideWidth;\n layout =\n sideBarProps.right && sideBarProps.full\n ? 'side-right-full'\n : sideBarProps.right\n ? 'side-right'\n : sideBarProps.full\n ? 'side-full'\n : 'simple';\n sideFull = isTrue(sideBarProps.full);\n Sidebar = cloneElement(element, {\n className: xcn($sidebar, element.props.className),\n });\n hasSideBar = true;\n }\n /// 内容区\n else if (!hasContent && child.type === LayoutContent) {\n /** 组件 */\n const element = child as ReactElement<LayoutHeaderProps>;\n Content = cloneElement(element, {\n className: xcn($main, element.props.className),\n });\n hasContent = true;\n }\n /// 内容区,渲染的一个被嵌套的 Layout\n else if (!hasContent && child.type === Layout) {\n /** 组件 */\n const element = child as ReactElement<LayoutSideBarProps>;\n Content = (\n <LayoutContentWrapper\n data-earthnut-ui=\"layout-content\"\n className={xcn($main, 'en-layout-main')}\n >\n {element}\n </LayoutContentWrapper>\n );\n hasContent = true;\n } else if (!hasFooter && child.type === LayoutFooter) {\n /** 组件 */\n const element = child as ReactElement<LayoutFooterProps>;\n footerHeight = element.props.height || footerHeight;\n Footer = cloneElement(element, { className: xcn($footer, element.props.className) });\n hasFooter = true;\n }\n });\n /** 组件在子组件不同下的样式值 */\n const layoutType: EnLayoutContentType =\n (hasHeader && hasSideBar && hasContent && hasFooter && `${layout}-all`) ||\n (hasHeader && hasContent && hasSideBar && `${layout}-no-footer`) ||\n (hasSideBar && hasContent && hasFooter && `${layout}-no-header`) ||\n (hasHeader && hasContent && hasFooter && 'no-sidebar') ||\n (hasContent && hasFooter && 'only-footer') ||\n (hasContent && hasHeader && 'only-header') ||\n (hasContent && hasSideBar && (sideFull = true) && `${layout}-only-side`) ||\n 'simple';\n\n /** 构建主题对象 */\n const theme: LayoutTheme = {\n layoutHeight: width,\n layoutWith: height,\n sideBarWidth: sideWidth,\n headerHeight,\n footerHeight,\n ...(props.theme || {}), // 保留外部传入的主题\n };\n\n /** 确定布局结构 */\n const shouldUseSpecialLayout = /side.*full/.test(layout);\n return (\n <EnLayoutContent\n ref={ref}\n $headerNoSticky={headerNoSticky}\n $layoutType={layoutType}\n $header={$header}\n $sidebar={$sidebar}\n $main={$main}\n $content={$content}\n $footer={$footer}\n className={xcn(\n sideFull && 'en-layout-side-full',\n `en-layout-${layoutType}`,\n className,\n classes,\n )}\n style={{\n // eslint-disable-next-line jsdoc/check-tag-names\n /** @ts-expect-error: 自定义侧边栏的宽度 */\n '--layout-self-width': getValue(width),\n '--layout-self-height': getValue(height),\n '--layout-width': getValue(isString(width) && width.endsWith('%') ? '100%' : width),\n '--layout-height': getValue(isString(height) && height.endsWith('%') ? '100%' : height),\n '--layout-side-bar-width': getValue(sideWidth),\n '--layout-header-height': getValue(headerHeight),\n '--layout-footer-height': getValue(footerHeight),\n ...style,\n }}\n theme={theme}\n {...props}\n data-earthnut-ui=\"layout\"\n >\n {!shouldUseSpecialLayout ? (\n <>\n {Header}\n {hasFooter ? (\n <div className={xcn($content)} data-earthnut-ui=\"layout-with-foot-content\">\n {Sidebar}\n {Content}\n </div>\n ) : (\n <>\n {Sidebar}\n {Content}\n </>\n )}\n {Footer}\n </>\n ) : (\n // 特殊布局\n <>\n {Sidebar}\n {Header}\n {Content}\n {Footer}\n </>\n )}\n </EnLayoutContent>\n );\n },\n);\n\n// / 渲染名 Component definition is missing display name\nLayout.displayName = 'Layout';\n\nexport { Layout, LayoutHeader, LayoutSideBar, LayoutContent, LayoutFooter };\n","import { Fragment, isValidElement, ReactNode } from 'react';\n\n/** 判断是否为 Fragment 元素 */\nexport function isFragment(element: ReactNode) {\n return isValidElement(element) && element.type === Fragment;\n}\n","// 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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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))","var __webpack_require_temp__ = __webpack_require__;\nexport { __webpack_require_temp__ as __webpack_require__ };","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t750: 0\n};\n\nvar installChunk = (data) => {\n\tvar {__webpack_esm_ids__, __webpack_esm_modules__, __webpack_esm_runtime__} = data;\n\t// add \"modules\" to the modules object,\n\t// then flag all \"ids\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in __webpack_esm_modules__) {\n\t\tif(__webpack_require__.o(__webpack_esm_modules__, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = __webpack_esm_modules__[moduleId];\n\t\t}\n\t}\n\tif(__webpack_esm_runtime__) __webpack_esm_runtime__(__webpack_require__);\n\tfor(;i < __webpack_esm_ids__.length; i++) {\n\t\tchunkId = __webpack_esm_ids__[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[__webpack_esm_ids__[i]] = 0;\n\t}\n\t__webpack_require__.O();\n}\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n__webpack_require__.C = installChunk;\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n// no HMR\n\n// no HMR manifest","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [209], () => (__webpack_require__(363)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","_en","xcn","apply","arguments","InternalValueH","forwardRef","_ref","ref","className","children","props","height","noSticky","_objectWithoutProperties","_excluded","React","createElement","LayoutHeaderContainer","_extends","displayName","InternalValueS","width","right","full","LayoutSideBarContainer","InternalValueC","LayoutContentContainer","InternalValueF","LayoutFooterContent","getValue","value","isNumber","parseInt","Number","isDecimal","concat","test","parseFloat","Layout","Header","Sidebar","Content","Footer","style","_ref$width","_ref$height","classes","childCount","Children","count","layout","headerNoSticky","hasHeader","hasSideBar","hasContent","hasFooter","sideWidth","headerHeight","footerHeight","sideFull","$header","$content","$main","$sidebar","$footer","forEach","child","_child$props","isValidElement","element","onlyOneElement","only","type","Fragment","toArray","dog","LayoutHeader","LayoutSideBar","LayoutContent","LayoutFooter","cloneElement","LayoutContentWrapper","sideBarProps","isTrue","_headerProps$noSticky","headerProps","layoutType","theme","_objectSpread","layoutHeight","layoutWith","sideBarWidth","shouldUseSpecialLayout","EnLayoutContent","$headerNoSticky","$layoutType","isString","endsWith","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","installedChunks","__webpack_require_temp__","C","data","chunkId","__webpack_esm_ids__","__webpack_esm_modules__","__webpack_esm_runtime__","__webpack_exports__"],"sourceRoot":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* earthnut@storage/main-logic .d.ts
|
|
4
|
+
* Copyright (c) 2025 earthnut.dev
|
|
5
|
+
* 请在项目根参看详细许可证明
|
|
6
|
+
*/
|
|
7
|
+
declare function set(key: string, value: unknown): void;
|
|
8
|
+
declare function get<T>(key: string): T;
|
|
9
|
+
declare function getAndDel<T = boolean>(key: string): T;
|
|
10
|
+
declare function del(key: string): void;
|
|
11
|
+
declare function clear(): void;
|
|
12
|
+
declare function setSession(key: string, value: unknown): void;
|
|
13
|
+
declare function getSession<T>(key: string): T;
|
|
14
|
+
declare function delSession(key: string): void;
|
|
15
|
+
export { del as delStorage, set as setStorage, get as getStorage, getAndDel as getStorageAndDel, clear as clearStorage, setSession as setSessionStorage, getSession as getSessionStorage, delSession as delSessionStorage, };
|
|
16
|
+
declare const storageMainLogic: {
|
|
17
|
+
del: typeof del;
|
|
18
|
+
set: typeof set;
|
|
19
|
+
get: typeof get;
|
|
20
|
+
getAndDel: typeof getAndDel;
|
|
21
|
+
clear: typeof clear;
|
|
22
|
+
setSession: typeof setSession;
|
|
23
|
+
getSession: typeof getSession;
|
|
24
|
+
delSession: typeof delSession;
|
|
25
|
+
};
|
|
26
|
+
export { storageMainLogic };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* earthnut@storage/storage-store.d.ts
|
|
4
|
+
* Copyright (c) 2025 earthnut.dev
|
|
5
|
+
* 请在项目根参看详细许可证明
|
|
6
|
+
*/
|
|
7
|
+
import { ColorMode } from 'components/ThemeContext/types';
|
|
8
|
+
/** storage 的数据仓库 */
|
|
9
|
+
export declare const storageStore: {
|
|
10
|
+
/** 获取本地的数据中的主题值 */
|
|
11
|
+
theme: ColorMode | "";
|
|
12
|
+
/** 获取本地储存的 token */
|
|
13
|
+
token: string;
|
|
14
|
+
};
|