@funhub/platform 0.1.153 → 0.1.155

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 (143) hide show
  1. package/dist/assets/icons/marquee-enter.mjs +2 -0
  2. package/dist/components/biz/basics/search/shared/components/search-box.mjs +1 -1
  3. package/dist/components/biz/basics/search/variants/basic-search/runtime/client.mjs +1 -1
  4. package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.d.mts +5 -4
  5. package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.mjs +1 -1
  6. package/dist/components/biz/business/banner/variants/basic-banner/material.d.mts +3 -2
  7. package/dist/components/biz/business/banner-carousel/material.d.mts +3 -2
  8. package/dist/components/biz/business/banner-carousel/schema.d.mts +3 -2
  9. package/dist/components/biz/business/banner-carousel/schema.mjs +1 -1
  10. package/dist/components/biz/business/channel-list/material.d.mts +3 -2
  11. package/dist/components/biz/business/channel-list/schema.d.mts +3 -2
  12. package/dist/components/biz/business/channel-list/schema.mjs +1 -1
  13. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  14. package/dist/components/biz/business/detail/shared/registry.d.mts +17 -14
  15. package/dist/components/biz/business/detail/shared/runtime-context-provider.mjs +1 -1
  16. package/dist/components/biz/business/detail/shared/use-video-detail-webview-bridge.mjs +1 -1
  17. package/dist/components/biz/business/detail/video-detail-actions/schema.mjs +1 -1
  18. package/dist/components/biz/business/detail/video-detail-info/material.d.mts +3 -2
  19. package/dist/components/biz/business/detail/video-detail-info/schema.d.mts +3 -2
  20. package/dist/components/biz/business/detail/video-detail-info/schema.mjs +1 -1
  21. package/dist/components/biz/business/detail/video-detail-info/server.mjs +1 -1
  22. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/material.d.mts +3 -2
  23. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/schema.d.mts +3 -2
  24. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/schema.mjs +1 -1
  25. package/dist/components/biz/business/detail/video-detail-player/schema.mjs +1 -1
  26. package/dist/components/biz/business/detail/video-detail-player-bridge-only/client.d.mts +1 -1
  27. package/dist/components/biz/business/detail/video-detail-player-bridge-only/client.mjs +1 -1
  28. package/dist/components/biz/business/detail/video-detail-player-bridge-only/schema.mjs +1 -1
  29. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  30. package/dist/components/biz/business/detail/video-detail-recommend/material.d.mts +11 -10
  31. package/dist/components/biz/business/detail/video-detail-recommend/schema.d.mts +11 -10
  32. package/dist/components/biz/business/detail/video-detail-recommend/schema.mjs +1 -1
  33. package/dist/components/biz/business/floating-ball/material.d.mts +3 -2
  34. package/dist/components/biz/business/floating-ball/schema.d.mts +5 -4
  35. package/dist/components/biz/business/floating-ball/schema.mjs +1 -1
  36. package/dist/components/biz/business/header-search/header-avatar-icon/schema.mjs +1 -1
  37. package/dist/components/biz/business/header-search/header-avatar-logo-search/material.d.mts +3 -2
  38. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.d.mts +3 -2
  39. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -1
  40. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.d.mts +3 -2
  41. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/schema.d.mts +3 -2
  42. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/schema.mjs +1 -1
  43. package/dist/components/biz/business/header-search/header-logo-search/material.d.mts +3 -2
  44. package/dist/components/biz/business/header-search/header-logo-search/schema.d.mts +3 -2
  45. package/dist/components/biz/business/header-search/header-logo-search/schema.mjs +1 -1
  46. package/dist/components/biz/business/header-search/header-search/schema.mjs +1 -1
  47. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts +13 -12
  48. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs +1 -1
  49. package/dist/components/biz/business/home-recommend/home-recommend-grid/material.d.mts +13 -12
  50. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts +11 -10
  51. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs +1 -1
  52. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.d.mts +11 -10
  53. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  54. package/dist/components/biz/business/home-recommend/shared/home-recommend-server-data.mjs +1 -1
  55. package/dist/components/biz/business/home-recommend/shared/home-recommend-video-detail.mjs +1 -1
  56. package/dist/components/biz/business/image-text-recommend/material.d.mts +15 -14
  57. package/dist/components/biz/business/image-text-recommend/schema.d.mts +15 -14
  58. package/dist/components/biz/business/image-text-recommend/schema.mjs +1 -1
  59. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
  60. package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -1
  61. package/dist/components/biz/business/marquee/client.mjs +1 -1
  62. package/dist/components/biz/business/marquee/material.d.mts +8 -7
  63. package/dist/components/biz/business/marquee/schema.d.mts +26 -24
  64. package/dist/components/biz/business/marquee/schema.mjs +1 -1
  65. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  66. package/dist/components/biz/business/profile/profile-header/schema.mjs +1 -1
  67. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
  68. package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
  69. package/dist/components/biz/business/profile/profile-main/schema.mjs +1 -1
  70. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
  71. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
  72. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.d.mts +1 -1
  73. package/dist/components/biz/business/search-bar/variants/basic-search-bar/runtime/client.mjs +1 -1
  74. package/dist/components/biz/business/search-history/client.mjs +1 -1
  75. package/dist/components/biz/business/search-history/material.d.mts +3 -2
  76. package/dist/components/biz/business/search-history/schema.d.mts +3 -2
  77. package/dist/components/biz/business/search-history/schema.mjs +1 -1
  78. package/dist/components/biz/business/search-input/schema.mjs +1 -1
  79. package/dist/components/biz/business/shortcut-grid/material.d.mts +5 -4
  80. package/dist/components/biz/business/shortcut-grid/schema.d.mts +5 -4
  81. package/dist/components/biz/business/shortcut-grid/schema.mjs +1 -1
  82. package/dist/components/biz/business/tab-bar/schema.mjs +1 -1
  83. package/dist/components/biz/business/text-recommend/material.d.mts +4 -3
  84. package/dist/components/biz/business/text-recommend/schema.d.mts +4 -3
  85. package/dist/components/biz/business/text-recommend/schema.mjs +1 -1
  86. package/dist/components/biz/example/button/material.d.mts +9 -8
  87. package/dist/components/biz/example/button/schema.d.mts +21 -19
  88. package/dist/components/biz/example/button/schema.mjs +1 -1
  89. package/dist/components/common/image-crop-modal/image-crop-modal.mjs +2 -2
  90. package/dist/components/common/series-episodes/index.mjs +1 -1
  91. package/dist/components/common/video-player/process-m3u8-cache.mjs +1 -1
  92. package/dist/components/pages/collection-add/page.mjs +1 -1
  93. package/dist/components/pages/collection-create/form.mjs +1 -1
  94. package/dist/components/pages/collection-detail/detail.mjs +1 -1
  95. package/dist/components/pages/login/verify.mjs +1 -1
  96. package/dist/components/pages/publish/components/upload-progress.mjs +1 -1
  97. package/dist/components/pages/search/hot-recommend.mjs +1 -1
  98. package/dist/components/pages/search/style.module.mjs +3 -31
  99. package/dist/components/pages/search/top-header.mjs +1 -1
  100. package/dist/components/pages/search-result/search-all.mjs +1 -1
  101. package/dist/components/pages/search-result/search-tab.mjs +1 -1
  102. package/dist/components/pages/search-result/search-user.mjs +1 -1
  103. package/dist/components/pages/search-result/search-video.mjs +1 -1
  104. package/dist/components/pages/video-detail/video-detail-client.mjs +1 -1
  105. package/dist/components/pages/video-list/index.mjs +1 -1
  106. package/dist/components/pages/video-list/video-list-client.mjs +1 -1
  107. package/dist/components/ui/badge.d.mts +1 -1
  108. package/dist/components/ui/button.d.mts +1 -1
  109. package/dist/components/ui/image.d.mts +4 -4
  110. package/dist/components/ui/item.mjs +1 -1
  111. package/dist/components/ui/loading.d.mts +42 -0
  112. package/dist/hooks/use-first-row-height.d.mts +69 -0
  113. package/dist/hooks/use-first-row-height.mjs +2 -0
  114. package/dist/hooks/use-min-duration-loading.d.mts +18 -0
  115. package/dist/hooks/use-min-duration-loading.mjs +2 -0
  116. package/dist/hooks.d.mts +3 -1
  117. package/dist/hooks.mjs +1 -1
  118. package/dist/pages.mjs +1 -1
  119. package/dist/service/generated/client.d.mts +12 -4
  120. package/dist/service/generated/client.mjs +1 -1
  121. package/dist/service/generated/tanstack.d.mts +14 -4
  122. package/dist/service/generated/tanstack.mjs +1 -1
  123. package/dist/service/register-by-verify-email-code.d.mts +2 -2
  124. package/dist/service/register-by-verify-email-code.mjs +1 -1
  125. package/dist/service.d.mts +4 -4
  126. package/dist/service.mjs +1 -1
  127. package/dist/types.d.mts +548 -57
  128. package/dist/ui.d.mts +2 -1
  129. package/dist/ui.mjs +1 -1
  130. package/dist/utils/device-id.d.mts +14 -0
  131. package/dist/utils/device-id.mjs +2 -0
  132. package/dist/utils/http.mjs +1 -1
  133. package/dist/utils/image-crop.mjs +1 -1
  134. package/dist/utils/schema/index.d.mts +1 -1
  135. package/dist/utils/schema/inspector.d.mts +43 -71
  136. package/dist/utils/schema/schema.d.mts +59 -53
  137. package/dist/utils/schema/schema.mjs +1 -1
  138. package/dist/utils/tools.mjs +1 -1
  139. package/dist/utils.d.mts +3 -2
  140. package/dist/utils.mjs +1 -1
  141. package/package.json +1 -1
  142. package/dist/components/common/image-crop/image-crop.mjs +0 -2
  143. package/dist/components/common/image-crop/show-image-crop.mjs +0 -2
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Image as t}from"../../../ui/image.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../../assets/icons/right_arrow.mjs";import a from"../../../../assets/images/marquee.mjs";import o from"./marquee.module.mjs";import{defaultMarqueePeriod as s}from"./schema.mjs";import{useEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{X as f}from"lucide-react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";const g=[],_=`marquee_list`;let v=null;function y(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function b(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function x(){if(v)return v;let e=localStorage.getItem(_);if(!e)return v={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),v=n,n}catch{return v={},{}}}function S(e){v=e,localStorage.setItem(_,JSON.stringify(e))}function C(e){return x()[e]??{}}function w(e,t){S({...x(),[e]:t})}function T(e,t){return b(e.closedAt,t)}function E(_){let v=h(`components.biz.business.marquee`),{marqueeKey:b,contents:x=g,click:S,close:E,displayStrategy:D,mode:O=`renderer`}=_,k=O===`editor`,A=e(),j=u(!1),[M,N]=d(k),[P,F]=d(k),[I,L]=d(!1),[R,z]=d(0);c(()=>{L(!0)},[]);let B=l(()=>{let e=D?.period??s,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[D?.period]),V=l(()=>(x??[]).map(e=>({...e,text:y(String(e?.text??``))})).filter(e=>!!e.text),[x]),H=b?.trim()??``;if(c(()=>{z(0)},[l(()=>V.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[V]),H]),c(()=>{k||H||j.current||process.env.NODE_ENV===`production`||(j.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[k,H]),c(()=>{if(I){if(k){N(!0),F(!0);return}if(!D?.rule||!B||V.length===0){N(!1),F(!0);return}if(!H){N(!1),F(!0);return}N(!T(C(H),D.rule)),F(!0)}},[D?.rule,k,I,B,V.length,H]),!k&&(!I||!P||!M||!B)||V.length===0)return null;let U=V[R%V.length],W=S?.enabled===!0,G=S?.link||U.link,K=W&&!!G,q=E?.enabled===!0;function J(){!H||!D?.rule||V.length===0||w(H,{...C(H),closedAt:Date.now()})}let Y=e=>{e.stopPropagation(),N(!1),J()};function X(e){if(typeof window>`u`){A.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}A.push(e)}function Z(){k||K&&G&&(N(!1),J(),X(G))}let Q=()=>{k||!M||V.length<=1||z(e=>(e+1)%V.length)},$=k?o[`marquee-item-paused`]:V.length>1?o[`marquee-item-once`]:o[`marquee-item-loop`];return p(n,{className:k?`px-3 py-2 w-full bg-bg1 pointer-events-none`:`px-3 py-2 w-full bg-bg1`,children:m(n,{className:`pl-[2px] pr-[12px] py-[2px] flex items-center w-full cursor-pointer relative rounded-[8px] overflow-hidden ${o[`marquee-shell`]}`,onClick:Z,children:[p(n,{className:`relative shrink-0 w-[36px] h-[36px] mr-[4px]`,children:p(t,{src:typeof a==`string`?a:a.src,alt:v(`noticeAlt`),fill:!0,className:`object-cover`,unoptimized:!0})}),p(n,{className:`flex-1 overflow-hidden relative h-[22px] ml-1`,children:p(n,{className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap ${$}`,onAnimationEnd:Q,children:p(r,{className:`inline-block text-[14px] text-[#f59e0b] leading-[22px] font-medium`,children:U.text})},`marquee-item-${R}`)}),m(n,{className:`flex items-center gap-[12px] shrink-0 ml-[4px]`,children:[K&&p(i,{className:`w-[16px] h-[16px] text-[#f59e0b]`}),q&&p(n,{className:`opacity-30 hover:opacity-100 transition-opacity`,onClick:Y,children:p(f,{className:`w-[12px] h-[12px] text-[#F59E0B]`})})]})]})})}export{E as MarqueeClient};
2
+ "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Image as t}from"../../../ui/image.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../../assets/icons/marquee-enter.mjs";import a from"../../../../assets/images/marquee.mjs";import o from"./marquee.module.mjs";import{defaultMarqueePeriod as s}from"./schema.mjs";import{useEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{X as f}from"lucide-react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";const g=[],_=`marquee_list`;let v=null;function y(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function b(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function x(){if(v)return v;let e=localStorage.getItem(_);if(!e)return v={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),v=n,n}catch{return v={},{}}}function S(e){v=e,localStorage.setItem(_,JSON.stringify(e))}function C(e){return x()[e]??{}}function w(e,t){S({...x(),[e]:t})}function T(e,t){return b(e.closedAt,t)}function E(_){let v=h(`components.biz.business.marquee`),{marqueeKey:b,contents:x=g,click:S,close:E,displayStrategy:D,mode:O=`renderer`}=_,k=O===`editor`,A=e(),j=u(!1),[M,N]=d(k),[P,F]=d(k),[I,L]=d(!1),[R,z]=d(0);c(()=>{L(!0)},[]);let B=l(()=>{let e=D?.period??s,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[D?.period]),V=l(()=>(x??[]).map(e=>({...e,text:y(String(e?.text??``))})).filter(e=>!!e.text),[x]),H=b?.trim()??``;if(c(()=>{z(0)},[l(()=>V.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[V]),H]),c(()=>{k||H||j.current||process.env.NODE_ENV===`production`||(j.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[k,H]),c(()=>{if(I){if(k){N(!0),F(!0);return}if(!D?.rule||!B||V.length===0){N(!1),F(!0);return}if(!H){N(!1),F(!0);return}N(!T(C(H),D.rule)),F(!0)}},[D?.rule,k,I,B,V.length,H]),!k&&(!I||!P||!M||!B)||V.length===0)return null;let U=V[R%V.length],W=S?.enabled===!0,G=S?.link||U.link,K=W&&!!G,q=E?.enabled===!0;function J(){!H||!D?.rule||V.length===0||w(H,{...C(H),closedAt:Date.now()})}let Y=e=>{e.stopPropagation(),N(!1),J()};function X(e){if(typeof window>`u`){A.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}A.push(e)}function Z(){k||K&&G&&(N(!1),J(),X(G))}let Q=()=>{k||!M||V.length<=1||z(e=>(e+1)%V.length)},$=k?o[`marquee-item-paused`]:V.length>1?o[`marquee-item-once`]:o[`marquee-item-loop`];return p(n,{className:k?`px-3 py-2 w-full bg-bg1 pointer-events-none`:`px-3 py-2 w-full bg-bg1`,children:m(n,{className:`pl-[2px] pr-[12px] py-[2px] flex items-center w-full cursor-pointer relative rounded-[8px] overflow-hidden ${o[`marquee-shell`]}`,onClick:Z,children:[p(n,{className:`relative shrink-0 w-[36px] h-[36px] mr-[4px]`,children:p(t,{src:typeof a==`string`?a:a.src,alt:v(`noticeAlt`),fill:!0,className:`object-cover`,unoptimized:!0})}),p(n,{className:`flex-1 overflow-hidden relative h-[22px] ml-1`,children:p(n,{className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap ${$}`,onAnimationEnd:Q,children:p(r,{className:`inline-block text-[14px] text-[#f59e0b] leading-[22px] font-medium`,children:U.text})},`marquee-item-${R}`)}),m(n,{className:`flex items-center gap-[12px] shrink-0 ml-[4px]`,children:[K&&p(i,{className:`h-[16px] w-[16px] shrink-0`}),q&&p(n,{className:`opacity-30 hover:opacity-100 transition-opacity`,onClick:Y,children:p(f,{className:`w-[12px] h-[12px] text-[#F59E0B]`})})]})]})})}export{E as MarqueeClient};
@@ -12,26 +12,27 @@ import * as zod_v4_core0 from "zod/v4/core";
12
12
  * 跑马灯物料定义
13
13
  */
14
14
  declare const marqueeMaterial: DefineMaterialOption<typeof MarqueeServer, typeof MarqueeClient, zod.ZodObject<{
15
- marqueeKey: zod.ZodString & SchemaHasDefaultValue;
16
- contents: zod.ZodArray<zod.ZodObject<{
17
- text: zod.ZodString & SchemaHasDefaultValue;
18
- link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
15
+ readonly marqueeKey: zod.ZodString & SchemaHasDefaultValue;
16
+ readonly contents: zod.ZodArray<zod.ZodObject<{
17
+ readonly text: zod.ZodString & SchemaHasDefaultValue;
18
+ readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
19
19
  }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
20
- click: zod.ZodObject<{
20
+ readonly click: zod.ZodObject<{
21
21
  readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
22
22
  readonly redirectType: zod.ZodOptional<zod.ZodType<"content" | "link" | "content_list", unknown, zod_v4_core0.$ZodTypeInternals<"content" | "link" | "content_list", unknown>>> & SchemaHasDefaultValue;
23
23
  readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
24
24
  }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
25
- close: zod.ZodObject<{
25
+ readonly close: zod.ZodObject<{
26
26
  readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
27
27
  }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
28
- displayStrategy: zod.ZodObject<{
28
+ readonly displayStrategy: zod.ZodObject<{
29
29
  readonly rule: zod.ZodType<"once" | "daily", unknown, zod_v4_core0.$ZodTypeInternals<"once" | "daily", unknown>> & SchemaHasDefaultValue;
30
30
  readonly period: zod.ZodOptional<zod.ZodObject<{
31
31
  readonly start: zod.ZodString;
32
32
  readonly end: zod.ZodString;
33
33
  }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
34
34
  }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
35
+ } & {
35
36
  mode: zod.ZodOptional<zod.ZodEnum<{
36
37
  renderer: "renderer";
37
38
  editor: "editor";
@@ -1,7 +1,8 @@
1
1
 
2
2
  import { SchemaHasDefaultValue } from "../../../../utils/schema/schema.mjs";
3
3
  import "../../../../utils.mjs";
4
- import { z } from "zod";
4
+ import * as zod from "zod";
5
+ import * as zod_v4_core0 from "zod/v4/core";
5
6
 
6
7
  //#region components/biz/business/marquee/schema.d.ts
7
8
  declare function getDefaultMarqueePeriod(): {
@@ -15,31 +16,32 @@ declare const defaultMarqueePeriod: {
15
16
  /**
16
17
  * 跑马灯物料属性定义
17
18
  */
18
- declare const marqueeInspectorPropsSchema: z.ZodObject<{
19
- marqueeKey: z.ZodString & SchemaHasDefaultValue;
20
- contents: z.ZodArray<z.ZodObject<{
21
- text: z.ZodString & SchemaHasDefaultValue;
22
- link: z.ZodOptional<z.ZodString> & SchemaHasDefaultValue;
23
- }, z.core.$strip>> & SchemaHasDefaultValue;
24
- click: z.ZodObject<{
25
- readonly enabled: z.ZodBoolean & SchemaHasDefaultValue;
26
- readonly redirectType: z.ZodOptional<z.ZodType<"content" | "link" | "content_list", unknown, z.core.$ZodTypeInternals<"content" | "link" | "content_list", unknown>>> & SchemaHasDefaultValue;
27
- readonly link: z.ZodOptional<z.ZodString> & SchemaHasDefaultValue;
28
- }, z.core.$strip> & SchemaHasDefaultValue;
29
- close: z.ZodObject<{
30
- readonly enabled: z.ZodBoolean & SchemaHasDefaultValue;
31
- }, z.core.$strip> & SchemaHasDefaultValue;
32
- displayStrategy: z.ZodObject<{
33
- readonly rule: z.ZodType<"once" | "daily", unknown, z.core.$ZodTypeInternals<"once" | "daily", unknown>> & SchemaHasDefaultValue;
34
- readonly period: z.ZodOptional<z.ZodObject<{
35
- readonly start: z.ZodString;
36
- readonly end: z.ZodString;
37
- }, z.core.$strip>> & SchemaHasDefaultValue;
38
- }, z.core.$strip> & SchemaHasDefaultValue;
39
- mode: z.ZodOptional<z.ZodEnum<{
19
+ declare const marqueeInspectorPropsSchema: zod.ZodObject<{
20
+ readonly marqueeKey: zod.ZodString & SchemaHasDefaultValue;
21
+ readonly contents: zod.ZodArray<zod.ZodObject<{
22
+ readonly text: zod.ZodString & SchemaHasDefaultValue;
23
+ readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
24
+ }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
25
+ readonly click: zod.ZodObject<{
26
+ readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
27
+ readonly redirectType: zod.ZodOptional<zod.ZodType<"content" | "link" | "content_list", unknown, zod_v4_core0.$ZodTypeInternals<"content" | "link" | "content_list", unknown>>> & SchemaHasDefaultValue;
28
+ readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
29
+ }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
30
+ readonly close: zod.ZodObject<{
31
+ readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
32
+ }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
33
+ readonly displayStrategy: zod.ZodObject<{
34
+ readonly rule: zod.ZodType<"once" | "daily", unknown, zod_v4_core0.$ZodTypeInternals<"once" | "daily", unknown>> & SchemaHasDefaultValue;
35
+ readonly period: zod.ZodOptional<zod.ZodObject<{
36
+ readonly start: zod.ZodString;
37
+ readonly end: zod.ZodString;
38
+ }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
39
+ }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
40
+ } & {
41
+ mode: zod.ZodOptional<zod.ZodEnum<{
40
42
  renderer: "renderer";
41
43
  editor: "editor";
42
44
  }>>;
43
- }, z.core.$strip>;
45
+ }, zod_v4_core0.$strip>;
44
46
  //#endregion
45
47
  export { defaultMarqueePeriod, getDefaultMarqueePeriod, marqueeInspectorPropsSchema };
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineObjectPropSchema as n,defineSelectEnumPropSchema as r,defineSwitchPropSchema as i,defineTextPropSchema as a,defineTimeRangePropSchema as o}from"../../../../utils/schema/schema.mjs";import{z as s}from"zod";import c from"dayjs";function l(){return{start:c().startOf(`day`).format(`YYYY-MM-DD HH:mm:ss`),end:c().endOf(`day`).format(`YYYY-MM-DD HH:mm:ss`)}}const u=l(),d=s.object({text:a({label:`文本内容`,defaultValue:``}),link:a({label:`跳转链接`,defaultValue:``,required:!1})}),f=t({marqueeKey:a({label:`状态唯一标识`,defaultValue:``,required:!0,description:`外部传入唯一 marqueeKey,用于本地展示状态持久化`}),contents:e(d,{label:`消息内容`,defaultValue:[{text:`请输入跑马灯内容`}],description:`支持多条消息循环播放`}),click:n({enabled:i({label:`支持点击`,defaultValue:!0}),redirectType:r([`content_list`,`content`,`link`],{label:`跳转指向`,defaultValue:`link`,required:!1}),link:a({label:`跳转链接`,defaultValue:``,required:!1})},{label:`点击配置`,defaultValue:{enabled:!0,redirectType:`link`,link:``}}),close:n({enabled:i({label:`支持关闭`,defaultValue:!0})},{label:`关闭配置`,defaultValue:{enabled:!0}}),displayStrategy:n({rule:r([`once`,`daily`],{label:`展示规则`,defaultValue:`once`,description:`「只展示1次」即当前消息只展示1次;「每天展示1次」即当前消息每天展示1次,0点刷新`}),period:o({label:`展示周期`,defaultValue:u,required:!1})},{label:`展示策略`,defaultValue:{rule:`once`,period:u}})});export{u as defaultMarqueePeriod,l as getDefaultMarqueePeriod,f as marqueeInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e}from"../../../../utils/schema/schema.mjs";import t from"dayjs";function n(){return{start:t().startOf(`day`).format(`YYYY-MM-DD HH:mm:ss`),end:t().endOf(`day`).format(`YYYY-MM-DD HH:mm:ss`)}}const r=n(),i=e(e=>({marqueeKey:e.string(``,{label:`状态唯一标识`,required:!0,description:`外部传入唯一 marqueeKey,用于本地展示状态持久化`}),contents:e.array(e.object({text:e.string(``,{label:`文本内容`}),link:e.string(``,{label:`跳转链接`,required:!1})}),{label:`消息内容`,defaultValue:[{text:`请输入跑马灯内容`}],description:`支持多条消息循环播放`}),click:e.object({enabled:e.boolean(!0,{fieldType:`switch`,label:`支持点击`}),redirectType:e.enum([`content_list`,`content`,`link`],`link`,{label:`跳转指向`,required:!1}),link:e.string(``,{label:`跳转链接`,required:!1})},{label:`点击配置`,defaultValue:{enabled:!0,redirectType:`link`,link:``}}),close:e.object({enabled:e.boolean(!0,{fieldType:`switch`,label:`支持关闭`})},{label:`关闭配置`,defaultValue:{enabled:!0}}),displayStrategy:e.object({rule:e.enum([`once`,`daily`],`once`,{label:`展示规则`,description:`「只展示1次」即当前消息只展示1次;「每天展示1次」即当前消息每天展示1次,0点刷新`}),period:e.timeRange(r,{label:`展示周期`,required:!1})},{label:`展示策略`,defaultValue:{rule:`once`,period:r}})}));export{r as defaultMarqueePeriod,n as getDefaultMarqueePeriod,i as marqueeInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as r,gUserViewUserInfo as i}from"../../../../../service/generated/client.mjs";import{useRouter as a}from"../../../../../utils/use-compatible-router.mjs";import{Box as o}from"../../../../ui/box.mjs";import{Skeleton as s}from"../../../../ui/skeleton.mjs";import{Text as c}from"../../../../ui/text.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{useRequest as u}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as d}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as f}from"../../../../common/icons/setting.mjs";import{UserProfileAvatar as p}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as m}from"./user-profile-cover-background.mjs";import{useEffect as ee,useMemo as te,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";import y from"next/link";const b=n.persist,x=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,S=`/images/mine/img_mine_head_bg.png`;function C({showBackButton:n,isMine:r,enableCustomBackground:i,className:a}){return _(o,{className:e(`flex flex-col relative`,a),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!n}),disabled:!0,children:g(d,{className:`w-4 h-4`})}),g(o,{className:e({invisible:!r}),children:g(f,{})})]}),g(o,{className:i?`h-33.75`:`h-24`,children:g(s,{className:`h-full w-full rounded-none`})}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(s,{className:`absolute bottom-3 left-0 h-22 w-22 rounded-full`}),g(o,{className:`py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[g(s,{className:`h-7 w-[132px]`}),g(s,{className:`h-10 w-[104px] rounded-full shrink-0`})]}),_(o,{className:`min-h-11 pt-1 pb-0 flex flex-col gap-2`,children:[g(s,{className:`h-4 w-[76%]`}),g(s,{className:`h-4 w-[58%]`})]})]})]})}function w({id:s,enableCustomBackground:w=!0,showBackButton:T=!0,requireLogin:E=!1,isEditorPreview:D=!1,className:O,mode:k=`renderer`}){let A=v(`components.pages.profile`),j=D||k===`editor`,M=!j,N=a(),{open:ne}=l(),{isLogin:P,userId:F,token:re}=n(),[ie,I]=h(!1);ee(()=>{if(!b){I(!0);return}I(b.hasHydrated());let e=b.onHydrate(()=>{I(!1)}),t=b.onFinishHydration(()=>{I(!0)});return()=>{e(),t()}},[]);let L=j?!1:P&&!!F&&!!re,R=j?``:F,z=R,B=s==null||!!s&&!!z&&s===z,V=B?[`user-profile`,`mine`]:[`user-profile`,`profile`,s],{data:H,isLoading:U}=u(j?[`editor-preview`,...V]:V,()=>s?i({target_user_id:s,user_id:R||s}):r({user_id:s||R||``}),{staleTime:0,enabled:M&&(!!s||!!R)}),W=te(()=>{let e=H?H.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${s??``}`,avatar:e.avatar||x,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||S}:{}},[s,H]),G=j||E&&B&&!L,K=B&&L&&!G,q=!L,J=w&&K,Y=w&&q,ae={name:A(`client.welcomeToPlanet`),description:A(`client.exploreAdventures`),avatar:x,followingCnt:0,followersCnt:0,likeCnt:0,background:S};function X(){ne()}function oe(){N.back()}let se=G?g(t,{className:`rounded-full`,size:`lg`,onClick:X,children:A(`client.loginNow`)}):B?g(y,{href:`/edit`,children:g(t,{variant:`outline`,className:`rounded-full`,children:A(`client.editProfile`)})}):null,Z=G?ae:W,Q=Z.name||``,$=Z.description||Z.signature||``,ce=Z.avatar||``;return M&&U&&!H?g(C,{showBackButton:T,isMine:B,enableCustomBackground:w,className:O}):_(o,{className:e(`flex flex-col relative`,O),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,onClick:oe,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!T}),children:g(d,{className:`w-4 h-4`})}),g(y,{href:`/settings`,className:e({invisible:!B}),children:g(f,{})})]}),g(m,{isMine:J,enableCustomBackground:w,src:Z.background,onUnauthorizedClick:Y?X:void 0}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(p,{isMine:K,src:ce,alt:Q||`avatar`,onUnauthorizedClick:q?X:void 0}),g(o,{className:`flex divide-x divide-text1/5 py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[P&&B?g(y,{href:`/edit`,children:g(c,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q})}):g(c,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q}),se]}),$&&g(o,{className:`min-h-11 pt-1 pb-0`,children:g(c,{as:`p`,className:`text-sm line-clamp-2 break-all text-text1/66`,children:$})})]})]})}export{w as UserProfileHeaderClient};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as r,gUserViewUserInfo as i}from"../../../../../service/generated/client.mjs";import{useRouter as a}from"../../../../../utils/use-compatible-router.mjs";import{Box as o}from"../../../../ui/box.mjs";import{Text as s}from"../../../../ui/text.mjs";import{Skeleton as c}from"../../../../ui/skeleton.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{useRequest as u}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as d}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as f}from"../../../../common/icons/setting.mjs";import{UserProfileAvatar as p}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as m}from"./user-profile-cover-background.mjs";import{useEffect as ee,useMemo as te,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";import y from"next/link";const b=n.persist,x=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,S=`/images/mine/img_mine_head_bg.png`;function C({showBackButton:n,isMine:r,enableCustomBackground:i,className:a}){return _(o,{className:e(`flex flex-col relative`,a),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!n}),disabled:!0,children:g(d,{className:`w-4 h-4`})}),g(o,{className:e({invisible:!r}),children:g(f,{})})]}),g(o,{className:i?`h-33.75`:`h-24`,children:g(c,{className:`h-full w-full rounded-none`})}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(c,{className:`absolute bottom-3 left-0 h-22 w-22 rounded-full`}),g(o,{className:`py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[g(c,{className:`h-7 w-[132px]`}),g(c,{className:`h-10 w-[104px] rounded-full shrink-0`})]}),_(o,{className:`min-h-11 pt-1 pb-0 flex flex-col gap-2`,children:[g(c,{className:`h-4 w-[76%]`}),g(c,{className:`h-4 w-[58%]`})]})]})]})}function w({id:c,enableCustomBackground:w=!0,showBackButton:T=!0,requireLogin:E=!1,isEditorPreview:D=!1,className:O,mode:k=`renderer`}){let A=v(`components.pages.profile`),j=D||k===`editor`,M=!j,N=a(),{open:ne}=l(),{isLogin:P,userId:F,token:re}=n(),[ie,I]=h(!1);ee(()=>{if(!b){I(!0);return}I(b.hasHydrated());let e=b.onHydrate(()=>{I(!1)}),t=b.onFinishHydration(()=>{I(!0)});return()=>{e(),t()}},[]);let L=j?!1:P&&!!F&&!!re,R=j?``:F,z=R,B=c==null||!!c&&!!z&&c===z,V=B?[`user-profile`,`mine`]:[`user-profile`,`profile`,c],{data:H,isLoading:U}=u(j?[`editor-preview`,...V]:V,()=>c?i({target_user_id:c,user_id:R||c}):r({user_id:c||R||``}),{staleTime:0,enabled:M&&(!!c||!!R)}),W=te(()=>{let e=H?H.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${c??``}`,avatar:e.avatar||x,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||S}:{}},[c,H]),G=j||E&&B&&!L,K=B&&L&&!G,q=!L,J=w&&K,Y=w&&q,ae={name:A(`client.welcomeToPlanet`),description:A(`client.exploreAdventures`),avatar:x,followingCnt:0,followersCnt:0,likeCnt:0,background:S};function X(){ne()}function oe(){N.back()}let se=G?g(t,{className:`rounded-full`,size:`lg`,onClick:X,children:A(`client.loginNow`)}):B?g(y,{href:`/edit`,children:g(t,{variant:`outline`,className:`rounded-full`,children:A(`client.editProfile`)})}):null,Z=G?ae:W,Q=Z.name||``,$=Z.description||Z.signature||``,ce=Z.avatar||``;return M&&U&&!H?g(C,{showBackButton:T,isMine:B,enableCustomBackground:w,className:O}):_(o,{className:e(`flex flex-col relative`,O),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,onClick:oe,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!T}),children:g(d,{className:`w-4 h-4`})}),g(y,{href:`/settings`,className:e({invisible:!B}),children:g(f,{})})]}),g(m,{isMine:J,enableCustomBackground:w,src:Z.background,onUnauthorizedClick:Y?X:void 0}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(p,{isMine:K,src:ce,alt:Q||`avatar`,onUnauthorizedClick:q?X:void 0}),g(o,{className:`flex divide-x divide-text1/5 py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[P&&B?g(y,{href:`/edit`,children:g(s,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q})}):g(s,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q}),se]}),$&&g(o,{className:`min-h-11 pt-1 pb-0`,children:g(s,{as:`p`,className:`text-sm line-clamp-2 break-all text-text1/66`,children:$})})]})]})}export{w as UserProfileHeaderClient};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e({}),r=t(n);export{r as profileHeaderInspectorDefaultProps,n as profileHeaderInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e(e=>({})),r=t(n);export{r as profileHeaderInspectorDefaultProps,n as profileHeaderInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{pUserEditUserInfo as r}from"../../../../../service/generated/client.mjs";import{uploadFile as i}from"../../../../../utils/upload-file.mjs";import{Avatar as a,AvatarFallback as o,AvatarImage as s}from"../../../../ui/avatar.mjs";import{Box as c}from"../../../../ui/box.mjs";import{Input as l}from"../../../../ui/input.mjs";import{Dialog as u,DialogContent as d}from"../../../../ui/dialog.mjs";import{Text as f}from"../../../../ui/text.mjs";import{useDeleteRequest as p}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as m}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{useRef as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{toast as b}from"sonner";import{useTranslations as x}from"next-intl";const S=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,C=[`image/jpeg`,`image/png`];function w(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return C.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function T({isMine:C,src:T,alt:E,onUnauthorizedClick:D}){let O=x(`components.pages.profile`),k=h(null),{userId:A,setUserInfo:j,userInfo:M}=n(),N=p(),[P,F]=g(!1),[I,L]=g(!1),[R,z]=g(``),[B,V]=g(!1);function H(){if(!B){if(C){F(!0);return}D?.()}}function U(){R&&(URL.revokeObjectURL(R),z(``))}function W(){F(!1)}function G(){B||k.current?.click()}function K(e){let t=e.target.files?.[0];if(t){if(!w(t)){b.error(O(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){b.error(O(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}z(URL.createObjectURL(t)),L(!0),e.target&&(e.target.value=``)}}async function q(e){if(!A){b.error(O(`client.loginRequiredForUpload`));return}try{V(!0);let t=await i(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1);await r({user_id:String(A),avatar:t.objectKey}),j({...M,avatar:t.objectKey}),N([`user-profile`,`mine`]),N([`user-edit-info`,String(A)]),F(!1),L(!1),b.success(O(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),b.error(O(`client.uploadFailed`))}finally{U(),V(!1)}}function J(){L(!1),U()}return y(_,{children:[C||D?v(t,{variant:`ghost`,size:`icon`,className:`!absolute bottom-3 left-0 h-22 w-22 rounded-full p-0 hover:bg-transparent`,onClick:H,"aria-label":`打开头像预览`,children:y(a,{className:`w-22 h-22`,children:[v(s,{src:T||S,alt:E||`avatar`}),v(o,{})]})}):y(a,{className:`!absolute bottom-3 left-0 w-22 h-22`,children:[v(s,{src:T||S,alt:E||`avatar`}),v(o,{})]}),v(u,{open:P,onOpenChange:W,children:v(d,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:y(c,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[v(t,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-white hover:bg-transparent hover:text-white/80`,onClick:W,"aria-label":`关闭头像预览`,children:v(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:v(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),y(a,{className:`w-50 h-50`,children:[v(s,{src:T||S,alt:E||`avatar`}),v(o,{})]}),y(t,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-white/10 px-3 py-3 transition-colors hover:bg-white/20`,`active:scale-95`),onClick:G,disabled:B,children:[v(f,{as:`span`,className:`text-base font-medium text-white`,children:B?`上传中...`:`更换头像`}),y(`svg`,{className:`w-6 h-6 text-white`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[v(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),v(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),v(l,{ref:k,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:K}),v(m,{open:I,onClose:J,imageSrc:R,onConfirm:q})]})}export{T as UserProfileAvatar};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as r,pUserEditUserInfo as i}from"../../../../../service/generated/client.mjs";import{uploadFile as a}from"../../../../../utils/upload-file.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as h}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{useRef as g,useState as _}from"react";import{Fragment as v,jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";const C=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,w=[`image/jpeg`,`image/png`];function T(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return w.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function E({isMine:w,src:E,alt:D,onUnauthorizedClick:O}){let k=S(`components.pages.profile`),A=g(null),{userId:j,setUserInfo:M,userInfo:N}=n(),P=m(),[F,I]=_(!1),[L,R]=_(!1),[z,B]=_(``),[V,H]=_(!1);function U(){if(!V){if(w){I(!0);return}O?.()}}function W(){z&&(URL.revokeObjectURL(z),B(``))}function G(){I(!1)}function K(){V||A.current?.click()}async function q(e){let t=(await r({user_id:String(j)})).data;return{user_id:String(j),nick_name:t?.nick_name??N?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??N?.signature??void 0,gender:t?.gender??N?.gender??void 0}}function J(e){let t=e.target.files?.[0];if(t){if(!T(t)){x.error(k(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){x.error(k(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}B(URL.createObjectURL(t)),R(!0),e.target&&(e.target.value=``)}}async function Y(e){if(!j){x.error(k(`client.loginRequiredForUpload`));return}try{H(!0);let t=await a(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await q(t.objectKey);await i(n),M({...N,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),P([`user-profile`,`mine`]),P([`user-profile`,`profile`,String(j)]),P([`user-edit-info`,String(j)]),I(!1),R(!1),x.success(k(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),x.error(k(`client.uploadFailed`))}finally{W(),H(!1)}}function X(){R(!1),W()}return b(v,{children:[w||O?y(t,{variant:`ghost`,size:`icon`,className:`!absolute bottom-3 left-0 h-22 w-22 rounded-full p-0 hover:bg-transparent`,onClick:U,"aria-label":`打开头像预览`,children:b(o,{className:`w-22 h-22`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]})}):b(o,{className:`!absolute bottom-3 left-0 w-22 h-22`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),y(d,{open:F,onOpenChange:G,children:y(f,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:b(l,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[y(t,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-white hover:bg-transparent hover:text-white/80`,onClick:G,"aria-label":`关闭头像预览`,children:y(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:y(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),b(o,{className:`w-50 h-50`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),b(t,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-white/10 px-3 py-3 transition-colors hover:bg-white/20`,`active:scale-95`),onClick:K,disabled:V,children:[y(p,{as:`span`,className:`text-base font-medium text-white`,children:V?`上传中...`:`更换头像`}),b(`svg`,{className:`w-6 h-6 text-white`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),y(u,{ref:A,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:J}),y(h,{open:L,onClose:X,imageSrc:z,onConfirm:Y})]})}export{E as UserProfileAvatar};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pUserUploadUserBgImage as t}from"../../../../../service/generated/client.mjs";import{uploadFile as n}from"../../../../../utils/upload-file.mjs";import{Image as r}from"../../../../ui/image.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Input as a}from"../../../../ui/input.mjs";import{useDeleteRequest as o}from"../../../../../hooks/query/use-query.mjs";import{BackgroundPreviewModal as s}from"../../../../common/background-preview-modal/background-preview-modal.mjs";import{showImageCrop as c}from"../../../../common/image-crop/show-image-crop.mjs";import{useEffect as l,useRef as u,useState as d}from"react";import{Fragment as f,jsx as p,jsxs as m}from"react/jsx-runtime";import{toast as h}from"sonner";import{useTranslations as g}from"next-intl";const _=[`image/jpeg`,`image/png`];function v(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return _.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function y({isMine:_,enableCustomBackground:y=!0,src:b,onUnauthorizedClick:x}){let S=g(`components.pages.profile`),C=`/images/mine/img_mine_head_bg.png`,w=u(null),{userId:T,setUserInfo:E,userInfo:D}=e(),O=o(),[k,A]=d(!1),[j,M]=d(!1),N=y&&(!!_||typeof x==`function`);l(()=>{y||M(!1)},[y]);let P=()=>{if(y){if(_){k||M(!0);return}x?.()}},F=()=>{M(!1)};function I(){k||w.current?.click()}async function L(e){let r=e.target.files?.[0];if(e.target&&(e.target.value=``),r)try{if(!v(r)){h.error(S(`client.imageTypeInvalid`));return}if(r.size>5242880){h.error(S(`client.imageTooLarge`));return}A(!0);let e=await n(await c(r,{aspectRatio:430/256,cropShape:`rect`,quality:.92,maxWidth:1920,maxHeight:1920}),1);await t({user_id:String(T),bg_image:e.objectKey}),E({...D,bg_image:e.objectKey}),O([`user-profile`,`mine`]),M(!1),h.success(S(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传背景图失败`,e),e instanceof Error&&e.message!==`用户取消`&&h.error(S(`client.uploadFailed`))}finally{A(!1)}}return m(f,{children:[p(i,{className:y?`h-33.75`:`h-24`,children:y?p(i,{className:`relative h-full w-full`,onClick:N?P:void 0,children:p(r,{alt:`cover background`,fill:!0,objectFit:`cover`,className:`pointer-events-none`,src:b||C})}):p(i,{className:`h-full w-full bg-bg1`})}),y&&m(f,{children:[p(s,{open:j,onClose:F,bgUrl:b||C,onUpload:I}),p(a,{ref:w,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:L})]})]})}export{y as UserProfileCoverBackground};
2
+ "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pUserUploadUserBgImage as t}from"../../../../../service/generated/client.mjs";import{uploadFile as n}from"../../../../../utils/upload-file.mjs";import{Image as r}from"../../../../ui/image.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Input as a}from"../../../../ui/input.mjs";import{useDeleteRequest as o}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as s}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{BackgroundPreviewModal as c}from"../../../../common/background-preview-modal/background-preview-modal.mjs";import{useCallback as l,useEffect as u,useRef as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";import{toast as g}from"sonner";import{useTranslations as _}from"next-intl";const v=[`image/jpeg`,`image/png`];function y(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return v.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function b({isMine:v,enableCustomBackground:b=!0,src:x,onUnauthorizedClick:S}){let C=_(`components.pages.profile`),w=`/images/mine/img_mine_head_bg.png`,T=d(null),{userId:E,setUserInfo:D,userInfo:O}=e(),k=o(),[A,j]=f(!1),[M,N]=f(!1),[P,F]=f(!1),[I,L]=f(``),R=b&&(!!v||typeof S==`function`),z=l(()=>{I&&(URL.revokeObjectURL(I),L(``))},[I]),B=()=>{if(b){if(v){A||N(!0);return}S?.()}},V=()=>{N(!1)};function H(){A||T.current?.click()}async function U(e){let t=e.target.files?.[0];if(e.target&&(e.target.value=``),t)try{if(!y(t)){g.error(C(`client.imageTypeInvalid`));return}if(t.size>5242880){g.error(C(`client.imageTooLarge`));return}z(),L(URL.createObjectURL(t)),N(!1),F(!0)}catch(e){console.error(`上传背景图失败`,e),g.error(C(`client.uploadFailed`))}}let W=l(()=>{F(!1),z()},[z]);u(()=>{b||(N(!1),F(!1),z())},[z,b]);async function G(e){if(!E){g.error(C(`client.loginRequiredForUpload`));return}try{j(!0);let r=await n(new File([e],`background.jpg`,{type:`image/jpeg`}),1);await t({user_id:String(E),bg_image:r.objectKey}),D({...O,bg_image:r.objectKey}),k([`user-profile`,`mine`]),N(!1),F(!1),g.success(C(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传背景图失败`,e),g.error(C(`client.uploadFailed`))}finally{z(),j(!1)}}return h(p,{children:[m(i,{className:b?`h-33.75`:`h-24`,children:b?m(i,{className:`relative h-full w-full`,onClick:R?B:void 0,children:m(r,{alt:`cover background`,fill:!0,objectFit:`cover`,className:`pointer-events-none`,src:x||w})}):m(i,{className:`h-full w-full bg-bg1`})}),b&&h(p,{children:[m(c,{open:M,onClose:V,bgUrl:x||w,onUpload:H}),m(a,{ref:T,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:U}),m(s,{open:P,onClose:W,imageSrc:I,onConfirm:G,cropShape:`rect`,aspectRatio:430/256})]})]})}export{b as UserProfileCoverBackground};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e({}),r=t(n);export{r as profileMainInspectorDefaultProps,n as profileMainInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e(e=>({})),r=t(n);export{r as profileMainInspectorDefaultProps,n as profileMainInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{Box as r}from"../../../../ui/box.mjs";import{EmptyState as i}from"../../../../ui/empty.mjs";import{Tabs as a,TabsList as o,TabsTrigger as s}from"../../../../ui/tabs.mjs";import{Text as c}from"../../../../ui/text.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{profileMainMineTabOptions as u,profileMainProfileTabOptions as d}from"./variants.mjs";import{useEffect as f,useMemo as p,useRef as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";import{parseAsString as v,useQueryState as y}from"nuqs";function b(e){return e?[...u]:[...d]}function x(e,t){let n=b(t);return n.includes(e)?e:n[0]}function S(e){let t=window.getComputedStyle(e);return/auto|scroll|overlay/.test(t.overflowY)}function C(e){if(typeof window>`u`)return null;let t=e?.parentElement??null;for(;t;){if(S(t))return t;t=t.parentElement}return null}function w(e){return typeof window>`u`?0:e?e.scrollTop:window.scrollY||window.pageYOffset||0}function T(e,t){if(!(typeof window>`u`)){if(e){e.scrollTo({top:t});return}window.scrollTo({top:t,left:0})}}function E({profileId:u,currentUserId:d,isMine:S,renderMode:E,className:D,children:O}){let k=_(`components.pages.profile`),A=m(null),j=l(e=>e.open),M=n(e=>e.userId),N=b(S),[P,F]=y(`tab`,v.withDefault(`collect`)),I=p(()=>x(P,S),[S,P]),L=S?d||M||``:u,R=p(()=>`profile-scroll:${L||(S?`mine`:`guest`)}:${I}`,[S,I,L]);f(()=>{P!==I&&F(I,{shallow:!1})},[I,F,P]),f(()=>{if(typeof window>`u`)return;let e=C(A.current),t=window.sessionStorage.getItem(R),n=t?Number(t):0;Number.isFinite(n)&&n>0&&requestAnimationFrame(()=>{T(e,n)});let r=!1,i=()=>{r||(r=!0,requestAnimationFrame(()=>{window.sessionStorage.setItem(R,String(w(e))),r=!1}))};return e?(e.addEventListener(`scroll`,i,{passive:!0}),()=>{e.removeEventListener(`scroll`,i)}):(window.addEventListener(`scroll`,i,{passive:!0}),()=>{window.removeEventListener(`scroll`,i)})},[R]);let z={collect:k(`client.collect`),like:k(`client.like`),history:k(`client.history`)},B=O;return E===`login-required`?B=g(r,{className:`flex gap-4 flex-col items-center justify-center py-10 text-center`,children:[h(c,{className:`text-base text-text1`,children:k(`client.loginToView`)}),h(t,{size:`lg`,variant:`secondary`,onClick:j,children:k(`client.loginNow`)})]}):E===`privacy-collect`?B=h(i,{type:`no-content`,text:k(`client.collectionNotPublic`)}):E===`privacy-like`&&(B=h(i,{type:`no-content`,text:k(`client.likeNotPublic`)})),g(r,{ref:A,className:e(D),children:[h(r,{className:`border-b bg-bg1 sticky z-10 top-0 border-text1/5 h-10`,children:h(a,{value:I,onValueChange:e=>{F(e,{shallow:!1})},className:`w-fit`,children:h(o,{variant:`default`,className:`inline-flex h-9`,children:N.map(e=>h(s,{value:e,className:`p-2.5 !text-base !w-fit data-active:!text-lg data-active:font-bold`,children:z[e]},e))})})}),h(r,{className:`p-2`,children:B})]})}export{E as UserProfileMainShell};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{Box as r}from"../../../../ui/box.mjs";import{EmptyState as i}from"../../../../ui/empty.mjs";import{Text as a}from"../../../../ui/text.mjs";import{Tabs as o,TabsList as s,TabsTrigger as c}from"../../../../ui/tabs.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{profileMainMineTabOptions as u,profileMainProfileTabOptions as d}from"./variants.mjs";import{useEffect as f,useMemo as p,useRef as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";import{parseAsString as v,useQueryState as y}from"nuqs";function b(e){return e?[...u]:[...d]}function x(e,t){let n=b(t);return n.includes(e)?e:n[0]}function S(e){let t=window.getComputedStyle(e);return/auto|scroll|overlay/.test(t.overflowY)}function C(e){if(typeof window>`u`)return null;let t=e?.parentElement??null;for(;t;){if(S(t))return t;t=t.parentElement}return null}function w(e){return typeof window>`u`?0:e?e.scrollTop:window.scrollY||window.pageYOffset||0}function T(e,t){if(!(typeof window>`u`)){if(e){e.scrollTo({top:t});return}window.scrollTo({top:t,left:0})}}function E({profileId:u,currentUserId:d,isMine:S,renderMode:E,className:D,children:O}){let k=_(`components.pages.profile`),A=m(null),j=l(e=>e.open),M=n(e=>e.userId),N=b(S),[P,F]=y(`tab`,v.withDefault(`collect`)),I=p(()=>x(P,S),[S,P]),L=S?d||M||``:u,R=p(()=>`profile-scroll:${L||(S?`mine`:`guest`)}:${I}`,[S,I,L]);f(()=>{P!==I&&F(I,{shallow:!1})},[I,F,P]),f(()=>{if(typeof window>`u`)return;let e=C(A.current),t=window.sessionStorage.getItem(R),n=t?Number(t):0;Number.isFinite(n)&&n>0&&requestAnimationFrame(()=>{T(e,n)});let r=!1,i=()=>{r||(r=!0,requestAnimationFrame(()=>{window.sessionStorage.setItem(R,String(w(e))),r=!1}))};return e?(e.addEventListener(`scroll`,i,{passive:!0}),()=>{e.removeEventListener(`scroll`,i)}):(window.addEventListener(`scroll`,i,{passive:!0}),()=>{window.removeEventListener(`scroll`,i)})},[R]);let z={collect:k(`client.collect`),like:k(`client.like`),history:k(`client.history`)},B=O;return E===`login-required`?B=g(r,{className:`flex gap-4 flex-col items-center justify-center py-10 text-center`,children:[h(a,{className:`text-base text-text1`,children:k(`client.loginToView`)}),h(t,{size:`lg`,variant:`secondary`,onClick:j,children:k(`client.loginNow`)})]}):E===`privacy-collect`?B=h(i,{type:`no-content`,text:k(`client.collectionNotPublic`)}):E===`privacy-like`&&(B=h(i,{type:`no-content`,text:k(`client.likeNotPublic`)})),g(r,{ref:A,className:e(D),children:[h(r,{className:`border-b bg-bg1 sticky z-10 top-0 border-text1/5 h-10`,children:h(o,{value:I,onValueChange:e=>{F(e,{shallow:!1})},className:`w-fit`,children:h(s,{variant:`default`,className:`inline-flex h-9`,children:N.map(e=>h(c,{value:e,className:`p-2.5 !text-base !w-fit data-active:!text-lg data-active:font-bold`,children:z[e]},e))})})}),h(r,{className:`p-2`,children:B})]})}export{E as UserProfileMainShell};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Button as e}from"../../../../../../ui/button.mjs";import{useUserStore as t}from"../../../../../../../store/modules/user-store.mjs";import{gCommunityGetSubscribedCollections as n,gCommunityGetUserCollections as r,gInteractionListCollects as i,pInteractionBatchDeleteCollects as a}from"../../../../../../../service/generated/client.mjs";import{Box as o}from"../../../../../../ui/box.mjs";import{Checkbox as ee}from"../../../../../../ui/checkbox.mjs";import{Tabs as te,TabsList as ne,TabsTrigger as s}from"../../../../../../ui/tabs.mjs";import{Text as re}from"../../../../../../ui/text.mjs";import{useMutation as ie,usePaginated as c,useUpdateRequest as ae}from"../../../../../../../hooks/query/use-query.mjs";import{DeleteConfirmDialog as oe}from"../../../../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{CollectionList as se}from"../../../../../../common/list/collection-list/collection-list.mjs";import{PostList as ce}from"../../../../../../common/list/post-list/post-list.mjs";import{VideoList as le}from"../../../../../../common/list/video-list/video-list.mjs";import{useEffect as l,useMemo as u,useState as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{toast as m}from"sonner";import{useTranslations as h}from"next-intl";import g from"dayjs";import ue from"next/link";import{parseAsString as _,useQueryState as v}from"nuqs";const y={video:1,post:2};function de(e,t){if(!e)return e;let n=0,r=e.pages.map(e=>({page:e,filteredList:(e.data?.list??w).filter(e=>{let r=e?.id??``,i=t.has(r);return i&&(n+=1),!i})}));return{...e,pages:r.map(({page:e,filteredList:t})=>{if(!e.data)return e;let r=typeof e.data.total==`number`?Math.max(0,e.data.total-n):e.data.total;return{...e,data:{...e.data,list:t,total:r}}})}}function b(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function fe(e,t){let n=t[e.content_id||``]?.create_time,r=b(e);return{id:e.content_id||``,title:e.content||``,coverImage:r,publishTime:g(n).toDate().getTime()}}function pe(e,t){let n=t[e.id||``]?.create_time;return{is_more_link:e.is_more_link,id:e.id||``,title:e.name||``,coverImage:e.img_x||``,duration:Number(e.duration??0),authorName:e.up_user||e.source_username||``,viewCount:e.play_count??0,publishTime:g(n).toDate().getTime()}}function x(e){let t=b(e);return{contentType:e.source_type,id:e.content_id,title:e.title||e.content,coverImage:t,isVideo:!1,isMovie:!1}}function S(e){return Array.from({length:3},(t,n)=>({id:`${e}-placeholder-${n}`,isPlaceholder:!0}))}function C(e){let t=e.contents??[],n=(Array.isArray(t)?t:[]).slice(0,3).map(x),r=e.content_count??n.length;return{id:e.collection_id||``,title:e.title||``,contentCount:r,contents:r===0?S(e.collection_id||`collection`):n}}const w=[],me=[`video`,`post`,`collection`],he=[`created`,`subscribed`];function T({mode:g=`renderer`,userId:b,showCreateAction:x=!1,queryKeyPrefix:S,isMine:T=!1}){let ge=h(),E=h(`components.pages.profile.components.tabs`),D=g===`renderer`,O=S??[],[k,A]=v(`collectTab`,_.withDefault(`video`)),[j,M]=v(`collectCollectionTab`,_.withDefault(`created`)),N=u(()=>me.includes(k)?k:`video`,[k]),P=u(()=>he.includes(j)?j:`created`,[j]),[F,I]=d(!1),[_e,L]=d(!1),[R,z]=d(()=>new Set),{userId:ve,userInfo:ye}=t(),B=b||ve||ye?.userId||``,be=ae();async function xe(e,t){if(!B)return{data:{list:[],total:0}};let n=await i({user_id:B,folder_id:``,content_type:t,page:e,page_size:10}),r=n.data.collect_infos?.reduce((e,t)=>(t.content_id&&(e[t.content_id]=t),e),{})||{},a=t===y.video?(n.data?.video_infos??[]).map(e=>pe(e,r)):(n.data?.post_infos??[]).map(e=>fe(e,r));return{data:{list:a,total:n.data?.total??a.length}}}let V=c({key:[...O,`user-collect-video`,B],initialPageParam:1,async queryFn(e){return xe(e,y.video)},options:{staleTime:0,enabled:D},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),H=c({key:[...O,`user-collect-post`,B],initialPageParam:1,options:{staleTime:0,enabled:D},async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}});async function Se(e){if(!B)return{data:{list:[],total:0}};let t=await r({page:e,user_id:b,page_size:10}),n=t.data?.data?.collections??[];return{data:{list:n.map(C),total:t.data?.data?.total??n.length}}}async function Ce(e){if(!B)return{data:{list:[],total:0}};let t=(await n({page:e,user_id:b,page_size:10})).data?.data,r=t?.collections??[];return{data:{list:r.map(C),total:t?.total??r.length}}}let U=c({key:[...O,`user-collection-created`,B],initialPageParam:1,options:{staleTime:0,enabled:D},async queryFn(e){return Se(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),W=c({key:[...O,`user-collection-subscribed`,B],initialPageParam:1,options:{staleTime:0,enabled:D},async queryFn(e){return Ce(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),G=u(()=>V.data?.pages.flatMap(e=>e.data?.list??w)??w,[V.data]),K=u(()=>H.data?.pages.flatMap(e=>e.data?.list??w)??w,[H.data]),we=u(()=>U.data?.pages.flatMap(e=>e.data?.list??w)??w,[U.data]),Te=u(()=>W.data?.pages.flatMap(e=>e.data?.list??w)??w,[W.data]),Ee=N===`video`?G:N===`post`?K:w,q=new Set(Ee.map(e=>e.id)),J=N===`video`?V:H,Y=P===`created`?U:W,De=P===`created`?we:Te,X=N===`video`,Oe=[...O,`user-collect-video`,B],ke=[...O,`user-collect-post`,B],{mutateAsync:Ae,isPending:Z}=ie(async e=>await a({app_id:0,user_id:B,folder_id:``,content_type:X?1:2,content_ids:e})),je=()=>{I(!F),z(new Set)};l(()=>{z(new Set),N===`collection`&&I(!1)},[N]),l(()=>{k!==N&&A(N)},[N,k,A]),l(()=>{j!==P&&M(P)},[P,j,M]);let Q=e=>{z(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Me=()=>{R.size===q.size&&q.size>0?z(new Set):z(new Set(q))};function Ne(){R.size===0||Z||L(!0)}function Pe(){Z||L(!1)}async function Fe(){if(!(R.size===0||Z)){if(!B){m.error(E(`collectTab.pleaseLogin`));return}try{let e=Array.from(R),t=await Ae(e);if(t.code===0){m.success(E(`collectTab.uncollectedSuccess`));let t=new Set(e);be(X?Oe:ke,e=>de(e,t)),L(!1),z(new Set),I(!1)}else m.error(t.message||E(`collectTab.uncollectFailed`))}catch(e){console.error(`取消收藏失败`,e),m.error(E(`collectTab.operationFailed`))}}}let $=async()=>{if(D){if(N===`collection`){await Y.fetchNextPage();return}await J.fetchNextPage()}};return p(o,{children:[p(o,{className:`flex justify-between items-center`,children:[f(te,{value:N,onValueChange:e=>{A(e)},children:p(ne,{variant:`tag`,children:[f(s,{value:`video`,className:`text-sm`,children:E(`collectTab.video`)}),f(s,{value:`collection`,className:`text-sm`,children:E(`collectTab.collections`)})]})}),N===`collection`?x&&f(ue,{href:`/collection/create`,className:`flex items-center justify-center rounded-full text-text3 text-sm`,children:ge(`components.pages.collectionCreate.form.create`)}):T&&f(e,{variant:`ghost`,size:`sm`,className:`h-6.25 px-0 text-sm text-text3`,onClick:je,children:E(F?`collectTab.cancel`:`collectTab.edit`)})]}),f(o,{className:`pt-2`,children:N===`video`?f(le,{list:G,showVideoProgress:!1,loading:J.isFetching,hasMore:J.hasNextPage??!1,loadMore:$,emptyText:E(`collectTab.emptyContent`),isEditMode:F,selectedIds:R,onToggleSelection:Q}):N===`post`?f(ce,{list:K,loading:J.isFetching,hasMore:J.hasNextPage??!1,loadMore:$,emptyText:E(`collectTab.emptyContent`),isEditMode:F,selectedIds:R,onToggleSelection:Q}):f(se,{list:De,loading:Y.isFetching,hasMore:Y.hasNextPage??!1,loadMore:$,emptyText:E(`collectTab.emptyContent`)})}),F&&N!==`collection`&&p(o,{className:`fixed left-0 z-10 flex w-full items-center justify-between bg-bg1 px-3 py-2 bottom-[var(--tab-bar-height)]`,children:[p(o,{className:`flex items-center gap-2`,children:[f(ee,{checked:R.size===q.size&&q.size>0,onCheckedChange:Me}),f(re,{className:`text-sm text-text1`,children:E(`collectTab.selectAll`)})]}),f(e,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:R.size>0?`default`:`outline`,disabled:R.size===0||Z,onClick:Ne,children:E(Z?`collectTab.processing`:`collectTab.delete`)})]}),f(oe,{open:_e,onOpenChange:L,onCancel:Pe,onConfirm:Fe,title:``,description:E(`collectTab.deleteConfirmDescription`),confirmText:E(`collectTab.delete`),cancelText:E(`collectTab.cancel`),isConfirming:Z})]})}export{T as CollectTab};
2
+ "use client";import{Button as e}from"../../../../../../ui/button.mjs";import{useUserStore as t}from"../../../../../../../store/modules/user-store.mjs";import{gCommunityGetSubscribedCollections as n,gCommunityGetUserCollections as r,gInteractionListCollects as i,pInteractionBatchDeleteCollects as a}from"../../../../../../../service/generated/client.mjs";import{Box as o}from"../../../../../../ui/box.mjs";import{Checkbox as ee}from"../../../../../../ui/checkbox.mjs";import{Text as te}from"../../../../../../ui/text.mjs";import{Tabs as ne,TabsList as re,TabsTrigger as s}from"../../../../../../ui/tabs.mjs";import{useMutation as ie,usePaginated as c,useUpdateRequest as ae}from"../../../../../../../hooks/query/use-query.mjs";import{DeleteConfirmDialog as oe}from"../../../../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{CollectionList as se}from"../../../../../../common/list/collection-list/collection-list.mjs";import{PostList as ce}from"../../../../../../common/list/post-list/post-list.mjs";import{VideoList as le}from"../../../../../../common/list/video-list/video-list.mjs";import{useEffect as l,useMemo as u,useState as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{toast as m}from"sonner";import{useTranslations as h}from"next-intl";import g from"dayjs";import ue from"next/link";import{parseAsString as _,useQueryState as v}from"nuqs";const y={video:1,post:2};function de(e,t){if(!e)return e;let n=0,r=e.pages.map(e=>({page:e,filteredList:(e.data?.list??w).filter(e=>{let r=e?.id??``,i=t.has(r);return i&&(n+=1),!i})}));return{...e,pages:r.map(({page:e,filteredList:t})=>{if(!e.data)return e;let r=typeof e.data.total==`number`?Math.max(0,e.data.total-n):e.data.total;return{...e,data:{...e.data,list:t,total:r}}})}}function b(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function fe(e,t){let n=t[e.content_id||``]?.create_time,r=b(e);return{id:e.content_id||``,title:e.content||``,coverImage:r,publishTime:g(n).toDate().getTime()}}function pe(e,t){let n=t[e.id||``]?.create_time;return{is_more_link:e.is_more_link,id:e.id||``,title:e.name||``,coverImage:e.img_x||``,duration:Number(e.duration??0),authorName:e.up_user||e.source_username||``,viewCount:e.play_count??0,publishTime:g(n).toDate().getTime()}}function x(e){let t=b(e);return{contentType:e.source_type,id:e.content_id,title:e.title||e.content,coverImage:t,isVideo:!1,isMovie:!1}}function S(e){return Array.from({length:3},(t,n)=>({id:`${e}-placeholder-${n}`,isPlaceholder:!0}))}function C(e){let t=e.contents??[],n=(Array.isArray(t)?t:[]).slice(0,3).map(x),r=e.content_count??n.length;return{id:e.collection_id||``,title:e.title||``,contentCount:r,contents:r===0?S(e.collection_id||`collection`):n}}const w=[],me=[`video`,`post`,`collection`],he=[`created`,`subscribed`];function T({mode:g=`renderer`,userId:b,showCreateAction:x=!1,queryKeyPrefix:S,isMine:T=!1}){let ge=h(),E=h(`components.pages.profile.components.tabs`),D=g===`renderer`,O=S??[],[k,A]=v(`collectTab`,_.withDefault(`video`)),[j,M]=v(`collectCollectionTab`,_.withDefault(`created`)),N=u(()=>me.includes(k)?k:`video`,[k]),P=u(()=>he.includes(j)?j:`created`,[j]),[F,I]=d(!1),[_e,L]=d(!1),[R,z]=d(()=>new Set),{userId:ve,userInfo:ye}=t(),B=b||ve||ye?.userId||``,be=ae();async function xe(e,t){if(!B)return{data:{list:[],total:0}};let n=await i({user_id:B,folder_id:``,content_type:t,page:e,page_size:10}),r=n.data.collect_infos?.reduce((e,t)=>(t.content_id&&(e[t.content_id]=t),e),{})||{},a=t===y.video?(n.data?.video_infos??[]).map(e=>pe(e,r)):(n.data?.post_infos??[]).map(e=>fe(e,r));return{data:{list:a,total:n.data?.total??a.length}}}let V=c({key:[...O,`user-collect-video`,B],initialPageParam:1,async queryFn(e){return xe(e,y.video)},options:{staleTime:0,enabled:D},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),H=c({key:[...O,`user-collect-post`,B],initialPageParam:1,options:{staleTime:0,enabled:D},async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}});async function Se(e){if(!B)return{data:{list:[],total:0}};let t=await r({page:e,user_id:b,page_size:10}),n=t.data?.data?.collections??[];return{data:{list:n.map(C),total:t.data?.data?.total??n.length}}}async function Ce(e){if(!B)return{data:{list:[],total:0}};let t=(await n({page:e,user_id:b,page_size:10})).data?.data,r=t?.collections??[];return{data:{list:r.map(C),total:t?.total??r.length}}}let U=c({key:[...O,`user-collection-created`,B],initialPageParam:1,options:{staleTime:0,enabled:D},async queryFn(e){return Se(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),W=c({key:[...O,`user-collection-subscribed`,B],initialPageParam:1,options:{staleTime:0,enabled:D},async queryFn(e){return Ce(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),G=u(()=>V.data?.pages.flatMap(e=>e.data?.list??w)??w,[V.data]),K=u(()=>H.data?.pages.flatMap(e=>e.data?.list??w)??w,[H.data]),we=u(()=>U.data?.pages.flatMap(e=>e.data?.list??w)??w,[U.data]),Te=u(()=>W.data?.pages.flatMap(e=>e.data?.list??w)??w,[W.data]),Ee=N===`video`?G:N===`post`?K:w,q=new Set(Ee.map(e=>e.id)),J=N===`video`?V:H,Y=P===`created`?U:W,De=P===`created`?we:Te,X=N===`video`,Oe=[...O,`user-collect-video`,B],ke=[...O,`user-collect-post`,B],{mutateAsync:Ae,isPending:Z}=ie(async e=>await a({app_id:0,user_id:B,folder_id:``,content_type:X?1:2,content_ids:e})),je=()=>{I(!F),z(new Set)};l(()=>{z(new Set),N===`collection`&&I(!1)},[N]),l(()=>{k!==N&&A(N)},[N,k,A]),l(()=>{j!==P&&M(P)},[P,j,M]);let Q=e=>{z(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Me=()=>{R.size===q.size&&q.size>0?z(new Set):z(new Set(q))};function Ne(){R.size===0||Z||L(!0)}function Pe(){Z||L(!1)}async function Fe(){if(!(R.size===0||Z)){if(!B){m.error(E(`collectTab.pleaseLogin`));return}try{let e=Array.from(R),t=await Ae(e);if(t.code===0){m.success(E(`collectTab.uncollectedSuccess`));let t=new Set(e);be(X?Oe:ke,e=>de(e,t)),L(!1),z(new Set),I(!1)}else m.error(t.message||E(`collectTab.uncollectFailed`))}catch(e){console.error(`取消收藏失败`,e),m.error(E(`collectTab.operationFailed`))}}}let $=async()=>{if(D){if(N===`collection`){await Y.fetchNextPage();return}await J.fetchNextPage()}};return p(o,{children:[p(o,{className:`flex justify-between items-center`,children:[f(ne,{value:N,onValueChange:e=>{A(e)},children:p(re,{variant:`tag`,children:[f(s,{value:`video`,className:`text-sm`,children:E(`collectTab.video`)}),f(s,{value:`collection`,className:`text-sm`,children:E(`collectTab.collections`)})]})}),N===`collection`?x&&f(ue,{href:`/collection/create`,className:`flex items-center justify-center rounded-full text-text3 text-sm`,children:ge(`components.pages.collectionCreate.form.create`)}):T&&f(e,{variant:`ghost`,size:`sm`,className:`h-6.25 px-0 text-sm text-text3`,onClick:je,children:E(F?`collectTab.cancel`:`collectTab.edit`)})]}),f(o,{className:`pt-2`,children:N===`video`?f(le,{list:G,showVideoProgress:!1,loading:J.isFetching,hasMore:J.hasNextPage??!1,loadMore:$,emptyText:E(`collectTab.emptyContent`),isEditMode:F,selectedIds:R,onToggleSelection:Q}):N===`post`?f(ce,{list:K,loading:J.isFetching,hasMore:J.hasNextPage??!1,loadMore:$,emptyText:E(`collectTab.emptyContent`),isEditMode:F,selectedIds:R,onToggleSelection:Q}):f(se,{list:De,loading:Y.isFetching,hasMore:Y.hasNextPage??!1,loadMore:$,emptyText:E(`collectTab.emptyContent`)})}),F&&N!==`collection`&&p(o,{className:`fixed left-0 z-10 flex w-full items-center justify-between bg-bg1 px-3 py-2 bottom-[var(--tab-bar-height)]`,children:[p(o,{className:`flex items-center gap-2`,children:[f(ee,{checked:R.size===q.size&&q.size>0,onCheckedChange:Me}),f(te,{className:`text-sm text-text1`,children:E(`collectTab.selectAll`)})]}),f(e,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:R.size>0?`default`:`outline`,disabled:R.size===0||Z,onClick:Ne,children:E(Z?`collectTab.processing`:`collectTab.delete`)})]}),f(oe,{open:_e,onOpenChange:L,onCancel:Pe,onConfirm:Fe,title:``,description:E(`collectTab.deleteConfirmDescription`),confirmText:E(`collectTab.delete`),cancelText:E(`collectTab.cancel`),isConfirming:Z})]})}export{T as CollectTab};
@@ -1,7 +1,7 @@
1
1
 
2
+ import { CommunityContentInfo } from "../../../../../../../types/community-types.mjs";
2
3
  import { MaterialComponentMode } from "../../../../../../../utils/schema/schema.mjs";
3
4
  import "../../../../../../../utils.mjs";
4
- import { CommunityContentInfo } from "../../../../../../../types/community-types.mjs";
5
5
  import * as react_jsx_runtime0 from "react/jsx-runtime";
6
6
 
7
7
  //#region components/biz/business/profile/profile-main/tabs/like-tab/client.d.ts
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{mergeStyles as e}from"../../../../../utils/styles/helpers.mjs";import{pxToVw as t}from"../../../../../../../utils/helper.mjs";import{Box as n}from"../../../../../../ui/box.mjs";import r from"../../../../../basics/logo/variants/basic-logo/index.mjs";import i from"../../../../../basics/search/variants/basic-search/index.mjs";import{defaultProps as a}from"../defaults/default-props.mjs";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c={},l={list:[]};function u({props:u=c,styles:d,events:f,data:p=l}){let{logo:m,search:h,gap:g=a.gap}={...a,...u},{list:_}=p,v=()=>{f?.onLogoClick?.()},y=(e,t)=>{f?.onLogoChannelChange?.(e,t)},b=()=>{f?.onSearchClick?.()},x=d?e(d,{}):void 0;return s(n,{as:`header`,className:`w-full flex items-center px-[16px] py-[8px]`,style:{...g>0?{gap:t(g)}:void 0,...x},children:[o(r,{props:m,events:{onClick:v,onChannelChange:y},data:_}),o(i,{props:h,events:{onClick:b}})]})}export{u as default};
2
+ "use client";import{mergeStyles as e}from"../../../../../utils/styles/helpers.mjs";import{pxToVw as t}from"../../../../../../../utils/helper.mjs";import{Box as n}from"../../../../../../ui/box.mjs";import r from"../../../../../basics/logo/variants/basic-logo/index.mjs";import i from"../../../../../basics/search/variants/basic-search/index.mjs";import{defaultProps as a}from"../defaults/default-props.mjs";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c={},l={list:[]};function u({props:u=c,styles:d,events:f,data:p=l}){let{logo:m,search:h,gap:g=a.gap}={...a,...u},{list:_}=p,v=()=>{f?.onLogoClick?.()},y=(e,t)=>{f?.onLogoChannelChange?.(e,t)},b=()=>{f?.onSearchClick?.()},x=d?e(d,{}):void 0;return s(n,{as:`header`,className:`w-full flex items-center px-[12px] py-[8px]`,style:{...g>0?{gap:t(g)}:void 0,...x},children:[o(r,{props:m,events:{onClick:v,onChannelChange:y},data:_}),o(i,{props:h,events:{onClick:b}})]})}export{u as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Button as e}from"../../../ui/button.mjs";import t from"../../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../../store/modules/user-store.mjs";import{useRouter as r}from"../../../../utils/use-compatible-router.mjs";import{Box as i}from"../../../ui/box.mjs";import{Text as a}from"../../../ui/text.mjs";import{eventKey as o}from"../../../../constants/event-key.mjs";import{useSearchHistory as s}from"../../../../hooks/use-search-history.mjs";import{DeleteConfirmDialog as c}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{useMemo as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{usePathname as p,useSearchParams as m}from"next/navigation";function h(e,t){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function g(g){let{title:_,rows:v=1,clearText:y,confirmDescription:b,onHistoryClick:x,mode:S=`renderer`}=g,C=_??`搜索历史`,w=y??`清空`,T=b??`确定要清除所有搜索历史吗?`,E=l(()=>[`搜索历史1`,`搜索历史2`,`搜索历史3`],[]),[D,O]=u(!1),k=r(),A=p(),j=m(),{userInfo:M}=n(),N=M?.user_id||`guest`,P=`search_history_${N}`,{history:F,addHistory:I,clearHistory:L}=s({storageKey:N}),R=()=>{L(),localStorage.removeItem(P),O(!1),t.emit(o.SEARCH_HISTORY_UPDATE)},z=l(()=>(F.length?F:S===`editor`?E:[]).slice(0,v*10),[F,S,E,v]);if(z.length===0)return null;let B=e=>{if(I(e),x){x(e);return}let t=new URLSearchParams(j.toString());t.set(`q`,e);let n=A.includes(`/search-result`)?A:`/search-result`;k.push(`${n}?${t.toString()}`)};return f(i,{className:`px-4 py-2`,children:[f(i,{className:`flex justify-between items-center mb-2`,children:[d(a,{className:`text-[16px] font-bold text-text1`,children:C}),d(e,{variant:`ghost`,size:`sm`,className:`text-text3 text-[12px] p-0 h-auto`,onClick:()=>O(!0),children:w})]}),d(i,{className:`flex flex-wrap gap-2 overflow-hidden`,style:{maxHeight:`${v*30}px`},children:z.map((e,t)=>d(i,{className:`px-3 py-1 bg-bg2 rounded-full cursor-pointer`,onClick:()=>B(e),children:d(a,{className:`text-[14px] text-text2`,children:h(e,8)})},t))}),d(c,{open:D,onOpenChange:O,onConfirm:R,title:``,description:T})]})}export{g as SearchHistoryClient};
2
+ "use client";import{Button as e}from"../../../ui/button.mjs";import t from"../../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../../store/modules/user-store.mjs";import{useRouter as r}from"../../../../utils/use-compatible-router.mjs";import{Box as i}from"../../../ui/box.mjs";import{Text as a}from"../../../ui/text.mjs";import{eventKey as o}from"../../../../constants/event-key.mjs";import{useSearchHistory as s}from"../../../../hooks/use-search-history.mjs";import{DeleteConfirmDialog as c}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{useMemo as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{usePathname as p,useSearchParams as m}from"next/navigation";function h(e,t){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function g(g){let{title:_,rows:v=1,clearText:y,confirmDescription:b,onHistoryClick:x,mode:S=`renderer`}=g,C=_??`搜索历史`,w=y??`清空`,T=b??`确定要清除所有搜索历史吗?`,E=l(()=>[`搜索历史1`,`搜索历史2`,`搜索历史3`],[]),[D,O]=u(!1),k=r(),A=p(),j=m(),{userInfo:M}=n(),{history:N,addHistory:P,clearHistory:F}=s({storageKey:M?.user_id||`guest`}),I=()=>{F(),O(!1),t.emit(o.SEARCH_HISTORY_UPDATE)},L=l(()=>(N.length?N:S===`editor`?E:[]).slice(0,v*10),[N,S,E,v]);if(L.length===0)return null;let R=e=>{if(P(e),x){x(e);return}let t=new URLSearchParams(j.toString());t.set(`q`,e);let n=A.includes(`/search-result`)?A:`/search-result`;k.push(`${n}?${t.toString()}`)};return f(i,{className:`px-4 py-2`,children:[f(i,{className:`flex justify-between items-center mb-2`,children:[d(a,{className:`text-[16px] font-bold text-text1`,children:C}),d(e,{variant:`ghost`,size:`sm`,className:`text-text3 text-[12px] p-0 h-auto`,onClick:()=>O(!0),children:w})]}),d(i,{className:`flex flex-wrap gap-2 overflow-hidden`,style:{maxHeight:`${v*30}px`},children:L.map((e,t)=>d(i,{className:`px-3 py-1 bg-bg2 rounded-full cursor-pointer`,onClick:()=>R(e),children:d(a,{className:`text-[14px] text-text2`,children:h(e,8)})},t))}),d(c,{open:D,onOpenChange:O,onConfirm:I,title:``,description:T})]})}export{g as SearchHistoryClient};
@@ -9,8 +9,9 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
 
10
10
  //#region components/biz/business/search-history/material.d.ts
11
11
  declare const searchHistoryMaterial: DefineMaterialOption<typeof SearchHistoryServer, typeof SearchHistoryClient, zod.ZodObject<{
12
- title: zod.ZodString & SchemaHasDefaultValue;
13
- rows: zod.ZodNumber & SchemaHasDefaultValue;
12
+ readonly title: zod.ZodString & SchemaHasDefaultValue;
13
+ readonly rows: zod.ZodNumber & SchemaHasDefaultValue;
14
+ } & {
14
15
  mode: zod.ZodOptional<zod.ZodEnum<{
15
16
  renderer: "renderer";
16
17
  editor: "editor";
@@ -9,8 +9,9 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
  * 搜索历史物料属性定义
10
10
  */
11
11
  declare const searchHistoryInspectorPropsSchema: zod.ZodObject<{
12
- title: zod.ZodString & SchemaHasDefaultValue;
13
- rows: zod.ZodNumber & SchemaHasDefaultValue;
12
+ readonly title: zod.ZodString & SchemaHasDefaultValue;
13
+ readonly rows: zod.ZodNumber & SchemaHasDefaultValue;
14
+ } & {
14
15
  mode: zod.ZodOptional<zod.ZodEnum<{
15
16
  renderer: "renderer";
16
17
  editor: "editor";
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,defineNumberPropSchema as t,defineTextPropSchema as n}from"../../../../utils/schema/schema.mjs";const r=e({title:n({label:`标题名称`,defaultValue:`搜索历史`,description:`支持输入,中/英/数/符,6个字符`}),rows:t({label:`展示行数`,defaultValue:1})});export{r as searchHistoryInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e}from"../../../../utils/schema/schema.mjs";const t=e(e=>({title:e.string(`搜索历史`,{label:`标题名称`,description:`支持输入,中/英/数/符,6个字符`}),rows:e.number(1,{label:`展示行数`})}));export{t as searchHistoryInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";const n=e({}),r=t(n);export{r as searchInputInspectorDefaultProps,n as searchInputInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";const n=e(e=>({})),r=t(n);export{r as searchInputInspectorDefaultProps,n as searchInputInspectorPropsSchema};
@@ -9,14 +9,15 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
 
10
10
  //#region components/biz/business/shortcut-grid/material.d.ts
11
11
  declare const shortcutGridMaterial: DefineMaterialOption<typeof ShortcutGrid, typeof ShortcutGridClient, zod.ZodObject<{
12
- title: zod.ZodString & SchemaHasDefaultValue;
13
- shortcutCount: zod.ZodNumber & SchemaHasDefaultValue;
14
- isShortcutTitle: zod.ZodBoolean & SchemaHasDefaultValue;
15
- shortcuts: zod.ZodArray<zod.ZodObject<{
12
+ readonly title: zod.ZodString & SchemaHasDefaultValue;
13
+ readonly shortcutCount: zod.ZodNumber & SchemaHasDefaultValue;
14
+ readonly isShortcutTitle: zod.ZodBoolean & SchemaHasDefaultValue;
15
+ readonly shortcuts: zod.ZodArray<zod.ZodObject<{
16
16
  label: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
17
17
  icon: zod.ZodString & SchemaHasDefaultValue;
18
18
  href: zod.ZodString & SchemaHasDefaultValue;
19
19
  }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
20
+ } & {
20
21
  mode: zod.ZodOptional<zod.ZodEnum<{
21
22
  renderer: "renderer";
22
23
  editor: "editor";
@@ -8,14 +8,15 @@ import z$1 from "zod";
8
8
  * 金刚区物料可配置字段:
9
9
  */
10
10
  declare const shortcutGridInspectorPropsSchema: z$1.ZodObject<{
11
- title: z$1.ZodString & SchemaHasDefaultValue;
12
- shortcutCount: z$1.ZodNumber & SchemaHasDefaultValue;
13
- isShortcutTitle: z$1.ZodBoolean & SchemaHasDefaultValue;
14
- shortcuts: z$1.ZodArray<z$1.ZodObject<{
11
+ readonly title: z$1.ZodString & SchemaHasDefaultValue;
12
+ readonly shortcutCount: z$1.ZodNumber & SchemaHasDefaultValue;
13
+ readonly isShortcutTitle: z$1.ZodBoolean & SchemaHasDefaultValue;
14
+ readonly shortcuts: z$1.ZodArray<z$1.ZodObject<{
15
15
  label: z$1.ZodOptional<z$1.ZodString> & SchemaHasDefaultValue;
16
16
  icon: z$1.ZodString & SchemaHasDefaultValue;
17
17
  href: z$1.ZodString & SchemaHasDefaultValue;
18
18
  }, z$1.core.$strip>> & SchemaHasDefaultValue;
19
+ } & {
19
20
  mode: z$1.ZodOptional<z$1.ZodEnum<{
20
21
  renderer: "renderer";
21
22
  editor: "editor";
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineNumberPropSchema as n,defineSwitchPropSchema as r,defineTextPropSchema as i,getSchemaDefaultProps as a}from"../../../../utils/schema/schema.mjs";import o from"zod";const s=t({title:i({label:`推荐位名称`,required:!0,defaultValue:`推荐列表`}),shortcutCount:n({label:`入口数量`,required:!0,defaultValue:4}).refine(e=>e>=3&&e<=5,`入口数量必须为 3-5`),isShortcutTitle:r({label:`是否显示入口标题`,required:!0,defaultValue:!0}),shortcuts:e(o.object({label:i({label:`入口标题`,required:!1,defaultValue:`最新`}),icon:i({label:`图标`,required:!0,defaultValue:``}),href:i({label:`跳转指向`,required:!0,defaultValue:``})}),{label:`推荐列表`,required:!0,defaultValue:[{label:`热门`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`},{label:`新上架`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`},{label:`排行榜`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`},{label:`筛选`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`}]})}),c=a(s);export{c as shortcutGridInspectorDefaultProps,s as shortcutGridInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({title:e.string(`推荐列表`,{label:`推荐位名称`,required:!0}),shortcutCount:e.number(4,{label:`入口数量`,required:!0}).refine(e=>e>=3&&e<=5,`入口数量必须为 3-5`),isShortcutTitle:e.boolean(!0,{fieldType:`switch`,label:`是否显示入口标题`,required:!0}),shortcuts:e.array(n.object({label:e.string(`最新`,{label:`入口标题`,required:!1}),icon:e.string(``,{label:`图标`,required:!0}),href:e.string(``,{label:`跳转指向`,required:!0})}),{label:`推荐列表`,required:!0,defaultValue:[{label:`热门`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`},{label:`新上架`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`},{label:`排行榜`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`},{label:`筛选`,icon:`/images/2026/01/21/6967aec2d806ed47d5238861/fce0a95c-1e8f-4872-ab69-86212435e1bc.jpegxxx`,href:`/video-list?title=穷小伙刚离婚,找了他3年的女总裁蒙着面纱出现了,一身红嫁衣当众求嫁,前妻嘲笑她是丑八怪,下秒揭开面纱后全场沉默了&tags=动作`}]})})),i=t(r);export{i as shortcutGridInspectorDefaultProps,r as shortcutGridInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";const n=e({}),r=t(n);export{r as tabBarInspectorDefaultProps,n as tabBarInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";const n=e(e=>({})),r=t(n);export{r as tabBarInspectorDefaultProps,n as tabBarInspectorPropsSchema};
@@ -9,11 +9,12 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
 
10
10
  //#region components/biz/business/text-recommend/material.d.ts
11
11
  declare const textRecommendMaterial: DefineMaterialOption<typeof TextRecommendServer, typeof TextRecommendClient, zod.ZodObject<{
12
- title: zod.ZodString & SchemaHasDefaultValue;
13
- displayCount: zod.ZodNumber & SchemaHasDefaultValue;
14
- items: zod.ZodArray<zod.ZodObject<{
12
+ readonly title: zod.ZodString & SchemaHasDefaultValue;
13
+ readonly displayCount: zod.ZodNumber & SchemaHasDefaultValue;
14
+ readonly items: zod.ZodArray<zod.ZodObject<{
15
15
  label: zod.ZodString & SchemaHasDefaultValue;
16
16
  }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
17
+ } & {
17
18
  mode: zod.ZodOptional<zod.ZodEnum<{
18
19
  renderer: "renderer";
19
20
  editor: "editor";
@@ -8,11 +8,12 @@ import { z } from "zod";
8
8
  * 文字推荐物料属性定义
9
9
  */
10
10
  declare const textRecommendInspectorPropsSchema: z.ZodObject<{
11
- title: z.ZodString & SchemaHasDefaultValue;
12
- displayCount: z.ZodNumber & SchemaHasDefaultValue;
13
- items: z.ZodArray<z.ZodObject<{
11
+ readonly title: z.ZodString & SchemaHasDefaultValue;
12
+ readonly displayCount: z.ZodNumber & SchemaHasDefaultValue;
13
+ readonly items: z.ZodArray<z.ZodObject<{
14
14
  label: z.ZodString & SchemaHasDefaultValue;
15
15
  }, z.core.$strip>> & SchemaHasDefaultValue;
16
+ } & {
16
17
  mode: z.ZodOptional<z.ZodEnum<{
17
18
  renderer: "renderer";
18
19
  editor: "editor";
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineNumberPropSchema as n,defineTextPropSchema as r}from"../../../../utils/schema/schema.mjs";import{z as i}from"zod";const a=t({title:r({label:`标题名称`,defaultValue:`文字推荐标题`,description:`支持输入,中/英/数/符,6个字符`}),displayCount:n({label:`展示数`,defaultValue:2}),items:e(i.object({label:r({label:`热词`,defaultValue:`推荐搜索1`})}),{label:`推荐位模块`,defaultValue:[{label:`推荐搜索2`},{label:`推荐搜索3`}]})});export{a as textRecommendInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e}from"../../../../utils/schema/schema.mjs";import{z as t}from"zod";const n=e(e=>({title:e.string(`文字推荐标题`,{label:`标题名称`,description:`支持输入,中/英/数/符,6个字符`}),displayCount:e.number(2,{label:`展示数`}),items:e.array(t.object({label:e.string(`推荐搜索1`,{label:`热词`})}),{label:`推荐位模块`,defaultValue:[{label:`推荐搜索2`},{label:`推荐搜索3`}]})}));export{n as textRecommendInspectorPropsSchema};
@@ -9,16 +9,17 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
 
10
10
  //#region components/biz/example/button/material.d.ts
11
11
  declare const exampleButtonMaterial: DefineMaterialOption<typeof Button, typeof ButtonClient, zod.ZodObject<{
12
- text: zod.ZodString & SchemaHasDefaultValue;
13
- variant: zod.ZodType<"default" | "blue" | "red", unknown, zod_v4_core0.$ZodTypeInternals<"default" | "blue" | "red", unknown>> & SchemaHasDefaultValue;
14
- disabled: zod.ZodOptional<zod.ZodBoolean> & SchemaHasDefaultValue;
15
- loading: zod.ZodOptional<zod.ZodBoolean>;
16
- items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
17
- name: zod.ZodOptional<zod.ZodString>;
12
+ readonly text: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
13
+ readonly variant: zod.ZodType<"default" | "blue" | "red", unknown, zod_v4_core0.$ZodTypeInternals<"default" | "blue" | "red", unknown>> & SchemaHasDefaultValue;
14
+ readonly disabled: zod.ZodOptional<zod.ZodBoolean> & SchemaHasDefaultValue;
15
+ readonly loading: zod.ZodOptional<zod.ZodBoolean>;
16
+ readonly items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
17
+ readonly name: zod.ZodOptional<zod.ZodString>;
18
18
  }, zod_v4_core0.$strip>>> & SchemaHasDefaultValue;
19
- info: zod.ZodOptional<zod.ZodObject<{
19
+ readonly info: zod.ZodObject<{
20
20
  readonly address: zod.ZodOptional<zod.ZodString>;
21
- }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
21
+ }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
22
+ } & {
22
23
  mode: zod.ZodOptional<zod.ZodEnum<{
23
24
  renderer: "renderer";
24
25
  editor: "editor";
@@ -1,36 +1,38 @@
1
1
 
2
2
  import { InferSchemaProps, SchemaHasDefaultValue } from "../../../../utils/schema/schema.mjs";
3
3
  import "../../../../utils.mjs";
4
- import z$1 from "zod";
4
+ import * as zod from "zod";
5
+ import * as zod_v4_core0 from "zod/v4/core";
5
6
 
6
7
  //#region components/biz/example/button/schema.d.ts
7
8
  /**
8
9
  * 定义可以被低代码右侧inspector编辑的props
9
10
  */
10
- declare const buttonInspectorPropsSchema: z$1.ZodObject<{
11
- text: z$1.ZodString & SchemaHasDefaultValue;
12
- variant: z$1.ZodType<"default" | "blue" | "red", unknown, z$1.core.$ZodTypeInternals<"default" | "blue" | "red", unknown>> & SchemaHasDefaultValue;
13
- disabled: z$1.ZodOptional<z$1.ZodBoolean> & SchemaHasDefaultValue;
14
- loading: z$1.ZodOptional<z$1.ZodBoolean>;
15
- items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
16
- name: z$1.ZodOptional<z$1.ZodString>;
17
- }, z$1.core.$strip>>> & SchemaHasDefaultValue;
18
- info: z$1.ZodOptional<z$1.ZodObject<{
19
- readonly address: z$1.ZodOptional<z$1.ZodString>;
20
- }, z$1.core.$strip>> & SchemaHasDefaultValue;
21
- mode: z$1.ZodOptional<z$1.ZodEnum<{
11
+ declare const buttonInspectorPropsSchema: zod.ZodObject<{
12
+ readonly text: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
13
+ readonly variant: zod.ZodType<"default" | "blue" | "red", unknown, zod_v4_core0.$ZodTypeInternals<"default" | "blue" | "red", unknown>> & SchemaHasDefaultValue;
14
+ readonly disabled: zod.ZodOptional<zod.ZodBoolean> & SchemaHasDefaultValue;
15
+ readonly loading: zod.ZodOptional<zod.ZodBoolean>;
16
+ readonly items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
17
+ readonly name: zod.ZodOptional<zod.ZodString>;
18
+ }, zod_v4_core0.$strip>>> & SchemaHasDefaultValue;
19
+ readonly info: zod.ZodObject<{
20
+ readonly address: zod.ZodOptional<zod.ZodString>;
21
+ }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
22
+ } & {
23
+ mode: zod.ZodOptional<zod.ZodEnum<{
22
24
  renderer: "renderer";
23
25
  editor: "editor";
24
26
  }>>;
25
- }, z$1.core.$strip>;
27
+ }, zod_v4_core0.$strip>;
26
28
  declare const buttonInspectorDefaultProps: {
27
- text: string;
28
- variant: "default" | "blue" | "red";
29
- disabled: boolean;
30
- items: {
29
+ readonly text: string;
30
+ readonly variant: "default" | "blue" | "red";
31
+ readonly disabled: boolean;
32
+ readonly items: {
31
33
  name?: string | undefined;
32
34
  }[];
33
- info: {
35
+ readonly info: {
34
36
  address?: string | undefined;
35
37
  };
36
38
  };
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineArrayItemPropSchema as e,defineCheckboxPropSchema as t,defineComponentPropsSchema as n,defineObjectPropSchema as r,defineSelectEnumPropSchema as i,defineSwitchPropSchema as a,defineTextPropSchema as o,getSchemaDefaultProps as s}from"../../../../utils/schema/schema.mjs";import{buttonVariantOptions as c}from"./variants.mjs";import l from"zod";const u=n({text:o({label:`文本`,defaultValue:`example button`}),variant:i(c,{label:`变体`,defaultValue:`red`}),disabled:t({label:`禁用`,defaultValue:!1,required:!1}),loading:a({label:`加载`,required:!1}),items:e(l.object({name:o({label:`名称`,required:!1})}),{required:!1,label:`items`,defaultValue:[{name:`string`}]}),info:r({address:o({label:`地址`,required:!1})},{label:`info`,required:!1,defaultValue:{address:`SHENZHEN`}})}),d=s(u);export{d as buttonInspectorDefaultProps,u as buttonInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";import{buttonVariantOptions as n}from"./variants.mjs";const r=e(e=>({text:e.string(`example button`,{label:`文本`,required:!1}),variant:e.enum(n,`red`,{label:`变体`}),disabled:e.boolean(!1,{fieldType:`checkbox`,label:`禁用`,required:!1}),loading:e.boolean({fieldType:`switch`,label:`加载`,required:!1}),items:e.array(e.object({name:e.string({label:`名称`,required:!1})}),{required:!1,label:`items`,defaultValue:[{name:`string`}]}),info:e.object({address:e.string({label:`地址`,required:!1})},{label:`info`,required:!0,defaultValue:{address:`SHENZHEN`}})})),i=t(r);export{i as buttonInspectorDefaultProps,r as buttonInspectorPropsSchema};