@blocklet/pages-kit-inner-components 0.5.18 → 0.5.20

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.
Files changed (33) hide show
  1. package/lib/cjs/add-component.js +2 -2
  2. package/lib/cjs/chunks/{array-BChVGKFh.js → array-C0IVbCmb.js} +1 -1
  3. package/lib/cjs/chunks/{config-string-DnwpUGUo.js → config-string-CqKhhXBA.js} +1 -1
  4. package/lib/cjs/chunks/{draft-data-DPZIakr4.js → draft-data-BLL0M7MI.js} +1 -1
  5. package/lib/cjs/chunks/{home-BkGblT4S.js → home-DH9Z8Tuv.js} +3 -3
  6. package/lib/cjs/chunks/publish-button-Cw_MfRfv.js +1 -0
  7. package/lib/cjs/chunks/site-state-JgP3yURe.js +57 -0
  8. package/lib/cjs/chunks/state-CA6q2h83.js +1 -0
  9. package/lib/cjs/components.js +1 -1
  10. package/lib/cjs/home.js +1 -1
  11. package/lib/cjs/project-html.js +1 -1
  12. package/lib/cjs/resources.js +1 -1
  13. package/lib/cjs/setting.js +1 -1
  14. package/lib/cjs/site-state.js +1 -1
  15. package/lib/es/add-component.js +5 -6
  16. package/lib/es/chunks/{array-DcMaqKTM.js → array-B1QKSYbX.js} +1 -1
  17. package/lib/es/chunks/{config-string-CNgatAMw.js → config-string-D8tamRZ1.js} +1 -1
  18. package/lib/es/chunks/{draft-data-DB1pDB18.js → draft-data-DyeHwihR.js} +1 -1
  19. package/lib/es/chunks/{home-CYM8qSuo.js → home-BjT8iYTg.js} +4 -4
  20. package/lib/es/chunks/{publish-button-BxpOFbAK.js → publish-button-eIyM_BsP.js} +49 -49
  21. package/lib/es/chunks/site-state-BB9-Tm4i.js +1930 -0
  22. package/lib/es/chunks/{state-BcZbsEn6.js → state-j8jViBMV.js} +62 -63
  23. package/lib/es/components.js +1 -1
  24. package/lib/es/home.js +3 -3
  25. package/lib/es/project-html.js +1 -1
  26. package/lib/es/resources.js +1 -1
  27. package/lib/es/setting.js +2 -2
  28. package/lib/es/site-state.js +14 -15
  29. package/package.json +15 -15
  30. package/lib/cjs/chunks/publish-button-DvXGUgra.js +0 -1
  31. package/lib/cjs/chunks/site-state-VeQ4nMmB.js +0 -57
  32. package/lib/cjs/chunks/state-D4MG-uJB.js +0 -1
  33. package/lib/es/chunks/site-state-C9oPw4Cx.js +0 -1862
@@ -1,4 +1,4 @@
1
- "use strict";var TI=Object.create;var gI=Object.defineProperty;var WI=Object.getOwnPropertyDescriptor;var xI=Object.getOwnPropertyNames;var YI=Object.getPrototypeOf,rI=Object.prototype.hasOwnProperty;var hI=(C,s,w,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of xI(s))!rI.call(C,o)&&o!==w&&gI(C,o,{get:()=>s[o],enumerable:!(i=WI(s,o))||i.enumerable});return C};var ZI=(C,s,w)=>(w=C!=null?TI(YI(C)):{},hI(s||!C||!C.__esModule?gI(w,"default",{value:C,enumerable:!0}):w,C));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("react/jsx-runtime"),H=require("./chunks/state-D4MG-uJB.js"),QI=require("@arcblock/ux/lib/Empty"),T=require("@arcblock/ux/lib/Locale/context"),p=require("@iconify-icon/react"),kI=require("@mui/icons-material/Check"),A=require("@mui/material"),u=require("ahooks"),m=require("react"),h=require("./chunks/array-BChVGKFh.js"),G=require("@arcblock/ux/lib/Theme");require("@blocklet/pages-kit/builtin/color-picker");require("@blocklet/pages-kit/utils/style");const RI=require("@emotion/css");require("lodash/without");const X=require("@mui/material/colors"),f=require("./chunks/config-string-DnwpUGUo.js"),pI=require("lodash/cloneDeep"),r=require("@mui/icons-material"),AI=require("react-dnd");require("@arcblock/ux/lib/Tabs");require("lodash/pick");const UI=require("@mui/lab"),a=require("immer"),fI=require("./theme.js"),_=require("react-use"),mI=require("@arcblock/ux/lib/Toast"),GI=require("@mui/material/Tooltip"),VI=require("@mui/icons-material/KeyboardArrowLeft"),vI=require("@mui/material/Box"),_I=require("@mui/material/DialogTitle"),PI=require("@mui/material/IconButton"),qI=require("@mui/material/Dialog"),$I=require("@mui/material/useMediaQuery"),SI=require("@emotion/react"),IC=require("@mui/material/Alert"),CC=require("@mui/material/AlertTitle"),gC=require("react-error-boundary"),AC=require("ufo"),iC=require("@emotion/styled"),sC=require("@mui/material/Typography"),oC=require("joi"),P=require("@blocklet/ai-kit/api"),wC=require("@blocklet/js-sdk"),BI=require("@mui/x-date-pickers"),MC=require("@mui/x-date-pickers/AdapterDayjs"),LC=require("@mui/x-date-pickers/LocalizationProvider"),iI=require("circular-natal-horoscope-js/dist"),jC=require("dayjs"),JC=require("dayjs/plugin/timezone"),OC=require("dayjs/plugin/utc"),mC=require("fast-deep-equal"),SC=require("lodash/isNil"),BC=require("tz-lookup"),yC=require("@mui/icons-material/CheckCircleOutline"),DC=require("lodash/uniq"),eC=require("lodash/get"),bC=require("lodash/set"),NC=require("@blocklet/pages-kit/components"),F=C=>C&&C.__esModule?C:{default:C},yI=F(QI),KC=F(kI),DI=F(m),dC=F(pI),eI=F(mI),cC=F(GI),q=F(VI),Y=F(vI),$=F(_I),II=F(PI),zC=F(qI),FC=F($I),aC=F(IC),lC=F(CC),Q=F(iC),sI=F(sC),E=F(oC),Z=F(jC),tC=F(JC),HC=F(OC),EC=F(mC),uC=F(SC),bI=F(BC),nC=F(yC),oI=F(DC),XC=F(eC),TC=F(bC);X.red[300],X.pink[300],X.purple[300],X.indigo[300],X.blue[300],X.cyan[300],X.teal[300],X.green[300],X.lime[300],X.yellow[300],X.amber[300],X.orange[300],X.brown[300],X.grey[300],X.blueGrey[300];G.styled(A.Box)`
1
+ "use strict";var TI=Object.create;var gI=Object.defineProperty;var WI=Object.getOwnPropertyDescriptor;var xI=Object.getOwnPropertyNames;var YI=Object.getPrototypeOf,rI=Object.prototype.hasOwnProperty;var hI=(C,s,w,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of xI(s))!rI.call(C,o)&&o!==w&&gI(C,o,{get:()=>s[o],enumerable:!(i=WI(s,o))||i.enumerable});return C};var ZI=(C,s,w)=>(w=C!=null?TI(YI(C)):{},hI(s||!C||!C.__esModule?gI(w,"default",{value:C,enumerable:!0}):w,C));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("react/jsx-runtime"),H=require("./chunks/state-CA6q2h83.js"),QI=require("@arcblock/ux/lib/Empty"),T=require("@arcblock/ux/lib/Locale/context"),p=require("@iconify-icon/react"),kI=require("@mui/icons-material/Check"),A=require("@mui/material"),u=require("ahooks"),m=require("react"),h=require("./chunks/array-C0IVbCmb.js"),G=require("@arcblock/ux/lib/Theme");require("@blocklet/pages-kit/builtin/color-picker");require("@blocklet/pages-kit/utils/style");const RI=require("@emotion/css");require("lodash/without");const X=require("@mui/material/colors"),f=require("./chunks/config-string-CqKhhXBA.js"),pI=require("lodash/cloneDeep"),r=require("@mui/icons-material"),AI=require("react-dnd");require("@arcblock/ux/lib/Tabs");require("lodash/pick");const UI=require("@mui/lab"),a=require("immer"),fI=require("./theme.js"),_=require("react-use"),mI=require("@arcblock/ux/lib/Toast"),GI=require("@mui/material/Tooltip"),VI=require("@mui/icons-material/KeyboardArrowLeft"),vI=require("@mui/material/Box"),_I=require("@mui/material/DialogTitle"),PI=require("@mui/material/IconButton"),qI=require("@mui/material/Dialog"),$I=require("@mui/material/useMediaQuery"),SI=require("@emotion/react"),IC=require("@mui/material/Alert"),CC=require("@mui/material/AlertTitle"),gC=require("react-error-boundary"),AC=require("ufo"),iC=require("@emotion/styled"),sC=require("@mui/material/Typography"),oC=require("joi"),P=require("@blocklet/ai-kit/api"),wC=require("@blocklet/js-sdk"),BI=require("@mui/x-date-pickers"),MC=require("@mui/x-date-pickers/AdapterDayjs"),LC=require("@mui/x-date-pickers/LocalizationProvider"),iI=require("circular-natal-horoscope-js/dist"),jC=require("dayjs"),JC=require("dayjs/plugin/timezone"),OC=require("dayjs/plugin/utc"),mC=require("fast-deep-equal"),SC=require("lodash/isNil"),BC=require("tz-lookup"),yC=require("@mui/icons-material/CheckCircleOutline"),DC=require("lodash/uniq"),eC=require("lodash/get"),bC=require("lodash/set"),NC=require("@blocklet/pages-kit/components"),F=C=>C&&C.__esModule?C:{default:C},yI=F(QI),KC=F(kI),DI=F(m),dC=F(pI),eI=F(mI),cC=F(GI),q=F(VI),Y=F(vI),$=F(_I),II=F(PI),zC=F(qI),FC=F($I),aC=F(IC),lC=F(CC),Q=F(iC),sI=F(sC),E=F(oC),Z=F(jC),tC=F(JC),HC=F(OC),EC=F(mC),uC=F(SC),bI=F(BC),nC=F(yC),oI=F(DC),XC=F(eC),TC=F(bC);X.red[300],X.pink[300],X.purple[300],X.indigo[300],X.blue[300],X.cyan[300],X.teal[300],X.green[300],X.lime[300],X.yellow[300],X.amber[300],X.orange[300],X.brown[300],X.grey[300],X.blueGrey[300];G.styled(A.Box)`
2
2
  .color-item {
3
3
  position: relative;
4
4
  }
@@ -395,4 +395,4 @@ ${C}`}).then(w=>w.text??"")}function vC(C){const s=u.useReactive({searching:!1,s
395
395
  display: inline-flex;
396
396
  }
397
397
  }
398
- `,xg="primary",Yg="contained",jI={id:H.nextId(),color:xg,variant:Yg,text:"",link:"",icon:"",size:"medium"};function rg({children:C}){return C}const hg=m.forwardRef(function({locale:s,locales:w,onSave:i=()=>{}},o){const{t:g}=T.useLocaleContext(),[M,{setFalse:j,setTrue:O}]=u.useBoolean(!1),[L,e]=m.useState({...jI}),[y,J]=m.useState(-1),D=m.useCallback(()=>{j()},[j]);m.useImperativeHandle(o,()=>({open(S,B){e(a.produce(L,c=>{Object.assign(c,{...jI},{...S,link:(S==null?void 0:S.link)||(S==null?void 0:S.linkId)})})),O(),J(B===void 0?-1:B)},close(){D()}}));const b=()=>{i(L,D)},N=y>-1?tI:rg;return I.jsxs(A.Dialog,{open:M,onClose:D,children:[I.jsx(A.DialogTitle,{children:g("maker.properties.button")}),I.jsxs(A.DialogContent,{sx:{width:350},children:[I.jsx(A.Box,{my:2,children:I.jsx(hC,{value:L.icon||"",onChange:S=>{e(a.produce(L,B=>{B.icon=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(N,{locale:s,locales:w,path:["actions",y,"text"],value:L.text,onChange:S=>{y>-1&&typeof S=="string"&&e(a.produce(L,B=>{B.text=S}))},children:I.jsx(f.ConfigString,{label:g("maker.properties.title"),value:L.text,onChange:S=>{e(a.produce(L,B=>{B.text=S}))}})})}),I.jsx(A.Box,{my:2,children:I.jsx(V,{label:g("maker.properties.color"),options:[{value:"primary",title:"Primary"},{value:"secondary",title:"Secondary"},{value:"info",title:"Info"},{value:"success",title:"Success"},{value:"warning",title:"Warning"},{value:"error",title:"Error"}],value:L.color||"",onChange:S=>{e(a.produce(L,B=>{B.color=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(V,{label:g("maker.properties.variant"),options:[{value:"contained",title:"Contained"},{value:"outlined",title:"Outlined"}],value:L.variant||"",onChange:S=>{e(a.produce(L,B=>{B.variant=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(V,{label:g("maker.properties.size"),options:[{value:"large",title:"Large"},{value:"medium",title:"Medium"},{value:"small",title:"Small"}],value:L.size||"",onChange:S=>{e(a.produce(L,B=>{B.size=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(NI,{label:g("maker.properties.link"),value:L.link,onChange:S=>{e(a.produce(L,B=>{B.link=S}))}})})]}),I.jsxs(A.DialogActions,{children:[I.jsx(A.Button,{variant:"outlined",size:"small",onClick:D,children:g("common.cancel")}),I.jsx(A.Button,{variant:"contained",size:"small",onClick:b,children:g("maker.save")})]})]})});function Zg({value:C,locale:s,locales:w,onChange:i=()=>{}}){var J;const o=m.useRef(null),{t:g}=T.useLocaleContext(),M=u.useReactive({actionIndex:void 0}),j=()=>{var D;M.actionIndex=void 0,(D=o.current)==null||D.open({id:H.nextId()},-1)},O=D=>{var N;const b=C==null?void 0:C.findIndex(S=>S===D);M.actionIndex=b,(N=o.current)==null||N.open(D,b===void 0?-1:b)},L=D=>{i(a.produce(C,b=>{b.splice(D,1)}))},e=(D,b)=>{i(a.produce(C,N=>{N&&M.actionIndex!==void 0?Object.assign(N[M.actionIndex],D):N.push(D)})),b()},y=(D,b)=>{i(a.produce(C,N=>{N.splice(b,0,...N.splice(N.findIndex(S=>S.id===D),1))}))};return I.jsxs(I.Fragment,{children:[I.jsxs(YC,{label:g("maker.properties.buttons"),children:[I.jsx(fI.PageProvider,{children:(J=C.map)==null?void 0:J.call(C,(D,b)=>I.jsx(WC,{dragType:"SECTION_ACTION_DND_TYPE",dropType:"SECTION_ACTION_DND_TYPE",id:D.id,index:b,title:I.jsx(h.Action,{...D,size:"small",editing:!0}),move:(N,S)=>y(N,S),actions:I.jsxs(I.Fragment,{children:[I.jsx(A.Box,{mr:.35,onClick:()=>i(a.produce(C,N=>{N.splice(b+1,0,{...D,id:H.nextId()})})),children:I.jsx(r.CopyAll,{})}),I.jsx(A.Box,{mr:.35,onClick:()=>O(D),children:I.jsx(r.Settings,{})}),I.jsx(A.Box,{onClick:()=>L(b),children:I.jsx(r.Delete,{})})]})},D.id))}),I.jsxs(A.Button,{onClick:j,startIcon:I.jsx(r.Add,{}),fullWidth:!0,children:[g("common.add")," ",g("maker.properties.button")]})]}),I.jsx(hg,{ref:o,onSave:e,locale:s,locales:w})]})}const JI={align:"left",actions:[],title:"",description:"",icon:"",image:"",link:""};function Qg({children:C}){return C}m.forwardRef(function({onSave:s=()=>{},type:w,locale:i,locales:o},g){const{t:M}=T.useLocaleContext(),[j,{setFalse:O,setTrue:L}]=u.useBoolean(!1),e=u.useUpdate(),y=m.useRef({...JI,id:H.nextId()}),J=y.current,D=m.useCallback(d=>{y.current=typeof d=="function"?d(y.current):d,e()},[]),b=m.useCallback(()=>{O()},[O]),[N,S]=m.useState(-1);m.useImperativeHandle(g,()=>({open(d={},t=-1){D(a.produce(J,K=>{Object.assign(K,{...JI},d||{},{})})),L(),S(t===void 0?-1:t)},close(){b()}}));const[B,c]=m.useState(!1),z=m.useRef(null),W=async()=>{var d;try{c(!0),await((d=z.current)==null?void 0:d.submit()),s(y.current,b)}finally{c(!1)}},x=N>-1?tI:Qg;return I.jsxs(A.Dialog,{open:j,onClose:b,disableEnforceFocus:!0,children:[I.jsx(A.DialogTitle,{children:M("section.card.title")}),I.jsx(A.DialogContent,{sx:{width:500},children:I.jsxs(A.Box,{children:[I.jsx(A.Box,{my:2,children:I.jsx(x,{locale:i,locales:o,path:["list",N,"title"],value:J.title,onChange:d=>{N>-1&&typeof d=="string"&&D(a.produce(J,t=>{t.title=d}))},children:I.jsx(f.ConfigString,{label:M("maker.properties.title"),value:J.title,onChange:d=>{D(a.produce(J,t=>{t.title=d}))}})})}),I.jsx(A.Box,{my:2,children:I.jsx(x,{locale:i,locales:o,path:["list",N,"description"],value:J.description,onChange:d=>{N>-1&&typeof d=="string"&&D(a.produce(J,t=>{t.description=d}))},children:I.jsx(f.ConfigString,{label:M("maker.properties.description"),multiline:!0,minRows:3,value:J.description,onChange:d=>{D(a.produce(J,t=>{t.description=d}))}})})}),I.jsx(A.Box,{my:2,children:I.jsx(NI,{label:M("maker.properties.link"),value:J.link,onChange:d=>{D(a.produce(J,t=>{t.link=d}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(f.ConfigString,{ref:z,label:M("maker.properties.image"),value:J.image,onChange:(d,t)=>{D(a.produce(J,K=>{K.image=d,K.imageMeta=t}))},showUploader:!0})}),w!=="simple"&&I.jsx(Zg,{value:J.actions||[],onChange:d=>{D(a.produce(J,t=>{t.actions=d}))},locale:i,locales:o})]})}),I.jsxs(A.DialogActions,{children:[I.jsx(A.Button,{variant:"outlined",size:"small",onClick:b,children:M("common.cancel")}),I.jsx(UI.LoadingButton,{loading:B,variant:"contained",size:"small",onClick:W,children:M("maker.save")})]})]})});const kg={type:"default",title:"Section CardList",description:"This is Section CardList",center:!0,dark:!1,background:"",col:3,gap:2,align:"top",textAlign:"left",iconSize:100,padding:"normal",list:[{id:H.nextId(),title:"Simplified Service Delivery",description:"Block Server's Service Gateway makes networking easy with access to load balancing, SSL termination, automatic and customizable URL mapping, and redirects.",image:"https://www.arcblock.io/static/ead0cabde7f2b7ff34db8f3e8ceca271/afc4b/builder.png"}]};function Rg({componentId:C,locale:s,components:w}){const{state:{config:{defaultLocale:i}},localState:{customComponentPreviewerProperties:o}}=H.useStore(),g=H.useAllComponents();return I.jsx(NC.CustomComponentRenderer,{componentId:C,locale:s,dev:{mode:"draft",components:w||g,defaultLocale:i},properties:o})}const OI=260,pg=5,HI="IGNORE_RENDER_BLOCKLET_TITLE",v=(C,s)=>C?Object.entries(C).map(([w,i])=>{var o,g,M;return{id:w,component:w,name:((o=i==null?void 0:i.data)==null?void 0:o.name)||((g=i==null?void 0:i.component)==null?void 0:g.name)||w,properties:(i==null?void 0:i.data)||i.component,previewImage:((M=i==null?void 0:i.data)==null?void 0:M.previewImage)||null,type:s,blockletId:i==null?void 0:i.blockletId,blockletTitle:i==null?void 0:i.blockletTitle}}):[],EI=[{id:"section",name:"Section",properties:h.SectionBlockDefaultProps},{id:"section-card-list",name:"SectionCardList",properties:kg},{id:"toc",name:"Toc",properties:h.TocDefaultProps},{id:"iframe",name:"Embed",properties:h.IFrameBlockDefaultProps}].map(C=>({...C,type:"basic",component:C.id}));function uI({state:C,open:s,onClose:w,onSelect:i,defaultTab:o,title:g,componentGroups:M,components:j,multiple:O=!1,defaultSelected:L,emptyText:e}){var t;const{t:y}=T.useLocaleContext(),J=u.useReactive({selectedComponent:null,activeTab:o,searchQuery:""}),D=m.useMemo(()=>M||[{name:"basic",label:y("maker.components.basicGroup"),components:EI},C&&{name:"custom",label:y("maker.components.customGroup"),components:v(H.getCustomComponents(C),"custom")},C&&{name:"resource",label:y("maker.components.resourceGroup"),components:v(H.getResourceComponents(C),"resource")}].filter(Boolean),[M,y,C,s]),b=J.activeTab||((t=D[0])==null?void 0:t.name),N=()=>{J.selectedComponent&&(i(J.selectedComponent),w())},S=K=>{if(K){if(B(K)){O?J.selectedComponent=J.selectedComponent.filter(l=>l.id!==K.id):J.selectedComponent=null;return}if(O){const l=Array.isArray(J.selectedComponent)?J.selectedComponent:[],n=l.some(R=>R.id===K.id);J.selectedComponent=n?l.filter(R=>R.id!==K.id):[...l,K]}else J.selectedComponent=K}},B=K=>J.selectedComponent?O?J.selectedComponent.some(l=>l.id===K.id):J.selectedComponent.id===K.id:!1,c=(D==null?void 0:D.length)===0,z=m.useMemo(()=>{var l;const K=((l=D.find(n=>(n==null?void 0:n.name)===b))==null?void 0:l.components)||[];return J.searchQuery?K.filter(n=>n.name.toLowerCase().includes(J.searchQuery.toLowerCase())):K},[b,D,J.searchQuery]);m.useEffect(()=>{J.searchQuery="",s&&L?J.selectedComponent=O?Array.isArray(L)?L:[L]:L:J.selectedComponent=null},[s,L,O]);const W=(z==null?void 0:z.length)===0,x=e||y(b==="resource"?"maker.components.needAddResource":"maker.components.noComponents"),d=m.useMemo(()=>z?z.reduce((K,l)=>{const n=l.blockletId||HI,R=l.blockletTitle||y("maker.components.defaultGroup");return K[n]||(K[n]={title:R,components:[]}),K[n].components.push(l),K},{}):{},[z]);return I.jsxs(A.Dialog,{open:s,onClose:w,maxWidth:"lg",fullWidth:!0,PaperProps:{sx:{height:"80vh",maxHeight:"80vh",display:"flex",flexDirection:"column"}},children:[I.jsxs(A.DialogTitle,{className:"between",sx:{display:"flex",gap:2},children:[I.jsx(A.Box,{children:g||y("maker.components.addComponent")}),I.jsx(A.TextField,{size:"small",placeholder:y("maker.components.searchComponent"),value:J.searchQuery,onChange:K=>J.searchQuery=K.target.value,sx:{flex:1,maxWidth:350},InputProps:{startAdornment:I.jsx(p.Icon,{icon:"tabler:search",style:{marginRight:8,color:"rgba(0, 0, 0, 0.54)"}})}}),I.jsx(A.IconButton,{size:"small",onClick:w,children:I.jsx(p.Icon,{icon:"tabler:x"})})]}),I.jsxs(A.DialogContent,{sx:{display:"flex",gap:2,pl:"8px !important",flex:1,overflow:"hidden"},children:[!c&&I.jsx(A.Box,{sx:{width:150,borderRight:1,borderColor:"divider"},children:I.jsx(A.Tabs,{orientation:"vertical",value:b,onChange:(K,l)=>J.activeTab=l,sx:{"& .MuiTab-root":{alignItems:"flex-start",textAlign:"left",minHeight:48,py:1.5,px:2}},children:D.map((K,l)=>I.jsx(A.Tab,{label:K==null?void 0:K.label,value:K==null?void 0:K.name},l))})}),I.jsx(A.Box,{sx:{flex:1,overflowX:"hidden",overflowY:"auto",pr:1},children:W?I.jsx(yI.default,{children:x}):I.jsx(XI,{wrapperComponent:A.Grid,wrapperComponentProps:{container:!0,spacing:2,sx:W?{height:"100%"}:{}},groups:d,emptyText:x,renderItem:K=>{const l=B(K);return I.jsx(A.Grid,{item:!0,xs:12,md:6,lg:4,sx:{width:"100%","& .add-component-card":{boxShadow:"none",border:1,borderColor:l?"primary.main":"grey.200","& .check-container":{display:l?"flex":"none",position:"absolute",right:0,bottom:0,justifyContent:"flex-end",alignItems:"flex-end",width:30,height:30,overflow:"hidden",transition:"all 0.3s ease",color:"white","&::after":{position:"absolute",zIndex:0,display:"block",width:0,height:0,borderTop:"transparent solid 15px",borderLeft:"transparent solid 15px",borderBottom:n=>`solid 15px ${n.palette.primary.main}`,borderRight:n=>`solid 15px ${n.palette.primary.main}`,transition:"all 0.1s ease",content:'""'},"& .check-icon":{position:"relative",zIndex:2,margin:"0 1px 1px 0",fontSize:16,transition:"all 0.2s ease"}}}},children:I.jsxs(A.Card,{className:"add-component-card",sx:{position:"relative",width:"100%",cursor:"pointer"},onClick:()=>S(K),children:[I.jsx(A.CardMedia,{sx:{width:"100%",height:OI,overflow:"auto",position:"relative"},children:I.jsx(nI,{components:j,containerHeight:OI,component:K},K.id)}),I.jsx(A.CardContent,{sx:{bgcolor:"background.paper",borderTop:1,borderColor:l?"primary.main":"grey.200"},children:I.jsx(A.Typography,{variant:"body1",noWrap:!0,sx:{fontWeight:"bold"},children:K.name})}),I.jsx(A.Box,{className:"check-container",children:I.jsx(KC.default,{className:"check-icon"})})]})},K.id)}})})]}),I.jsxs(A.DialogActions,{sx:{borderTop:1,borderColor:"divider",p:2},children:[I.jsx(A.Button,{onClick:w,variant:"outlined",children:y("common.cancel")}),I.jsx(A.Button,{onClick:N,variant:"contained",disabled:!J.selectedComponent||O&&Array.isArray(J.selectedComponent)&&J.selectedComponent.length===0,children:O&&Array.isArray(J.selectedComponent)&&J.selectedComponent.length>0?y("common.addMultiple",{count:J.selectedComponent.length}):y("common.add")})]})]})}function nI({containerHeight:C,component:s,minScale:w=.1,components:i}){const{locale:o}=T.useLocaleContext(),g=u.useReactive({scale:1,shouldScroll:!1,isVisible:!1,hadInit:!1}),M=m.useRef(null),j=m.useRef(null),O=m.useRef(0),L=m.useRef(null);m.useEffect(()=>{const S=new IntersectionObserver(([B])=>{g.isVisible=B.isIntersecting},{root:null,rootMargin:"50px",threshold:0});return j.current&&S.observe(j.current),()=>S.disconnect()},[]),m.useEffect(()=>{const S=()=>{if(O.current+=1,O.current>pg){B.disconnect();return}if(!s.previewImage&&M.current){const c=M.current.scrollHeight,z=C/c;z<w?(g.scale=w,g.shouldScroll=!0):z<1?(g.scale=z,g.shouldScroll=!1):(g.scale=1,g.shouldScroll=!1)}L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{g.hadInit=!0},200)},B=new ResizeObserver(()=>{setTimeout(S,20)});return M.current&&g.isVisible&&B.observe(M.current),()=>{B.disconnect()}},[C,w,g.isVisible,s]);const{id:e,type:y,component:J,properties:D,previewImage:b}=s,N=m.useMemo(()=>g.isVisible?b?I.jsx(A.Box,{component:"img",loading:"lazy",sx:{objectFit:"cover",borderRadius:1,cursor:"pointer"},src:H.getImageAbsoluteUrl(b),alt:s.name,width:"100%",height:"100%"},e):y==="basic"?I.jsx(h.BlockRenderer,{id:e,type:J,section:D,config:{...D,locale:o,editing:!1,dev:{mode:"draft"}}},e):I.jsx(Rg,{componentId:e,locale:o,components:i},e):null,[e,y,J,D,o,b,g.isVisible]);return I.jsx(A.Box,{ref:j,sx:{position:"relative",width:"100%",height:"100%",overflowX:"hidden",overflowY:g.shouldScroll?"auto":"hidden",transition:"all 0.3s ease"},children:I.jsxs(A.Box,{sx:{transform:`scale(${g.scale})`,transformOrigin:"top left",width:`${100/g.scale}%`,height:g.hadInit&&g.shouldScroll?"100%":`${100/g.scale}%`},children:[!g.hadInit&&I.jsx(A.Skeleton,{variant:"rectangular",width:"100%",height:"100%"}),I.jsx(A.Box,{ref:M,sx:{width:"100%",height:b?"100%":"auto",pointerEvents:"none",opacity:g.hadInit?1:0},children:N})]})})}function XI({groups:C,emptyText:s,renderItem:w,wrapperComponent:i=A.Box,wrapperComponentProps:o={display:"inline-flex",flexWrap:"wrap",gap:1}}){return I.jsx(A.Box,{children:Object.keys(C).length>0?Object.entries(C).map(([g,{title:M,components:j}])=>I.jsxs(A.Box,{mb:3,children:[g!==HI&&I.jsxs(A.Typography,{className:"blocklet-title",variant:"subtitle2",sx:{mb:2,fontWeight:500,color:"text.primary",display:"flex",alignItems:"center",gap:1},children:[I.jsx(A.Box,{component:"span",sx:{width:4,height:20,backgroundColor:"primary.main",borderRadius:1,display:"inline-block"}}),M]}),I.jsx(i,{...o,children:j.map(O=>w(O))})]},g)):I.jsx(yI.default,{children:s})})}exports.AddComponent=uI;exports.AutoScaledComponentRenderer=nI;exports.BASIC_COMPONENT_LIST=EI;exports.GroupedComponentsList=XI;exports.default=uI;exports.formatComponent=v;
398
+ `,xg="primary",Yg="contained",jI={id:H.nextId(),color:xg,variant:Yg,text:"",link:"",icon:"",size:"medium"};function rg({children:C}){return C}const hg=m.forwardRef(function({locale:s,locales:w,onSave:i=()=>{}},o){const{t:g}=T.useLocaleContext(),[M,{setFalse:j,setTrue:O}]=u.useBoolean(!1),[L,e]=m.useState({...jI}),[y,J]=m.useState(-1),D=m.useCallback(()=>{j()},[j]);m.useImperativeHandle(o,()=>({open(S,B){e(a.produce(L,c=>{Object.assign(c,{...jI},{...S,link:(S==null?void 0:S.link)||(S==null?void 0:S.linkId)})})),O(),J(B===void 0?-1:B)},close(){D()}}));const b=()=>{i(L,D)},N=y>-1?tI:rg;return I.jsxs(A.Dialog,{open:M,onClose:D,children:[I.jsx(A.DialogTitle,{children:g("maker.properties.button")}),I.jsxs(A.DialogContent,{sx:{width:350},children:[I.jsx(A.Box,{my:2,children:I.jsx(hC,{value:L.icon||"",onChange:S=>{e(a.produce(L,B=>{B.icon=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(N,{locale:s,locales:w,path:["actions",y,"text"],value:L.text,onChange:S=>{y>-1&&typeof S=="string"&&e(a.produce(L,B=>{B.text=S}))},children:I.jsx(f.ConfigString,{label:g("maker.properties.title"),value:L.text,onChange:S=>{e(a.produce(L,B=>{B.text=S}))}})})}),I.jsx(A.Box,{my:2,children:I.jsx(V,{label:g("maker.properties.color"),options:[{value:"primary",title:"Primary"},{value:"secondary",title:"Secondary"},{value:"info",title:"Info"},{value:"success",title:"Success"},{value:"warning",title:"Warning"},{value:"error",title:"Error"}],value:L.color||"",onChange:S=>{e(a.produce(L,B=>{B.color=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(V,{label:g("maker.properties.variant"),options:[{value:"contained",title:"Contained"},{value:"outlined",title:"Outlined"}],value:L.variant||"",onChange:S=>{e(a.produce(L,B=>{B.variant=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(V,{label:g("maker.properties.size"),options:[{value:"large",title:"Large"},{value:"medium",title:"Medium"},{value:"small",title:"Small"}],value:L.size||"",onChange:S=>{e(a.produce(L,B=>{B.size=S}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(NI,{label:g("maker.properties.link"),value:L.link,onChange:S=>{e(a.produce(L,B=>{B.link=S}))}})})]}),I.jsxs(A.DialogActions,{children:[I.jsx(A.Button,{variant:"outlined",size:"small",onClick:D,children:g("common.cancel")}),I.jsx(A.Button,{variant:"contained",size:"small",onClick:b,children:g("maker.save")})]})]})});function Zg({value:C,locale:s,locales:w,onChange:i=()=>{}}){var J;const o=m.useRef(null),{t:g}=T.useLocaleContext(),M=u.useReactive({actionIndex:void 0}),j=()=>{var D;M.actionIndex=void 0,(D=o.current)==null||D.open({id:H.nextId()},-1)},O=D=>{var N;const b=C==null?void 0:C.findIndex(S=>S===D);M.actionIndex=b,(N=o.current)==null||N.open(D,b===void 0?-1:b)},L=D=>{i(a.produce(C,b=>{b.splice(D,1)}))},e=(D,b)=>{i(a.produce(C,N=>{N&&M.actionIndex!==void 0?Object.assign(N[M.actionIndex],D):N.push(D)})),b()},y=(D,b)=>{i(a.produce(C,N=>{N.splice(b,0,...N.splice(N.findIndex(S=>S.id===D),1))}))};return I.jsxs(I.Fragment,{children:[I.jsxs(YC,{label:g("maker.properties.buttons"),children:[I.jsx(fI.PageProvider,{children:(J=C.map)==null?void 0:J.call(C,(D,b)=>I.jsx(WC,{dragType:"SECTION_ACTION_DND_TYPE",dropType:"SECTION_ACTION_DND_TYPE",id:D.id,index:b,title:I.jsx(h.Action,{...D,size:"small",editing:!0}),move:(N,S)=>y(N,S),actions:I.jsxs(I.Fragment,{children:[I.jsx(A.Box,{mr:.35,onClick:()=>i(a.produce(C,N=>{N.splice(b+1,0,{...D,id:H.nextId()})})),children:I.jsx(r.CopyAll,{})}),I.jsx(A.Box,{mr:.35,onClick:()=>O(D),children:I.jsx(r.Settings,{})}),I.jsx(A.Box,{onClick:()=>L(b),children:I.jsx(r.Delete,{})})]})},D.id))}),I.jsxs(A.Button,{onClick:j,startIcon:I.jsx(r.Add,{}),fullWidth:!0,children:[g("common.add")," ",g("maker.properties.button")]})]}),I.jsx(hg,{ref:o,onSave:e,locale:s,locales:w})]})}const JI={align:"left",actions:[],title:"",description:"",icon:"",image:"",link:""};function Qg({children:C}){return C}m.forwardRef(function({onSave:s=()=>{},type:w,locale:i,locales:o},g){const{t:M}=T.useLocaleContext(),[j,{setFalse:O,setTrue:L}]=u.useBoolean(!1),e=u.useUpdate(),y=m.useRef({...JI,id:H.nextId()}),J=y.current,D=m.useCallback(d=>{y.current=typeof d=="function"?d(y.current):d,e()},[]),b=m.useCallback(()=>{O()},[O]),[N,S]=m.useState(-1);m.useImperativeHandle(g,()=>({open(d={},t=-1){D(a.produce(J,K=>{Object.assign(K,{...JI},d||{},{})})),L(),S(t===void 0?-1:t)},close(){b()}}));const[B,c]=m.useState(!1),z=m.useRef(null),W=async()=>{var d;try{c(!0),await((d=z.current)==null?void 0:d.submit()),s(y.current,b)}finally{c(!1)}},x=N>-1?tI:Qg;return I.jsxs(A.Dialog,{open:j,onClose:b,disableEnforceFocus:!0,children:[I.jsx(A.DialogTitle,{children:M("section.card.title")}),I.jsx(A.DialogContent,{sx:{width:500},children:I.jsxs(A.Box,{children:[I.jsx(A.Box,{my:2,children:I.jsx(x,{locale:i,locales:o,path:["list",N,"title"],value:J.title,onChange:d=>{N>-1&&typeof d=="string"&&D(a.produce(J,t=>{t.title=d}))},children:I.jsx(f.ConfigString,{label:M("maker.properties.title"),value:J.title,onChange:d=>{D(a.produce(J,t=>{t.title=d}))}})})}),I.jsx(A.Box,{my:2,children:I.jsx(x,{locale:i,locales:o,path:["list",N,"description"],value:J.description,onChange:d=>{N>-1&&typeof d=="string"&&D(a.produce(J,t=>{t.description=d}))},children:I.jsx(f.ConfigString,{label:M("maker.properties.description"),multiline:!0,minRows:3,value:J.description,onChange:d=>{D(a.produce(J,t=>{t.description=d}))}})})}),I.jsx(A.Box,{my:2,children:I.jsx(NI,{label:M("maker.properties.link"),value:J.link,onChange:d=>{D(a.produce(J,t=>{t.link=d}))}})}),I.jsx(A.Box,{my:2,children:I.jsx(f.ConfigString,{ref:z,label:M("maker.properties.image"),value:J.image,onChange:(d,t)=>{D(a.produce(J,K=>{K.image=d,K.imageMeta=t}))},showUploader:!0})}),w!=="simple"&&I.jsx(Zg,{value:J.actions||[],onChange:d=>{D(a.produce(J,t=>{t.actions=d}))},locale:i,locales:o})]})}),I.jsxs(A.DialogActions,{children:[I.jsx(A.Button,{variant:"outlined",size:"small",onClick:b,children:M("common.cancel")}),I.jsx(UI.LoadingButton,{loading:B,variant:"contained",size:"small",onClick:W,children:M("maker.save")})]})]})});const kg={type:"default",title:"Section CardList",description:"This is Section CardList",center:!0,dark:!1,background:"",col:3,gap:2,align:"top",textAlign:"left",iconSize:100,padding:"normal",list:[{id:H.nextId(),title:"Simplified Service Delivery",description:"Block Server's Service Gateway makes networking easy with access to load balancing, SSL termination, automatic and customizable URL mapping, and redirects.",image:"https://www.arcblock.io/static/ead0cabde7f2b7ff34db8f3e8ceca271/afc4b/builder.png"}]};function Rg({componentId:C,locale:s,components:w}){const{state:{config:{defaultLocale:i}},localState:{customComponentPreviewerProperties:o}}=H.useStore(),g=H.useAllComponents();return I.jsx(NC.CustomComponentRenderer,{componentId:C,locale:s,dev:{mode:"draft",components:w||g,defaultLocale:i},properties:o})}const OI=260,pg=5,HI="IGNORE_RENDER_BLOCKLET_TITLE",v=(C,s)=>C?Object.entries(C).map(([w,i])=>{var o,g,M;return{id:w,component:w,name:((o=i==null?void 0:i.data)==null?void 0:o.name)||((g=i==null?void 0:i.component)==null?void 0:g.name)||w,properties:(i==null?void 0:i.data)||i.component,previewImage:((M=i==null?void 0:i.data)==null?void 0:M.previewImage)||null,type:s,blockletId:i==null?void 0:i.blockletId,blockletTitle:i==null?void 0:i.blockletTitle}}):[],EI=[{id:"section",name:"Section",properties:h.SectionBlockDefaultProps},{id:"section-card-list",name:"SectionCardList",properties:kg},{id:"toc",name:"Toc",properties:h.TocDefaultProps},{id:"iframe",name:"Embed",properties:h.IFrameBlockDefaultProps}].map(C=>({...C,type:"basic",component:C.id}));function uI({state:C,open:s,onClose:w,onSelect:i,defaultTab:o,title:g,componentGroups:M,components:j,multiple:O=!1,defaultSelected:L,emptyText:e}){var t;const{t:y}=T.useLocaleContext(),J=u.useReactive({selectedComponent:null,activeTab:o,searchQuery:""}),D=m.useMemo(()=>M||[{name:"basic",label:y("maker.components.basicGroup"),components:EI},C&&{name:"custom",label:y("maker.components.customGroup"),components:v(H.getCustomComponents(C),"custom")},C&&{name:"resource",label:y("maker.components.resourceGroup"),components:v(H.getResourceComponents(C),"resource")}].filter(Boolean),[M,y,C,s]),b=J.activeTab||((t=D[0])==null?void 0:t.name),N=()=>{J.selectedComponent&&(i(J.selectedComponent),w())},S=K=>{if(K){if(B(K)){O?J.selectedComponent=J.selectedComponent.filter(l=>l.id!==K.id):J.selectedComponent=null;return}if(O){const l=Array.isArray(J.selectedComponent)?J.selectedComponent:[],n=l.some(R=>R.id===K.id);J.selectedComponent=n?l.filter(R=>R.id!==K.id):[...l,K]}else J.selectedComponent=K}},B=K=>J.selectedComponent?O?J.selectedComponent.some(l=>l.id===K.id):J.selectedComponent.id===K.id:!1,c=(D==null?void 0:D.length)===0,z=m.useMemo(()=>{var l;const K=((l=D.find(n=>(n==null?void 0:n.name)===b))==null?void 0:l.components)||[];return J.searchQuery?K.filter(n=>n.name.toLowerCase().includes(J.searchQuery.toLowerCase())):K},[b,D,J.searchQuery]);m.useEffect(()=>{J.searchQuery="",s&&L?J.selectedComponent=O?Array.isArray(L)?L:[L]:L:J.selectedComponent=null},[s,L,O]);const W=(z==null?void 0:z.length)===0,x=e||y(b==="resource"?"maker.components.needAddResource":"maker.components.noComponents"),d=m.useMemo(()=>z?z.reduce((K,l)=>{const n=l.blockletId||HI,R=l.blockletTitle||y("maker.components.defaultGroup");return K[n]||(K[n]={title:R,components:[]}),K[n].components.push(l),K},{}):{},[z]);return I.jsxs(A.Dialog,{open:s,onClose:w,maxWidth:"lg",fullWidth:!0,PaperProps:{sx:{height:"80vh",maxHeight:"80vh",display:"flex",flexDirection:"column"}},children:[I.jsxs(A.DialogTitle,{className:"between",sx:{display:"flex",gap:2},children:[I.jsx(A.Box,{children:g||y("maker.components.addComponent")}),I.jsx(A.TextField,{size:"small",placeholder:y("maker.components.searchComponent"),value:J.searchQuery,onChange:K=>J.searchQuery=K.target.value,sx:{flex:1,maxWidth:350},InputProps:{startAdornment:I.jsx(p.Icon,{icon:"tabler:search",style:{marginRight:8}})}}),I.jsx(A.IconButton,{size:"small",onClick:w,children:I.jsx(A.Box,{component:p.Icon,icon:"tabler:x",sx:{color:"text.primary"}})})]}),I.jsxs(A.DialogContent,{sx:{display:"flex",gap:2,pl:"8px !important",flex:1,overflow:"hidden"},children:[!c&&I.jsx(A.Box,{sx:{width:150,borderRight:1,borderColor:"divider"},children:I.jsx(A.Tabs,{orientation:"vertical",value:b,onChange:(K,l)=>J.activeTab=l,sx:{"& .MuiTab-root":{alignItems:"flex-start",textAlign:"left",minHeight:48,py:1.5,px:2}},children:D.map((K,l)=>I.jsx(A.Tab,{label:K==null?void 0:K.label,value:K==null?void 0:K.name},l))})}),I.jsx(A.Box,{sx:{flex:1,overflowX:"hidden",overflowY:"auto",pr:1},children:W?I.jsx(yI.default,{children:x}):I.jsx(XI,{wrapperComponent:A.Grid,wrapperComponentProps:{container:!0,spacing:2,sx:W?{height:"100%"}:{}},groups:d,emptyText:x,renderItem:K=>{const l=B(K);return I.jsx(A.Grid,{item:!0,xs:12,md:6,lg:4,sx:{width:"100%","& .add-component-card":{boxShadow:"none",border:1,borderColor:l?"primary.main":"grey.200","& .check-container":{display:l?"flex":"none",position:"absolute",right:0,bottom:0,justifyContent:"flex-end",alignItems:"flex-end",width:30,height:30,overflow:"hidden",transition:"all 0.3s ease",color:"white","&::after":{position:"absolute",zIndex:0,display:"block",width:0,height:0,borderTop:"transparent solid 15px",borderLeft:"transparent solid 15px",borderBottom:n=>`solid 15px ${n.palette.primary.main}`,borderRight:n=>`solid 15px ${n.palette.primary.main}`,transition:"all 0.1s ease",content:'""'},"& .check-icon":{position:"relative",zIndex:2,margin:"0 1px 1px 0",fontSize:16,transition:"all 0.2s ease"}}}},children:I.jsxs(A.Card,{className:"add-component-card",sx:{position:"relative",width:"100%",cursor:"pointer"},onClick:()=>S(K),children:[I.jsx(A.CardMedia,{sx:{width:"100%",height:OI,overflow:"auto",position:"relative"},children:I.jsx(nI,{components:j,containerHeight:OI,component:K},K.id)}),I.jsx(A.CardContent,{sx:{bgcolor:"background.paper",borderTop:1,borderColor:l?"primary.main":"grey.200"},children:I.jsx(A.Typography,{variant:"body1",noWrap:!0,sx:{fontWeight:"bold"},children:K.name})}),I.jsx(A.Box,{className:"check-container",children:I.jsx(KC.default,{className:"check-icon"})})]})},K.id)}})})]}),I.jsxs(A.DialogActions,{sx:{borderTop:1,borderColor:"divider",p:2},children:[I.jsx(A.Button,{onClick:w,variant:"outlined",children:y("common.cancel")}),I.jsx(A.Button,{onClick:N,variant:"contained",disabled:!J.selectedComponent||O&&Array.isArray(J.selectedComponent)&&J.selectedComponent.length===0,children:O&&Array.isArray(J.selectedComponent)&&J.selectedComponent.length>0?y("common.addMultiple",{count:J.selectedComponent.length}):y("common.add")})]})]})}function nI({containerHeight:C,component:s,minScale:w=.1,components:i}){const{locale:o}=T.useLocaleContext(),g=u.useReactive({scale:1,shouldScroll:!1,isVisible:!1,hadInit:!1}),M=m.useRef(null),j=m.useRef(null),O=m.useRef(0),L=m.useRef(null);m.useEffect(()=>{const S=new IntersectionObserver(([B])=>{g.isVisible=B.isIntersecting},{root:null,rootMargin:"50px",threshold:0});return j.current&&S.observe(j.current),()=>S.disconnect()},[]),m.useEffect(()=>{const S=()=>{if(O.current+=1,O.current>pg){B.disconnect();return}if(!s.previewImage&&M.current){const c=M.current.scrollHeight,z=C/c;z<w?(g.scale=w,g.shouldScroll=!0):z<1?(g.scale=z,g.shouldScroll=!1):(g.scale=1,g.shouldScroll=!1)}L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{g.hadInit=!0},200)},B=new ResizeObserver(()=>{setTimeout(S,20)});return M.current&&g.isVisible&&B.observe(M.current),()=>{B.disconnect()}},[C,w,g.isVisible,s]);const{id:e,type:y,component:J,properties:D,previewImage:b}=s,N=m.useMemo(()=>g.isVisible?b?I.jsx(A.Box,{component:"img",loading:"lazy",sx:{objectFit:"cover",borderRadius:1,cursor:"pointer"},src:H.getImageAbsoluteUrl(b),alt:s.name,width:"100%",height:"100%"},e):y==="basic"?I.jsx(h.BlockRenderer,{id:e,type:J,section:D,config:{...D,locale:o,editing:!1,dev:{mode:"draft"}}},e):I.jsx(Rg,{componentId:e,locale:o,components:i},e):null,[e,y,J,D,o,b,g.isVisible]);return I.jsx(A.Box,{ref:j,sx:{position:"relative",width:"100%",height:"100%",overflowX:"hidden",overflowY:g.shouldScroll?"auto":"hidden",transition:"all 0.3s ease"},children:I.jsxs(A.Box,{sx:{transform:`scale(${g.scale})`,transformOrigin:"top left",width:`${100/g.scale}%`,height:g.hadInit&&g.shouldScroll?"100%":`${100/g.scale}%`},children:[!g.hadInit&&I.jsx(A.Skeleton,{variant:"rectangular",width:"100%",height:"100%"}),I.jsx(A.Box,{ref:M,sx:{width:"100%",height:b?"100%":"auto",pointerEvents:"none",opacity:g.hadInit?1:0},children:N})]})})}function XI({groups:C,emptyText:s,renderItem:w,wrapperComponent:i=A.Box,wrapperComponentProps:o={display:"inline-flex",flexWrap:"wrap",gap:1}}){return I.jsx(A.Box,{children:Object.keys(C).length>0?Object.entries(C).map(([g,{title:M,components:j}])=>I.jsxs(A.Box,{mb:3,children:[g!==HI&&I.jsxs(A.Typography,{className:"blocklet-title",variant:"subtitle2",sx:{mb:2,fontWeight:500,color:"text.primary",display:"flex",alignItems:"center",gap:1},children:[I.jsx(A.Box,{component:"span",sx:{width:4,height:20,backgroundColor:"primary.main",borderRadius:1,display:"inline-block"}}),M]}),I.jsx(i,{...o,children:j.map(O=>w(O))})]},g)):I.jsx(yI.default,{children:s})})}exports.AddComponent=uI;exports.AutoScaledComponentRenderer=nI;exports.BASIC_COMPONENT_LIST=EI;exports.GroupedComponentsList=XI;exports.default=uI;exports.formatComponent=v;
@@ -1,4 +1,4 @@
1
- "use strict";var kt=Object.create;var ot=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var St=Object.getOwnPropertyNames;var Ct=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty;var Bt=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of St(e))!Nt.call(t,r)&&r!==n&&ot(t,r,{get:()=>e[r],enumerable:!(i=$t(e,r))||i.enumerable});return t};var Pt=(t,e,n)=>(n=t!=null?kt(Ct(t)):{},Bt(e||!t||!t.__esModule?ot(n,"default",{value:t,enumerable:!0}):n,t));const o=require("react/jsx-runtime");require("@mui/icons-material");const p=require("@mui/material"),f=require("react"),It=require("lodash/keyBy"),j=require("./state-D4MG-uJB.js"),F=require("@blocklet/ai-runtime/components"),Rt=require("@mui/utils"),Tt=require("lodash/pick"),Wt=require("react-error-boundary"),zt=require("@blocklet/pages-kit/builtin/markdown/markdown-renderer"),mt=require("@blocklet/pages-kit/contexts/color"),g=require("@emotion/css"),Et=require("react-syntax-highlighter/dist/esm/styles/prism"),k=require("@arcblock/ux/lib/Theme"),qt=require("@arcblock/react-hooks/lib/useBrowser"),Lt=require("@arcblock/ux/lib/Colors"),J=require("@blocklet/pages-kit/components"),rt=require("@blocklet/pages-kit/utils/style"),At=require("@mui/material/useMediaQuery"),Ot=require("lodash/omit"),pt=require("@iconify-icon/react"),Ut=require("@arcblock/ux/lib/Screenshot"),G=require("react-router-dom"),Ft=require("@arcblock/ux/lib/Button"),Dt=require("is-uri"),D=require("pathe"),T=require("ufo"),Mt=require("@blocklet/embed/message"),Vt=require("ahooks"),Ht=require("lodash/isEqual"),Yt=require("@blocklet/embed/react"),Jt=require("react-twitter-embed"),nt=require("react-use"),$=t=>t&&t.__esModule?t:{default:t},Gt=$(f),V=$(It),K=$(Tt),Kt=$(zt),Xt=$(qt),it=$(Lt),xt=$(At),C=$(Ot),Qt=$(Ut),Zt=$(Ft),H=$(Dt),te=$(Ht),ht="{{CUSTOM_VALUE}}",ee=[{title:"None",value:"none",sx:{py:0}},{title:"Small",value:"small",sx:{py:{xs:2.5,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{py:{xs:5,md:7.5,lg:10,xl:12.5}}},{title:"Large",value:"large",sx:{py:{xs:7.5,md:10,lg:12.5,xl:15}}}],oe=[{title:"None",value:"none",sx:{py:0}},{title:"Small",value:"small",sx:{py:{xs:2.5,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{py:{xs:5,md:7,lg:7,xl:9}}},{title:"Large",value:"large",sx:{py:{xs:6,md:9,lg:9,xl:11}}}],re=[{title:"None",value:"none",sx:{px:0}},{title:"Small",value:"small",sx:{px:{xs:2,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{px:{xs:2.5,md:7.5,lg:10,xl:12.5}}},{title:"Large",value:"large",sx:{px:{xs:2.5,md:10,lg:12.5,xl:15}}}],M=(t,e,n)=>{const i=t.breakpoints.values[n];return`${e}${i?` (${i}px)`:""}`},ne=[{title:"100%",value:"full",sx:{maxWidth:"100%"}},{title:t=>M(t,"Small","sm"),value:"sm",sx:{maxWidth:t=>t.breakpoints.values.sm,width:"100%",mx:"auto"}},{title:t=>M(t,"Normal","md"),value:"md",sx:{maxWidth:t=>t.breakpoints.values.md,width:"100%",mx:"auto"}},{title:t=>M(t,"Large","lg"),value:"lg",sx:{maxWidth:t=>t.breakpoints.values.lg,width:"100%",mx:"auto"}},{title:t=>M(t,"Extra Large","xl"),value:"xl",sx:{maxWidth:t=>t.breakpoints.values.xl,width:"100%",mx:"auto"}},{title:"Custom",value:"custom",sx:{maxWidth:ht,width:"100%",mx:"auto"}}],ie=V.default(ee,"value"),se=V.default(oe,"value"),ae=V.default(re,"value"),le=V.default(ne,"value"),ce=new Map([["baseSectionPaddingY",ie],["maxWidth",le],["paddingY",se],["paddingX",ae]]);function ft(t){var l;const{type:e,value:n,format:i="sx",defaultValue:r=null}=t,s=ce.get(e);if(!s)return r;const d=n.startsWith("custom:"),a=d?"custom":n;if(s!=null&&s[a]&&((l=s==null?void 0:s[a])!=null&&l[i])){const c=s[a][i];if(d){const u=n.replace("custom:","");try{return JSON.parse(JSON.stringify(c||{}).replaceAll(ht,u))}catch{}}return c}return r}const gt=f.createContext({page:null,getPageMeta:()=>({}),getPageMetaStyle:()=>({})});function de(){return f.useContext(gt)}function ue({page:t,children:e,defaultLocale:n="en",currentLocale:i}){const r=f.useMemo(()=>t?JSON.parse(JSON.stringify(t)):null,[JSON.stringify(t)]),s=f.useCallback(()=>{var c;if(!r)return{};const l=i||n;return((c=r.locales)==null?void 0:c[l])??{}},[r,n,i]),d=f.useCallback((l="sx")=>{const c=s();return!c||!c.style?{}:Object.entries(c.style||{}).reduce((m,[h,x])=>{if(!x)return m;const y=`${h}Custom`;c.style[y];const w=ft({type:h,value:x,format:l});return w?{...m,...w}:m},{})},[s]),a=f.useMemo(()=>({page:r,getPageMeta:s,getPageMetaStyle:d}),[r,s,d]);return o.jsx(gt.Provider,{value:a,children:e})}function R({actions:t,center:e,className:n,align:i}){return t&&(t!=null&&t.length)?o.jsx(p.Box,{className:g.cx("flex gap-4 flex-wrap","lg:flex-row lg:gap-8",(e||i==="center")&&"justify-center",!e&&i==="right"&&"justify-end",!e&&i==="left"&&"justify-start",n),sx:{alignItems:"center"},children:t}):null}const me="section",pe=p.styled(p.Box)`
1
+ "use strict";var kt=Object.create;var ot=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var St=Object.getOwnPropertyNames;var Ct=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty;var Bt=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of St(e))!Nt.call(t,r)&&r!==n&&ot(t,r,{get:()=>e[r],enumerable:!(i=$t(e,r))||i.enumerable});return t};var Pt=(t,e,n)=>(n=t!=null?kt(Ct(t)):{},Bt(e||!t||!t.__esModule?ot(n,"default",{value:t,enumerable:!0}):n,t));const o=require("react/jsx-runtime");require("@mui/icons-material");const p=require("@mui/material"),f=require("react"),It=require("lodash/keyBy"),j=require("./state-CA6q2h83.js"),F=require("@blocklet/ai-runtime/components"),Rt=require("@mui/utils"),Tt=require("lodash/pick"),Wt=require("react-error-boundary"),zt=require("@blocklet/pages-kit/builtin/markdown/markdown-renderer"),mt=require("@blocklet/pages-kit/contexts/color"),g=require("@emotion/css"),Et=require("react-syntax-highlighter/dist/esm/styles/prism"),k=require("@arcblock/ux/lib/Theme"),qt=require("@arcblock/react-hooks/lib/useBrowser"),Lt=require("@arcblock/ux/lib/Colors"),J=require("@blocklet/pages-kit/components"),rt=require("@blocklet/pages-kit/utils/style"),At=require("@mui/material/useMediaQuery"),Ot=require("lodash/omit"),pt=require("@iconify-icon/react"),Ut=require("@arcblock/ux/lib/Screenshot"),G=require("react-router-dom"),Ft=require("@arcblock/ux/lib/Button"),Dt=require("is-uri"),D=require("pathe"),T=require("ufo"),Mt=require("@blocklet/embed/message"),Vt=require("ahooks"),Ht=require("lodash/isEqual"),Yt=require("@blocklet/embed/react"),Jt=require("react-twitter-embed"),nt=require("react-use"),$=t=>t&&t.__esModule?t:{default:t},Gt=$(f),V=$(It),K=$(Tt),Kt=$(zt),Xt=$(qt),it=$(Lt),xt=$(At),C=$(Ot),Qt=$(Ut),Zt=$(Ft),H=$(Dt),te=$(Ht),ht="{{CUSTOM_VALUE}}",ee=[{title:"None",value:"none",sx:{py:0}},{title:"Small",value:"small",sx:{py:{xs:2.5,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{py:{xs:5,md:7.5,lg:10,xl:12.5}}},{title:"Large",value:"large",sx:{py:{xs:7.5,md:10,lg:12.5,xl:15}}}],oe=[{title:"None",value:"none",sx:{py:0}},{title:"Small",value:"small",sx:{py:{xs:2.5,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{py:{xs:5,md:7,lg:7,xl:9}}},{title:"Large",value:"large",sx:{py:{xs:6,md:9,lg:9,xl:11}}}],re=[{title:"None",value:"none",sx:{px:0}},{title:"Small",value:"small",sx:{px:{xs:2,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{px:{xs:2.5,md:7.5,lg:10,xl:12.5}}},{title:"Large",value:"large",sx:{px:{xs:2.5,md:10,lg:12.5,xl:15}}}],M=(t,e,n)=>{const i=t.breakpoints.values[n];return`${e}${i?` (${i}px)`:""}`},ne=[{title:"100%",value:"full",sx:{maxWidth:"100%"}},{title:t=>M(t,"Small","sm"),value:"sm",sx:{maxWidth:t=>t.breakpoints.values.sm,width:"100%",mx:"auto"}},{title:t=>M(t,"Normal","md"),value:"md",sx:{maxWidth:t=>t.breakpoints.values.md,width:"100%",mx:"auto"}},{title:t=>M(t,"Large","lg"),value:"lg",sx:{maxWidth:t=>t.breakpoints.values.lg,width:"100%",mx:"auto"}},{title:t=>M(t,"Extra Large","xl"),value:"xl",sx:{maxWidth:t=>t.breakpoints.values.xl,width:"100%",mx:"auto"}},{title:"Custom",value:"custom",sx:{maxWidth:ht,width:"100%",mx:"auto"}}],ie=V.default(ee,"value"),se=V.default(oe,"value"),ae=V.default(re,"value"),le=V.default(ne,"value"),ce=new Map([["baseSectionPaddingY",ie],["maxWidth",le],["paddingY",se],["paddingX",ae]]);function ft(t){var l;const{type:e,value:n,format:i="sx",defaultValue:r=null}=t,s=ce.get(e);if(!s)return r;const d=n.startsWith("custom:"),a=d?"custom":n;if(s!=null&&s[a]&&((l=s==null?void 0:s[a])!=null&&l[i])){const c=s[a][i];if(d){const u=n.replace("custom:","");try{return JSON.parse(JSON.stringify(c||{}).replaceAll(ht,u))}catch{}}return c}return r}const gt=f.createContext({page:null,getPageMeta:()=>({}),getPageMetaStyle:()=>({})});function de(){return f.useContext(gt)}function ue({page:t,children:e,defaultLocale:n="en",currentLocale:i}){const r=f.useMemo(()=>t?JSON.parse(JSON.stringify(t)):null,[JSON.stringify(t)]),s=f.useCallback(()=>{var c;if(!r)return{};const l=i||n;return((c=r.locales)==null?void 0:c[l])??{}},[r,n,i]),d=f.useCallback((l="sx")=>{const c=s();return!c||!c.style?{}:Object.entries(c.style||{}).reduce((m,[h,x])=>{if(!x)return m;const y=`${h}Custom`;c.style[y];const w=ft({type:h,value:x,format:l});return w?{...m,...w}:m},{})},[s]),a=f.useMemo(()=>({page:r,getPageMeta:s,getPageMetaStyle:d}),[r,s,d]);return o.jsx(gt.Provider,{value:a,children:e})}function R({actions:t,center:e,className:n,align:i}){return t&&(t!=null&&t.length)?o.jsx(p.Box,{className:g.cx("flex gap-4 flex-wrap","lg:flex-row lg:gap-8",(e||i==="center")&&"justify-center",!e&&i==="right"&&"justify-end",!e&&i==="left"&&"justify-start",n),sx:{alignItems:"center"},children:t}):null}const me="section",pe=p.styled(p.Box)`
2
2
  overflow: hidden;
3
3
 
4
4
  .section__title {
@@ -1 +1 @@
1
- "use strict";const i=require("react/jsx-runtime"),s=require("@blocklet/pages-kit/builtin/uploader"),h=require("@iconify-icon/react"),n=require("@mui/material"),l=require("react"),q=require("react-use"),I=require("./state-D4MG-uJB.js"),v=l.forwardRef(function({showMarkdown:S,markdown:j,onMarkdownChange:o,showUploader:p,value:c,meta:A,onChange:a,...u},z){const[t,m]=l.useState("");l.useEffect(()=>{m(c||"")},[c,m]);const f=async()=>{if(t!==c){const e=I.getImageAbsoluteUrl(t);if(!e){a(t,void 0);return}const r=await s.getImageSize(e).catch(()=>s.getVideoSize(e)).catch(()=>{});a(t,{...r,filename:t})}};q.useDebounce(()=>{t!==c&&a(t)},300,[t]),l.useImperativeHandle(z,()=>({submit:f}));const g={};return p&&(g.InputProps={sx:{pr:0},endAdornment:i.jsx(n.InputAdornment,{position:"end",sx:{mx:.5},children:i.jsx(s.UploaderButton,{onChange:async({response:e})=>{var b;const r=(b=e==null?void 0:e.data)==null?void 0:b.filename,d=I.getImageAbsoluteUrl(r)||"";let x={};d&&(x=await s.getImageSize(d).catch(()=>s.getVideoSize(d)).catch(()=>{})),a(r,{...x,filename:r})}})})}),i.jsx(n.TextField,{size:"small",fullWidth:!0,...u,label:i.jsxs(n.Stack,{direction:"row",spacing:1,alignItems:"center",children:[u.label,S&&i.jsxs(i.Fragment,{children:[" (",i.jsx(n.FormControlLabel,{checked:j,label:i.jsx(n.Box,{component:h.Icon,icon:"tabler:markdown",sx:{verticalAlign:"middle"}}),labelPlacement:"start",control:i.jsx(n.Switch,{size:"small"}),sx:{ml:.25,pr:1},onChange:(e,r)=>o==null?void 0:o(r)}),")"]})]}),InputLabelProps:{shrink:!0,...u.InputLabelProps},value:t,onChange:e=>m(e.target.value),...g,onKeyDown:e=>{e.keyCode!==229&&e.key==="Enter"&&f()}})});exports.ConfigString=v;
1
+ "use strict";const i=require("react/jsx-runtime"),s=require("@blocklet/pages-kit/builtin/uploader"),h=require("@iconify-icon/react"),n=require("@mui/material"),l=require("react"),q=require("react-use"),I=require("./state-CA6q2h83.js"),v=l.forwardRef(function({showMarkdown:S,markdown:j,onMarkdownChange:o,showUploader:p,value:c,meta:A,onChange:a,...u},z){const[t,m]=l.useState("");l.useEffect(()=>{m(c||"")},[c,m]);const f=async()=>{if(t!==c){const e=I.getImageAbsoluteUrl(t);if(!e){a(t,void 0);return}const r=await s.getImageSize(e).catch(()=>s.getVideoSize(e)).catch(()=>{});a(t,{...r,filename:t})}};q.useDebounce(()=>{t!==c&&a(t)},300,[t]),l.useImperativeHandle(z,()=>({submit:f}));const g={};return p&&(g.InputProps={sx:{pr:0},endAdornment:i.jsx(n.InputAdornment,{position:"end",sx:{mx:.5},children:i.jsx(s.UploaderButton,{onChange:async({response:e})=>{var b;const r=(b=e==null?void 0:e.data)==null?void 0:b.filename,d=I.getImageAbsoluteUrl(r)||"";let x={};d&&(x=await s.getImageSize(d).catch(()=>s.getVideoSize(d)).catch(()=>{})),a(r,{...x,filename:r})}})})}),i.jsx(n.TextField,{size:"small",fullWidth:!0,...u,label:i.jsxs(n.Stack,{direction:"row",spacing:1,alignItems:"center",children:[u.label,S&&i.jsxs(i.Fragment,{children:[" (",i.jsx(n.FormControlLabel,{checked:j,label:i.jsx(n.Box,{component:h.Icon,icon:"tabler:markdown",sx:{verticalAlign:"middle"}}),labelPlacement:"start",control:i.jsx(n.Switch,{size:"small"}),sx:{ml:.25,pr:1},onChange:(e,r)=>o==null?void 0:o(r)}),")"]})]}),InputLabelProps:{shrink:!0,...u.InputLabelProps},value:t,onChange:e=>m(e.target.value),...g,onKeyDown:e=>{e.keyCode!==229&&e.key==="Enter"&&f()}})});exports.ConfigString=v;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./state-D4MG-uJB.js");function n({children:e}){const r=t.useProjectId();return s.jsx(t.StoreProvider,{url:t.getWssURL(r??""),name:"root",waitingSynced:!0,children:s.jsx(o,{children:e})})}function o({children:e}){const{state:r}=t.useStore();return e({state:r})}exports.default=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./state-CA6q2h83.js");function n({children:e}){const r=t.useProjectId();return s.jsx(t.StoreProvider,{url:t.getWssURL(r??""),name:"root",waitingSynced:!0,children:s.jsx(o,{children:e})})}function o({children:e}){const{state:r}=t.useStore();return e({state:r})}exports.default=n;
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("react/jsx-runtime"),M=require("./state-D4MG-uJB.js"),Y=require("@arcblock/ux/lib/Locale/context"),le=require("@arcblock/ux/lib/Result"),ue=require("@blocklet/pages-kit/builtin/page/header"),de=require("@blocklet/pages-kit/contexts/color"),J=require("@blocklet/pages-kit/utils/data-source"),pe=require("@blocklet/pages-kit/utils/route"),ge=require("@blocklet/ui-react/lib/Header"),Z=require("@emotion/css"),N=require("@emotion/react"),me=require("@emotion/styled"),b=require("@mui/material"),G=require("ahooks"),fe=require("isomorphic-dompurify"),he=require("lodash/cloneDeep"),xe=require("lodash/isEmpty"),je=require("lodash/isEqual"),m=require("react"),ye=require("react-helmet"),P=require("react-router-dom"),ee=require("react-use"),E=require("ufo"),I=require("./array-BChVGKFh.js"),W=require("@arcblock/ux/lib/Theme"),be=require("@blocklet/ui-react/lib/Footer");require("webfontloader");const X=require("./session-BA7Qrcia.js"),S=t=>t&&t.__esModule?t:{default:t},te=S(le),ve=S(ge),ne=S(me),we=S(fe),V=S(he),Pe=S(xe),oe=S(je),ke=S(be),Re=W.styled(ke.default,{shouldForwardProp:t=>!!t})`
1
+ "use strict";const e=require("react/jsx-runtime"),M=require("./state-CA6q2h83.js"),Y=require("@arcblock/ux/lib/Locale/context"),le=require("@arcblock/ux/lib/Result"),ue=require("@blocklet/pages-kit/builtin/page/header"),de=require("@blocklet/pages-kit/contexts/color"),J=require("@blocklet/pages-kit/utils/data-source"),pe=require("@blocklet/pages-kit/utils/route"),ge=require("@blocklet/ui-react/lib/Header"),Z=require("@emotion/css"),N=require("@emotion/react"),me=require("@emotion/styled"),b=require("@mui/material"),G=require("ahooks"),fe=require("isomorphic-dompurify"),he=require("lodash/cloneDeep"),xe=require("lodash/isEmpty"),je=require("lodash/isEqual"),m=require("react"),ye=require("react-helmet"),P=require("react-router-dom"),ee=require("react-use"),E=require("ufo"),I=require("./array-C0IVbCmb.js"),W=require("@arcblock/ux/lib/Theme"),be=require("@blocklet/ui-react/lib/Footer");require("webfontloader");const X=require("./session-BA7Qrcia.js"),S=t=>t&&t.__esModule?t:{default:t},te=S(le),ve=S(ge),ne=S(me),we=S(fe),V=S(he),Pe=S(xe),oe=S(je),ke=S(be),Re=W.styled(ke.default,{shouldForwardProp:t=>!!t})`
2
2
  & > div > .MuiContainer-root {
3
3
  max-width: unset;
4
4
  }
@@ -26,11 +26,11 @@
26
26
  font-family: ${i};
27
27
  }
28
28
  }
29
- `})}function Me(){const[t]=P.useSearchParams(),{session:o}=X.useSessionContext(),r=X.useIsRoleOrMultiTenant("owner","admin","pagesEditor","member"),s=m.useMemo(()=>{const n=t.get("mode");return I.STATE_MODES.includes(n)?n:"production"},[t]),i=s==="production"?s:o.user?r?s:"production":null;return i?e.jsx(re,{mode:i}):null}function re({mode:t}){if(t!=="draft"){const o=window.__PAGE_STATE__;return o?e.jsx(A,{mode:t,state:o}):e.jsx(Be,{mode:t,children:({state:r})=>e.jsx(A,{mode:t,state:r})})}return e.jsx(Ie,{children:({state:o})=>e.jsx(A,{mode:t,state:o})})}const Ie=m.lazy(()=>Promise.resolve().then(()=>require("./draft-data-DPZIakr4.js")));function Be({mode:t,children:o}){const r=document.querySelector('meta[property="pages:version"]'),s=r==null?void 0:r.content,i=M.useProjectId(),n=m.useMemo(()=>{if(s==="{{pagesPublishedAt}}"){const l=localStorage.getItem(M.getProjectPageVersionKey(i??""));return Number(l)?Number(l):new Date().getTime()}return Number(s)},[s]),{loading:g,value:a}=ee.useAsync(()=>I.getPages({mode:t,version:n}),[t,n]);return g?e.jsx(se,{}):a?o({state:a}):null}function A({mode:t,state:o}){const{t:r,locale:s}=Y.useLocaleContext(),[i]=P.useSearchParams(),n=i.get("hiddenBadge")==="true",g=i.get("showPublish")==="true",{pageIds:a,pages:l,routeIds:f,routes:d,supportedLocales:p,config:{defaultLocale:h},resources:v}=o,w=M.getAllComponents(o),j=m.useMemo(()=>p!=null&&p.some(u=>u.locale===s)?s:void 0,[s,p]),B=Object.values(d||{}).find(u=>(u==null?void 0:u.path)==="/")||Object.values(l).find(u=>(u==null?void 0:u.slug)==="/")?void 0:Object.values(l)[0],H=m.useMemo(()=>a.map(u=>{const c=l[u];return c&&{id:c.id,path:E.joinURL("/",j||"",c.slug,t!=="production"?`?mode=${t}`:"")}}).filter(I.nonNullable),[a,l,j,t]),q=([...u])=>(t!=="production"&&g&&u.unshift(e.jsx(m.Suspense,{fallback:e.jsx("div",{}),children:e.jsx(Le,{mode:"production",state:o})})),u);return e.jsxs(I.Provider,{value:{pages:H},children:[e.jsxs(P.Routes,{children:[B&&e.jsx(P.Route,{index:!0,element:e.jsx(P.Navigate,{to:E.joinURL("/",j||"",B.slug)})}),f==null?void 0:f.map(u=>{var T,L,k,x;const c=d==null?void 0:d[u];if(!c||!c.displayTemplateId)return null;const _=l[c.displayTemplateId];if(!_)return null;let C=[];if(c.params&&c.params.length>0){const R=pe.generateParamCombinations({basePath:c.path,params:c.params,routeId:c.id,paramsOptions:c.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});C=R==null?void 0:R.map(U=>{var O,$,K,Q;const D=U.paramOptionIds.join("-");return e.jsx(P.Route,{path:E.joinURL(":projectIdOrSlug?",U.path),element:e.jsx(z,{mode:t,components:w,page:_,locale:j,defaultLocale:h,headerAddons:q,state:o,pageData:(Q=(K=($=(O=c.dataSource)==null?void 0:O.pathDataMappings)==null?void 0:$[D])==null?void 0:K.dataCache)==null?void 0:Q[j||h||"en"]})},D)})}return C.push(e.jsx(P.Route,{path:E.joinURL(":projectIdOrSlug?",c.path),element:e.jsx(z,{mode:t,components:w,page:_,locale:j,defaultLocale:h,headerAddons:q,state:o,pageData:(x=(k=(L=(T=c.dataSource)==null?void 0:T.pathDataMappings)==null?void 0:L[c.id])==null?void 0:k.dataCache)==null?void 0:x[j||h||"en"]})},c.id)),C}),a.map(u=>{const c=l[u];return c?e.jsx(P.Route,{path:E.joinURL(":projectIdOrSlug?",c.slug),element:e.jsx(F,{mode:t,components:w,page:c,locale:j,defaultLocale:h,headerAddons:q})},c.id):null}),v.pages&&Object.values(v.pages).map(({blockletId:u,page:c})=>e.jsx(P.Route,{path:E.joinURL("/",`@${u}`,c.slug),element:e.jsx(F,{mode:t,components:w,page:c,locale:j,defaultLocale:h,headerAddons:q})},c.id)),e.jsx(P.Route,{path:"*",element:e.jsx(b.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(te.default,{status:404,extra:e.jsx(ie,{href:"/",children:r("common.back")})})})})]}),t!=="production"&&!n&&e.jsx(qe,{sx:{bgcolor:"info.light"},children:t}),e.jsx(Ee,{})]})}function z({mode:t,pageData:o,components:r,page:s,locale:i,defaultLocale:n,headerAddons:g,state:a}){const l=G.useReactive({page:null});m.useEffect(()=>{const d=s||null;d?l.page=V.default(d):l.page=null},[s,l]);const f=m.useRef();return m.useEffect(()=>{oe.default(o,f.current)||o&&l.page&&(J.setPageDataSource(l.page,a,i,o),f.current=V.default(o))},[l.page,o,i,a]),l.page?e.jsx(F,{mode:t,components:r,page:l.page,locale:i,defaultLocale:n,headerAddons:g}):null}function Te({mode:t,state:o,path:r,pageData:s}){const{t:i,locale:n}=Y.useLocaleContext(),{pages:g,supportedLocales:a,config:{defaultLocale:l},resources:f}=o,d=Object.values(g).find(y=>(y==null?void 0:y.slug)===r),p=Object.values(f.pages||{}).find(y=>y.page.slug===r),h=m.useMemo(()=>a!=null&&a.some(y=>y.locale===n)?n:void 0,[n,a]),v=G.useReactive({page:null});m.useEffect(()=>{const y=d||(p==null?void 0:p.page)||null;y?v.page=V.default(y):v.page=null},[d,p]);const w=m.useRef();if(m.useEffect(()=>{oe.default(s,w.current)||s&&v.page&&(J.setPageDataSource(v.page,o,h,s),w.current=V.default(s))},[{}]),!d&&!(p!=null&&p.page))return e.jsx(b.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(te.default,{style:{background:"inherit"},status:404,extra:e.jsx(ie,{href:"/",children:i("common.back")})})});const j=M.getAllComponents(o);return v.page?e.jsx(F,{mode:t,components:j,page:v.page,locale:h,defaultLocale:l}):null}function F({mode:t,components:o,page:r,locale:s,defaultLocale:i,headerAddons:n}){var B,H,q,u,c,_,C,T,L;const g=de.useColorConvert(),a=((B=r.locales)==null?void 0:B[s])??((H=r.locales)==null?void 0:H[i])??{},l=a.title||((q=window.blocklet)==null?void 0:q.appName),f=a.description||((u=window.blocklet)==null?void 0:u.appDescription),d=M.autoResizeImage(M.getImageAbsoluteUrl(a.image),540),{logo:p,brand:h,description:v,...w}=ue.useHeaderState(),j=m.useMemo(()=>k=>{var R;let x=(n==null?void 0:n(k))??k;return x=((R=w.addons)==null?void 0:R.call(w,x))??x,x},[w.addons,n]),y=(c=a.header)!=null&&c.translucent?ce:ae;return e.jsxs(I.PageProvider,{page:r,defaultLocale:i,currentLocale:s,children:[e.jsx(N.Global,{styles:N.css`
29
+ `})}function Me(){const[t]=P.useSearchParams(),{session:o}=X.useSessionContext(),r=X.useIsRoleOrMultiTenant("owner","admin","pagesEditor","member"),s=m.useMemo(()=>{const n=t.get("mode");return I.STATE_MODES.includes(n)?n:"production"},[t]),i=s==="production"?s:o.user?r?s:"production":null;return i?e.jsx(re,{mode:i}):null}function re({mode:t}){if(t!=="draft"){const o=window.__PAGE_STATE__;return o?e.jsx(A,{mode:t,state:o}):e.jsx(Be,{mode:t,children:({state:r})=>e.jsx(A,{mode:t,state:r})})}return e.jsx(Ie,{children:({state:o})=>e.jsx(A,{mode:t,state:o})})}const Ie=m.lazy(()=>Promise.resolve().then(()=>require("./draft-data-BLL0M7MI.js")));function Be({mode:t,children:o}){const r=document.querySelector('meta[property="pages:version"]'),s=r==null?void 0:r.content,i=M.useProjectId(),n=m.useMemo(()=>{if(s==="{{pagesPublishedAt}}"){const l=localStorage.getItem(M.getProjectPageVersionKey(i??""));return Number(l)?Number(l):new Date().getTime()}return Number(s)},[s]),{loading:g,value:a}=ee.useAsync(()=>I.getPages({mode:t,version:n}),[t,n]);return g?e.jsx(se,{}):a?o({state:a}):null}function A({mode:t,state:o}){const{t:r,locale:s}=Y.useLocaleContext(),[i]=P.useSearchParams(),n=i.get("hiddenBadge")==="true",g=i.get("showPublish")==="true",{pageIds:a,pages:l,routeIds:f,routes:d,supportedLocales:p,config:{defaultLocale:h},resources:v}=o,w=M.getAllComponents(o),j=m.useMemo(()=>p!=null&&p.some(u=>u.locale===s)?s:void 0,[s,p]),B=Object.values(d||{}).find(u=>(u==null?void 0:u.path)==="/")||Object.values(l).find(u=>(u==null?void 0:u.slug)==="/")?void 0:Object.values(l)[0],H=m.useMemo(()=>a.map(u=>{const c=l[u];return c&&{id:c.id,path:E.joinURL("/",j||"",c.slug,t!=="production"?`?mode=${t}`:"")}}).filter(I.nonNullable),[a,l,j,t]),q=([...u])=>(t!=="production"&&g&&u.unshift(e.jsx(m.Suspense,{fallback:e.jsx("div",{}),children:e.jsx(Le,{mode:"production",state:o})})),u);return e.jsxs(I.Provider,{value:{pages:H},children:[e.jsxs(P.Routes,{children:[B&&e.jsx(P.Route,{index:!0,element:e.jsx(P.Navigate,{to:E.joinURL("/",j||"",B.slug)})}),f==null?void 0:f.map(u=>{var T,L,k,x;const c=d==null?void 0:d[u];if(!c||!c.displayTemplateId)return null;const _=l[c.displayTemplateId];if(!_)return null;let C=[];if(c.params&&c.params.length>0){const R=pe.generateParamCombinations({basePath:c.path,params:c.params,routeId:c.id,paramsOptions:c.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});C=R==null?void 0:R.map(U=>{var O,$,K,Q;const D=U.paramOptionIds.join("-");return e.jsx(P.Route,{path:E.joinURL(":projectIdOrSlug?",U.path),element:e.jsx(z,{mode:t,components:w,page:_,locale:j,defaultLocale:h,headerAddons:q,state:o,pageData:(Q=(K=($=(O=c.dataSource)==null?void 0:O.pathDataMappings)==null?void 0:$[D])==null?void 0:K.dataCache)==null?void 0:Q[j||h||"en"]})},D)})}return C.push(e.jsx(P.Route,{path:E.joinURL(":projectIdOrSlug?",c.path),element:e.jsx(z,{mode:t,components:w,page:_,locale:j,defaultLocale:h,headerAddons:q,state:o,pageData:(x=(k=(L=(T=c.dataSource)==null?void 0:T.pathDataMappings)==null?void 0:L[c.id])==null?void 0:k.dataCache)==null?void 0:x[j||h||"en"]})},c.id)),C}),a.map(u=>{const c=l[u];return c?e.jsx(P.Route,{path:E.joinURL(":projectIdOrSlug?",c.slug),element:e.jsx(F,{mode:t,components:w,page:c,locale:j,defaultLocale:h,headerAddons:q})},c.id):null}),v.pages&&Object.values(v.pages).map(({blockletId:u,page:c})=>e.jsx(P.Route,{path:E.joinURL("/",`@${u}`,c.slug),element:e.jsx(F,{mode:t,components:w,page:c,locale:j,defaultLocale:h,headerAddons:q})},c.id)),e.jsx(P.Route,{path:"*",element:e.jsx(b.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(te.default,{status:404,extra:e.jsx(ie,{href:"/",children:r("common.back")})})})})]}),t!=="production"&&!n&&e.jsx(qe,{sx:{bgcolor:"info.light"},children:t}),e.jsx(Ee,{})]})}function z({mode:t,pageData:o,components:r,page:s,locale:i,defaultLocale:n,headerAddons:g,state:a}){const l=G.useReactive({page:null});m.useEffect(()=>{const d=s||null;d?l.page=V.default(d):l.page=null},[s,l]);const f=m.useRef();return m.useEffect(()=>{oe.default(o,f.current)||o&&l.page&&(J.setPageDataSource(l.page,a,i,o),f.current=V.default(o))},[l.page,o,i,a]),l.page?e.jsx(F,{mode:t,components:r,page:l.page,locale:i,defaultLocale:n,headerAddons:g}):null}function Te({mode:t,state:o,path:r,pageData:s}){const{t:i,locale:n}=Y.useLocaleContext(),{pages:g,supportedLocales:a,config:{defaultLocale:l},resources:f}=o,d=Object.values(g).find(y=>(y==null?void 0:y.slug)===r),p=Object.values(f.pages||{}).find(y=>y.page.slug===r),h=m.useMemo(()=>a!=null&&a.some(y=>y.locale===n)?n:void 0,[n,a]),v=G.useReactive({page:null});m.useEffect(()=>{const y=d||(p==null?void 0:p.page)||null;y?v.page=V.default(y):v.page=null},[d,p]);const w=m.useRef();if(m.useEffect(()=>{oe.default(s,w.current)||s&&v.page&&(J.setPageDataSource(v.page,o,h,s),w.current=V.default(s))},[{}]),!d&&!(p!=null&&p.page))return e.jsx(b.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(te.default,{style:{background:"inherit"},status:404,extra:e.jsx(ie,{href:"/",children:i("common.back")})})});const j=M.getAllComponents(o);return v.page?e.jsx(F,{mode:t,components:j,page:v.page,locale:h,defaultLocale:l}):null}function F({mode:t,components:o,page:r,locale:s,defaultLocale:i,headerAddons:n}){var B,H,q,u,c,_,C,T,L;const g=de.useColorConvert(),a=((B=r.locales)==null?void 0:B[s])??((H=r.locales)==null?void 0:H[i])??{},l=a.title||((q=window.blocklet)==null?void 0:q.appName),f=a.description||((u=window.blocklet)==null?void 0:u.appDescription),d=M.autoResizeImage(M.getImageAbsoluteUrl(a.image),540),{logo:p,brand:h,description:v,...w}=ue.useHeaderState(),j=m.useMemo(()=>k=>{var R;let x=(n==null?void 0:n(k))??k;return x=((R=w.addons)==null?void 0:R.call(w,x))??x,x},[w.addons,n]),y=(c=a.header)!=null&&c.translucent?ce:ae;return e.jsxs(I.PageProvider,{page:r,defaultLocale:i,currentLocale:s,children:[e.jsx(N.Global,{styles:N.css`
30
30
  body {
31
31
  background-color: ${g(!a.backgroundColor||a.backgroundColor==="transparent"?"background.default":a.backgroundColor)} !important;
32
32
  }
33
- `}),e.jsx(y,{hideNavMenu:!!((_=a.header)!=null&&_.hideNavMenus),translucentTextColor:(C=a.header)==null?void 0:C.translucentTextColor,...p?{logo:p}:{},...h?{brand:h}:{},...v?{description:v}:{},className:Z.cx(((T=a.header)==null?void 0:T.sticky)&&"sticky","page-header"),maxWidth:!1,addons:j}),e.jsx(P.ScrollRestoration,{}),e.jsxs(ye.Helmet,{children:[e.jsx("title",{children:l}),e.jsx("meta",{name:"og:title",content:l}),e.jsx("meta",{name:"og:description",content:f}),e.jsx("meta",{name:"og:image",content:d}),e.jsx("meta",{name:"twitter:image:src",content:d}),e.jsx("meta",{name:"twitter:image",content:d}),e.jsx("meta",{property:"twitter:description",content:f}),e.jsx("meta",{property:"twitter:title",content:l}),e.jsx("meta",{name:"description",content:f})]}),e.jsx(b.Stack,{flexGrow:1,className:"PageView-root",sx:{"& .BlockBase-root:first-child":{pt:"0 !important"}},children:r.sectionIds.map(k=>{var D,O;const x=r.sections[k];if(!x||x.visibility==="hidden")return null;const R=(D=x.locales)==null?void 0:D[s],U=((O=x.locales)==null?void 0:O[i])??{};return e.jsx(I.BlockRenderer,{id:k,type:x.component,mode:t,section:x,config:{...Pe.default(R)?U:R,locale:s,dev:t==="draft"?{mode:t,components:o,defaultLocale:i}:{mode:t}}},k)})}),!((L=a.footer)!=null&&L.hidden)&&e.jsx(Se,{})]})}const Le=m.lazy(()=>Promise.resolve().then(()=>require("./publish-button-DvXGUgra.js"))),ae=ne.default(ve.default)`
33
+ `}),e.jsx(y,{hideNavMenu:!!((_=a.header)!=null&&_.hideNavMenus),translucentTextColor:(C=a.header)==null?void 0:C.translucentTextColor,...p?{logo:p}:{},...h?{brand:h}:{},...v?{description:v}:{},className:Z.cx(((T=a.header)==null?void 0:T.sticky)&&"sticky","page-header"),maxWidth:!1,addons:j}),e.jsx(P.ScrollRestoration,{}),e.jsxs(ye.Helmet,{children:[e.jsx("title",{children:l}),e.jsx("meta",{name:"og:title",content:l}),e.jsx("meta",{name:"og:description",content:f}),e.jsx("meta",{name:"og:image",content:d}),e.jsx("meta",{name:"twitter:image:src",content:d}),e.jsx("meta",{name:"twitter:image",content:d}),e.jsx("meta",{property:"twitter:description",content:f}),e.jsx("meta",{property:"twitter:title",content:l}),e.jsx("meta",{name:"description",content:f})]}),e.jsx(b.Stack,{flexGrow:1,className:"PageView-root",sx:{"& .BlockBase-root:first-child":{pt:"0 !important"}},children:r.sectionIds.map(k=>{var D,O;const x=r.sections[k];if(!x||x.visibility==="hidden")return null;const R=(D=x.locales)==null?void 0:D[s],U=((O=x.locales)==null?void 0:O[i])??{};return e.jsx(I.BlockRenderer,{id:k,type:x.component,mode:t,section:x,config:{...Pe.default(R)?U:R,locale:s,dev:t==="draft"?{mode:t,components:o,defaultLocale:i}:{mode:t}}},k)})}),!((L=a.footer)!=null&&L.hidden)&&e.jsx(Se,{})]})}const Le=m.lazy(()=>Promise.resolve().then(()=>require("./publish-button-Cw_MfRfv.js"))),ae=ne.default(ve.default)`
34
34
  &.sticky {
35
35
  position: sticky;
36
36
  top: 0;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),F=require("./state-CA6q2h83.js"),W=require("@arcblock/ux/lib/Locale/context"),ee=require("@arcblock/ux/lib/Toast"),te=require("@blocklet/pages-kit/utils/route"),P=require("@mui/icons-material"),J=require("@mui/lab"),s=require("@mui/material"),se=require("immer"),ne=require("lodash/difference"),l=require("react"),ie=require("react-use"),re=require("./home-DH9Z8Tuv.js"),U=require("./array-C0IVbCmb.js"),G=r=>r&&r.__esModule?r:{default:r},$=G(ee),H=G(ne);function oe(r){const[j,k]=l.useState(!1);return e.jsx(J.LoadingButton,{...r,loading:r.loading||j,onClick:u=>{var b;const p=(b=r.onClick)==null?void 0:b.call(r,u);p instanceof Promise&&(k(!0),p.finally(()=>{k(!1)}))}})}const ae=s.createSvgIcon(e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M7.75732 16.2426L16.2426 7.75736",stroke:"#4B5563",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M16.2426 16.2426L7.75732 7.75735",stroke:"#4B5563",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),"Close");function le(){const[r,j]=l.useState(),k=l.useMemo(()=>r?e.jsx(s.Dialog,{...r}):null,[r]),u=l.useCallback(()=>{j(void 0)},[]),p=l.useCallback(({title:b,content:d,cancelText:S="Cancel",okText:f="Ok",onOk:g,onClose:c,okIcon:O,okColor:w="primary",cancelColor:y="primary",DialogContentProps:A,form:E,...z})=>{j({...z,open:!0,children:e.jsxs("form",{onSubmit:v=>v.preventDefault(),children:[b&&e.jsxs(s.DialogTitle,{className:"between",zIndex:"appBar",bgcolor:"background.paper",sx:{borderBottom:v=>`1px solid ${v.palette.divider}`},children:[e.jsx(s.Box,{children:b}),e.jsx(s.IconButton,{size:"small",onClick:async()=>{u(),c==null||c()},children:e.jsx(ae,{})})]}),d&&e.jsx(s.DialogContent,{...A,sx:{mt:-3,...A==null?void 0:A.sx},children:e.jsx(s.Box,{pt:3,children:d})}),e.jsxs(s.DialogActions,{children:[e.jsx(s.Button,{variant:"outlined",color:y||"primary",onClick:c??u,children:S}),e.jsx(oe,{variant:"contained",color:w||"primary",startIcon:O,loadingPosition:O?"start":"center",onClick:async()=>{await(g==null?void 0:g()),u()},type:"submit",children:f})]})]}),onClose:c??u})},[u]);return{dialog:k,showDialog:p,closeDialog:u}}const ce=l.forwardRef(({mode:r,state:j},k)=>{const{t:u}=W.useLocaleContext(),[p,b]=l.useState(!1),{dialog:d,showDialog:S}=le(),f=F.useProjectId(),g=l.useCallback(O=>{let w=[];S({title:u("maker.publishToProduction"),content:e.jsxs(s.Box,{sx:{minWidth:300},children:[e.jsx(s.Alert,{color:"warning",icon:e.jsx(P.Warning,{}),children:u("maker.publishToProductionTip")}),e.jsx(s.Box,{maxHeight:"50vh",overflow:"auto",mt:2,children:e.jsx(de,{state:j,toMode:r,onChange:y=>w=y,defaultRouteIds:O})})]}),okText:u("maker.publish"),cancelText:u("common.cancel"),onOk:async()=>{if((w==null?void 0:w.length)===0){const y=u("maker.publishSelectPagesMessage");throw $.default.error(y),new Error(y)}localStorage.setItem(F.getProjectPageVersionKey(f??""),String(new Date().getTime())),b(!0);try{await U.publishPages({mode:r,routes:w}),$.default.success(u("maker.publishSuccessMessage"))}catch(y){throw $.default.error(y.message),y}finally{b(!1)}}})},[r,j,u,f,S]);l.useImperativeHandle(k,()=>({openPublishDialog:g}));const c=l.useCallback(()=>{g()},[g]);return e.jsxs(e.Fragment,{children:[e.jsx(J.LoadingButton,{color:"primary",variant:"contained",size:"small",sx:{mr:1},onClick:c,loading:p,disabled:p,children:u("maker.publishToProduction")}),d]})});function ue({routePathInfo:r,checked:j,onClick:k,route:u}){var d,S,f,g,c;const{t:p}=W.useLocaleContext(),b=!((d=r.routeMetaData)!=null&&d.publishedAt)||((S=r.routeMetaData)==null?void 0:S.updatedAt)&&new Date((f=r.routeMetaData)==null?void 0:f.updatedAt)>new Date((g=r.routeMetaData)==null?void 0:g.publishedAt);return e.jsx(s.ListItem,{sx:{pl:4,pr:3},disablePadding:!0,secondaryAction:e.jsxs(s.Box,{display:"flex",alignItems:"center",sx:{minWidth:"auto"},children:[b&&e.jsx(s.Box,{mr:.35,className:"visible",color:"warning.main",sx:{display:"flex",alignItems:"center"},title:p("maker.pages.needPublish"),children:e.jsx(s.Tooltip,{title:p("maker.pages.needPublish"),children:e.jsx(P.Sync,{fontSize:"small",sx:{fontSize:"16px"}})})}),(!((c=r.routeMetaData)!=null&&c.isPublic)||!u.isPublic)&&e.jsx(s.Box,{className:"visible",color:"warning.main",children:e.jsx(s.Tooltip,{title:p("maker.pages.notPublic"),children:e.jsx(P.VisibilityOff,{fontSize:"small",sx:{fontSize:"16px"}})})})]}),children:e.jsxs(s.ListItemButton,{onClick:k,dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:j,tabIndex:-1})}),e.jsx(s.ListItemText,{primary:r.path,primaryTypographyProps:{fontSize:"0.8rem",fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",pr:1}})]})})}function de({state:r,toMode:j,onChange:k,defaultRouteIds:u}){const{t:p,locale:b}=W.useLocaleContext(),[d,S]=l.useState(!1),[f,g]=l.useState(()=>u?Object.fromEntries(u.filter(t=>!t.includes("-")).map(t=>[t,!0])):{}),[c,O]=l.useState({}),[w,y]=l.useState(()=>u?Object.fromEntries(u.filter(t=>t.includes("-")).map(t=>[t,!0])):{}),[A,E]=l.useState({}),{loading:z,error:v,value:x}=ie.useAsync(()=>U.getPages({mode:j}),[j]);if(v)throw v;const T=l.useMemo(()=>r.routeIds||[],[r]),I=l.useMemo(()=>(x==null?void 0:x.pageIds)||[],[x]),L=l.useMemo(()=>!T||!r.routes?[]:JSON.parse(JSON.stringify(T)).sort((o,i)=>{var h,m;const n=(h=r.routes)==null?void 0:h[o],a=(m=r.routes)==null?void 0:m[i];return n!=null&&n.publishedAt&&new Date(n.publishedAt).getTime()<new Date(n.updatedAt).getTime()?-1:a!=null&&a.publishedAt&&new Date(a.publishedAt).getTime()<new Date(a.updatedAt).getTime()?1:new Date((n==null?void 0:n.updatedAt)??"").getTime()-new Date((a==null?void 0:a.updatedAt)??"").getTime()}),[r,T]),q=l.useMemo(()=>{if(!L)return[];if(!c)return L;const t=[...L].filter(o=>!c[o]);return Object.values(c).forEach(o=>{o.forEach(i=>{t.push(`${i.originalRouteId}-${i.paramOptionIds.join("-")}`)})}),t},[L,c]),B=l.useMemo(()=>!x||!I||!q?[]:H.default(I,q),[q,x,I]),C=l.useMemo(()=>T?[...T].concat(B):B,[T,B]),_=l.useCallback(()=>{const t={};L==null||L.forEach(o=>{var n;const i=(n=r.routes)==null?void 0:n[o];if(i&&i.params&&i.params.length>0&&i.paramsOptions&&i.paramsOptions.length>0){const a=te.generateParamCombinations({basePath:i.path,params:i.params,routeId:i.id,paramsOptions:i.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});a.length>0&&(t[i.id]=a)}}),O(t)},[L,r.routes]);l.useEffect(()=>{_()},[_]),l.useEffect(()=>{E(t=>{const o={...t};return Object.keys(c).forEach(i=>{var n;c[i]&&((n=c[i])==null?void 0:n.length)>0&&o[i]===void 0&&(o[i]=!0)}),o})},[c]);const K=l.useRef(!0);l.useEffect(()=>{y(t=>{const o={...t};return Object.keys(c).length===0||(Object.keys(c).forEach(i=>{const n=c[i]||[],a=d||!!f[i];n.forEach(h=>{const m=`${i}-${h.paramOptionIds.join("-")}`;K.current?o[m]=a||t[m]||!1:o[m]=a})}),K.current=!1),o})},[f,c,d]);const Q=(t,o)=>{o.stopPropagation(),E(i=>{const n={...i};return n[t]=!n[t],n})},N=l.useCallback(t=>{g(o=>{const i=se.produce(o,n=>{d?(Object.assign(n,Object.fromEntries(C.map(a=>[a,!0]))),delete n[t]):n[t]?(delete n[t],B.includes(t)&&(T||[]).filter(a=>{var h,m;return((h=r.pages[a])==null?void 0:h.slug)===((m=x==null?void 0:x.pages[t])==null?void 0:m.slug)}).forEach(a=>{delete n[a]})):(n[t]=!0,T&&T.includes(t)&&B.filter(a=>{var h,m;return((h=x==null?void 0:x.pages[a])==null?void 0:h.slug)===((m=r.pages[t])==null?void 0:m.slug)}).forEach(a=>{n[a]=!0}))});return S(H.default(C,Object.keys(i)).length===0),i})},[d,C,B,r,x,T]),X=l.useCallback((t,o)=>{const i=`${t}-${o.paramOptionIds.join("-")}`;y(n=>{var m;const a={...n};a[i]=!a[i];const h=((m=c[t])==null?void 0:m.every(D=>a[`${t}-${D.paramOptionIds.join("-")}`]))??!1;return g(D=>{if(h&&!D[t])return{...D,[t]:!0};if(!h&&D[t]){const R={...D};return delete R[t],R}return D}),a})},[c]),Y=l.useCallback(()=>{S(t=>(t&&g({}),!t))},[]);return l.useEffect(()=>{const t=d?C:Object.keys(f),o=Object.entries(w).filter(([,n])=>n).map(([n])=>n).filter(n=>n!==void 0),i=Array.from(new Set([...t,...o]));k(d?null:i)},[d,f,w,C,k]),z?e.jsx(re.Loading,{sx:{my:4}}):e.jsxs(s.List,{disablePadding:!0,sx:{maxWidth:700},children:[e.jsx(s.ListItem,{sx:{position:"sticky",top:0,bgcolor:"background.paper",zIndex:1},disablePadding:!0,children:e.jsxs(s.ListItemButton,{onClick:Y,dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d,tabIndex:-1})}),e.jsx(s.ListItemText,{primary:p("common.all")})]})}),L.map(t=>{var D,R;const o=(D=r.routes)==null?void 0:D[t];if(!o)return null;const i=!1,n=c&&c[t]&&((R=c[t])==null?void 0:R.length)>0,a=A[t]!==!1,h=c[t]||[],m=!o.publishedAt||o.updatedAt&&new Date(o.updatedAt).getTime()>new Date(o.publishedAt).getTime();return e.jsxs(s.Box,{children:[e.jsx(s.ListItem,{sx:{pr:4},disablePadding:!0,secondaryAction:e.jsxs(s.Box,{sx:{display:"flex",alignItems:"center"},children:[m&&e.jsx(s.Tooltip,{title:p("maker.pages.needPublish"),children:e.jsx(P.Sync,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),!o.isPublic&&e.jsx(s.Tooltip,{title:p("maker.pages.notPublic"),children:e.jsx(P.VisibilityOff,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),i,n&&e.jsx(s.Box,{onClick:M=>Q(t,M),sx:{display:"inline-flex",alignItems:"center",mr:.35,cursor:"pointer",color:"info.main"},children:a?e.jsx(P.KeyboardArrowDown,{fontSize:"small",sx:{fontSize:"18px"}}):e.jsx(P.KeyboardArrowRight,{fontSize:"small",sx:{fontSize:"18px"}})})]}),children:e.jsxs(s.ListItemButton,{onClick:()=>N(t),dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d||!!f[t],tabIndex:-1})}),e.jsx(s.ListItemText,{primary:o.path,primaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"},secondaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"}})]})}),n&&e.jsx(s.Collapse,{in:a,children:e.jsx(s.Box,{children:h.map(M=>{const V=`${t}-${M.paramOptionIds.join("-")}`,Z=w[V]||!1;return e.jsx(ue,{routePathInfo:M,checked:d||Z,onClick:()=>X(t,M),route:o},V)})})})]},t)}),B.map(t=>{var i,n;const o=x==null?void 0:x.pages[t];return o?e.jsx(s.ListItem,{disablePadding:!0,secondaryAction:e.jsx(s.Chip,{color:"warning",label:"deleted",size:"small"}),children:e.jsxs(s.ListItemButton,{onClick:()=>N(t),dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d||!!f[t],tabIndex:-1})}),e.jsx(s.ListItemText,{primary:o.slug,secondary:(n=(i=o.locales)==null?void 0:i[b])==null?void 0:n.title,primaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"},secondaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"}})]})},t):null})]})}exports.default=ce;
@@ -0,0 +1,57 @@
1
+ "use strict";var Pt=Object.defineProperty;var _t=(e,s,t)=>s in e?Pt(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var x=(e,s,t)=>_t(e,typeof s!="symbol"?s+"":s,t);const jt=require("@blocklet/pages-kit/builtin/utils"),ye=require("@blocklet/pages-kit/types"),re=require("@blocklet/pages-kit/utils/property"),ie=require("@blocklet/quickjs"),Dt=require("@blocklet/sdk/lib/config"),qe=require("lru-cache"),at=require("node-fetch"),M=require("ufo"),W=require("crypto"),vt=require("@blocklet/logger"),S=require("fs"),w=require("path"),xt=require("lodash/isNil"),kt=require("@blocklet/pages-kit/utils/builtin"),ot=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),$e=require("@blocklet/sdk/lib/component"),Nt=require("autoprefixer"),Rt=require("esbuild"),Lt=require("postcss"),Mt=require("tailwindcss"),Ut=require("typescript"),Q=require("@syncedstore/core"),Ft=require("yjs"),qt=require("@blocklet/pages-kit/utils/data-source"),be=require("@blocklet/pages-kit/utils/route"),$t=require("lodash"),Bt=require("@reactivedata/reactive"),ke=require("glob"),Ht=require("lib0/decoding"),Gt=require("lib0/encoding"),Vt=require("lodash/cloneDeep"),Jt=require("lodash/debounce"),zt=require("lodash/get"),Kt=require("lodash/isEmpty"),Yt=require("lodash/pick"),Wt=require("lodash/set"),Qt=require("lodash/union"),Xt=require("nanoid"),Zt=require("p-limit"),es=require("stream/promises"),ts=require("tar"),ss=require("wait-on"),se=require("y-protocols/awareness"),je=require("y-protocols/sync"),ns=require("yaml"),j=require("sequelize");require("sqlite3");require("@blocklet/pages-kit/types/state");const N=e=>e&&e.__esModule?e:{default:e};function de(e){if(e&&e.__esModule)return e;const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const I=N(Dt),as=N(at),os=N(vt),rt=N(w),rs=N(xt),is=N(Nt),cs=de(Rt),ls=N(Lt),ds=N(Mt),L=N(Ut),B=de(Ft),De=de(Ht),k=de(Gt),us=N(Vt),it=N(Jt),Be=N(zt),ps=N(Kt),fs=N(Yt),Qe=N(Wt),ms=N(Qt),gs=N(Zt),hs=N(ss),X=de(ns);I.default.env.mode;I.default.env.OPENAI_API_KEY||process.env.OPENAI_API_KEY;I.default.env.OPENAI_BASE_URL||process.env.OPENAI_BASE_URL;I.default.env.TRANSLATE_ADDITIONAL_PROMPT||process.env.TRANSLATE_ADDITIONAL_PROMPT;I.default.env.PAGE_CONTENT_ADDITIONAL_PROMPT||process.env.PAGE_CONTENT_ADDITIONAL_PROMPT;const ys="image-bin";I.default.env.INIT_TEMPLATE_PATH;const Ss=process.env.DATABASE_URL||rt.default.join(I.default.env.dataDir,"db/pages-kit.db"),Xe=I.default,ws=()=>I.default.env.tenantMode==="multiple",bs=()=>{var e;return(rs.default(Xe.env.preferences.multiTenantAllProjectAccessPassports)?[]:(e=Xe.env.preferences.multiTenantAllProjectAccessPassports)==null?void 0:e.split(","))||[]},Es=rt.default.join(I.default.env.dataDir,"fs-memoize-cache"),Is=I.default.env.FS_MEMOIZE_CACHE_VERSION||"v1.0.0",O=os.default("pages-kit"),Os=j.DataTypes.sqlite.DATE.parse;j.DataTypes.sqlite.DATE.parse=(e,s)=>typeof e=="number"?new Date(e):Os(e,s);const ue=new j.Sequelize({dialect:"sqlite",storage:Ss,benchmark:process.env.ENABLE_SEQUELIZE_BENCHMARK==="true",retry:{match:[/SQLITE_BUSY/],name:"query",max:10},logging:process.env.ENABLE_SEQUELIZE_LOGGING==="true"?console.log:!1});ue.query("pragma journal_mode = WAL;");ue.query("pragma synchronous = normal;");ue.query("pragma journal_size_limit = 67108864;");class Te extends j.Model{}Te.init({id:{type:j.DataTypes.UUID,allowNull:!1,primaryKey:!0,defaultValue:j.DataTypes.UUIDV4},projectId:{type:j.DataTypes.UUID,allowNull:!1},componentId:{type:j.DataTypes.STRING,allowNull:!1}},{sequelize:ue,tableName:"ProjectComponents",timestamps:!1});class J extends j.Model{static async getProjectByIdOrSlug(s){return J.findOne({where:{[j.Op.or]:[{id:s},{slug:s}]}})}}J.init({id:{type:j.DataTypes.UUID,defaultValue:j.DataTypes.UUIDV4,primaryKey:!0},name:{type:j.DataTypes.STRING,allowNull:!1},description:j.DataTypes.TEXT,createdAt:j.DataTypes.DATE,updatedAt:j.DataTypes.DATE,createdBy:{type:j.DataTypes.STRING,allowNull:!1},updatedBy:{type:j.DataTypes.STRING,allowNull:!1},slug:j.DataTypes.STRING,icon:j.DataTypes.STRING,pinnedAt:j.DataTypes.DATE,useAllResources:j.DataTypes.BOOLEAN,npmSecret:j.DataTypes.STRING,relatedBlocklets:{type:j.DataTypes.JSON,allowNull:!1,defaultValue:{},get(){return this.getDataValue("relatedBlocklets")||{}},set(e){this.setDataValue("relatedBlocklets",JSON.stringify(e||{}))}}},{sequelize:ue,paranoid:!0});J.hasMany(Te,{foreignKey:"projectId",as:"components"});const As=Es,Ts=Is,Ne=7*24*60*60*1e3,Cs=24*60*60*1e3,ct=async(e="")=>{const s=w.join(As,e);try{if(!(await S.promises.stat(s)).isDirectory())throw new Error(`${s} is not a directory`)}catch{await S.promises.mkdir(s,{recursive:!0})}return s},Ps=(e,s)=>{const t=W.createHash("md5").update(s).digest("hex");return w.join(e,`${Ts}-${t}.json`)},_s=async(e="")=>{const s=await ct(e),t=Date.now();try{const n=await S.promises.readdir(s);await Promise.all(n.filter(a=>a.endsWith(".json")).map(async a=>{const o=w.join(s,a);try{const d=await S.promises.readFile(o,"utf-8"),i=JSON.parse(d);i.createdAt&&t-i.createdAt>Ne&&await S.promises.unlink(o)}catch{try{const i=await S.promises.stat(o);t-i.mtimeMs>Ne&&await S.promises.unlink(o)}catch{}}}))}catch(n){console.error(`Failed to cleanup cache in ${s}:`,n)}},js=(()=>{const e=new Set;return setInterval(async()=>{await Promise.all(Array.from(e).map(n=>_s(n)))},Cs).unref(),n=>{e.add(n)}})();function He(e,s){return s.subdir&&js(s.subdir),ie.memoize(async(...n)=>{const a=await ct(s.subdir||""),o=s.keyGenerator?s.keyGenerator(...n):JSON.stringify(n),d=Ps(a,o);try{const i=await S.promises.readFile(d,"utf-8"),{value:p,createdAt:r}=JSON.parse(i);if(r&&Date.now()-r>Ne)throw await S.promises.unlink(d).catch(()=>{}),new Error("Cache expired");return p}catch{const p=await e(...n),r=JSON.stringify({value:p,createdAt:Date.now()});return S.promises.writeFile(d,r,"utf-8").catch(u=>{console.error("Failed to write fs cache:",u)}),p}},{keyGenerator:s.keyGenerator,lruOptions:s.lruOptions})}const Ds=async(e,{componentId:s})=>{const t=`@tailwind components;
2
+ @tailwind utilities;
3
+ `,n=`.CustomComponent_${s}`;return(await ls.default([ds.default({content:[{raw:e,extension:"tsx"}]}),is.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),o=>{o.walkRules(d=>{d.selectors=d.selectors.map(i=>i.replace(/\.(.+)/g,`${n}.$1,${n} .$1`))})}]).process(t)).css},vs=async(e,{componentId:s})=>{const t=await Ds(e,{componentId:s});return`export const __PagesKit_CSS__ = ${JSON.stringify(t)};
4
+
5
+ ${e}
6
+ `},Ze=He(async(e,s)=>{let t=L.default.transpileModule(e,{compilerOptions:{jsx:L.default.JsxEmit.React,target:L.default.ScriptTarget.ES2016,module:L.default.ModuleKind.ESNext},transformers:{before:[ot.createBuiltinModuleTransformer(L.default)]}}).outputText;if(s.tailwind&&(t=await vs(t,{componentId:s.componentId})),s.module===ye.PreloadComponentScriptModule.ESM)return t;const n=L.default.transpileModule(t,{compilerOptions:{jsx:L.default.JsxEmit.React,target:L.default.ScriptTarget.ES2016,module:L.default.ModuleKind.CommonJS,moduleResolution:L.default.ModuleResolutionKind.Node16}}).outputText;return s.module===ye.PreloadComponentScriptModule.CJS?n:ks(s.moduleName,n)},{keyGenerator:(e,s)=>{const t=W.createHash("md5").update(e).digest("hex"),n={...s,componentId:s.componentId,module:s.module,...s.module!==ye.PreloadComponentScriptModule.ESM?{moduleName:s.moduleName}:{},tailwind:s.tailwind};return JSON.stringify(["transpileModule",t,n])},lruOptions:{max:100,ttl:1e3*60*60},subdir:"transpileModule"}),xs=async(e,s)=>{var d,i;const n=(i=(d=(await cs.build({entryPoints:["index.tsx"],external:Object.keys(kt.BuiltinModules),format:"esm",target:"esnext",bundle:!0,write:!1,plugins:[{name:"vfs",setup(p){let r=null;p.onResolve({filter:/.*/},u=>u.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:u.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),p.onLoad({filter:/.*/,namespace:"vfs"},async u=>{var g;if(u.path==="index.tsx")return{contents:`export { ${s} } from './component'`,loader:"tsx"};if(u.path==="component.tsx")return{contents:e,loader:"tsx"};if(ot.isRelativeModule(u.path)){const y=u.path.split("/").pop();if(r||(r=await Ce({ensureLoaded:!1})),(g=r==null?void 0:r.chunks)!=null&&g[y])try{const c=S.readFileSync(r.chunks[y],"utf-8");return O.info("get chunk from local file system",y),{contents:c,loader:"tsx"}}catch{}}return null})}}]})).outputFiles)==null?void 0:d[0])==null?void 0:i.contents;if(!n)throw new Error("Failed to build server code");const a=Buffer.from(n).toString();return L.default.transpileModule(a,{compilerOptions:{module:L.default.ModuleKind.ESNext,target:L.default.ScriptTarget.ES2020}}).outputText},lt=He(async(e,s)=>{const t=await xs(e,s);return new RegExp(`export\\s+\\{\\s+${s}\\s+\\}`,"m").test(t)?t:void 0},{keyGenerator:(e,s)=>{const t=W.createHash("md5").update(e).digest("hex");return JSON.stringify(["extractExportValueSchema",t,s])},lruOptions:{max:100,ttl:1e3*60*60},subdir:"extractExportValueSchema"}),ks=(e,s)=>`// GENERATED FILE. DO NOT EDIT.
7
+ var ${e} = async function () {
8
+
9
+ const exports = {};
10
+ let moduleExports = null;
11
+
12
+ // add commonjs module compatibility layer
13
+ const module = { exports: moduleExports };
14
+
15
+ // execute component code
16
+ ${s}
17
+
18
+ // handle possible module.exports
19
+ if (module.exports && module.exports !== moduleExports) {
20
+ // if module.exports is used, use it first
21
+ return typeof module.exports === 'object' ? module.exports : { default: module.exports };
22
+ }
23
+
24
+ // ensure a default export
25
+ if (!('default' in exports) && Object.keys(exports).length === 0) {
26
+ // module has no exports, return null to indicate invalid
27
+ return null;
28
+ }
29
+
30
+ return exports;
31
+ };
32
+ `,ae=new qe.LRUCache({max:100}),dt=60*60,Re=60;function ut(e){O.info("clear preload components cache",{cacheKey:e}),ae.delete(e)}function pt(e){for(const s of ae.keys())s.includes(e)&&(O.info("clear preload components cache",{cacheKey:s}),ut(s))}function ft({mode:e,instanceId:s,componentId:t,locale:n}){return["getPreloadComponents",e,s,t,n].join("-")}async function Ns({mode:e,req:s,state:t,locale:n,instances:a,module:o}){const{supportedLocales:d,config:{defaultLocale:i}}=t;if(!i)return null;const p=(await Promise.all(a.map(async c=>{try{const l=ft({mode:e,instanceId:c.id,componentId:c.componentId,locale:n});if(e!=="draft"&&c.useCache&&ae.has(l))return O.info(`get preload component from cache: ${l}`),ae.get(l);const f=ce({state:t,componentId:c.componentId});if(!f)return null;const E=await mt({req:s,state:t,componentId:f.id,locale:n,defaultLocale:i,properties:c.properties});if(!E)return null;const v={instanceId:c.id,preload:E};if(e!=="draft"&&c.useCache){let T=dt;c.cacheDuration&&(T=c.cacheDuration),O.info(`set preload component to cache(${T}s): ${l}`),ae.set(l,v,{ttl:T*1e3})}return v}catch(l){return O.error("get preload component error",{instanceId:c.id,componentId:c.componentId},{error:l}),null}}))).filter(c=>!!c),r=Object.values(p.reduce((c,l)=>({...c,...l.preload.components}),{}));async function u(){const c=await Promise.all(r.map(async l=>{const f=re.componentUMDName({componentId:l.component.id}),E=o===ye.PreloadComponentScriptModule.ESM?{module:o,script:await Ze(l.script,{componentId:l.component.id,module:o,tailwind:e!=="draft"})}:{module:o,script:await Ze(l.script,{componentId:l.component.id,module:o,moduleName:f,tailwind:e!=="draft"}),moduleName:f};return[l.component.id,{component:l.component,script:E}]}));return Object.fromEntries(c)}const g=await u();return{config:{defaultLocale:i,supportedLocales:d},components:g,instances:p.map(c=>({id:c.instanceId,componentId:c.preload.component.id,locales:{[c.preload.locale]:{props:c.preload.props}}}))}}async function mt({req:e,state:s,componentId:t,locale:n,defaultLocale:a,properties:o}){const{supportedLocales:d}=s,i=ce({state:s,componentId:t});if(!i)return null;const p=d.some(u=>u.locale===n)?n:a;if(!p)return null;const r=await gt({req:e,state:s,componentId:t,locale:p,defaultLocale:a,properties:o});return r?{component:i,...r}:null}const Rs=20;async function gt({req:e,depth:s=0,state:t,componentId:n,locale:a,defaultLocale:o,properties:d}){if(s>Rs)throw new RangeError("max component depth exceeded");const i=Ls({state:t,componentId:n,properties:d,locale:a});if(!i)return null;const{props:p}=i,r={locale:a||o,components:{[i.component.id]:{component:i.component,script:i.script}},props:{...p}};try{const u=await Us({...i,req:e});u!=null&&u.props&&Object.assign(r.props,u.props)}catch(u){O.error("preload data at server side error",{componentId:n,name:i.component.name},{error:u})}return await Promise.all(Object.entries(p).map(async([u,g])=>{if((g==null?void 0:g.type)===re.RenderNestedComponent){const y=await gt({req:e,depth:s+1,state:t,componentId:g.componentId,locale:a,defaultLocale:o,properties:g.properties});y&&(Object.assign(r.components,y.components),Object.assign(r.props,{[u]:{type:re.RenderNestedComponent,componentId:g.componentId,props:y.props}}))}})),r}function Ls({state:e,componentId:s,locale:t,properties:n}){const a=ce({state:e,componentId:s});if(!a)return null;const o=re.mergeComponent({componentId:s,getComponent:d=>ce({state:e,componentId:d}),locale:t,defaultLocale:e.config.defaultLocale,properties:n});return o?{component:a,script:o.script,props:{locale:t,...o.props}}:null}function ce({state:e,componentId:s}){var t,n,a;return((t=e.components[s])==null?void 0:t.data)??((a=(n=e.resources.components)==null?void 0:n[s])==null?void 0:a.component)}function Ms({state:e,name:s}){var n,a;const t=s.toLowerCase();return((n=Object.values(e.components).find(o=>{var d;return((d=o.data.name)==null?void 0:d.toLowerCase())===t}))==null?void 0:n.data)??((a=e.resources.components&&Object.values(e.resources.components).find(o=>{var d;return((d=o.component.name)==null?void 0:d.toLowerCase())===t}))==null?void 0:a.component)}async function Us({component:e,script:s,props:t,req:n}){if(!(s!=null&&s.includes("getServerSideProps")))return null;const a=await lt(s,"getServerSideProps");if(!a)return null;const o=new Promise(i=>{setTimeout(()=>{i({})},Re*1e3)});return await Promise.race([o,ie.Sandbox.callFunction({code:`${a}
33
+
34
+ export async function getServerSidePropsWrapper(props) {
35
+ const { location, fetch, props: componentProps } = props;
36
+ // 使用局部变量而不是全局变量
37
+ const originalLocation = typeof window !== 'undefined' ? window.location : undefined;
38
+ const originalFetch = globalThis.fetch;
39
+
40
+ try {
41
+ globalThis.location = location;
42
+ globalThis.fetch = fetch;
43
+ return await getServerSideProps(componentProps);
44
+ } finally {
45
+ // 清理全局状态
46
+ if (originalLocation) globalThis.location = originalLocation;
47
+ if (originalFetch) globalThis.fetch = originalFetch;
48
+ }
49
+ }`,filename:`${e.name||e.id}.js`,moduleLoader:i=>{if(i==="@blocklet/pages-kit/builtin/utils")return`const { joinURL, withQuery, getQuery, getComponentMountPoint } = globalThis
50
+ export { joinURL, withQuery, getQuery, getComponentMountPoint }
51
+ `;if(i==="@blocklet/pages-kit/builtin/dayjs")return ie.BuiltinModules.dayjs},global:{console:{log:(...i)=>{O.info(...i)},warn:(...i)=>{O.warn(...i)},error:(...i)=>{O.error(...i)}},getComponentMountPoint:jt.getComponentMountPoint,joinURL:M.joinURL,withQuery:M.withQuery,getQuery:M.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:M.joinURL(M.withHttps(n.hostname),n.originalUrl)},fetch:(i,{...p}={})=>{const r=typeof i=="string"&&i.startsWith("/")?M.joinURL(I.default.env.appUrl,i):i;if(typeof r=="string"&&M.parseURL(r).host===M.parseURL(I.default.env.appUrl).host){const u=n.get("cookie");if(u){const g=new at.Headers(p.headers);g.set("cookie",u),p.headers=g}}return as.default(r,{...p,timeout:Re*1e3}).then(u=>({ok:u.ok,status:u.status,statusText:u.statusText,headers:Object.fromEntries(u.headers.entries()),json:()=>u.json()}))},props:t}]})])}const ht=ie.memoize(async(e,s,t)=>{if(!(e!=null&&e.includes(s)))return null;const n=await lt(e,s);if(n)try{return await ie.Sandbox.callFunction({code:`
52
+ ${n}
53
+
54
+ export function get${s}SchemaWrapper() {
55
+ return ${s};
56
+ }
57
+ `,filename:`${t}.js`,functionName:`get${s}SchemaWrapper`})}catch(a){return O.error(`获取 ${s} 失败`,{componentId:t,error:a}),null}return null},{keyGenerator:(e,s,t)=>{const n=W.createHash("md5").update(e).digest("hex");return JSON.stringify(["getExportSchemaValueFromCode",n,s,t])},lruOptions:{max:100,ttl:1e3*60*60}}),Fs="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",Le="page",Me="trigger-reload-project-resource",Ge=Fs,qs="z2qa7BQdkEb3TwYyEYC1psK6uvmGnHSUHt5RM";function Ee(e){e.observeDeep(s=>{s.some(t=>t.changes.keys.has("updatedAt")||t.changes.keys.has("publishedAt"))||e.set("updatedAt",new Date().toISOString())})}function yt(){return S.mkdtempSync(w.join(I.default.env.dataDir,"tmp-"))}function Ie(e,s,t=[]){return Array.isArray(e)?e.flatMap((n,a)=>Ie(n,s,[...t,a])):typeof e=="object"?e===null?[]:Object.entries(e).flatMap(([n,a])=>Ie(a,s,[...t,n])):s(e)?[t]:[]}function U(e){return e.filter(s=>s!=null)}function $s(e){e.pages&&Object.keys(e.pages).forEach(t=>{const n=Q.getYjsValue(e.pages[t]);n&&n instanceof B.Map&&Ee(n)});const s=Q.getYjsValue(e.pages);s&&s instanceof B.Map&&s.observe(t=>{t.changes.keys.forEach((n,a)=>{if(n.action==="add"){const o=Q.getYjsValue(e.pages[a]);o&&o instanceof B.Map&&Ee(o)}})})}function Bs(e){e.routes&&Object.keys(e.routes).forEach(t=>{var a;const n=Q.getYjsValue((a=e.routes)==null?void 0:a[t]);n&&n instanceof B.Map&&Ee(n)});const s=Q.getYjsValue(e.routes);s&&s instanceof B.Map&&s.observe(t=>{t.changes.keys.forEach((n,a)=>{var o;if(n.action==="add"){const d=Q.getYjsValue((o=e.routes)==null?void 0:o[a]);d&&d instanceof B.Map&&Ee(d)}})})}function Hs(e,s){var t;for(const n of s||Object.keys(e.routes||{})){let a=n,o=[];if(n.includes("-")){const[d,...i]=n.split("-");a=d,o=i||[]}if(((t=e.routes)==null?void 0:t[a])!==void 0){e.routes[a].publishedAt=new Date().toISOString();const d=e.routes[a];if(!d||!d.params||d.params.length===0)continue;if(n.includes("-")&&o.length>0){const i=be.getRouteMetaDataByOptionIds(o,d);i&&(i.publishedAt=new Date().toISOString())}if(!s){const i=be.generateParamCombinations({basePath:d.path,params:d.params,routeId:d.id,paramsOptions:d.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const p of i)p.routeMetaData??(p.routeMetaData={}),p.routeMetaData.publishedAt=new Date().toISOString()}}}}function ve({page:e,route:s,state:t,routeId:n,routePathInfo:a}){var d,i,p,r,u,g,y,c,l;O.info(`Executing datasource data assembly, routeId: ${n}, routePathInfo: ${JSON.stringify(a)}`);const o={...$t.cloneDeep(e),id:n,slug:(a==null?void 0:a.path)??s.path,createdAt:s.createdAt,updatedAt:((d=a==null?void 0:a.routeMetaData)==null?void 0:d.updatedAt)??s.updatedAt,publishedAt:((i=a==null?void 0:a.routeMetaData)==null?void 0:i.publishedAt)??s.publishedAt,isPublic:(((p=a==null?void 0:a.routeMetaData)==null?void 0:p.isPublic)??s.isPublic)&&s.isPublic};for(const f of t.supportedLocales){if(s.dataSource){let E=s.id;a&&(E=a.paramOptionIds.join("-"));const v=((g=(u=(r=s.dataSource.pathDataMappings)==null?void 0:r[E])==null?void 0:u.dataCache)==null?void 0:g[f.locale])??((l=(c=(y=s.dataSource.pathDataMappings)==null?void 0:y[E])==null?void 0:c.dataCache)==null?void 0:l[t.config.defaultLocale||"en"]);if(!v)continue;qt.setPageDataSource(o,t,f.locale,v)}a&&a.routeMetaData&&(a.routeMetaData.publishedAt=new Date().toISOString())}return o}const{uploadToMediaKit:Gs}=require("@blocklet/uploader-server"),Se=Xt.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),Ve=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,oe=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,et=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,Vs=1e4,Js=3e4,ge=0,xe=1,zs=0,Ks=1,Ue=I.default,ne=w.join(process.env.BLOCKLET_DATA_DIR,"site-state"),Ys=["production","draft"],Ws=["production"];function Oe(e){return(e==null?void 0:e.replace(/\//g,"|"))||""}function Qs(){var t;const e=Ue.env.languages.map(n=>({locale:n.code,name:n.name})),s=(t=e[0])==null?void 0:t.locale;return{pageIds:[],pages:{},routeIds:[],routes:{},dataSourceIds:[],dataSources:{},components:{},supportedLocales:e,config:{defaultLocale:s},resources:{}}}const V=class V extends B.Doc{constructor(t){super();x(this,"states",{});x(this,"syncedStore");x(this,"conns",new Map);x(this,"awareness");x(this,"awarenessChangeHandler",({added:t,updated:n,removed:a},o)=>{const d=t.concat(n,a);if(o!==null){const r=this.conns.get(o);r&&(t.forEach(u=>{r.add(u)}),a.forEach(u=>{r.delete(u)}))}const i=k.createEncoder();k.writeVarUint(i,xe),k.writeVarUint8Array(i,se.encodeAwarenessUpdate(this.awareness,d));const p=k.toUint8Array(i);this.conns.forEach((r,u)=>this.send(u,p))});x(this,"updateHandler",t=>{const n=k.createEncoder();k.writeVarUint(n,ge),je.writeUpdate(n,t);const a=k.toUint8Array(n);this.conns.forEach((o,d)=>this.send(d,a))});x(this,"ensureDataStructure",()=>{var p;const{supportedLocales:t,pages:n,pageIds:a,config:o,routes:d,routeIds:i}=this.syncedStore;{const r=new Set(Object.keys(n));let u=0;for(;u<a.length;){const g=a[u];r.has(g)?(r.delete(g),u++):a.splice(u,1)}}{const r=new Set(Object.keys(d));let u=0;for(;u<i.length;){const g=i[u];r.has(g)?(r.delete(g),u++):i.splice(u,1)}}t.splice(0,t.length),t.push(...Ue.env.languages.map(r=>({locale:r.code,name:r.name}))),o.defaultLocale=(p=t[0])==null?void 0:p.locale;{let r=0;const u=new Set;for(;r<t.length;){const{locale:g}=t[r];u.has(g)?t.splice(r,1):(r++,u.add(g))}}});x(this,"send",(t,n)=>{t.readyState!==zs&&t.readyState!==Ks&&this.closeConn(t);try{t.send(n,a=>{a&&this.closeConn(t)})}catch{this.closeConn(t)}});x(this,"closeConn",t=>{if(t.removeAllListeners(),this.conns.has(t)){const n=this.conns.get(t);this.conns.delete(t),n&&se.removeAwarenessStates(this.awareness,Array.from(n),null)}t.close()});x(this,"autoSave",it.default(()=>{S.mkdirSync(w.dirname(this.draftYjsFilePath),{recursive:!0}),S.writeFileSync(this.draftYjsFilePath,B.encodeStateAsUpdate(this))},Vs));x(this,"save",({flush:t=!1}={})=>{this.autoSave(),t&&this.autoSave.flush()});x(this,"publish",async({mode:t,routes:n})=>{const a=await this.getState("draft"),o=await this.getState("production");await Fe(a,o,{routes:n,mergeMode:"replace",deleteRoutes:!0,publishMode:t}),o.config.publishedAt=new Date().getTime(),Hs(this.syncedStore,n),await this.setState(t,o)});x(this,"mergeState",async(t,n)=>{var i,p,r;const a=JSON.parse(JSON.stringify(n));(i=t.config).fontFamily??(i.fontFamily={});const o=(p=a.config)==null?void 0:p.fontFamily,d=(r=t.config)==null?void 0:r.fontFamily;t.config.fontFamily.title=(o==null?void 0:o.title)||(d==null?void 0:d.title),t.config.fontFamily.description=(o==null?void 0:o.description)||(d==null?void 0:d.description),await new Promise((u,g)=>{this.transact(async()=>{try{const y=await Fe(t,n);u(y)}catch(y){g(y)}})})});x(this,"addConnection",t=>{if(this.conns.has(t))return;t.binaryType="arraybuffer",this.conns.set(t,new Set),t.on("message",o=>this.messageListener(t,new Uint8Array(o)));let n=!0;const a=setInterval(()=>{if(!n)this.conns.has(t)&&this.closeConn(t),clearInterval(a);else if(this.conns.has(t)){n=!1;try{t.ping()}catch{this.closeConn(t),clearInterval(a)}}},Js);t.on("close",()=>{this.closeConn(t),clearInterval(a)}),t.on("pong",()=>{n=!0});{const o=k.createEncoder();k.writeVarUint(o,ge),je.writeSyncStep1(o,this),this.send(t,k.toUint8Array(o));const d=this.awareness.getStates();if(d.size>0){const i=k.createEncoder();k.writeVarUint(i,xe),k.writeVarUint8Array(i,se.encodeAwarenessUpdate(this.awareness,Array.from(d.keys()))),this.send(t,k.toUint8Array(i))}}});x(this,"messageListener",(t,n)=>{try{const a=k.createEncoder(),o=De.createDecoder(n),d=De.readVarUint(o);switch(d){case ge:k.writeVarUint(a,ge),je.readSyncMessage(o,a,this,null),k.length(a)>1&&(this.ensureDataStructure(),this.send(t,k.toUint8Array(a)));break;case xe:{se.applyAwarenessUpdate(this.awareness,De.readVarUint8Array(o),t);break}default:O.warn(`Unsupported messageType ${d}`)}}catch(a){O.error(a)}this.save()});this.options=t,S.existsSync(this.draftYjsFilePath)&&B.applyUpdate(this,S.readFileSync(this.draftYjsFilePath)),this.syncedStore=Bt.reactive(Q.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{},routeIds:[],routes:{},dataSourceIds:[],dataSources:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new se.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(t){if(!t)throw new Error("Should provide project context");try{const n=w.join(ne,t),a=w.join(ne,`@del-${t}`);S.renameSync(n,a)}catch(n){O.error("Failed to safe delete project state dir:",n)}}static get projectIds(){return ke.globSync("*/",{cwd:ne,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(t=>V.shared(t))}static shared(t){if(!t)throw new Error("Should provide project context");let n=this.sharedInstances.get(t);return n||(n=new V({path:w.join(ne,t)}),this.sharedInstances.set(t,n),n)}destroy(){this.conns.forEach((t,n)=>this.closeConn(n)),this.awareness.destroy(),super.destroy()}initObserver(){$s(this.syncedStore),Bs(this.syncedStore)}get draftYjsFilePath(){return w.join(this.options.path,"draft.yjs")}async getState(t){var n,a,o,d;if(t==="draft")return JSON.parse(JSON.stringify(this.syncedStore));if(!this.states[t]&&(this.states[t]=await Je(this.getPublishDir(t),{includeResources:!0})??Qs(),!((a=(n=this.states[t])==null?void 0:n.config)!=null&&a.defaultLocale))){(o=this.states[t]).config??(o.config={});const i=Ue.env.languages.map(p=>({locale:p.code,name:p.name}));this.states[t].config.defaultLocale=(d=i[0])==null?void 0:d.locale}return{...this.states[t],resources:await Ce().then(async i=>{var c,l,f,E;const{pages:p,components:r}=fs.default(i,"pages","components");let u=r;const g=w.basename(this.options.path),y=await J.findByPk(g);if(y!=null&&y.useAllResources)u=r;else{const T=(await Te.findAll({where:{projectId:g}})).map(F=>F.componentId);u=Object.fromEntries(Object.entries(r||{}).filter(([F])=>T.includes(F)))}return Object.keys(((l=(c=this.states[t])==null?void 0:c.resources)==null?void 0:l.components)||{}).length>0&&(u={...u,...(E=(f=this.states[t])==null?void 0:f.resources)==null?void 0:E.components}),{pages:p,components:u}}).catch(()=>({}))}}async setState(t,n){const a=await Et(n,{exportAssets:!1,includeResources:!0}),o=this.getPublishDir(t);S.mkdirSync(w.dirname(o),{recursive:!0}),S.rmSync(o,{force:!0,recursive:!0}),S.renameSync(a,o),this.states[t]=n}getPublishDir(t){return w.join(this.options.path,t)}static async pageUrlMap(t){var o,d;const{projectIds:n}=this,a={};for(const i of n){const p=await J.findByPk(i);if(!p)continue;const r=await V.shared(i).getState(t),u=p.slug||i,g=ms.default(I.default.env.languages.map(c=>c.code),r.supportedLocales.map(c=>c.locale)),y=(c,l)=>{u&&(a[M.joinURL("/",u,c)]={...l,shouldRedirect:!0,mainPage:!0}),a[M.joinURL("/",i,c)]={...l,shouldRedirect:!0,mainPage:!0};for(const f of g){const E={...l,locale:f};a[M.joinURL("/",f,i,c)]=E,u&&(a[M.joinURL("/",f,u,c)]=E)}};if(t==="draft")for(const c of r.routeIds||[]){const l=(o=r==null?void 0:r.routes)==null?void 0:o[c];if(!l)continue;if(l.params&&l.params.length>0){const v=be.generateParamCombinations({basePath:l.path,params:l.params,routeId:l.id,paramsOptions:l.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const T of v){const R=T.path,F={projectId:i,projectSlug:u,pageSlug:R,pageId:l.displayTemplateId||"",routeId:c,defaultLocale:g==null?void 0:g[0],locales:g,publishedAt:r.config.publishedAt,isPublic:l.isPublic&&((d=T==null?void 0:T.routeMetaData)==null?void 0:d.isPublic)};y(R,F)}}const f=l.path,E={projectId:i,projectSlug:u,pageSlug:f,pageId:l.displayTemplateId||"",routeId:c,defaultLocale:g==null?void 0:g[0],locales:g,publishedAt:r.config.publishedAt,isPublic:l.isPublic};y(f,E)}for(const c of r.pageIds){const l=r.pages[c];if(!l||t==="production"&&!l.isPublic)continue;const f=l.slug,E=p.slug||i,v={projectId:i,projectSlug:E,pageSlug:f,pageId:c,defaultLocale:g==null?void 0:g[0],locales:g,publishedAt:r.config.publishedAt,isPublic:l.isPublic,templateConfig:l.templateConfig};y(f,v)}}return a}getDocumentSize(){return B.encodeStateAsUpdate(this).byteLength}static getInstancesSizeInfo(){const t=[];for(const[n,a]of this.sharedInstances.entries()){const o=a.getDocumentSize();t.push({projectId:n,sizeInBytes:o,sizeInMB:`${(o/(1024*1024)).toFixed(2)} MB`,activeConnections:a.conns.size})}return t}};x(V,"INSTANCE_TTL",30*60*1e3),x(V,"sharedInstances",new qe.LRUCache({max:100,ttl:V.INSTANCE_TTL,dispose:t=>{t.destroy()}}));let le=V;async function Xs(e,s,t){if(!e||!S.existsSync(e)||!S.lstatSync(e).isFile())return null;let n=t[e];return n||(n=(async()=>{var a;try{const o=(a=await Gs({filePath:e,fileName:s}))==null?void 0:a.data;return o==null?void 0:o.filename}catch(o){return O.error(`Failed to upload asset ${e}:`,o),null}})(),t[e]=n),n}const St=async(e,s)=>{const t=w.basename(e),n=await $e.call({name:Ge,path:M.joinURL("/uploads",t),responseType:"stream",method:"GET"});if(n.status>=200&&n.status<400){const a=S.createWriteStream(s);await es.pipeline(n.data,a)}else throw new Error(`download asset failed ${n.status}`)},wt=async(e,s)=>{await Promise.all(e.map(async t=>{try{await St(t,w.join(s,w.basename(t)))}catch(n){O.error(`Failed to export assets: ${t}, ${n}`)}}))};function bt(e){return Ve.test(e)?[e]:oe.test(e)?(et.lastIndex=0,Array.from(e.matchAll(et)).map(t=>t[1]).filter(t=>!!t)):[]}async function he(e,s,t){const{getFilename:n,exportAssets:a}=t,o=w.join(s,n(e));if(S.mkdirSync(w.dirname(o),{recursive:!0}),S.writeFileSync(o,X.stringify(e)),a){const i=Ie(e,p=>typeof p=="string"&&(Ve.test(p)||oe.test(p))).map(p=>{const r=Be.default(e,p);return bt(r)}).flat().filter(Boolean);await wt(i,w.dirname(o))}}const tt=new qe.LRUCache({max:1e3,ttl:30*24*60*60*1e3});async function st(e,s,t){var i;const n=Ie(e,p=>typeof p=="string"&&(Ve.test(p)||oe.test(p))),a=gs.default(2),o=n.map(p=>a(async()=>{try{const r=Be.default(e,p),u=bt(r);for(const g of u){const y=w.basename(g),c=t.getFilePath(g,p),l=c?`${c}:${y}`:y,f=tt.get(l);if(f){oe.test(r)||Qe.default(e,p,f);return}const E=await Xs(c,y,s);E&&(oe.test(r)||Qe.default(e,p,E),tt.set(l,E))}}catch(r){O.error(`Failed to process upload for path ${p.join(".")}:`,r.message||r.reason)}})),d=await Promise.allSettled(o);(i=t.onFinish)==null||i.call(t,d)}async function Et(e,{exportAssets:s,pageIds:t="all",componentIds:n="all",rawConfig:a,includeResources:o=!1,routeIds:d="all"}={}){var ee,b,m,A,P,z,_,q,K,fe,te,me;const i=t==="all"?e.pageIds:t,p=re.getComponentDependencies({state:e,pageIds:i,componentIds:n==="all"?Object.keys(e.components):n}),r=d==="all"?e.routeIds:d,u=(h,C)=>{var D;return{id:h.id,name:h.name,isTemplateSection:h.isTemplateSection??!1,templateDescription:h.templateDescription,llmConfig:h.llmConfig,component:h.component,config:h.config,visibility:h.visibility,properties:((D=h.locales)==null?void 0:D[C])??{}}},g=(h,C)=>{var D;return{id:h.id,createdAt:h.createdAt,updatedAt:h.updatedAt,publishedAt:h.publishedAt,isPublic:h.isPublic??!0,templateConfig:h.templateConfig,meta:((D=h.locales)==null?void 0:D[C])??{},sections:U(h.sectionIds.map(G=>{const H=h.sections[G];return H&&u(H,C)}))}},y=h=>({id:h.id,createdAt:h.createdAt,updatedAt:h.updatedAt,publishedAt:h.publishedAt,path:h.path,handler:h.handler,isPublic:h.isPublic??!0,params:h.params??[],enabledGenerate:h.enabledGenerate??!1,displayTemplateId:h.displayTemplateId,dataSource:h.dataSource}),c=U(r.map(h=>{const C=e.routes[h];return C&&y(C)})),l=U(e.supportedLocales.map(h=>h.locale).flatMap(h=>i.map(C=>{const D=e.pages[C];return D&&{locale:h,slug:D.slug,page:g(D,h)}}))),f=yt(),E=w.join(f,"pages");S.mkdirSync(E,{recursive:!0});const v=w.join(f,"components");S.mkdirSync(v,{recursive:!0});const T=w.join(f,"routes");S.mkdirSync(T,{recursive:!0});for(const{locale:h,slug:C,page:D}of l)await he(D,E,{getFilename:()=>`${Oe(C)||"index"}.${h}.yml`,exportAssets:s});for(const h of c)await he(h,T,{getFilename:()=>`${Oe(h.path)||"index"}.yml`,exportAssets:s});for(const h of p){const C=(ee=e.components[h])==null?void 0:ee.data;C&&await he(C,v,{getFilename:D=>`${D.name||"unnamed"}.${D.id}.yml`,exportAssets:s})}const R=w.join(f,".blocklet/pages/pages.config.yml");S.mkdirSync(w.dirname(R),{recursive:!0});const F={pages:U(i.map(h=>{const C=e.pages[h];return C&&{id:h,slug:C.slug}})),routes:U(r.map(h=>{const C=e.routes[h];return C&&{id:h,path:C.path}})),components:U(p.map(h=>{var D;const C=(D=e.components[h])==null?void 0:D.data;return C&&{id:h,name:C.name}})),...o?{resources:{components:U(Object.keys(((b=e.resources)==null?void 0:b.components)||{}).filter(h=>p.includes(h)).map(h=>{var C,D,G,H;return{id:h,name:(H=(G=(D=(C=e.resources)==null?void 0:C.components)==null?void 0:D[h])==null?void 0:G.component)==null?void 0:H.name}}))}}:{},supportedLocales:e.supportedLocales,config:e.config};S.writeFileSync(R,X.stringify(F));const pe=w.join(f,"config.source.json");if(a&&S.writeFileSync(pe,JSON.stringify(a)),o){const h=w.join(f,"resources"),C=w.join(h,"components");S.mkdirSync(C,{recursive:!0});for(const H of Object.keys(((m=e==null?void 0:e.resources)==null?void 0:m.components)??{}).filter($=>p.includes($))){const $=(z=(P=(A=e.resources)==null?void 0:A.components)==null?void 0:P[H])==null?void 0:z.component;$&&await he($,C,{getFilename:Y=>`${Y.name||"unnamed"}.${Y.id}.yml`,exportAssets:s})}const D=w.join(f,"chunks");S.mkdirSync(D,{recursive:!0});const{chunks:G}=await Ce();for(const H of Object.keys(((_=e==null?void 0:e.resources)==null?void 0:_.components)??{}).filter($=>p.includes($))){const $=(fe=(K=(q=e.resources)==null?void 0:q.components)==null?void 0:K[H])==null?void 0:fe.component;if($&&((te=$.renderer)==null?void 0:te.type)==="react-component"){const Y=((me=$.renderer)==null?void 0:me.chunks)??[];if((Y==null?void 0:Y.length)>0)for(const Pe of Y){const We=w.join(D,Pe),_e=G==null?void 0:G[Pe];try{_e&&S.existsSync(_e)&&!S.existsSync(We)&&S.copyFileSync(_e,We)}catch(Ct){O.error(`copy chunk ${Pe} error`,Ct.message)}}}}}return f}async function Je(e,{importAssets:s,includeResources:t}={}){var o,d,i,p;if(!S.existsSync(e))return null;let n,a=!1;try{S.lstatSync(e).isDirectory()?n=e:/\.(tgz|gz|tar)$/.test(e)&&(a=!0,n=yt(),await ts.x({file:e,C:n}));const r=ke.globSync("**/.blocklet/pages/pages.config.yml",{cwd:n,absolute:!0}).at(0),u=r&&w.join(w.dirname(r),"../../pages"),g=r&&w.join(w.dirname(r),"../../components"),y=r&&w.join(w.dirname(r),"../../chunks"),c=r&&w.join(w.dirname(r),"../../routes");if(!r)return null;const l=X.parse(S.readFileSync(r).toString()),f=(b,m,A)=>{let P=w.join(b,`${m}${A?`.${A}`:""}.yml`);return(!S.existsSync(P)||!S.lstatSync(P).isFile())&&(P=w.join(b,m,`index${A?`.${A}`:""}.yml`),!S.existsSync(P)||!S.lstatSync(P))?null:X.parse(S.readFileSync(P).toString())},E=(b,m)=>{try{const A=ke.globSync(`*.${m}.yml`,{cwd:b,absolute:!0})[0];return A?X.parse(S.readFileSync(A).toString()):null}catch(A){O.error("parse component error",A)}return null},v=(b,m)=>{let A=w.join(b,`${m}.yml`);return(!S.existsSync(A)||!S.lstatSync(A).isFile())&&(A=w.join(b,m,"index.yml"),!S.existsSync(A)||!S.lstatSync(A))?null:X.parse(S.readFileSync(A).toString())},T=U(l.pages.map(({slug:b})=>{var z;const m=U(l.supportedLocales.map(({locale:_})=>{const q=u?f(u,Oe(b),_):void 0;if(q)return{locale:_,page:q};const K=u?f(u,b,_):void 0;return K&&{locale:_,page:K}})),A=(z=m[0])==null?void 0:z.page;if(!A)return null;const P=A.sections.map(_=>{const q=_.id||Se();return{id:q,component:_.component,config:_.config,name:_.name,isTemplateSection:_.isTemplateSection??!1,templateDescription:_.templateDescription,llmConfig:_.llmConfig,visibility:_.visibility,locales:Object.fromEntries(U(m.map(({locale:K,page:fe})=>{const te=fe.sections.find(me=>me.id===q);return te&&[K,te.properties]})))}});return{id:A.id||Se(),createdAt:A.createdAt,updatedAt:A.updatedAt,publishedAt:A.publishedAt,isPublic:A.isPublic??!0,templateConfig:A.templateConfig,slug:b,sections:Object.fromEntries(P.map(_=>[_.id,_])),sectionIds:P.map(_=>_.id),locales:Object.fromEntries(m.map(({locale:_,page:q})=>[_,q.meta]))}})),R=U(((o=l==null?void 0:l.routes)==null?void 0:o.map(({path:b})=>{const m=c?v(c,Oe(b)):void 0;return{...m,id:(m==null?void 0:m.id)||Se(),createdAt:(m==null?void 0:m.createdAt)??new Date().toISOString(),updatedAt:(m==null?void 0:m.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),path:(m==null?void 0:m.path)??`/${m==null?void 0:m.id}`,params:m==null?void 0:m.params,handler:(m==null?void 0:m.handler)??"Pages Kit",isPublic:(m==null?void 0:m.isPublic)??!0,enabledGenerate:(m==null?void 0:m.enabledGenerate)??!1,displayTemplateId:(m==null?void 0:m.displayTemplateId)??void 0,dataSource:(m==null?void 0:m.dataSource)??{}}}))??[]),F=g?U(((d=l.components)==null?void 0:d.map(({id:b})=>E(g,b)))??[]):[];if(s){const b=(...m)=>{O.info(`[${a?w.basename(e):w.basename(w.join(e,"../../../../"))}] importAssets:`,...m)};try{b("wait image-bin api ready"),await hs.default({resources:[`${$e.getComponentWebEndpoint(ys)}/api/sdk/uploads`],validateStatus:P=>P>=200&&P<=500}),b("image-bin api is ready");const m={},A={};b("start to upload assets"),await Promise.allSettled([st(F,m,{getFilePath:P=>g&&w.join(g,P),onFinish:P=>{b(`upload ${P.length} component assets`)}}),st(T,A,{getFilePath:(P,z)=>{const _=Be.default(T,z.slice(0,1));return u&&w.join(u,w.dirname(_.slug),P)},onFinish:P=>{b(`upload ${P.length} page assets`)}})]),b("upload assets done"),global.gc&&global.gc()}catch(m){b("Error during asset import:",m)}}const pe={};if(t){const b=r&&w.join(w.dirname(r),"../../resources/components"),m=U(((p=(i=l.resources)==null?void 0:i.components)==null?void 0:p.map(({id:A})=>E(b,A)))??[]);m.length>0&&(pe.components=Object.fromEntries(m.map((A,P)=>[A.id,{index:P,component:A}])))}const ee={};if(y&&S.existsSync(y)){const b=S.readdirSync(y);for(const m of b)ee[m]=w.join(y,m)}return{supportedLocales:l.supportedLocales,pageIds:T.map(b=>b.id),components:Object.fromEntries(F.map((b,m)=>[b.id,{index:m,data:b}])),pages:Object.fromEntries(T.map(b=>[b.id,b])),config:l.config||{},resources:pe,chunks:ee,routeIds:R.map(b=>b.id),routes:Object.fromEntries(R.map(b=>[b.id,b])),dataSourceIds:[],dataSources:{}}}finally{a&&n&&S.rmSync(n,{force:!0,recursive:!0})}}async function Fe(e,s,{routes:t,mergeMode:n="byUpdateTime",deleteRoutes:a=!1,publishMode:o=void 0}={}){try{o&&pt(o)}catch(y){O.error("clear preload page cache error",{error:y})}const{pages:d,pageIds:i,routeIds:p,routes:r,supportedLocales:u}=e;if(o==="production"){let y=t??[],c=null;for(const l of p??[]){const f=r==null?void 0:r[l];if(f!=null&&f.params&&(f==null?void 0:f.params.length)>0&&(f!=null&&f.paramsOptions)&&(f==null?void 0:f.paramsOptions.length)>0){const E=be.generateParamCombinations({basePath:f.path,params:f.params,routeId:f.id,paramsOptions:f.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]}),v=Object.fromEntries(E.map(T=>[`${l}-${T.paramOptionIds.join("-")}`,T]));c={...c||{},...v},t||(y=[...y,...E.map(T=>`${l}-${T.paramOptionIds.join("-")}`)])}else t||y.push(l)}O.info("routeIds to be published: ",y);for(const l of y){let f=l;if(f.includes("-")){const[T]=f.split("-");f=T}const E=r==null?void 0:r[f];if(!E){const T=s.pageIds.indexOf(f);T!==-1&&a&&(s.pageIds.splice(T,1),delete s.pages[f]);for(const R of s.pageIds)R.includes(`${f}-`)&&(s.pageIds.splice(s.pageIds.indexOf(R),1),delete s.pages[R]);O.info("delete main route page",f);continue}if(l.includes("-")&&!(c!=null&&c[l])){const T=s.pageIds.indexOf(l);T!==-1&&a&&(s.pageIds.splice(T,1),delete s.pages[l]),O.info("delete page",l);continue}if(!E.displayTemplateId){O.info("no display template",l);continue}const v=d[E.displayTemplateId];if(!v){O.info("no template page",l);continue}if(s.pageIds.includes(l)){if(O.info("has need update page",l),n==="replace")s.pages[l]=ve({page:v,route:E,state:e,routeId:l,routePathInfo:c==null?void 0:c[l]}),O.info("replace page",l);else if(n==="byUpdateTime"){const T=s.pages[E.id];(!T||E.updatedAt&&E.updatedAt>T.updatedAt)&&(s.pages[l]=ve({page:v,route:E,state:e,routeId:l,routePathInfo:c==null?void 0:c[l]}),O.info("replace page by update time",l))}}else s.pageIds.push(l),s.pages[l]=ve({page:v,route:E,state:e,routeId:l,routePathInfo:c==null?void 0:c[l]}),O.info("add page",l)}if(a&&!t)for(const l of s.pageIds)y!=null&&y.includes(l)||(delete s.pages[l],O.info("delete page",l)),s.pageIds=[...s.pageIds].filter(f=>y==null?void 0:y.includes(f))}else{for(const y of i){const c=d[y];if(c)if(s.pageIds.includes(c.id)){if(n==="replace")s.pages[c.id]=c;else if(n==="byUpdateTime"){const l=s.pages[c.id];(!l||c.updatedAt&&c.updatedAt>l.updatedAt)&&(s.pages[c.id]=c)}}else s.pageIds.push(c.id),s.pages[c.id]=c}for(const y of p){const c=r[y];if(c)if(s.routeIds.includes(c.id)){if(n==="replace")s.routes[c.id]=c;else if(n==="byUpdateTime"){const l=s.routes[c.id];(!l||c.updatedAt&&c.updatedAt>l.updatedAt)&&(s.routes[c.id]=c)}}else s.routeIds.push(c.id),s.routes[c.id]=c}}if(s.supportedLocales.splice(0,s.supportedLocales.length),s.supportedLocales.push(...us.default(u)),a)for(const y of Object.keys(s.components))delete s.components[y];let g=JSON.parse(JSON.stringify(e.components));g=Object.fromEntries(await Promise.all(Object.entries(g).map(async([y,c])=>{const l=await It(c==null?void 0:c.data);return[y,{...c,data:l}]}))),Object.assign(s.components,g),Object.assign(s.config,JSON.parse(JSON.stringify(e.config))),s.resources.components=JSON.parse(JSON.stringify(e.resources.components||{}))}const It=He(async e=>{var s;if(!ps.default(e==null?void 0:e.properties))return e;if(((s=e==null?void 0:e.renderer)==null?void 0:s.type)==="react-component"){const{script:t}=(e==null?void 0:e.renderer)||{};if(t&&t.includes("PROPERTIES_SCHEMA"))try{const n=await ht(t,"PROPERTIES_SCHEMA",e.id);n&&n.length>0&&e&&(e.properties={},n.forEach((a,o)=>{e!=null&&e.properties&&(e.properties[a.id]={index:o,data:a})}))}catch(n){O.error("checkPropertiesFromCode error",{componentId:e.id,name:e.name},{error:n})}}return e},{keyGenerator:e=>{var r,u,g,y;const s=(e==null?void 0:e.id)||"",t=(e==null?void 0:e.name)||"",n=((r=e==null?void 0:e.renderer)==null?void 0:r.type)||"",a=(e==null?void 0:e.properties)||{},o=(e==null?void 0:e.updatedAt)||"",d=W.createHash("md5").update(JSON.stringify(a)).digest("hex");let i="",p="";return((u=e==null?void 0:e.renderer)==null?void 0:u.type)==="react-component"&&(i=W.createHash("md5").update(((g=e==null?void 0:e.renderer)==null?void 0:g.script)||"").digest("hex"),p=W.createHash("md5").update(((y=e==null?void 0:e.renderer)==null?void 0:y.editComponent)||"").digest("hex")),JSON.stringify(["checkPropertiesFromCode",s,t,n,d,o,i,p])},lruOptions:{max:100,ttl:1e3*60*60},subdir:"checkPropertiesFromCode"});let Ae,Z,ze,Ke,Ye;function Ot(){return Ae=(async()=>{const e=$e.getResources({types:[{did:Ge,type:Le},{did:qs,type:Le}]});Z=(await Promise.all(e.map(async t=>{const n=t.path?await Je(t.path,{importAssets:!1}):void 0;return n?{blockletId:t.did,state:n,blockletTitle:t.title}:void 0}))).filter(t=>!!t),ze=Z.reduce((t,n)=>Object.assign(t,Object.fromEntries(Object.values(n.state.pages).map(a=>a?[a==null?void 0:a.id,{page:a,blockletId:n.blockletId}]:[]))),{});const s=Z.reduce((t,n)=>Object.assign(t,Object.fromEntries(Object.values(n.state.components).map(a=>[a.data.id,{blockletId:n.blockletId,component:a.data}]))),{});Ke=Object.fromEntries(await Promise.all(Object.entries(s).map(async([t,n])=>{const a=await It(n.component);return[t,{...n,component:a}]}))),Ye=Z.reduce((t,n)=>Object.assign(t,n.state.chunks),{})})(),Ae}function At(e){const s=it.default(async()=>{await Ot().catch(t=>{O.error("load resource states error",{error:t})}),await(e==null?void 0:e({states:Z,pages:ze,components:Ke,chunks:Ye}))},3e3,{leading:!1,trailing:!0});return s(),I.default.events.on(I.default.Events.componentAdded,s),I.default.events.on(I.default.Events.componentRemoved,s),I.default.events.on(I.default.Events.componentStarted,s),I.default.events.on(I.default.Events.componentStopped,s),I.default.events.on(I.default.Events.componentUpdated,s),I.default.events.on(Me,s),()=>{I.default.events.off(I.default.Events.componentAdded,s),I.default.events.off(I.default.Events.componentRemoved,s),I.default.events.off(I.default.Events.componentStarted,s),I.default.events.off(I.default.Events.componentStopped,s),I.default.events.off(I.default.Events.componentUpdated,s),I.default.events.off(Me,s)}}const Tt=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),we=globalThis;var nt;(nt=we[Tt])==null||nt.call(we);we[Tt]=At(async({pages:e,components:s})=>{const{projectIds:t}=le;O.info(`start update resource states projects(${t.length})`,t),await Promise.race([new Promise(n=>{setTimeout(()=>{n({})},30*1e3)}),Promise.all(t.map(async n=>{const a=le.shared(n);a.syncedStore.resources.pages=e;const o=await J.findByPk(n);if(o!=null&&o.useAllResources)a.syncedStore.resources.components=s;else{const i=(await Te.findAll({where:{projectId:n}})).map(r=>r.componentId),p=Object.fromEntries(Object.entries(s||{}).filter(([r])=>i.includes(r)));a.syncedStore.resources.components=p}O.info(`update [${n}] resource states:`,{pages:Object.keys(a.syncedStore.resources.pages||{}).length,components:Object.keys(a.syncedStore.resources.components||{}).length})}))]).catch(n=>{O.error("update resource states failed:",n)})});async function Zs(){O.info("trigger reload all project resource"),I.default.events.emit(Me)}async function Ce({ensureLoaded:e=!0}={}){return e&&(Ae??(Ae=Ot()),await Ae),{states:Z,pages:ze,components:Ke,chunks:Ye}}exports.COMPONENT_DID=Ge;exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=dt;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=Re;exports.PUBLISH_MODES=Ws;exports.Project=J;exports.RESOURCE_TYPE=Le;exports.SITE_STATE_PATH=ne;exports.STATE_MODES=Ys;exports.SiteState=le;exports.clearPreloadComponentsCache=ut;exports.clearPreloadComponentsCacheByMode=pt;exports.downloadAsset=St;exports.downloadAssets=wt;exports.fromPackage=Je;exports.getComponentFromState=ce;exports.getComponentFromStateByName=Ms;exports.getExportSchemaValueFromCode=ht;exports.getMultiTenantAllProjectAccessPassports=bs;exports.getPreloadComponent=mt;exports.getPreloadComponents=Ns;exports.getPreloadComponentsCacheKey=ft;exports.getResourceStates=Ce;exports.initPackResourceStates=At;exports.isMultiTenant=ws;exports.logger=O;exports.mergeState=Fe;exports.nextId=Se;exports.toPackage=Et;exports.triggerReloadAllProjectResource=Zs;
@@ -0,0 +1 @@
1
+ "use strict";const E=require("react/jsx-runtime"),T=require("@mui/material"),b=require("ufo"),Z=require("@blocklet/js-sdk"),H=require("lodash/isEmpty"),ee=require("yaml"),te=require("@arcblock/ux/lib/Locale/context"),N=require("@syncedstore/core"),ne=require("@syncedstore/react"),oe=require("ahooks"),C=require("immer"),re=require("lodash/debounce"),se=require("nanoid"),d=require("react"),V=require("react-router-dom"),ce=require("y-indexeddb"),ie=require("y-websocket"),ae=require("yjs");require("@blocklet/pages-kit/types");const _=t=>t&&t.__esModule?t:{default:t};function de(t){if(t&&t.__esModule)return t;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const i in t)if(i!=="default"){const S=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,S.get?S:{enumerable:!0,get:()=>t[i]})}}return n.default=t,Object.freeze(n)}const ue=_(H),le=de(ee),fe=_(N),W=_(re),me=t=>{const n=blocklet==null?void 0:blocklet.componentMountPoints.find(i=>i.name===t);return n?n.mountPoint:"/"};function z(){const{pathname:t}=window.location,n=t.match(/\/admin\/(maker|previewer)\/([^/]+)/),i=n==null?void 0:n[2],S=window.__PROJECT_ID__;if(!i&&!S)throw new Error("Unable to get projectId from pathname");return i||S}function Se(t){return`${t}:pages:version`}function we(t,n){return n==="yaml"?ue.default(t)?"":le.stringify(t,{indent:2}):n==="json"?JSON.parse(JSON.stringify(t||{})):n==="array"?JSON.parse(JSON.stringify(t||[])):t}function pe({error:t}){return E.jsx(T.Box,{children:E.jsx(T.Alert,{severity:"error",children:t.message})})}var G;const L=((G=window.blocklet)==null?void 0:G.prefix)||"/",R=Z.createAxios({timeout:200*1e3}),Pe=window.location.protocol==="https:"?"wss":"ws",Ie=t=>b.joinURL(`${Pe}://${window.location.hostname}`,L,`api/${t}/ws/pages`),ge="z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9";var F;(F=blocklet==null?void 0:blocklet.componentMountPoints.find(t=>t.did===ge))!=null&&F.mountPoint||b.joinURL(L,"/image-bin");function je(t){return t&&!/^(https?:\/\/|\/)/.test(t)?window.location.origin+b.joinURL(L,"uploads",t):t}const ye=window.innerWidth<=750;function Ce(t,n,i){if(!t||/\.gif/.test(t))return t;const S=(ye?n/1.5:n)*(i==="quality"?1.5:1);return be(t,{imageFilter:"resize",w:S,f:"webp"})}function be(t,n){return!t||!n?t:b.withQuery(t,n)}async function he(t){return R.get(`/api/projects/${t}`).then(n=>n.data)}async function ve(t){return R.post(`/api/projects/${t.id}/update`,t).then(n=>n.data)}const xe=500,x=se.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),J=d.createContext(null);function Oe({url:t,name:n,children:i,waitingSynced:S}){const[g,P]=d.useState(!1),{locale:j}=te.useLocaleContext(),w=A(),e=`${w}:MakerLocalState`,o=`${w}:${n}`,[s,r]=oe.useLocalStorageState(e,{defaultValue:{},listenStorageChange:!0}),c=d.useRef(s);c.current=s;const a=d.useMemo(()=>fe.default({dataSourceIds:[],dataSources:{},pages:{},pageIds:[],routes:{},routeIds:[],components:{},supportedLocales:[],config:{},resources:{}}),[]),u=d.useMemo(()=>N.getYjsDoc(a),[a]);d.useMemo(()=>new ce.IndexeddbPersistence(o,u),[o,u]);const p=d.useMemo(()=>new ie.WebsocketProvider(t,o,u,{params:{},resyncInterval:5*60*1e3}),[t,o,u]),h=d.useCallback(()=>{p&&(p.disconnect(),p.connect())},[p]),y=d.useMemo(()=>new ae.UndoManager([u.getArray("pageIds"),u.getMap("pages"),u.getArray("supportedLocales"),u.getMap("config")],{doc:u}),[u]),[v,O]=d.useState(null),[k,M]=d.useState(!1),[q,D]=d.useState(void 0),U=d.useCallback(async()=>{if(w){M(!0);try{const l=await he(w);O(l)}catch(l){console.error("Failed to fetch project:",l)}finally{M(!1)}}},[w]),$=d.useCallback(async(l,f)=>{var I;if(D(void 0),!!w){f!=null&&f.optimisticUpdate&&v&&O(m=>({...m,...l}));try{const m=await ve({...l});O(m)}catch(m){console.error("Failed to update project:",m),f!=null&&f.optimisticUpdate&&O(v),D((I=m==null?void 0:m.response)==null?void 0:I.data)}}},[w,v]);d.useEffect(()=>{w&&U()},[w,U]);const Y=d.useMemo(()=>({doc:u,state:a,localState:{...s,currentLocale:j},setLocalState:l=>r(typeof l=="function"?f=>l(f??{}):l),undoManager:y,projectState:{project:v,isLoadingProject:k,error:q},updateProject:$,forceSync:h}),[u,a,JSON.stringify(s),r,y,v,k,$,q,j,h]);return d.useEffect(()=>{y.on("stack-item-added",({stackItem:l})=>{const{currentPageId:f,currentLocale:I,pages:m}=c.current;l.meta.set("localState",{currentPageId:f,currentLocale:I,pages:m})}),y.on("stack-item-popped",({stackItem:l})=>{const f=l.meta.get("localState");f&&r(I=>({...I,...f}))})},[y,r]),d.useEffect(()=>{p.awareness.setLocalState(s)},[p,s]),d.useEffect(()=>{p.once("synced",()=>P(!0));const l=()=>{r(m=>({...m,networkStatus:void 0}))},f=()=>{r(m=>({...m,networkStatus:"offline"}))},I=W.default(({status:m})=>{m==="connected"?l():m==="disconnected"&&f()},xe);return p.on("status",I),window.addEventListener("online",l),window.addEventListener("offline",f),()=>{p.off("status",I),window.removeEventListener("online",l),window.removeEventListener("offline",f)}},[p,r]),S&&!g?null:E.jsx(J.Provider,{value:Y,children:i})}const B=()=>{const t=d.useContext(J);if(!t)throw new Error("Context is null");const n=ne.useSyncedStore(t.state),{setLocalState:i,localState:S}=t,g=V.useNavigate(),P=A(),j=d.useMemo(()=>({setCurrentSectionId:(e,o)=>{var s,r;e===S.currentPageId&&o===((r=(s=S.pages)==null?void 0:s[e])==null?void 0:r.currentSectionId)||(g(b.joinURL("/admin/maker",P??"","pages",e)),i(c=>C.produce(c,a=>{var u;a.currentPageId=e,a.currentComponentId=void 0,a.customComponentPreviewerProperties={},o!==void 0&&(a.pages??(a.pages={}),(u=a.pages)[e]??(u[e]={}),a.pages[e].currentSectionId=o??void 0),o?window.sessionStorage.setItem("iframe_show_id",`"${o}"`):window.sessionStorage.removeItem("iframe_show_id")})))},setCurrentComponentId:e=>{e!==S.currentComponentId&&(g(b.joinURL("/admin/maker",P??"","components",e)),i(o=>C.produce(o,s=>{s.currentComponentId=e,s.customComponentPreviewerProperties={}})))},setCurrentRouteId:({routeId:e,dynamicParams:o})=>{i(s=>C.produce(s,r=>{r.currentRouteId=e,r.currentDynamicParams=o}))},setCustomComponentPreviewerProperties:(()=>{const e={},o=W.default(()=>{i(s=>C.produce(s,r=>{r.customComponentPreviewerProperties={...r==null?void 0:r.customComponentPreviewerProperties,...e},Object.keys(e).forEach(c=>delete e[c])}))},5);return s=>{Object.assign(e,s),o()}})(),setRouteGenerateProcess:e=>{i(o=>C.produce(o,s=>{e?s.routeGenerateProcess={...s.routeGenerateProcess,...e}:s.routeGenerateProcess={}}))},resetRouteGenerateProcess:()=>{i(e=>C.produce(e,o=>{o.routeGenerateProcess={progress:"complete"}}))}}),[i,g,P]),w=d.useMemo(()=>({addPage:(e,o)=>{var c,a,u,p,h,y;const s=(e==null?void 0:e.id)??x(),r={...e,id:s,createdAt:(e==null?void 0:e.createdAt)??new Date().toISOString(),updatedAt:(e==null?void 0:e.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),slug:(e==null?void 0:e.slug)??`/${s}`,sections:(e==null?void 0:e.sections)??{},sectionIds:(e==null?void 0:e.sectionIds)??[],isPublic:(e==null?void 0:e.isPublic)??!0,templateConfig:(e==null?void 0:e.templateConfig)??{isTemplate:((c=e==null?void 0:e.templateConfig)==null?void 0:c.isTemplate)??!0,displayTemplateId:((a=e==null?void 0:e.templateConfig)==null?void 0:a.displayTemplateId)??void 0,dataSourceIds:((u=e==null?void 0:e.templateConfig)==null?void 0:u.dataSourceIds)??void 0,dataSourceParameters:((p=e==null?void 0:e.templateConfig)==null?void 0:p.dataSourceParameters)??{},enabledGenerate:((h=e==null?void 0:e.templateConfig)==null?void 0:h.enabledGenerate)??!1,agentId:((y=e==null?void 0:e.templateConfig)==null?void 0:y.agentId)??void 0}};return t.doc.transact(()=>{n.pages[r.id]=r,n.pageIds.splice(o??n.pageIds.length,0,r.id)}),r},addRoute:(e,o)=>{const s=(e==null?void 0:e.id)??x(),r={...e,id:s,createdAt:(e==null?void 0:e.createdAt)??new Date().toISOString(),updatedAt:(e==null?void 0:e.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),path:(e==null?void 0:e.path)??`/${s}`,handler:(e==null?void 0:e.handler)??"Pages Kit",isPublic:(e==null?void 0:e.isPublic)??!0,params:(e==null?void 0:e.params)??[],enabledGenerate:(e==null?void 0:e.enabledGenerate)??!1,displayTemplateId:(e==null?void 0:e.displayTemplateId)??void 0,dataSource:(e==null?void 0:e.dataSource)??{}};return t.doc.transact(()=>{n.routes??(n.routes={}),n.routeIds??(n.routeIds=[]),n.routes[r.id]=r,n.routeIds.splice(o??n.routeIds.length,0,r.id)}),r},deleteRoute:e=>{var s;if(!e)return;const o=(s=n.routeIds)==null?void 0:s.indexOf(e);o!==void 0&&o!==-1&&t.doc.transact(()=>{var r,c;(r=n.routeIds)==null||r.splice(o,1),(c=n.routes)==null||delete c[e]})},deletePage:e=>{const o=n.pageIds.indexOf(e);o!==-1&&t.doc.transact(()=>{n.pageIds.splice(o,1),delete n.pages[e]})},movePage:(e,o)=>{const{pageIds:s}=n,r=s.indexOf(e);r>=0&&s.splice(o,0,...s.splice(r,1))},addSection:(e,o,s)=>{const r=n.pages[e];if(!r)throw new Error(`Page ${e} is not exists`);const c={...o,id:o.id??x(),isTemplateSection:o.isTemplateSection??!0,llmConfig:o.llmConfig??{}};return t.doc.transact(()=>{r.sections[c.id]=c,r.sectionIds.splice(s??r.sectionIds.length,0,c.id)}),c},deleteSection:(e,o)=>{const s=n.pages[e];if(!s)throw new Error(`Page ${e} is not exists`);const r=s.sectionIds.indexOf(o);r!==-1&&t.doc.transact(()=>{s.sectionIds.splice(r,1),delete s.sections[o]})},toggleSectionVisibility:(e,o,s)=>{const r=n.pages[e];if(!r)throw new Error(`Page ${e} is not exists`);const c=r.sections[o];c&&(c.visibility=s)},moveSection:(e,o,s)=>{const r=n.pages[e];if(!r)throw new Error(`Page ${e} is not exists`);const{sectionIds:c}=r,a=c.indexOf(o);a>=0&&c.splice(s,0,...c.splice(a,1))},addDataSource:e=>{const o=e.id??x(),s={...e??{},id:o,createdAt:new Date().toISOString()};return t.doc.transact(()=>{n.dataSourceIds??(n.dataSourceIds=[]),n.dataSources??(n.dataSources={}),n.dataSourceIds.push(o),n.dataSources[o]=s}),n.dataSources[o]},deleteDataSource:e=>{const o=n.dataSourceIds.indexOf(e);o!==-1&&t.doc.transact(()=>{n.dataSourceIds.splice(o,1),delete n.dataSources[e]})}}),[n,t.doc]);return{...t,state:n,actions:w,localActions:j,get currentPage(){const{localState:{currentPageId:e}}=t;return e?n.pages[e]:void 0},get currentSection(){var r,c,a;const{localState:{currentPageId:e,...o}}=t;if(!e)return;const s=(c=(r=o.pages)==null?void 0:r[e])==null?void 0:c.currentSectionId;if(s)return(a=n.pages[e])==null?void 0:a.sections[s]},get currentRoute(){var o;const{localState:{currentRouteId:e}}=t;return e?(o=n.routes)==null?void 0:o[e]:void 0}}},A=()=>{const{projectId:t}=V.useParams();return t??z()??""};function K(t){var S,g;const{resources:n}=t;if(!n.components)return{};const i={};return(g=(S=window==null?void 0:window.blocklet)==null?void 0:S.componentMountPoints)==null||g.forEach(P=>{i[P.did]=P}),Object.fromEntries(Object.entries(n.components).map(([P,{blockletId:j,component:w}])=>{var e;return[P,{data:w,blockletId:j,blockletTitle:((e=i[j])==null?void 0:e.title)||j}]}))}function Q(t){const{components:n}=t;return n||{}}function X(t){return{...K(t),...Q(t)}}const Ee=()=>X(B().state);exports.ErrorView=pe;exports.StoreProvider=Oe;exports.api=R;exports.autoResizeImage=Ce;exports.getAllComponents=X;exports.getCustomComponents=Q;exports.getImageAbsoluteUrl=je;exports.getMountPoint=me;exports.getProjectIdFromPathnameOrWindow=z;exports.getProjectPageVersionKey=Se;exports.getResourceComponents=K;exports.getWssURL=Ie;exports.nextId=x;exports.transformValue=we;exports.useAllComponents=Ee;exports.useProjectId=A;exports.useStore=B;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@blocklet/pages-kit/builtin/utils");require("@blocklet/pages-kit/types");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/config");require("lru-cache");require("node-fetch");require("ufo");require("crypto");const e=require("./chunks/site-state-VeQ4nMmB.js");exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=e.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=e.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS;exports.clearPreloadComponentsCache=e.clearPreloadComponentsCache;exports.clearPreloadComponentsCacheByMode=e.clearPreloadComponentsCacheByMode;exports.getComponentFromState=e.getComponentFromState;exports.getComponentFromStateByName=e.getComponentFromStateByName;exports.getExportSchemaValueFromCode=e.getExportSchemaValueFromCode;exports.getPreloadComponent=e.getPreloadComponent;exports.getPreloadComponents=e.getPreloadComponents;exports.getPreloadComponentsCacheKey=e.getPreloadComponentsCacheKey;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@blocklet/pages-kit/builtin/utils");require("@blocklet/pages-kit/types");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/config");require("lru-cache");require("node-fetch");require("ufo");require("crypto");const e=require("./chunks/site-state-JgP3yURe.js");exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=e.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=e.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS;exports.clearPreloadComponentsCache=e.clearPreloadComponentsCache;exports.clearPreloadComponentsCacheByMode=e.clearPreloadComponentsCacheByMode;exports.getComponentFromState=e.getComponentFromState;exports.getComponentFromStateByName=e.getComponentFromStateByName;exports.getExportSchemaValueFromCode=e.getExportSchemaValueFromCode;exports.getPreloadComponent=e.getPreloadComponent;exports.getPreloadComponents=e.getPreloadComponents;exports.getPreloadComponentsCacheKey=e.getPreloadComponentsCacheKey;
package/lib/cjs/home.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("./chunks/state-D4MG-uJB.js");require("@arcblock/ux/lib/Locale/context");require("@arcblock/ux/lib/Result");require("@blocklet/pages-kit/builtin/page/header");require("@blocklet/pages-kit/contexts/color");require("@blocklet/pages-kit/utils/data-source");require("@blocklet/pages-kit/utils/route");require("@blocklet/ui-react/lib/Header");require("@emotion/css");require("@emotion/react");require("@emotion/styled");require("@mui/material");require("ahooks");require("isomorphic-dompurify");require("lodash/cloneDeep");require("lodash/isEmpty");require("lodash/isEqual");require("react");require("react-helmet");require("react-router-dom");require("react-use");require("ufo");require("./chunks/array-BChVGKFh.js");const e=require("./chunks/home-BkGblT4S.js");require("./chunks/session-BA7Qrcia.js");exports.HomeView=e.HomeView;exports.PageRoutes=e.PageRoutes;exports.PageView=e.PageView;exports.PageViewByPath=e.PageViewByPath;exports.PageViewWithDataSource=e.PageViewWithDataSource;exports.TranslucentHeader=e.TranslucentHeader;exports.default=e.Home;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("./chunks/state-CA6q2h83.js");require("@arcblock/ux/lib/Locale/context");require("@arcblock/ux/lib/Result");require("@blocklet/pages-kit/builtin/page/header");require("@blocklet/pages-kit/contexts/color");require("@blocklet/pages-kit/utils/data-source");require("@blocklet/pages-kit/utils/route");require("@blocklet/ui-react/lib/Header");require("@emotion/css");require("@emotion/react");require("@emotion/styled");require("@mui/material");require("ahooks");require("isomorphic-dompurify");require("lodash/cloneDeep");require("lodash/isEmpty");require("lodash/isEqual");require("react");require("react-helmet");require("react-router-dom");require("react-use");require("ufo");require("./chunks/array-C0IVbCmb.js");const e=require("./chunks/home-DH9Z8Tuv.js");require("./chunks/session-BA7Qrcia.js");exports.HomeView=e.HomeView;exports.PageRoutes=e.PageRoutes;exports.PageView=e.PageView;exports.PageViewByPath=e.PageViewByPath;exports.PageViewWithDataSource=e.PageViewWithDataSource;exports.TranslucentHeader=e.TranslucentHeader;exports.default=e.Home;
@@ -1,4 +1,4 @@
1
- "use strict";const z=require("@arcblock/did-auth-storage-nedb"),D=require("@blocklet/sdk/lib/config"),G=require("@blocklet/sdk/lib/service/auth"),K=require("@blocklet/sdk/lib/wallet"),Q=require("@blocklet/sdk/lib/wallet-authenticator"),V=require("@blocklet/sdk/lib/wallet-handler"),P=require("path"),S=require("./chunks/site-state-VeQ4nMmB.js"),A=require("@blocklet/crawler/middlewares"),X=require("@blocklet/pages-kit/types"),Y=require("@blocklet/pages-kit/utils/common"),Z=require("@blocklet/pages-kit/utils/preload"),F=require("@blocklet/sdk/lib/component"),ee=require("cheerio/slim"),te=require("express"),E=require("fs"),oe=require("lodash/get"),ne=require("mustache"),I=require("ufo"),u=o=>o&&o.__esModule?o:{default:o};function le(o){if(o&&o.__esModule)return o;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(t,e,a.get?a:{enumerable:!0,get:()=>o[e]})}}return t.default=o,Object.freeze(t)}const re=u(z),i=u(D),ce=u(G),se=u(K),ae=u(Q),ie=u(V),ue=u(P),L=le(ee),de=u(oe),pe=u(ne),fe=(o={})=>{const t={data:new Map,timers:new Map,set:(e,a,_=o.ttl||36e5)=>{o.max&&t.data.size>=o.max&&t.delete(t.data.keys().next().value),t.timers.has(e)&&clearTimeout(t.timers.get(e)),t.timers.set(e,setTimeout(()=>t.delete(e),_)),t.data.set(e,a)},get:e=>t.data.get(e),has:e=>t.data.has(e),delete:e=>(t.timers.has(e)&&clearTimeout(t.timers.get(e)),t.timers.delete(e),t.data.delete(e)),clear:()=>{t.data.clear();for(const e of t.timers.values())clearTimeout(e);t.timers.clear()}};return t},O=fe({max:1,ttl:1e3*30});se.default();const he=new ae.default;new ie.default({authenticator:he,tokenStorage:new re.default({dbPath:ue.default.join(i.default.env.dataDir,"auth.db")})});const me=new ce.default,ge=async()=>{try{const o=O.get("blockletInfo");if(o)return o;const{blocklet:t}=await me.getBlocklet();return O.set("blockletInfo",t),t}catch{return null}},we=["/assets/"],U=()=>[!0,"true"].includes(i.default.env.preferences.allowCrawler);function B(){U()?A.initCronCrawlBlocklet({time:"0 0 */12 * * *",options:{}}):A.cancelCronCrawlBlocklet()}B();i.default.events.on(i.default.Events.envUpdate,B);function _e({app:o,viteDevServer:t,state:e}){let a;if(t){const n=E.readFileSync(P.resolve(process.cwd(),"./index.html"),"utf-8");o.use(async(b,v,T)=>{const q=b.originalUrl;a=await t.transformIndexHtml(q,n),T()})}else a=E.readFileSync(P.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const _=te.Router();_.use((n,b,v)=>{if(n.headers["x-unique-record"]==="dial_http"){S.logger.info("[html] dial http request, return 200 status code"),b.status(200).send("ok");return}v()},A.initSEOMiddleware({autoReturnHtml:!0,allowCrawler:U})),_.get("/:path(*)?",async(n,b,v)=>{var M,$,W;if(we.some(c=>{var p;return(p=n.path)==null?void 0:p.startsWith(c)})){v();return}const T=performance.now(),q=()=>Math.round(performance.now()-T),H="production";let r,h,C=a;if(n.path.startsWith("/pages")){const c=n.params.lang,p=n.cookies.nf_lang,k=new Set([...i.default.env.languages.map(w=>w.code)]);let g=(c&&k.has(c)?c:void 0)||(k.has(p)?p:void 0)||[...k][0];if((!g||!((M=e.supportedLocales)!=null&&M.find(w=>w.locale===g)))&&(g=((W=($=e.supportedLocales)==null?void 0:$[0])==null?void 0:W.locale)||""),g){const w=[];Object.values(e.pages).forEach(s=>{const J=Object.values((s==null?void 0:s.sections)??{}).filter(f=>{var y;return f.component==="custom-component"&&((y=f.config)==null?void 0:y.componentId)}).map(f=>{var y,x;return{id:f.id,componentId:f.config.componentId,useCache:f.config.useCache,cacheDuration:f.config.cacheDuration,properties:(x=(y=f.locales)==null?void 0:y[g])==null?void 0:x.properties}});w.push(...J)});const N=new Promise(s=>{setTimeout(()=>{s({})},90*1e3)});try{await Promise.race([N,S.getPreloadComponents({mode:H,req:n,state:e,locale:g,instances:w,module:X.PreloadComponentScriptModule.UMD_FN}).then(s=>{s&&(h=Z.injectPreloadComponents(s))})])}catch(s){S.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements",s)}}}try{const c=(r==null?void 0:r.title)||i.default.env.appName,p=(r==null?void 0:r.description)||i.default.env.appDescription,k=I.withQuery(I.joinURL(i.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:c,description:p});C=pe.default.render(a,{ogTitle:c,ogDescription:p,ogImage:be(r==null?void 0:r.image)||k,pagesPublishedAt:(e==null?void 0:e.config.publishedAt)||new Date().getTime()})}catch{}const l=e==null?void 0:e.config.fontFamily,R=n.query.mode==="draft"||n.url.includes("preview"),m=L.load(C);let d=r==null?void 0:r.backgroundColor;if(d&&Y.isMuiColorKey(d)){const c=await ge();d=de.default(c,`settings.theme.light.palette.${d}`,d)}m("head").find("#injected-head-elements").replaceWith(`
1
+ "use strict";const z=require("@arcblock/did-auth-storage-nedb"),D=require("@blocklet/sdk/lib/config"),G=require("@blocklet/sdk/lib/service/auth"),K=require("@blocklet/sdk/lib/wallet"),Q=require("@blocklet/sdk/lib/wallet-authenticator"),V=require("@blocklet/sdk/lib/wallet-handler"),P=require("path"),S=require("./chunks/site-state-JgP3yURe.js"),A=require("@blocklet/crawler/middlewares"),X=require("@blocklet/pages-kit/types"),Y=require("@blocklet/pages-kit/utils/common"),Z=require("@blocklet/pages-kit/utils/preload"),F=require("@blocklet/sdk/lib/component"),ee=require("cheerio/slim"),te=require("express"),E=require("fs"),oe=require("lodash/get"),ne=require("mustache"),I=require("ufo"),u=o=>o&&o.__esModule?o:{default:o};function le(o){if(o&&o.__esModule)return o;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(t,e,a.get?a:{enumerable:!0,get:()=>o[e]})}}return t.default=o,Object.freeze(t)}const re=u(z),i=u(D),ce=u(G),se=u(K),ae=u(Q),ie=u(V),ue=u(P),L=le(ee),de=u(oe),pe=u(ne),fe=(o={})=>{const t={data:new Map,timers:new Map,set:(e,a,_=o.ttl||36e5)=>{o.max&&t.data.size>=o.max&&t.delete(t.data.keys().next().value),t.timers.has(e)&&clearTimeout(t.timers.get(e)),t.timers.set(e,setTimeout(()=>t.delete(e),_)),t.data.set(e,a)},get:e=>t.data.get(e),has:e=>t.data.has(e),delete:e=>(t.timers.has(e)&&clearTimeout(t.timers.get(e)),t.timers.delete(e),t.data.delete(e)),clear:()=>{t.data.clear();for(const e of t.timers.values())clearTimeout(e);t.timers.clear()}};return t},O=fe({max:1,ttl:1e3*30});se.default();const he=new ae.default;new ie.default({authenticator:he,tokenStorage:new re.default({dbPath:ue.default.join(i.default.env.dataDir,"auth.db")})});const me=new ce.default,ge=async()=>{try{const o=O.get("blockletInfo");if(o)return o;const{blocklet:t}=await me.getBlocklet();return O.set("blockletInfo",t),t}catch{return null}},we=["/assets/"],U=()=>[!0,"true"].includes(i.default.env.preferences.allowCrawler);function B(){U()?A.initCronCrawlBlocklet({time:"0 0 */12 * * *",options:{}}):A.cancelCronCrawlBlocklet()}B();i.default.events.on(i.default.Events.envUpdate,B);function _e({app:o,viteDevServer:t,state:e}){let a;if(t){const n=E.readFileSync(P.resolve(process.cwd(),"./index.html"),"utf-8");o.use(async(b,v,T)=>{const q=b.originalUrl;a=await t.transformIndexHtml(q,n),T()})}else a=E.readFileSync(P.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const _=te.Router();_.use((n,b,v)=>{if(n.headers["x-unique-record"]==="dial_http"){S.logger.info("[html] dial http request, return 200 status code"),b.status(200).send("ok");return}v()},A.initSEOMiddleware({autoReturnHtml:!0,allowCrawler:U})),_.get("/:path(*)?",async(n,b,v)=>{var M,$,W;if(we.some(c=>{var p;return(p=n.path)==null?void 0:p.startsWith(c)})){v();return}const T=performance.now(),q=()=>Math.round(performance.now()-T),H="production";let r,h,C=a;if(n.path.startsWith("/pages")){const c=n.params.lang,p=n.cookies.nf_lang,k=new Set([...i.default.env.languages.map(w=>w.code)]);let g=(c&&k.has(c)?c:void 0)||(k.has(p)?p:void 0)||[...k][0];if((!g||!((M=e.supportedLocales)!=null&&M.find(w=>w.locale===g)))&&(g=((W=($=e.supportedLocales)==null?void 0:$[0])==null?void 0:W.locale)||""),g){const w=[];Object.values(e.pages).forEach(s=>{const J=Object.values((s==null?void 0:s.sections)??{}).filter(f=>{var y;return f.component==="custom-component"&&((y=f.config)==null?void 0:y.componentId)}).map(f=>{var y,x;return{id:f.id,componentId:f.config.componentId,useCache:f.config.useCache,cacheDuration:f.config.cacheDuration,properties:(x=(y=f.locales)==null?void 0:y[g])==null?void 0:x.properties}});w.push(...J)});const N=new Promise(s=>{setTimeout(()=>{s({})},90*1e3)});try{await Promise.race([N,S.getPreloadComponents({mode:H,req:n,state:e,locale:g,instances:w,module:X.PreloadComponentScriptModule.UMD_FN}).then(s=>{s&&(h=Z.injectPreloadComponents(s))})])}catch(s){S.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements",s)}}}try{const c=(r==null?void 0:r.title)||i.default.env.appName,p=(r==null?void 0:r.description)||i.default.env.appDescription,k=I.withQuery(I.joinURL(i.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:c,description:p});C=pe.default.render(a,{ogTitle:c,ogDescription:p,ogImage:be(r==null?void 0:r.image)||k,pagesPublishedAt:(e==null?void 0:e.config.publishedAt)||new Date().getTime()})}catch{}const l=e==null?void 0:e.config.fontFamily,R=n.query.mode==="draft"||n.url.includes("preview"),m=L.load(C);let d=r==null?void 0:r.backgroundColor;if(d&&Y.isMuiColorKey(d)){const c=await ge();d=de.default(c,`settings.theme.light.palette.${d}`,d)}m("head").find("#injected-head-elements").replaceWith(`
2
2
  ${d?`<meta name="theme-color" content="${d}" /><style>html,body,#app {background-color: ${d};}</style>`:""}
3
3
  ${l!=null&&l.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${l.title}&display=swap">`:""}
4
4
  ${l!=null&&l.description&&(l==null?void 0:l.description)!==(l==null?void 0:l.title)?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${l.description}&display=swap">`:""}
@@ -1 +1 @@
1
- "use strict";const c=require("./chunks/site-state-VeQ4nMmB.js"),M=require("async_hooks"),U=require("express"),F=require("fs"),J=require("joi"),X=require("lodash/groupBy"),W=require("lodash/sortBy"),b=require("path"),$=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),y=t=>t&&t.__esModule?t:{default:t},l=y(F),I=y(J),D=y(X),K=y(W),k=y(b),v=y($);new M.AsyncLocalStorage;const Y=async(t,e,o)=>{var n,s,r,i;try{const{projectId:u}=t.params;if(!u)return o();const f=await c.Project.findByPk(u);if(!f)return e==null?void 0:e.status(404).json({error:"Project not found"});const _=(n=t.user)==null?void 0:n.did,h=((s=t.user)==null?void 0:s.role)||"UNKNOWN_ROLE";if(!_)return e==null?void 0:e.status(401).json({error:"Authentication required"});if(c.isMultiTenant()){const w=f.createdBy===_,a=(i=(r=c.getMultiTenantAllProjectAccessPassports())==null?void 0:r.includes)==null?void 0:i.call(r,h);if(!w&&!a)return e==null?void 0:e.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(h))return e==null?void 0:e.status(403).json({error:"No permission to access this project in single-tenant mode"});t.project=f,t.projectId=u,o()}catch(u){c.logger.error("Project middleware error:",u),e==null||e.status(500).json({error:"Internal server error"})}};function N(t,e){return new Promise((o,n)=>{const s=l.default.createReadStream(t),r=l.default.createWriteStream(e);s.on("error",n),r.on("error",n),r.on("finish",o),s.pipe(r)})}async function T(t,e){await l.default.promises.mkdir(e,{recursive:!0});const o=await l.default.promises.readdir(t,{withFileTypes:!0});for(const n of o){const s=k.default.join(t,n.name),r=k.default.join(e,n.name);n.isDirectory()?await T(s,r):await N(s,r)}}async function z(t,e){(await l.default.promises.stat(t)).isDirectory()?await T(t,e):await N(t,e)}const O=(t,e,o)=>c.isMultiTenant()?v.default()(t,e,o):v.default({roles:["owner","admin","pagesEditor"]})(t,e,o),H=(t,e)=>{const o=G.getResourceExportDir({projectId:t,releaseId:e});return b.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},S=U.Router(),B="@page",q="@component",P=":",E="ALL",L="@project",C=({pageId:t,projectId:e})=>[B,e,t].join(P),Q=t=>{const[e,o,n]=t.split(P);if(e===B)return{pageId:n,projectId:o}},A=({componentId:t,projectId:e})=>[q,e,t].join(P),V=t=>{const[e,o,n]=t.split(P);if(e===q)return{componentId:n,projectId:o}},Z=t=>[L,t].join(P),tt=t=>{const[e,o]=t.split(P);if(e===L)return o},et=t=>{try{return JSON.parse(t)}catch{}return{}};async function x(t){const e=await c.SiteState.shared(t).getState("production"),o=await c.Project.findByPk(t),n=e.pageIds.map(r=>{const i=e.pages[r];if(i)return{id:C({pageId:r,projectId:t}),name:i.slug}}).filter(Boolean),s=K.default(Object.values(e.components),r=>r.index).map(({data:r})=>({id:A({componentId:r.id,projectId:t}),name:r.name||r.id}));return{id:Z(t),name:(o==null?void 0:o.name)||"Unnamed Project",children:[{id:C({pageId:E,projectId:t}),name:"Pages",children:n},{id:A({componentId:E,projectId:t}),name:"Components",children:s}]}}S.get("/resources",O,async(t,e)=>{const{projectId:o}=et(t.query.resourcesParams);if(o){t.params={...t.params,projectId:o},await Y(t,e,()=>{});const r=await x(o);e.json({resources:[r]});return}const n=await c.Project.findAll({where:{}}),s=await Promise.all(n.map(r=>x(r.id)));e.json({resources:s})});const ot=I.default.object({projectId:I.default.string().required().min(1),releaseId:I.default.string().allow(""),resources:I.default.array().items(I.default.string()).required(),locale:I.default.string().allow("")});S.post("/resources",O,async(t,e)=>{const{resources:o,projectId:n,releaseId:s}=await ot.validateAsync(t.body),r="production",i=[],u=[];for(const a of o){if(tt(a))continue;const{pageId:m,projectId:j}=Q(a)||{};if(m)m===E||m&&j&&i.push({pageId:m,projectId:j});else{const{componentId:p,projectId:d}=V(a)||{};p===E||p&&d&&u.push({componentId:p,projectId:d})}}const f=D.default(i,"projectId"),_=D.default(u,"projectId"),h=new Set([...Object.keys(f),...Object.keys(_)]),w=H(n,s);l.default.rmSync(w,{recursive:!0,force:!0}),l.default.mkdirSync(w,{recursive:!0});for(const a of h){const m=await c.SiteState.shared(a).getState(r),j=f[a],p=_[a],d=j==null?void 0:j.map(g=>g.pageId),R=p==null?void 0:p.map(g=>g.componentId);if(d!=null&&d.length||R!=null&&R.length){const g=await c.toPackage(m,{exportAssets:!0,pageIds:d,componentIds:R});await z(g,w),l.default.rmSync(g,{recursive:!0,force:!0})}c.logger.info(`Exported resources for project ${a}`,{pageIds:d,componentIds:R})}e.json({})});S.get("/all-resources",O,async(t,e)=>{const{states:o}=await c.getResourceStates(),n=o==null?void 0:o.map(s=>{const r={blockletId:s.blockletId,blockletTitle:s.blockletTitle,components:{}};if(s.state.components&&(r.components=s.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);e.json(n)});module.exports=S;
1
+ "use strict";const c=require("./chunks/site-state-JgP3yURe.js"),M=require("async_hooks"),U=require("express"),F=require("fs"),J=require("joi"),X=require("lodash/groupBy"),W=require("lodash/sortBy"),b=require("path"),$=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),y=t=>t&&t.__esModule?t:{default:t},l=y(F),I=y(J),D=y(X),K=y(W),k=y(b),v=y($);new M.AsyncLocalStorage;const Y=async(t,e,o)=>{var n,s,r,i;try{const{projectId:u}=t.params;if(!u)return o();const f=await c.Project.findByPk(u);if(!f)return e==null?void 0:e.status(404).json({error:"Project not found"});const _=(n=t.user)==null?void 0:n.did,h=((s=t.user)==null?void 0:s.role)||"UNKNOWN_ROLE";if(!_)return e==null?void 0:e.status(401).json({error:"Authentication required"});if(c.isMultiTenant()){const w=f.createdBy===_,a=(i=(r=c.getMultiTenantAllProjectAccessPassports())==null?void 0:r.includes)==null?void 0:i.call(r,h);if(!w&&!a)return e==null?void 0:e.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(h))return e==null?void 0:e.status(403).json({error:"No permission to access this project in single-tenant mode"});t.project=f,t.projectId=u,o()}catch(u){c.logger.error("Project middleware error:",u),e==null||e.status(500).json({error:"Internal server error"})}};function N(t,e){return new Promise((o,n)=>{const s=l.default.createReadStream(t),r=l.default.createWriteStream(e);s.on("error",n),r.on("error",n),r.on("finish",o),s.pipe(r)})}async function T(t,e){await l.default.promises.mkdir(e,{recursive:!0});const o=await l.default.promises.readdir(t,{withFileTypes:!0});for(const n of o){const s=k.default.join(t,n.name),r=k.default.join(e,n.name);n.isDirectory()?await T(s,r):await N(s,r)}}async function z(t,e){(await l.default.promises.stat(t)).isDirectory()?await T(t,e):await N(t,e)}const O=(t,e,o)=>c.isMultiTenant()?v.default()(t,e,o):v.default({roles:["owner","admin","pagesEditor"]})(t,e,o),H=(t,e)=>{const o=G.getResourceExportDir({projectId:t,releaseId:e});return b.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},S=U.Router(),B="@page",q="@component",P=":",E="ALL",L="@project",C=({pageId:t,projectId:e})=>[B,e,t].join(P),Q=t=>{const[e,o,n]=t.split(P);if(e===B)return{pageId:n,projectId:o}},A=({componentId:t,projectId:e})=>[q,e,t].join(P),V=t=>{const[e,o,n]=t.split(P);if(e===q)return{componentId:n,projectId:o}},Z=t=>[L,t].join(P),tt=t=>{const[e,o]=t.split(P);if(e===L)return o},et=t=>{try{return JSON.parse(t)}catch{}return{}};async function x(t){const e=await c.SiteState.shared(t).getState("production"),o=await c.Project.findByPk(t),n=e.pageIds.map(r=>{const i=e.pages[r];if(i)return{id:C({pageId:r,projectId:t}),name:i.slug}}).filter(Boolean),s=K.default(Object.values(e.components),r=>r.index).map(({data:r})=>({id:A({componentId:r.id,projectId:t}),name:r.name||r.id}));return{id:Z(t),name:(o==null?void 0:o.name)||"Unnamed Project",children:[{id:C({pageId:E,projectId:t}),name:"Pages",children:n},{id:A({componentId:E,projectId:t}),name:"Components",children:s}]}}S.get("/resources",O,async(t,e)=>{const{projectId:o}=et(t.query.resourcesParams);if(o){t.params={...t.params,projectId:o},await Y(t,e,()=>{});const r=await x(o);e.json({resources:[r]});return}const n=await c.Project.findAll({where:{}}),s=await Promise.all(n.map(r=>x(r.id)));e.json({resources:s})});const ot=I.default.object({projectId:I.default.string().required().min(1),releaseId:I.default.string().allow(""),resources:I.default.array().items(I.default.string()).required(),locale:I.default.string().allow("")});S.post("/resources",O,async(t,e)=>{const{resources:o,projectId:n,releaseId:s}=await ot.validateAsync(t.body),r="production",i=[],u=[];for(const a of o){if(tt(a))continue;const{pageId:m,projectId:j}=Q(a)||{};if(m)m===E||m&&j&&i.push({pageId:m,projectId:j});else{const{componentId:p,projectId:d}=V(a)||{};p===E||p&&d&&u.push({componentId:p,projectId:d})}}const f=D.default(i,"projectId"),_=D.default(u,"projectId"),h=new Set([...Object.keys(f),...Object.keys(_)]),w=H(n,s);l.default.rmSync(w,{recursive:!0,force:!0}),l.default.mkdirSync(w,{recursive:!0});for(const a of h){const m=await c.SiteState.shared(a).getState(r),j=f[a],p=_[a],d=j==null?void 0:j.map(g=>g.pageId),R=p==null?void 0:p.map(g=>g.componentId);if(d!=null&&d.length||R!=null&&R.length){const g=await c.toPackage(m,{exportAssets:!0,pageIds:d,componentIds:R});await z(g,w),l.default.rmSync(g,{recursive:!0,force:!0})}c.logger.info(`Exported resources for project ${a}`,{pageIds:d,componentIds:R})}e.json({})});S.get("/all-resources",O,async(t,e)=>{const{states:o}=await c.getResourceStates(),n=o==null?void 0:o.map(s=>{const r={blockletId:s.blockletId,blockletTitle:s.blockletTitle,components:{}};if(s.state.components&&(r.components=s.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);e.json(n)});module.exports=S;