@funhub/platform 0.2.10 → 0.2.11

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 (173) hide show
  1. package/dist/assets/icons/search/video.mjs +2 -0
  2. package/dist/biz.d.mts +5 -5
  3. package/dist/biz.mjs +1 -1
  4. package/dist/components/biz/business/advertisement/ad-match.d.mts +19 -4
  5. package/dist/components/biz/business/advertisement/ad-match.mjs +1 -1
  6. package/dist/components/biz/business/advertisement/ad-provider.d.mts +3 -0
  7. package/dist/components/biz/business/advertisement/ad-provider.mjs +1 -1
  8. package/dist/components/biz/business/advertisement/ad-query.d.mts +1 -0
  9. package/dist/components/biz/business/advertisement/ad-query.mjs +1 -1
  10. package/dist/components/biz/business/advertisement/ad-runtime-provider.d.mts +4 -2
  11. package/dist/components/biz/business/advertisement/ad-runtime-provider.mjs +1 -1
  12. package/dist/components/biz/business/advertisement/banner-ad/client.mjs +1 -1
  13. package/dist/components/biz/business/advertisement/banner-ad/material.d.mts +2 -3
  14. package/dist/components/biz/business/advertisement/banner-ad/material.mjs +1 -1
  15. package/dist/components/biz/business/advertisement/banner-ad/schema.d.mts +9 -6
  16. package/dist/components/biz/business/advertisement/banner-ad/schema.mjs +1 -1
  17. package/dist/components/biz/business/advertisement/banner-ad/server.mjs +1 -1
  18. package/dist/components/biz/business/advertisement/feed-ad/index.d.mts +1 -31
  19. package/dist/components/biz/business/advertisement/feed-ad/index.mjs +1 -1
  20. package/dist/components/biz/business/advertisement/floating-ad/client.d.mts +4 -4
  21. package/dist/components/biz/business/advertisement/floating-ad/client.mjs +1 -1
  22. package/dist/components/biz/business/advertisement/floating-ad/index.d.mts +1 -1
  23. package/dist/components/biz/business/advertisement/floating-ad/material.d.mts +5 -0
  24. package/dist/components/biz/business/advertisement/floating-ad/schema.d.mts +21 -10
  25. package/dist/components/biz/business/advertisement/floating-ad/schema.mjs +1 -1
  26. package/dist/components/biz/business/advertisement/floating-ad/server.mjs +1 -1
  27. package/dist/components/biz/business/advertisement/icon-ad/client.mjs +1 -1
  28. package/dist/components/biz/business/advertisement/icon-ad/material.d.mts +1 -2
  29. package/dist/components/biz/business/advertisement/icon-ad/material.mjs +1 -1
  30. package/dist/components/biz/business/advertisement/icon-ad/schema.d.mts +7 -2
  31. package/dist/components/biz/business/advertisement/icon-ad/schema.mjs +1 -1
  32. package/dist/components/biz/business/advertisement/icon-ad/server.mjs +1 -1
  33. package/dist/components/biz/business/advertisement/index.d.mts +4 -4
  34. package/dist/components/biz/business/advertisement/popup-ad/client.mjs +3 -3
  35. package/dist/components/biz/business/advertisement/popup-ad/index.d.mts +1 -1
  36. package/dist/components/biz/business/advertisement/popup-ad/material.d.mts +2 -2
  37. package/dist/components/biz/business/advertisement/popup-ad/schema.d.mts +14 -15
  38. package/dist/components/biz/business/advertisement/popup-ad/schema.mjs +1 -1
  39. package/dist/components/biz/business/advertisement/popup-ad/server.mjs +1 -1
  40. package/dist/components/biz/business/advertisement/text-ad/client.mjs +1 -1
  41. package/dist/components/biz/business/advertisement/text-ad/material.d.mts +1 -2
  42. package/dist/components/biz/business/advertisement/text-ad/material.mjs +1 -1
  43. package/dist/components/biz/business/advertisement/text-ad/schema.d.mts +5 -3
  44. package/dist/components/biz/business/advertisement/text-ad/schema.mjs +1 -1
  45. package/dist/components/biz/business/advertisement/text-ad/server.mjs +1 -1
  46. package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
  47. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  48. package/dist/components/biz/business/detail/shared/registry.d.mts +1 -0
  49. package/dist/components/biz/business/detail/shared/runtime-context-provider.mjs +1 -1
  50. package/dist/components/biz/business/detail/shared/video-hero.mjs +1 -1
  51. package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -1
  52. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  53. package/dist/components/biz/business/detail/video-detail-recommend/material.d.mts +1 -0
  54. package/dist/components/biz/business/detail/video-detail-recommend/schema.d.mts +1 -0
  55. package/dist/components/biz/business/detail/video-detail-recommend/schema.mjs +1 -1
  56. package/dist/components/biz/business/detail/video-detail-recommend/shared.mjs +1 -1
  57. package/dist/components/biz/business/detail/video-detail-recommend/utils.mjs +1 -1
  58. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -1
  59. package/dist/components/biz/business/header-search/shared/logo.mjs +1 -1
  60. package/dist/components/biz/business/home-recommend/home-recommend-grid/client.mjs +1 -1
  61. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts +4 -24
  62. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs +1 -1
  63. package/dist/components/biz/business/home-recommend/home-recommend-grid/material.d.mts +2 -22
  64. package/dist/components/biz/business/home-recommend/home-recommend-grid/server.mjs +1 -1
  65. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/client.mjs +1 -1
  66. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts +4 -24
  67. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs +1 -1
  68. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.d.mts +2 -22
  69. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/server.mjs +1 -1
  70. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  71. package/dist/components/biz/business/home-recommend/shared/home-recommend-default-config.mjs +1 -1
  72. package/dist/components/biz/business/home-recommend/shared/home-recommend-play-count.mjs +2 -0
  73. package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
  74. package/dist/components/biz/business/home-recommend/shared/home-recommend-runtime-props.mjs +1 -1
  75. package/dist/components/biz/business/home-recommend/shared/home-recommend-server-data.mjs +1 -1
  76. package/dist/components/biz/business/home-recommend/shared/home-recommend-smart-tag.mjs +2 -0
  77. package/dist/components/biz/business/hot-recommend/client.mjs +1 -1
  78. package/dist/components/biz/business/hot-recommend/material.d.mts +0 -1
  79. package/dist/components/biz/business/hot-recommend/schema.d.mts +0 -1
  80. package/dist/components/biz/business/hot-recommend/schema.mjs +1 -1
  81. package/dist/components/biz/business/image-text-recommend/client.d.mts +1 -1
  82. package/dist/components/biz/business/image-text-recommend/client.mjs +1 -1
  83. package/dist/components/biz/business/image-text-recommend/material.d.mts +7 -7
  84. package/dist/components/biz/business/image-text-recommend/schema.d.mts +25 -30
  85. package/dist/components/biz/business/image-text-recommend/schema.mjs +1 -1
  86. package/dist/components/biz/business/image-text-recommend/server.mjs +1 -1
  87. package/dist/components/biz/business/image-text-recommend/shared/query.mjs +1 -1
  88. package/dist/components/biz/business/index.d.mts +4 -4
  89. package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -1
  90. package/dist/components/biz/business/marquee/client.mjs +1 -1
  91. package/dist/components/biz/business/marquee/marquee.module.mjs +24 -0
  92. package/dist/components/biz/business/marquee/material.d.mts +6 -5
  93. package/dist/components/biz/business/marquee/schema.d.mts +6 -5
  94. package/dist/components/biz/business/marquee/schema.mjs +1 -1
  95. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  96. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
  97. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +1 -1
  98. package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -1
  99. package/dist/components/biz/business/tab-bar/client.d.mts +0 -2
  100. package/dist/components/biz/business/tab-bar/client.mjs +1 -1
  101. package/dist/components/biz/business/text-recommend/client.mjs +1 -1
  102. package/dist/components/biz/business/text-recommend/material.d.mts +0 -1
  103. package/dist/components/biz/business/text-recommend/schema.d.mts +0 -1
  104. package/dist/components/biz/business/text-recommend/schema.mjs +1 -1
  105. package/dist/components/common/collection-popup/create-collection-sheet.d.mts +3 -0
  106. package/dist/components/common/collection-popup/create-collection-sheet.mjs +1 -1
  107. package/dist/components/common/collection-popup/index.mjs +1 -1
  108. package/dist/components/common/list/waterfall-recommend/recommend-badge-style.mjs +2 -0
  109. package/dist/components/common/list/waterfall-recommend/waterfall-recommend-display.mjs +2 -0
  110. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.d.mts +5 -7
  111. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +1 -1
  112. package/dist/components/common/series-episodes/index.d.mts +1 -0
  113. package/dist/components/common/series-episodes/index.mjs +1 -1
  114. package/dist/components/common/video-player/index.d.mts +1 -2
  115. package/dist/components/pages/collection-detail/detail.mjs +1 -1
  116. package/dist/components/pages/feed-series/feed-series-client.mjs +1 -1
  117. package/dist/components/pages/fullscreen-feed/page.mjs +1 -1
  118. package/dist/components/pages/search/search-result/shared.mjs +1 -1
  119. package/dist/components/pages/search-result/search-video-info.mjs +1 -1
  120. package/dist/components/pages/settings/_components/reset-password-drawer.mjs +1 -1
  121. package/dist/components/ui/badge.d.mts +1 -1
  122. package/dist/components/ui/button.d.mts +2 -2
  123. package/dist/components/ui/image.d.mts +4 -4
  124. package/dist/hooks.d.mts +1 -2
  125. package/dist/hooks.mjs +1 -1
  126. package/dist/i18n/locales/en.mjs +1 -1
  127. package/dist/i18n/locales/zh-CN.mjs +1 -1
  128. package/dist/materials.d.mts +1 -2
  129. package/dist/materials.mjs +1 -1
  130. package/dist/service/advertisement.d.mts +13 -1
  131. package/dist/service/advertisement.mjs +1 -1
  132. package/dist/service/generated/client.d.mts +2 -10
  133. package/dist/service/generated/client.mjs +1 -1
  134. package/dist/service/generated/tanstack.d.mts +2 -12
  135. package/dist/service/generated/tanstack.mjs +1 -1
  136. package/dist/service.d.mts +3 -3
  137. package/dist/service.mjs +1 -1
  138. package/dist/store/modules/user-store.d.mts +1 -1
  139. package/dist/store/modules/user-store.mjs +1 -1
  140. package/dist/store.d.mts +1 -3
  141. package/dist/store.mjs +1 -1
  142. package/dist/types.d.mts +1 -171
  143. package/dist/utils/device-id.d.mts +2 -2
  144. package/dist/utils/device-id.mjs +1 -1
  145. package/dist/utils/http.mjs +1 -1
  146. package/dist/utils/password-validator.mjs +1 -1
  147. package/dist/utils.d.mts +1 -3
  148. package/dist/utils.mjs +1 -1
  149. package/package.json +1 -2
  150. package/dist/components/biz/business/home-recommend/shared/home-recommend-smart-layout.mjs +0 -2
  151. package/dist/components/biz/business/ranking-recommend/client.d.mts +0 -17
  152. package/dist/components/biz/business/ranking-recommend/client.mjs +0 -70
  153. package/dist/components/biz/business/ranking-recommend/material.d.mts +0 -35
  154. package/dist/components/biz/business/ranking-recommend/material.mjs +0 -2
  155. package/dist/components/biz/business/ranking-recommend/schema.d.mts +0 -35
  156. package/dist/components/biz/business/ranking-recommend/schema.mjs +0 -2
  157. package/dist/components/biz/business/ranking-recommend/server.d.mts +0 -11
  158. package/dist/components/biz/business/ranking-recommend/server.mjs +0 -2
  159. package/dist/components/biz/business/ranking-recommend/shared/query.mjs +0 -2
  160. package/dist/components/biz/business/ranking-recommend/shared.d.mts +0 -15
  161. package/dist/components/biz/business/ranking-recommend/shared.mjs +0 -2
  162. package/dist/components/common/video-player/video-blind-ad-overlay.mjs +0 -2
  163. package/dist/components/common/video-player/video-player-ref-context.mjs +0 -2
  164. package/dist/hooks/use-is-client.d.mts +0 -10
  165. package/dist/hooks/use-is-client.mjs +0 -2
  166. package/dist/store/modules/blind-spot-ad-store.d.mts +0 -116
  167. package/dist/store/modules/blind-spot-ad-store.mjs +0 -2
  168. package/dist/store/modules/video-player-ref-store.d.mts +0 -21
  169. package/dist/store/modules/video-player-ref-store.mjs +0 -2
  170. package/dist/utils/browser-fingerprint.d.mts +0 -13
  171. package/dist/utils/browser-fingerprint.mjs +0 -2
  172. package/dist/utils/request-user-id.d.mts +0 -12
  173. package/dist/utils/request-user-id.mjs +0 -2
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{DetailStyleOneActiveBorderLayer as t,SeriesEpisodes as n}from"../../../../common/series-episodes/index.mjs";import{useCardDecoration as r}from"../../../../../hooks/use-card-decoration.mjs";import{editorPreviewInformation as i}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as a}from"../shared/runtime-context-provider.mjs";import{useEffect as o,useMemo as s,useRef as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m(e,t,n){let r=Number.parseInt(e.id||``,10);return Number.isNaN(r)?e.name?.trim()||n(t):n(r)}function h({text:e}){let t=p(`components.biz.business.detail.detailIntroduction`),[n,r]=l(!1),[i,a]=l(!1),s=c(null);return o(()=>{r(!1)},[e]),o(()=>{if(n){a(!0);return}let t=s.current;if(!e||!t){a(!1);return}let r=()=>{a(t.scrollHeight>t.clientHeight+1)};r();let i=new ResizeObserver(r);return i.observe(t),()=>{i.disconnect()}},[n,e]),e?f(`div`,{className:`relative w-full`,children:[d(`p`,{ref:s,className:`w-full font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/50 ${n?``:`line-clamp-3`}`,children:e}),i&&d(`button`,{type:`button`,className:`font-['PingFang_SC'] text-[14px] font-medium not-italic leading-normal text-[#9054E5] ${n?`mt-[8px] ml-auto block`:`absolute right-0 bottom-0 flex h-[24px] w-[40px] items-center justify-end bg-gradient-to-r from-transparent via-[#161616] to-[#161616]`}`,onClick:()=>r(e=>!e),children:t(n?`collapse`:`expand`)})]}):null}function g({information:r,currentSeriesNum:i,onEpisodeChange:a}){let o=p(`components.common.seriesEpisodes`);function s(e){return o(`episodeLabel`,{episode:e})}let[c,h]=l(!1),[g,_]=l(!1),v=r.links?.length??0,y=r.links?.[i-1]?.id||r.links?.[0]?.id||``;return v<=1?null:f(u,{children:[f(`div`,{className:`mt-[16px] flex w-full flex-col gap-[16px]`,children:[f(`button`,{type:`button`,className:`flex w-full items-center justify-between`,onClick:()=>h(!0),children:[d(`span`,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-text1`,children:o(`selectorTitle`)}),d(`span`,{className:`flex items-center opacity-60`,children:d(`span`,{className:`flex h-[24px] w-[24px] items-center justify-center p-[2px]`,children:d(e,{className:`h-[20px] w-[20px] text-text1`})})})]}),d(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(r.links||[]).map((e,n)=>{let o=n+1,c=o===i,l=m(e,o,s);return f(`button`,{type:`button`,className:g?`relative flex h-[40px] min-w-[88px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] px-[16px] transition-colors ${c?``:`bg-white/10`}`:`relative flex h-[56px] w-[56px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] transition-colors ${c?``:`bg-white/10`}`,onClick:()=>a(o),children:[c&&d(t,{}),d(`span`,{className:`relative z-10 font-['PingFang_SC'] font-medium not-italic leading-[16px] ${c?`text-[#9756E3]`:`text-text1`} ${g?`text-[14px] whitespace-nowrap`:`text-[16px]`}`,children:g?l:o})]},e.id||`${r.id}-episode-${o}`)})})]}),d(n,{mode:`selector`,open:c,variant:`popup`,title:o(`selectorTitle`),updateStatus:r.update_status,seriesList:(r.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:y,showEpisodeTitle:g,onToggleTitle:e=>_(!!e),onClose:()=>h(!1),onSelectEpisode:(e,t)=>{h(!1),a(t)},popupStylePreset:`detail-style-one`})]})}function _({showTags:e=!0,showEpisodes:t=!0,mode:n=`renderer`}){let o=a(),c=o?.information,l=o?.currentSeriesNum??1,u=o?.onEpisodeChange,p=o?.isShow??!0,m=n===`editor`,{getTitleText:_}=r(),y=m,b=y?i:c,x=s(()=>b?_(b):``,[_,b]),S=s(()=>b?.description?.trim()||``,[b?.description]),C=s(()=>v(b?.score),[b?.score]);if(!b)return null;let w=Math.max(1,Number(l||1)),T=y?e=>{}:u??(()=>{}),E=e&&(b.tags?.length??0)>0,D=p&&!!S,O=(m||t)&&b.is_more_link===`y`&&(b.links?.length??0)>1;return!x&&!C&&!E&&!D&&!O?null:d(`div`,{className:y?`pointer-events-none`:void 0,children:f(`div`,{className:`w-full px-[12px] pt-[16px]`,children:[f(`div`,{className:`flex w-full flex-col gap-[12px]`,children:[(x||C)&&f(`div`,{className:`flex w-full items-center justify-between gap-[12px]`,children:[d(`p`,{className:`min-w-0 flex-1 truncate font-['PingFang_SC'] text-[18px] font-medium not-italic leading-normal text-text1`,children:x}),C&&d(`span`,{className:`shrink-0 font-['DIN'] text-[18px] font-bold not-italic leading-[20px] text-[#FFC039]`,children:C})]}),E&&d(`div`,{className:`flex items-center gap-[6px] overflow-x-auto overflow-y-hidden [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(b.tags||[]).map((e,t)=>d(`div`,{className:`flex h-[24px] shrink-0 items-center justify-center rounded-[4px] bg-[rgba(217,217,217,0.2)] px-[4px] py-[2px]`,children:d(`span`,{className:`font-['PingFang_SC'] text-[12px] font-normal not-italic leading-[14px] text-text1`,children:e.name})},`${e.id||e.name}-${t}`))}),D&&d(h,{text:S})]}),O&&d(g,{information:b,currentSeriesNum:w,onEpisodeChange:T})]})})}function v(e){let t=Number(e||`0`);return!Number.isFinite(t)||t<=0?``:(t>10?t/10:t).toFixed(1)}export{_ as VideoDetailInfoClient};
2
+ "use client";import e from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{DetailStyleOneActiveBorderLayer as t,SeriesEpisodes as n}from"../../../../common/series-episodes/index.mjs";import{useCardDecoration as r}from"../../../../../hooks/use-card-decoration.mjs";import{editorPreviewInformation as i}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as a}from"../shared/runtime-context-provider.mjs";import{useEffect as o,useMemo as s,useRef as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m(e,t,n){let r=Number.parseInt(e.id||``,10);return Number.isNaN(r)?e.name?.trim()||n(t):n(r)}function h({text:e}){let t=p(`components.biz.business.detail.detailIntroduction`),[n,r]=l(!1),[i,a]=l(!1),s=c(null);return o(()=>{r(!1)},[e]),o(()=>{if(n){a(!0);return}let t=s.current;if(!e||!t){a(!1);return}let r=()=>{a(t.scrollHeight>t.clientHeight+1)};r();let i=new ResizeObserver(r);return i.observe(t),()=>{i.disconnect()}},[n,e]),e?f(`div`,{className:`relative w-full`,children:[d(`p`,{ref:s,className:`w-full font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/50 ${n?``:`line-clamp-3`}`,children:e}),i&&d(`button`,{type:`button`,className:`font-['PingFang_SC'] text-[14px] font-medium not-italic leading-normal text-[#9054E5] ${n?`mt-[8px] ml-auto block`:`absolute right-0 bottom-0 flex h-[24px] w-[40px] items-center justify-end bg-gradient-to-r from-transparent via-[#161616] to-[#161616]`}`,onClick:()=>r(e=>!e),children:t(n?`collapse`:`expand`)})]}):null}function g({information:r,currentSeriesNum:i,onEpisodeChange:a}){let o=p(`components.common.seriesEpisodes`);function s(e){return o(`episodeLabel`,{episode:e})}let[c,h]=l(!1),[g,_]=l(!1),v=r.links?.length??0,y=r.links?.[i-1]?.id||r.links?.[0]?.id||``;return v<=1?null:f(u,{children:[f(`div`,{className:`mt-[16px] flex w-full flex-col gap-[16px]`,children:[f(`button`,{type:`button`,className:`flex w-full items-center justify-between`,onClick:()=>h(!0),children:[d(`span`,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-text1`,children:o(`selectorTitle`)}),d(`span`,{className:`flex items-center opacity-60`,children:d(`span`,{className:`flex h-[24px] w-[24px] items-center justify-center p-[2px]`,children:d(e,{className:`h-[20px] w-[20px] text-text1`})})})]}),d(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(r.links||[]).map((e,n)=>{let o=n+1,c=o===i,l=m(e,o,s);return f(`button`,{type:`button`,className:g?`relative flex h-[40px] min-w-[88px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] px-[16px] transition-colors ${c?``:`bg-white/10`}`:`relative flex h-[56px] w-[56px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] transition-colors ${c?``:`bg-white/10`}`,onClick:()=>a(o),children:[c&&d(t,{}),d(`span`,{className:`relative z-10 leading-[16px] ${c?`text-[#CA3FE9]`:`text-text1`} ${g?`text-[14px] whitespace-nowrap`:`text-[16px]`}`,children:g?l:o})]},e.id||`${r.id}-episode-${o}`)})})]}),d(n,{mode:`selector`,open:c,variant:`popup`,title:o(`selectorTitle`),videoTitle:r.name,updateStatus:r.update_status,seriesList:(r.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:y,showEpisodeTitle:g,onToggleTitle:e=>_(!!e),onClose:()=>h(!1),onSelectEpisode:(e,t)=>{h(!1),a(t)},popupStylePreset:`detail-style-one`})]})}function _({showTags:e=!0,showEpisodes:t=!0,mode:n=`renderer`}){let o=a(),c=o?.information,l=o?.currentSeriesNum??1,u=o?.onEpisodeChange,p=o?.isShow??!0,m=n===`editor`,{getTitleText:_}=r(),y=m,b=y?i:c,x=s(()=>b?_(b):``,[_,b]),S=s(()=>b?.description?.trim()||``,[b?.description]),C=s(()=>v(b?.score),[b?.score]);if(!b)return null;let w=Math.max(1,Number(l||1)),T=y?e=>{}:u??(()=>{}),E=e&&(b.tags?.length??0)>0,D=p&&!!S,O=(m||t)&&b.is_more_link===`y`&&(b.links?.length??0)>1;return!x&&!C&&!E&&!D&&!O?null:d(`div`,{className:y?`pointer-events-none`:void 0,children:f(`div`,{className:`w-full px-[12px] pt-[16px]`,children:[f(`div`,{className:`flex w-full flex-col gap-[12px]`,children:[(x||C)&&f(`div`,{className:`flex w-full items-center justify-between gap-[12px]`,children:[d(`p`,{className:`min-w-0 flex-1 truncate font-['PingFang_SC'] text-[18px] font-medium not-italic leading-normal text-text1`,children:x}),C&&d(`span`,{className:`shrink-0 font-['DIN'] text-[18px] font-bold not-italic leading-[20px] text-[#FFC039]`,children:C})]}),E&&d(`div`,{className:`flex items-center gap-[6px] overflow-x-auto overflow-y-hidden [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(b.tags||[]).map((e,t)=>d(`div`,{className:`flex h-[24px] shrink-0 items-center justify-center rounded-[4px] bg-[rgba(217,217,217,0.2)] px-[4px] py-[2px]`,children:d(`span`,{className:`font-['PingFang_SC'] text-[12px] font-normal not-italic leading-[14px] text-text1`,children:e.name})},`${e.id||e.name}-${t}`))}),D&&d(h,{text:S})]}),O&&d(g,{information:b,currentSeriesNum:w,onEpisodeChange:T})]})})}function v(e){let t=Number(e||`0`);return!Number.isFinite(t)||t<=0?``:(t>10?t/10:t).toFixed(1)}export{_ as VideoDetailInfoClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../../ui/box.mjs";import t from"../../../../ui/loading.mjs";import{WaterfallRecommend as n}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{useVideoDetailRecommendData as r}from"./shared.mjs";import{useCallback as i,useMemo as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c(e){let t=[],n=[],r=0,i=0;return e.forEach(e=>{let a=(e.cardKind===`short`?120:218)+16;r<=i?(t.push(e),r+=a):(n.push(e),i+=a)}),{left:t,right:n}}function l(l){let{uiItems:u,shouldShowLoading:d,isPreview:f,resolvedModuleTitle:p,triggerIndex:m,triggerMarker:h}=r(l),g=a(()=>u.map((e,t)=>({key:e.info.id?`detail-recommend-${e.info.id}-${t}`:`detail-recommend-${t}`,sourceIndex:e.sourceIndex,href:e.detailPath||`#`,cardKind:e.cardKind,coverUrl:e.coverUrl,title:e.title,metaPrimaryText:e.showEpisode?e.videoInfoText:``,heatText:e.showPlayCount?e.playCountText:``,score:e.score})),[u]),_=a(()=>c(g),[g]),v=!!p,y=i(({item:e})=>{if(!(e.sourceIndex!==m||!h))return e=>{e&&e.setAttribute(`data-detail-recommend-trigger`,h)}},[m,h]);return g.length?s(e,{className:f?`mt-[16px] w-full pointer-events-none`:`mt-[16px] w-full`,children:[o(n,{title:p,columns:_,sectionClassName:`w-full`,headerClassName:v?`mb-[8px] flex items-center justify-between px-[12px]`:`hidden`,titleClassName:`flex-1 min-w-0 text-[18px] leading-[26px] font-bold line-clamp-1 text-text1`,containerClassName:`relative flex w-full gap-[15px] px-[12px]`,getItemRef:y}),d&&o(e,{className:`w-full flex justify-center py-[12px]`,children:o(t,{size:`medium`,showLabel:!1,className:`text-theme5`})})]}):null}export{l as VideoDetailRecommendClient};
2
+ "use client";import{Box as e}from"../../../../ui/box.mjs";import t from"../../../../ui/loading.mjs";import{WaterfallRecommend as n}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{useVideoDetailRecommendData as r}from"./shared.mjs";import{useCallback as i,useMemo as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c(e){let t=[],n=[],r=0,i=0;return e.forEach(e=>{let a=(e.cardKind===`short`?142:216)+16;r<=i?(t.push(e),r+=a):(n.push(e),i+=a)}),{left:t,right:n}}function l(l){let{uiItems:u,shouldShowLoading:d,isPreview:f,resolvedModuleTitle:p,triggerIndex:m,triggerMarker:h}=r(l),g=a(()=>u.map((e,t)=>({key:e.info.id?`detail-recommend-${e.info.id}-${t}`:`detail-recommend-${t}`,sourceIndex:e.sourceIndex,href:e.detailPath||`#`,cardKind:e.cardKind,coverUrl:e.coverUrl,title:e.title,badgeImageUrl:e.badgeImageUrl,episodeText:e.showEpisode?e.videoInfoText:``,metaPrimaryText:e.showEpisode?e.videoInfoText:``,heatText:e.showPlayCount?e.playCountText:``,score:e.score})),[u]),_=a(()=>c(g),[g]),v=!!p,y=i(({item:e})=>{if(!(e.sourceIndex!==m||!h))return e=>{e&&e.setAttribute(`data-detail-recommend-trigger`,h)}},[m,h]);return g.length?s(e,{className:f?`mt-[16px] w-full pointer-events-none`:`mt-[16px] w-full`,children:[o(n,{title:p,columns:_,sectionClassName:`w-full`,headerClassName:v?`mb-[8px] flex items-center justify-between px-[12px]`:`hidden`,titleClassName:`flex-1 min-w-0 text-[18px] leading-[26px] font-bold line-clamp-1 text-text1`,containerClassName:`relative flex w-full gap-[15px] px-[12px]`,getItemRef:y}),d&&o(e,{className:`w-full flex justify-center py-[12px]`,children:o(t,{size:`medium`,showLabel:!1,className:`text-theme5`})})]}):null}export{l as VideoDetailRecommendClient};
@@ -25,6 +25,7 @@ declare const videoDetailRecommendMaterial: DefineMaterialOption<typeof VideoDet
25
25
  upload: "upload";
26
26
  }>>;
27
27
  coverUrl: zod.ZodOptional<zod.ZodString>;
28
+ badge_url: zod.ZodOptional<zod.ZodString>;
28
29
  titleMode: zod.ZodOptional<zod.ZodEnum<{
29
30
  content: "content";
30
31
  custom: "custom";
@@ -21,6 +21,7 @@ declare const videoDetailRecommendInspectorPropsSchema: z$1.ZodObject<{
21
21
  upload: "upload";
22
22
  }>>;
23
23
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
24
+ badge_url: z$1.ZodOptional<z$1.ZodString>;
24
25
  titleMode: z$1.ZodOptional<z$1.ZodEnum<{
25
26
  content: "content";
26
27
  custom: "custom";
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({rows:e.number(2,{label:`行数`}),columns:e.number(2,{label:`列数`}),smartTagEnabled:e.boolean(!1,{label:`智能铺设`}),title:e.string(`猜你喜欢`,{label:`推荐位名称`}),showPlayCount:e.boolean(!0,{label:`显示播放量`}),playCountDelta:e.number(0,{label:`播放量浮动`}),showEpisode:e.boolean(!0,{label:`显示集数`}),enableInfinite:e.boolean(!1,{label:`无限下拉`}),smartTagIds:n.array(n.string()).optional(),items:n.array(n.object({contentId:n.string(),coverMode:n.enum([`upload`,`content`]).optional(),coverUrl:n.string().optional(),titleMode:n.enum([`custom`,`content`]).optional(),title:n.string().optional(),description:n.string().optional(),showPlayCount:n.boolean().optional(),playCountDelta:n.number().optional(),showEpisode:n.boolean().optional()})).optional()}));({...t(r)});export{r as videoDetailRecommendInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({rows:e.number(2,{label:`行数`}),columns:e.number(2,{label:`列数`}),smartTagEnabled:e.boolean(!1,{label:`智能铺设`}),title:e.string(`猜你喜欢`,{label:`推荐位名称`}),showPlayCount:e.boolean(!0,{label:`显示播放量`}),playCountDelta:e.number(0,{label:`播放量浮动`}),showEpisode:e.boolean(!0,{label:`显示集数`}),enableInfinite:e.boolean(!1,{label:`无限下拉`}),smartTagIds:n.array(n.string()).optional(),items:n.array(n.object({contentId:n.string(),coverMode:n.enum([`upload`,`content`]).optional(),coverUrl:n.string().optional(),badge_url:n.string().optional(),titleMode:n.enum([`custom`,`content`]).optional(),title:n.string().optional(),description:n.string().optional(),showPlayCount:n.boolean().optional(),playCountDelta:n.number().optional(),showEpisode:n.boolean().optional()})).optional()}));({...t(r)});export{r as videoDetailRecommendInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{gContentGetGuessYouLikeVideos as e,pContentBatchGetVideoDetail as t}from"../../../../../service/generated/client.mjs";import{useRequest as n}from"../../../../../hooks/query/use-query.mjs";import{useKeepAliveState as r}from"../../../../common/keep-scroll-position/index.mjs";import{useCardDecoration as i}from"../../../../../hooks/use-card-decoration.mjs";import{buildEditorPreviewRecommendList as a}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as o}from"../shared/runtime-context-provider.mjs";import{applyPlayCountDelta as s,clampColumns as c,mergeManualAndPool as ee,normalizeRecommendRuntimeProps as te,resolveRows as ne}from"./utils.mjs";import{useCallback as re,useEffect as l,useMemo as u,useState as ie}from"react";function d({rows:d,columns:f,smartTagEnabled:h,smartTagIds:g,title:fe,showPlayCount:pe,playCountDelta:me,showEpisode:he,enableInfinite:ge,items:v,mode:y=`renderer`}){let b=o()?.detailId||``,x=y===`editor`,S=x,{getVerticalHoCoverImageUrl:C,getTitleText:w}=i(),T=u(()=>te({smartTagEnabled:h,smartTagIds:g,enableInfinite:ge,items:v}),[ge,v,h,g]),E=T.smartTagEnabled,D=T.smartTagIds,O=u(()=>T.items??[],[T.items]),k=T.enableInfinite&&!x,A=!E,j=k&&E&&!S,_e=ne(d,k),M=c(f),N=_e*M,P=Math.max(1,N),F=u(()=>[`video-detail-recommend`,b||`unknown`,P,D.join(`,`)].join(`:`),[b,P,D]),[ve,I]=r(`${F}:pool`,[]),[L,R]=r(`${F}:has-more`,!1),[z,B]=ie(!1),V=u(()=>a(N),[N]),{data:H,isFetching:ye,isPending:be}=n([`video-detail-recommend`,b,j?`paged`:`all`,P,D.join(`,`)],async()=>S?null:await e({page_size:P,tags:D}),{enabled:!S&&E,refetchOnMount:`always`}),U=u(()=>S?V:p(H?.data?.videos),[H?.data?.videos,V,S]);l(()=>{if(!j){B(!1);return}I(e=>{if(!U.length)return e;if(!e.length)return U;let t=[...U],n=new Set(U.map(e=>e.id).filter(Boolean));return e.forEach(e=>{(!e.id||!n.has(e.id))&&(t.push(e),e.id&&n.add(e.id))}),t});let e=m(H?.data?.videos,P);R(t=>t||e),B(!1)},[H?.data?.videos,U,P,R,I,j]);let W=j?ve:U,G=u(()=>A?Array.from(new Set(O.map(e=>_(e.contentId)).filter(Boolean))):[],[O,A]),{data:K,isFetching:xe,isPending:Se}=n([`video-detail-recommend-manual-details`,G.join(`,`)],async()=>{if(!G.length)return[];let e=await t({ids:G});return(Array.isArray(e.data?.videos)?e.data.videos:[]).map(e=>ae(e))},{enabled:G.length>0,refetchOnMount:`always`}),q=u(()=>A?new Set(O.map(e=>_(e.contentId)).filter(Boolean)):new Set,[O,A]),J=u(()=>S?W:W.filter(e=>!q.has(e.id)),[W,S,q]),Y=u(()=>{if(!A||!O.length)return[];let e=new Map;return W.forEach(t=>{let n=_(t.id);n&&e.set(n,t)}),(K||[]).forEach(t=>{let n=_(t.id);n&&e.set(n,t)}),O.map((t,n)=>{let r=S?V[n%Math.max(1,V.length)]:le(t,n),i=_(t.contentId),a=typeof t.coverUrl==`string`?t.coverUrl.trim():``,o=e.get(i)??{...r,id:i||r.id||`preview-manual-${n+1}`,name:r.name||`猜你喜欢 ${n+1}`,img_y:a||r.img_y,img_x:a||r.img_x},s=t.titleMode===`custom`?t.title:w(o),c=t.coverMode===`content`?C(o)||a:a||C(o);return{info:{...o,name:s||o.name,img_y:c||o.img_y,img_x:c||o.img_x},config:{showPlayCount:t.showPlayCount,playCountDelta:t.playCountDelta,showEpisode:t.showEpisode}}}).filter(Boolean)},[V,W,w,C,S,K,O,A]),X=u(()=>J.map(e=>({info:e})),[J]),Ce=A&&O.length>0,we=u(()=>Ce?Y:ee(Y,X,N),[Ce,Y,N,X]),Z=u(()=>{if(j||k){if(!Y.length)return X;let e=new Set(Y.map(e=>e.info.id).filter(Boolean));return Y.concat(X.filter(t=>!e.has(t.info.id)))}return we},[we,Y,X,k,j]),Q=L&&Z.length>0?Math.max(0,Z.length-4):-1,$=Q>=0?`${F}:${Q}`:``,Te=String(fe||``).trim(),Ee=re(async()=>{if(!(!j||!L||z)){B(!0);try{let t=await e({page_size:P,tags:D}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=p(n),i=0;I(e=>{let t=new Set(e.map(e=>e.id).filter(Boolean)),n=[...e];return r.forEach(e=>{(!e.id||!t.has(e.id))&&(n.push(e),e.id&&t.add(e.id))}),i=n.length-e.length,n}),R(m(n,P)&&i>0)}catch(e){console.error(`猜你喜欢分页加载失败`,e),R(!1)}finally{B(!1)}}},[L,z,P,D,R,I,j]);l(()=>{if(!$||!L||z||!j)return;let e=document.querySelector(`[data-detail-recommend-trigger="${$}"]`);if(!(e instanceof HTMLElement))return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&!z&&Ee()});return t.observe(e),()=>{t.disconnect()}},[Ee,L,z,j,$]);let De=!S&&(z||E&&(ye||be)||G.length>0&&(xe||Se));return{uiItems:u(()=>Z.map((e,t)=>{let n=pe!==!1&&(e.config?.showPlayCount??!0),r=Number(e.config?.playCountDelta??me??0),i=e.config?.showEpisode??he;return{sourceIndex:t,info:e.info,title:w(e.info),coverUrl:C(e.info),detailPath:y===`renderer`?ce(e.info):``,playCountText:se(s(e.info.play_count||0,r)),videoInfoText:oe(e.info),showPlayCount:n,showEpisode:i,score:ue(e.info.score),cardKind:de(e.info)}}),[Z,w,C,y,me,he,pe]),shouldShowLoading:De,isPreview:S,resolvedColumns:M,resolvedModuleTitle:Te,triggerIndex:Q,triggerMarker:$}}function f(e){let t=e.is_more_link?`y`:`n`;return{id:e.video_id||``,mid:``,name:e.name||``,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:e.content_type,episode_cnt:e.episode_count||0,show_at:e.show_at??``,position:``,img_type:e.img_type??``,img_x:e.img_x??``,img_y:e.img_y??``,img_width:``,img_height:``,play_count:e.play_count,preview_images:[],duration:String(e.duration??``),score:String(e.score??``),is_more_link:t,update_status:String(e.update_status??``),description:e.description??``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:e.source_tags??``,source_actor:[],links:Array.isArray(e.episodes)?e.episodes.map(e=>({id:e.id??``,name:e.name??``,preview_m3u8_url:e.preview_m3u8_url??``,m3u8_url:e.m3u8_url??``})):[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function p(e){return Array.isArray(e)?e.map(e=>f(e)):[]}function ae(e){let t=String(e?.id||e?.mid||e?.video_id||``),n=e?.is_more_link===`y`?`y`:`n`,r=Array.isArray(e?.links)?e.links.map(e=>({id:String(e?.id||``),name:String(e?.name||``),preview_m3u8_url:String(e?.preview_m3u8_url||``),m3u8_url:String(e?.m3u8_url||``)})):[],i=Array.isArray(e?.video_episodes)?e.video_episodes.length:0,a=Number(e?.episode_cnt||i||r.length||0);return{id:t,mid:String(e?.mid||t),name:String(e?.name||``),cat_id:String(e?.cat_id||``),cat_name:String(e?.cat_name||``),status:String(e?.status||`1`),status_text:String(e?.status_text||``),create_time:String(e?.create_time||``),content_type:e?.content_type,episode_cnt:Number.isFinite(a)?a:0,show_at:String(e?.show_at||``),position:String(e?.position||``),img_type:String(e?.img_type||``),img_x:String(e?.img_x||``),img_y:String(e?.img_y||``),img_width:String(e?.img_width||``),img_height:String(e?.img_height||``),play_count:Number(e?.play_count??e?.browse_count??0),preview_images:Array.isArray(e?.preview_images)?e.preview_images:[],duration:String(e?.duration||``),score:String(e?.score||``),is_more_link:n,update_status:String(e?.update_status||``),description:String(e?.description||``),language:String(e?.language||``),director:String(e?.director||``),actor:String(e?.actor||``),area:String(e?.area||``),issue_date:String(e?.issue_date||``),publisher:String(e?.publisher||``),series:String(e?.series||``),number:String(e?.number||``),tags:Array.isArray(e?.tags)?e.tags:[],source_tags:String(e?.source_tags||``),source_actor:Array.isArray(e?.source_actor)?e.source_actor:[],links:r,money:String(e?.money||``),up_user:String(e?.up_user||``),source_username:String(e?.source_username||``),task_id:String(e?.task_id||``),file_status:String(e?.file_status||``)}}function m(e,t){if(!Array.isArray(e)||e.length===0)return!1;let n=e[0];if(typeof n?.has_more==`boolean`)return n.has_more;let r=Number(n?.total??0);return Number.isFinite(r)&&r>0?r>t:e.length>=t}function oe(e){if(h(e)){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return g(Number(e.duration||0))}function h(e){return e.is_more_link===`y`}function g(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function se(e){let t=Number(e||`0`);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function ce(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id}/${t}/episode/1`}function _(e){return typeof e==`string`?e.trim():``}function le(e,t){let n=_(e.contentId)||`manual-${t+1}`,r=typeof e.coverUrl==`string`?e.coverUrl.trim():``,i=typeof e.title==`string`?e.title.trim():``,a=typeof e.description==`string`?e.description.trim():``;return{id:n,mid:n,name:i||`猜你喜欢 ${t+1}`,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:1,episode_cnt:0,show_at:``,position:``,img_type:``,img_x:r,img_y:r,img_width:``,img_height:``,play_count:0,preview_images:[],duration:``,score:``,is_more_link:`n`,update_status:``,description:a,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:``,source_actor:[],links:[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function ue(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function de(e){return String(e.img_type??``).trim().toLowerCase()===`long`?`short`:`tall`}export{d as useVideoDetailRecommendData};
2
+ "use client";import{gContentGetGuessYouLikeVideos as e,pContentBatchGetVideoDetail as t}from"../../../../../service/generated/client.mjs";import{useRequest as n}from"../../../../../hooks/query/use-query.mjs";import{useKeepAliveState as r}from"../../../../common/keep-scroll-position/index.mjs";import{normalizeRecommendBadgeUrl as i}from"../../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import{useCardDecoration as a}from"../../../../../hooks/use-card-decoration.mjs";import{buildEditorPreviewRecommendList as o}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as s}from"../shared/runtime-context-provider.mjs";import{applyPlayCountDelta as ee,clampColumns as c,limitRecommendDisplayList as l,mergeManualAndPool as te,normalizeRecommendRuntimeProps as ne,resolveRows as re}from"./utils.mjs";import{useCallback as ie,useEffect as ae,useMemo as u,useState as oe}from"react";function se({rows:se,columns:ce,smartTagEnabled:f,smartTagIds:p,title:ve,showPlayCount:g,playCountDelta:_,showEpisode:v,enableInfinite:ye,items:y,mode:b=`renderer`}){let x=s()?.detailId||``,be=b===`editor`,S=be,{getVerticalHoCoverImageUrl:C,getTitleText:w}=a(),T=u(()=>ne({smartTagEnabled:f,smartTagIds:p,enableInfinite:ye,items:y}),[ye,y,f,p]),E=T.smartTagEnabled,D=T.smartTagIds,O=u(()=>T.items??[],[T.items]),k=T.enableInfinite&&!be,A=!E,j=k&&E&&!S,xe=re(se,k),M=c(ce),N=xe*M,P=Math.max(1,N),F=u(()=>[`video-detail-recommend`,x||`unknown`,P,D.join(`,`)].join(`:`),[x,P,D]),[Se,I]=r(`${F}:pool`,[]),[L,R]=r(`${F}:cursor`,void 0),[z,B]=r(`${F}:has-more`,!1),[V,H]=oe(!1),U=u(()=>o(N),[N]),{data:W,isFetching:Ce,isPending:we}=n([`video-detail-recommend`,x,j?`paged`:`all`,P,D.join(`,`)],async()=>S?null:await e({cursor:L,page_size:P,tags:D}),{enabled:!S&&E,refetchOnMount:`always`}),G=u(()=>S?U:le(W?.data?.videos),[W?.data?.videos,U,S]);ae(()=>{if(!j){H(!1),R(void 0);return}I(e=>{if(!G.length)return e;if(!e.length)return G;let t=[...G],n=new Set(G.map(e=>e.id).filter(Boolean));return e.forEach(e=>{(!e.id||!n.has(e.id))&&(t.push(e),e.id&&n.add(e.id))}),t});let e=d(W?.data);R(e);let t=e?!0:de(W?.data?.videos,P);B(e=>e||t),H(!1)},[W?.data,G,P,B,R,I,j]);let K=j?Se:G,q=u(()=>A?Array.from(new Set(O.map(e=>m(e.contentId)).filter(Boolean))):[],[O,A]),{data:Te,isFetching:Ee,isPending:De}=n([`video-detail-recommend-manual-details`,q.join(`,`)],async()=>{if(!q.length)return[];let e=await t({ids:q});return(Array.isArray(e.data?.videos)?e.data.videos:[]).map(e=>ue(e))},{enabled:q.length>0,refetchOnMount:`always`}),Oe=u(()=>A?new Set(O.map(e=>m(e.contentId)).filter(Boolean)):new Set,[O,A]),ke=u(()=>S?K:K.filter(e=>!Oe.has(e.id)),[K,S,Oe]),J=u(()=>{if(!A||!O.length)return[];let e=new Map;return K.forEach(t=>{let n=m(t.id);n&&e.set(n,t)}),(Te||[]).forEach(t=>{let n=m(t.id);n&&e.set(n,t)}),O.map((t,n)=>{let r=S?U[n%Math.max(1,U.length)]:he(t,n),a=m(t.contentId),o=typeof t.coverUrl==`string`?t.coverUrl.trim():``,s=e.get(a)??{...r,id:a||r.id||`preview-manual-${n+1}`,name:r.name||`猜你喜欢 ${n+1}`,img_y:o||r.img_y,img_x:o||r.img_x},ee=t.titleMode===`custom`?t.title:w(s),c=t.coverMode===`content`?C(s)||o:o||C(s),l=i(t.badge_url);return{info:{...s,name:ee||s.name,img_y:c||s.img_y,img_x:c||s.img_x,badge_url:l||h(s)},config:{showPlayCount:t.showPlayCount,playCountDelta:t.playCountDelta,showEpisode:t.showEpisode}}}).filter(Boolean)},[U,K,w,C,S,Te,O,A]),Y=u(()=>ke.map(e=>({info:e})),[ke]),Ae=A&&O.length>0,je=u(()=>Ae?J:te(J,Y,N),[Ae,J,N,Y]),Me=u(()=>{if(j||k){if(!J.length)return Y;let e=new Set(J.map(e=>e.info.id).filter(Boolean));return J.concat(Y.filter(t=>!e.has(t.info.id)))}return je},[je,J,Y,k,j]),X=u(()=>l(Me,N,k),[N,Me,k]),Z=z&&X.length>0?Math.max(0,X.length-4):-1,Q=Z>=0?`${F}:${Z}`:``,Ne=String(ve||``).trim(),$=ie(async()=>{if(!(!j||!z||V)){H(!0);try{let t=await e({cursor:L,page_size:P,tags:D}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=d(t.data),i=le(n),a=0;I(e=>{let t=new Set(e.map(e=>e.id).filter(Boolean)),n=[...e];return i.forEach(e=>{(!e.id||!t.has(e.id))&&(n.push(e),e.id&&t.add(e.id))}),a=n.length-e.length,n}),R(r),B((r?!0:de(n,P))&&a>0)}catch(e){console.error(`猜你喜欢分页加载失败`,e),B(!1)}finally{H(!1)}}},[z,V,L,P,D,B,R,I,j]);ae(()=>{if(!Q||!z||V||!j)return;let e=document.querySelector(`[data-detail-recommend-trigger="${Q}"]`);if(!(e instanceof HTMLElement))return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&!V&&$()});return t.observe(e),()=>{t.disconnect()}},[$,z,V,j,Q]);let Pe=!S&&(V||E&&(Ce||we)||q.length>0&&(Ee||De));return{uiItems:u(()=>X.map((e,t)=>{let n=g!==!1&&(e.config?.showPlayCount??!0),r=Number(e.config?.playCountDelta??_??0),i=e.config?.showEpisode??v;return{sourceIndex:t,info:e.info,title:w(e.info),coverUrl:C(e.info),badgeImageUrl:h(e.info),detailPath:b===`renderer`?me(e.info):``,playCountText:pe(ee(e.info.play_count||0,r)),videoInfoText:fe(e.info),showPlayCount:n,showEpisode:i,score:ge(e.info.score),cardKind:_e(e.info)}}),[X,w,C,b,_,v,g]),shouldShowLoading:Pe,isPreview:S,resolvedColumns:M,resolvedModuleTitle:Ne,triggerIndex:Z,triggerMarker:Q}}function ce(e){let t=e.is_more_link?`y`:`n`;return{id:e.video_id||``,mid:``,name:e.name||``,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:e.content_type,episode_cnt:e.episode_count||0,show_at:e.show_at??``,position:``,img_type:e.img_type??``,img_x:e.img_x??``,img_y:e.img_y??``,img_width:``,img_height:``,play_count:e.play_count,preview_images:[],duration:String(e.duration??``),score:String(e.score??``),is_more_link:t,update_status:String(e.update_status??``),description:e.description??``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:e.source_tags??``,source_actor:[],links:Array.isArray(e.episodes)?e.episodes.map(e=>({id:e.id??``,name:e.name??``,preview_m3u8_url:e.preview_m3u8_url??``,m3u8_url:e.m3u8_url??``})):[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function le(e){return Array.isArray(e)?e.map(e=>ce(e)):[]}function ue(e){let t=String(e?.id||e?.mid||e?.video_id||``),n=e?.is_more_link===`y`?`y`:`n`,r=Array.isArray(e?.links)?e.links.map(e=>({id:String(e?.id||``),name:String(e?.name||``),preview_m3u8_url:String(e?.preview_m3u8_url||``),m3u8_url:String(e?.m3u8_url||``)})):[],i=Array.isArray(e?.video_episodes)?e.video_episodes.length:0,a=Number(e?.episode_cnt||i||r.length||0);return{id:t,mid:String(e?.mid||t),name:String(e?.name||``),cat_id:String(e?.cat_id||``),cat_name:String(e?.cat_name||``),status:String(e?.status||`1`),status_text:String(e?.status_text||``),create_time:String(e?.create_time||``),content_type:e?.content_type,episode_cnt:Number.isFinite(a)?a:0,show_at:String(e?.show_at||``),position:String(e?.position||``),img_type:String(e?.img_type||``),img_x:String(e?.img_x||``),img_y:String(e?.img_y||``),img_width:String(e?.img_width||``),img_height:String(e?.img_height||``),play_count:Number(e?.play_count??e?.browse_count??0),preview_images:Array.isArray(e?.preview_images)?e.preview_images:[],duration:String(e?.duration||``),score:String(e?.score||``),is_more_link:n,update_status:String(e?.update_status||``),description:String(e?.description||``),language:String(e?.language||``),director:String(e?.director||``),actor:String(e?.actor||``),area:String(e?.area||``),issue_date:String(e?.issue_date||``),publisher:String(e?.publisher||``),series:String(e?.series||``),number:String(e?.number||``),tags:Array.isArray(e?.tags)?e.tags:[],source_tags:String(e?.source_tags||``),source_actor:Array.isArray(e?.source_actor)?e.source_actor:[],links:r,money:String(e?.money||``),up_user:String(e?.up_user||``),source_username:String(e?.source_username||``),task_id:String(e?.task_id||``),file_status:String(e?.file_status||``)}}function de(e,t){if(!Array.isArray(e)||e.length===0)return!1;let n=e[0];if(typeof n?.has_more==`boolean`)return n.has_more;let r=Number(n?.total??0);return Number.isFinite(r)&&r>0?r>t:e.length>=t}function d(e){let t=e?.cursor;return typeof t==`string`&&t.trim()?t:void 0}function fe(e){if(f(e)){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return p(Number(e.duration||0))}function f(e){return e.is_more_link===`y`}function p(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function pe(e){let t=Number(e||`0`);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function me(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id}/${t}/episode/1`}function m(e){return typeof e==`string`?e.trim():``}function h(e){return i(e.badge_url)}function he(e,t){let n=m(e.contentId)||`manual-${t+1}`,r=typeof e.coverUrl==`string`?e.coverUrl.trim():``,i=typeof e.title==`string`?e.title.trim():``,a=typeof e.description==`string`?e.description.trim():``;return{id:n,mid:n,name:i||`猜你喜欢 ${t+1}`,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:1,episode_cnt:0,show_at:``,position:``,img_type:``,img_x:r,img_y:r,img_width:``,img_height:``,play_count:0,preview_images:[],duration:``,score:``,is_more_link:`n`,update_status:``,description:a,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:``,source_actor:[],links:[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function ge(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function _e(e){return String(e.img_type??``).trim().toLowerCase()===`long`?`short`:`tall`}export{se as useVideoDetailRecommendData};
@@ -1,2 +1,2 @@
1
1
 
2
- function e(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===1;if(typeof e==`string`){let t=e.trim().toLowerCase();return t===`true`||t===`1`||t===`y`||t===`yes`||t===`on`}return!1}function t(t){let n=e(t.smartTagEnabled),r=Array.isArray(t.smartTagIds)?t.smartTagIds.map(e=>String(e||``).trim()).filter(Boolean):[],i=n?e(t.enableInfinite):!1,a=Array.isArray(t.items)?t.items.filter(Boolean):t.items;return{...t,smartTagEnabled:n,smartTagIds:r,enableInfinite:i,items:a}}function n(e,t){let n=Number(e||1);if(!Number.isFinite(n))return 1;let r=Math.max(1,Math.floor(n));return t?r:Math.min(10,r)}function r(e){let t=Number(e??3);return Number.isFinite(t)?Math.min(6,Math.max(1,Math.floor(t))):3}function i(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function a(e,t,n){let r=Math.max(0,n),i=e.slice(0,r);return i.length>=r?i:i.concat(t.slice(0,r-i.length))}export{i as applyPlayCountDelta,r as clampColumns,a as mergeManualAndPool,t as normalizeRecommendRuntimeProps,n as resolveRows};
2
+ function e(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===1;if(typeof e==`string`){let t=e.trim().toLowerCase();return t===`true`||t===`1`||t===`y`||t===`yes`||t===`on`}return!1}function t(t){let n=e(t.smartTagEnabled),r=Array.isArray(t.smartTagIds)?t.smartTagIds.map(e=>String(e||``).trim()).filter(Boolean):[],i=n?e(t.enableInfinite):!1,a=Array.isArray(t.items)?t.items.filter(Boolean):t.items;return{...t,smartTagEnabled:n,smartTagIds:r,enableInfinite:i,items:a}}function n(e,t){let n=Number(e||1);if(!Number.isFinite(n))return 1;let r=Math.max(1,Math.floor(n));return t?r:Math.min(10,r)}function r(e){let t=Number(e??3);return Number.isFinite(t)?Math.min(6,Math.max(1,Math.floor(t))):3}function i(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function a(e,t,n){let r=Math.max(0,n),i=e.slice(0,r);return i.length>=r?i:i.concat(t.slice(0,r-i.length))}function o(e,t,n){return n?e:e.slice(0,Math.max(0,t))}export{i as applyPlayCountDelta,r as clampColumns,o as limitRecommendDisplayList,a as mergeManualAndPool,t as normalizeRecommendRuntimeProps,n as resolveRows};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e(e=>({logoSrc:e.string(`/static/icons/video.svg`,{label:`菜单图标地址`,required:!1}),logoHref:e.string(`/`,{label:`菜单跳转地址`,required:!1})})),r=t(n);export{r as headerAvatarLogoSearchInspectorDefaultProps,n as headerAvatarLogoSearchInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e(e=>({logoSrc:e.string(``,{label:`菜单图标地址`,required:!1}),logoHref:e.string(`/`,{label:`菜单跳转地址`,required:!1})})),r=t(n);export{r as headerAvatarLogoSearchInspectorDefaultProps,n as headerAvatarLogoSearchInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{HeaderAction as e}from"./header-action.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{logoHref:r,logoSrc:i,variant:a=`default`}=n,o=a===`action`;return t(e,{href:r,ariaLabel:`打开 logo 入口`,imageSrc:i,imageAlt:`logo`,className:o?`h-[24px] w-[24px] text-white`:`h-[40px] w-[40px]`,imageClassName:o?`rounded-full object-cover`:`object-cover`,fallbackIcon:null})}export{n as Logo};
2
+ "use client";import e from"../../../../../assets/icons/search/video.mjs";import{HeaderAction as t}from"./header-action.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{logoHref:i,logoSrc:a,variant:o=`default`}=r,s=o===`action`;return n(t,{href:i,ariaLabel:`打开 logo 入口`,imageSrc:a,imageAlt:`logo`,className:s?`h-[24px] w-[24px] text-white`:`h-[40px] w-[40px]`,imageClassName:s?`rounded-full object-cover`:`object-cover`,fallbackIcon:n(e,{className:s?`h-[24px] w-[24px]`:`h-[40px] w-[40px]`})})}export{r as Logo};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{buildHomeRecommendEditorPreviewData as e}from"../shared/home-recommend-preview.mjs";import t from"../shared/home-recommend-base.mjs";import{useMemo as n}from"react";import{jsx as r}from"react/jsx-runtime";function i({prefetchData:i,mode:a=`renderer`,...o}){let s=a===`editor`,c=o,l=n(()=>s?e({variant:`grid`,schemaTitle:c.title,enableInfinite:c.enableInfinite,dynamicRecommendEnabled:c.smartLayout?.enabled===!0,rows:c.rows,columns:c.columns,items:c.items}):i,[s,i,c.columns,c.enableInfinite,c.items,c.rows,c.smartLayout?.enabled,c.title]);return r(`div`,{className:s?`pointer-events-none`:void 0,children:r(t,{variant:`grid`,props:c,data:l,mode:a})})}export{i as default};
2
+ "use client";import{buildHomeRecommendEditorPreviewData as e}from"../shared/home-recommend-preview.mjs";import t from"../shared/home-recommend-base.mjs";import{useMemo as n}from"react";import{jsx as r}from"react/jsx-runtime";function i({prefetchData:i,mode:a=`renderer`,...o}){let s=a===`editor`,c=o,l=n(()=>s?e({variant:`grid`,schemaTitle:c.title,enableInfinite:c.enableInfinite,smartTagEnabled:c.smartTagEnabled,rows:c.rows,columns:c.columns,items:c.items}):i,[s,i,c.columns,c.enableInfinite,c.items,c.rows,c.smartTagEnabled,c.title]);return r(`div`,{className:s?`pointer-events-none`:void 0,children:r(t,{variant:`grid`,props:c,data:l,mode:a})})}export{i as default};
@@ -11,27 +11,15 @@ import z$1 from "zod";
11
11
  declare const homeRecommendGridInspectorPropsSchema: z$1.ZodObject<{
12
12
  readonly rows: z$1.ZodNumber & SchemaHasDefaultValue;
13
13
  readonly columns: z$1.ZodNumber & SchemaHasDefaultValue;
14
+ readonly smartTagEnabled: z$1.ZodBoolean & SchemaHasDefaultValue;
14
15
  readonly title: z$1.ZodString & SchemaHasDefaultValue;
15
16
  readonly showPlayCount: z$1.ZodBoolean & SchemaHasDefaultValue;
16
17
  readonly playCountDelta: z$1.ZodNumber & SchemaHasDefaultValue;
17
18
  readonly showEpisode: z$1.ZodBoolean & SchemaHasDefaultValue;
18
19
  readonly enableInfinite: z$1.ZodOptional<z$1.ZodBoolean> & SchemaHasDefaultValue;
19
20
  readonly moreLink: z$1.ZodOptional<z$1.ZodString> & SchemaHasDefaultValue;
20
- readonly recommendContentConfig: z$1.ZodOptional<z$1.ZodObject<{
21
- enabled: z$1.ZodOptional<z$1.ZodBoolean>;
22
- categories: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
23
- tags: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
24
- sortRule: z$1.ZodOptional<z$1.ZodString>;
25
- contentForms: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
26
- }, z$1.core.$loose>>;
21
+ readonly smartTagIds: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
27
22
  readonly catId: z$1.ZodOptional<z$1.ZodString> & SchemaHasDefaultValue;
28
- readonly smartLayout: z$1.ZodOptional<z$1.ZodObject<{
29
- enabled: z$1.ZodOptional<z$1.ZodBoolean>;
30
- categories: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
31
- tags: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
32
- sortRule: z$1.ZodOptional<z$1.ZodString>;
33
- contentForms: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
34
- }, z$1.core.$loose>>;
35
23
  readonly items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
36
24
  contentId: z$1.ZodString;
37
25
  coverMode: z$1.ZodOptional<z$1.ZodEnum<{
@@ -40,14 +28,6 @@ declare const homeRecommendGridInspectorPropsSchema: z$1.ZodObject<{
40
28
  }>>;
41
29
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
42
30
  is_ad: z$1.ZodOptional<z$1.ZodBoolean>;
43
- ad: z$1.ZodOptional<z$1.ZodObject<{
44
- ad_code: z$1.ZodOptional<z$1.ZodString>;
45
- ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
46
- ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
47
- ad_advertise_type: z$1.ZodOptional<z$1.ZodNumber>;
48
- ad_advertise_desc: z$1.ZodOptional<z$1.ZodString>;
49
- ad_ext_data: z$1.ZodOptional<z$1.ZodString>;
50
- }, z$1.core.$strip>>;
51
31
  ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
52
32
  ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
53
33
  badge_url: z$1.ZodOptional<z$1.ZodString>;
@@ -68,11 +48,11 @@ declare const homeRecommendGridInspectorPropsSchema: z$1.ZodObject<{
68
48
  }>>;
69
49
  }, z$1.core.$strip>;
70
50
  declare const homeRecommendGridInspectorDefaultProps: {
51
+ smartTagIds: never[];
71
52
  items: never[];
72
- recommendContentConfig: undefined;
73
- smartLayout: undefined;
74
53
  rows: number;
75
54
  columns: number;
55
+ smartTagEnabled: boolean;
76
56
  title: string;
77
57
  showPlayCount: boolean;
78
58
  playCountDelta: number;
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as r,HOME_RECOMMEND_DEFAULT_GRID_ROWS as i,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as a,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as o,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as s,HOME_RECOMMEND_DEFAULT_TITLE as c}from"../shared/home-recommend-default-config.mjs";import{homeRecommendSmartLayoutSchema as l}from"../shared/home-recommend-smart-layout.mjs";import u from"zod";const d=e(e=>({rows:e.number(i,{label:`行数`}),columns:e.number(r,{label:`列数`}),title:e.string(c,{label:`推荐位名称`}),showPlayCount:e.boolean(s,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(a,{label:`播放量浮动`}),showEpisode:e.boolean(o,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`,required:!1}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),recommendContentConfig:l.optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),smartLayout:l.optional(),items:u.array(u.object({contentId:u.string(),coverMode:u.enum([`upload`,`content`]).optional(),coverUrl:u.string().optional(),is_ad:u.boolean().optional(),ad:u.object({ad_code:u.string().optional(),ad_advertise_url:u.string().optional(),ad_advertise_icon:u.string().optional(),ad_advertise_type:u.number().optional(),ad_advertise_desc:u.string().optional(),ad_ext_data:u.string().optional()}).optional(),ad_advertise_url:u.string().optional(),ad_advertise_icon:u.string().optional(),badge_url:u.string().optional(),titleMode:u.enum([`custom`,`content`]).optional(),title:u.string().optional(),description:u.string().optional(),showPlayCount:u.boolean().optional(),playCountDelta:u.number().optional(),showEpisode:u.boolean().optional()})).optional()})),f={...t(d),items:[],recommendContentConfig:void 0,smartLayout:void 0},p={rows:{type:`number`,title:`行数`,default:f.rows},columns:{type:`number`,title:`列数`,default:f.columns},title:{type:`string`,title:`推荐位名称`,default:f.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:f.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:f.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:f.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:f.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:f.moreLink},recommendContentConfig:{type:`object`,title:`推荐内容配置`,description:`频道下发的筛选与排序;enabled 为 true 时走动态列表`,default:f.recommendContentConfig},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:f.catId},smartLayout:{type:`object`,title:`智能筛选配置`,description:`enabled 为 true 时使用最新视频列表接口;categories/tags 取 id 透传 cat_ids、tags`,default:f.smartLayout},items:{type:`array`,title:`推荐项`,default:f.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad:{type:`object`,title:`广告对象`,properties:{ad_code:{type:`string`,title:`广告业务编码`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},ad_advertise_type:{type:`number`,title:`广告类型`},ad_advertise_desc:{type:`string`,title:`广告文案描述`},ad_ext_data:{type:`string`,title:`广告扩展信息`}}},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},description:{type:`string`,title:`简介`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{f as homeRecommendGridInspectorDefaultProps,d as homeRecommendGridInspectorPropsSchema,p as homeRecommendGridPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as r,HOME_RECOMMEND_DEFAULT_GRID_ROWS as i,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as a,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as o,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as s,HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED as c,HOME_RECOMMEND_DEFAULT_TITLE as l}from"../shared/home-recommend-default-config.mjs";import u from"zod";const d=e(e=>({rows:e.number(i,{label:`行数`}),columns:e.number(r,{label:`列数`}),smartTagEnabled:e.boolean(c,{fieldType:`switch`,label:`智能铺设`}),title:e.string(l,{label:`推荐位名称`}),showPlayCount:e.boolean(s,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(a,{label:`播放量浮动`}),showEpisode:e.boolean(o,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`,required:!1}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),smartTagIds:u.array(u.string()).optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),items:u.array(u.object({contentId:u.string(),coverMode:u.enum([`upload`,`content`]).optional(),coverUrl:u.string().optional(),is_ad:u.boolean().optional(),ad_advertise_url:u.string().optional(),ad_advertise_icon:u.string().optional(),badge_url:u.string().optional(),titleMode:u.enum([`custom`,`content`]).optional(),title:u.string().optional(),description:u.string().optional(),showPlayCount:u.boolean().optional(),playCountDelta:u.number().optional(),showEpisode:u.boolean().optional()})).optional()})),f={...t(d),smartTagIds:[],items:[]},p={rows:{type:`number`,title:`行数`,default:f.rows},columns:{type:`number`,title:`列数`,default:f.columns},smartTagEnabled:{type:`boolean`,title:`智能铺设`,default:f.smartTagEnabled},title:{type:`string`,title:`推荐位名称`,default:f.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:f.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:f.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:f.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:f.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:f.moreLink},smartTagIds:{type:`array`,title:`智能铺设标签`,default:f.smartTagIds,items:{type:`string`,title:`标签 ID`}},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:f.catId},items:{type:`array`,title:`推荐项`,default:f.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},description:{type:`string`,title:`简介`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{f as homeRecommendGridInspectorDefaultProps,d as homeRecommendGridInspectorPropsSchema,p as homeRecommendGridPropsSchema};
@@ -11,27 +11,15 @@ import * as zod_v4_core0 from "zod/v4/core";
11
11
  declare const homeRecommendGridMaterial: DefineMaterialOption<typeof HomeRecommendGrid, typeof HomeRecommendGridClient, zod.ZodObject<{
12
12
  readonly rows: zod.ZodNumber & SchemaHasDefaultValue;
13
13
  readonly columns: zod.ZodNumber & SchemaHasDefaultValue;
14
+ readonly smartTagEnabled: zod.ZodBoolean & SchemaHasDefaultValue;
14
15
  readonly title: zod.ZodString & SchemaHasDefaultValue;
15
16
  readonly showPlayCount: zod.ZodBoolean & SchemaHasDefaultValue;
16
17
  readonly playCountDelta: zod.ZodNumber & SchemaHasDefaultValue;
17
18
  readonly showEpisode: zod.ZodBoolean & SchemaHasDefaultValue;
18
19
  readonly enableInfinite: zod.ZodOptional<zod.ZodBoolean> & SchemaHasDefaultValue;
19
20
  readonly moreLink: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
20
- readonly recommendContentConfig: zod.ZodOptional<zod.ZodObject<{
21
- enabled: zod.ZodOptional<zod.ZodBoolean>;
22
- categories: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
23
- tags: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
24
- sortRule: zod.ZodOptional<zod.ZodString>;
25
- contentForms: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
26
- }, zod_v4_core0.$loose>>;
21
+ readonly smartTagIds: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
27
22
  readonly catId: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
28
- readonly smartLayout: zod.ZodOptional<zod.ZodObject<{
29
- enabled: zod.ZodOptional<zod.ZodBoolean>;
30
- categories: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
31
- tags: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
32
- sortRule: zod.ZodOptional<zod.ZodString>;
33
- contentForms: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
34
- }, zod_v4_core0.$loose>>;
35
23
  readonly items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
36
24
  contentId: zod.ZodString;
37
25
  coverMode: zod.ZodOptional<zod.ZodEnum<{
@@ -40,14 +28,6 @@ declare const homeRecommendGridMaterial: DefineMaterialOption<typeof HomeRecomme
40
28
  }>>;
41
29
  coverUrl: zod.ZodOptional<zod.ZodString>;
42
30
  is_ad: zod.ZodOptional<zod.ZodBoolean>;
43
- ad: zod.ZodOptional<zod.ZodObject<{
44
- ad_code: zod.ZodOptional<zod.ZodString>;
45
- ad_advertise_url: zod.ZodOptional<zod.ZodString>;
46
- ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
47
- ad_advertise_type: zod.ZodOptional<zod.ZodNumber>;
48
- ad_advertise_desc: zod.ZodOptional<zod.ZodString>;
49
- ad_ext_data: zod.ZodOptional<zod.ZodString>;
50
- }, zod_v4_core0.$strip>>;
51
31
  ad_advertise_url: zod.ZodOptional<zod.ZodString>;
52
32
  ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
53
33
  badge_url: zod.ZodOptional<zod.ZodString>;
@@ -1,2 +1,2 @@
1
1
 
2
- import e from"./client.mjs";import{normalizeHomeRecommendRuntimeProps as t}from"../shared/home-recommend-runtime-props.mjs";import{resolveHomeRecommendServerData as n}from"../shared/home-recommend-server-data.mjs";import{jsx as r}from"react/jsx-runtime";function i({rows:e,columns:t,smartLayout:n,enableInfinite:r,items:i}){if(r===!0)return 16;let a=Array.isArray(i)?i.length:0;if(n?.enabled!==!0&&a>0)return a;let o=Number(e),s=Number(t);if(!Number.isFinite(o)||!Number.isFinite(s))return 16;let c=Math.floor(o)*Math.floor(s);return!Number.isFinite(c)||c<=0?16:c}async function a(a){let{mode:o=`renderer`,...s}=a,c=t(s);if(o!==`renderer`)return r(e,{...c,mode:o});console.log(`HomeRecommendGrid`,c);let l=await n({enableInfinite:c.enableInfinite,pageSize:i(c),items:c.items,smartLayout:c.smartLayout});return r(e,{...c,prefetchData:l.data,mode:o})}export{a as HomeRecommendGrid};
2
+ import e from"./client.mjs";import{normalizeHomeRecommendRuntimeProps as t}from"../shared/home-recommend-runtime-props.mjs";import{resolveHomeRecommendServerData as n}from"../shared/home-recommend-server-data.mjs";import{jsx as r}from"react/jsx-runtime";function i({rows:e,columns:t,smartTagEnabled:n,enableInfinite:r,items:i}){if(r===!0)return 16;let a=Array.isArray(i)?i.length:0;if(n!==!0&&a>0)return a;let o=Number(e),s=Number(t);if(!Number.isFinite(o)||!Number.isFinite(s))return 16;let c=Math.floor(o)*Math.floor(s);return!Number.isFinite(c)||c<=0?16:c}async function a(a){let{mode:o=`renderer`,...s}=a,c=t(s);if(o!==`renderer`)return r(e,{...c,mode:o});let l=await n({smartTagEnabled:c.smartTagEnabled,smartTagIds:c.smartTagIds,catId:c.catId,enableInfinite:c.enableInfinite,pageSize:i(c),items:c.items});return r(e,{...c,prefetchData:l.data,mode:o})}export{a as HomeRecommendGrid};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{buildHomeRecommendEditorPreviewData as e}from"../shared/home-recommend-preview.mjs";import t from"../shared/home-recommend-base.mjs";import{useMemo as n}from"react";import{jsx as r}from"react/jsx-runtime";function i({prefetchData:i,mode:a=`renderer`,...o}){let s=a===`editor`,c=o,l=n(()=>s?e({variant:`waterfall`,schemaTitle:c.title,enableInfinite:c.enableInfinite,dynamicRecommendEnabled:c.smartLayout?.enabled===!0,items:c.items}):i,[s,i,c.enableInfinite,c.items,c.smartLayout?.enabled,c.title]);return r(`div`,{className:s?`pointer-events-none`:void 0,children:r(t,{variant:`waterfall`,props:c,data:l,mode:a})})}export{i as default};
2
+ "use client";import{buildHomeRecommendEditorPreviewData as e}from"../shared/home-recommend-preview.mjs";import t from"../shared/home-recommend-base.mjs";import{useMemo as n}from"react";import{jsx as r}from"react/jsx-runtime";function i({prefetchData:i,mode:a=`renderer`,...o}){let s=a===`editor`,c=o,l=n(()=>s?e({variant:`waterfall`,schemaTitle:c.title,enableInfinite:c.enableInfinite,smartTagEnabled:c.smartTagEnabled,items:c.items}):i,[s,i,c.enableInfinite,c.items,c.smartTagEnabled,c.title]);return r(`div`,{className:s?`pointer-events-none`:void 0,children:r(t,{variant:`waterfall`,props:c,data:l,mode:a})})}export{i as default};
@@ -9,27 +9,15 @@ import z$1 from "zod";
9
9
  * HomeRecommendWaterfall 物料属性 schema 定义。
10
10
  */
11
11
  declare const homeRecommendWaterfallInspectorPropsSchema: z$1.ZodObject<{
12
+ readonly smartTagEnabled: z$1.ZodBoolean & SchemaHasDefaultValue;
12
13
  readonly title: z$1.ZodString & SchemaHasDefaultValue;
13
14
  readonly showPlayCount: z$1.ZodBoolean & SchemaHasDefaultValue;
14
15
  readonly playCountDelta: z$1.ZodNumber & SchemaHasDefaultValue;
15
16
  readonly showEpisode: z$1.ZodBoolean & SchemaHasDefaultValue;
16
17
  readonly enableInfinite: z$1.ZodBoolean & SchemaHasDefaultValue;
17
18
  readonly moreLink: z$1.ZodOptional<z$1.ZodString> & SchemaHasDefaultValue;
18
- readonly recommendContentConfig: z$1.ZodOptional<z$1.ZodObject<{
19
- enabled: z$1.ZodOptional<z$1.ZodBoolean>;
20
- categories: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
21
- tags: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
22
- sortRule: z$1.ZodOptional<z$1.ZodString>;
23
- contentForms: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
24
- }, z$1.core.$loose>>;
19
+ readonly smartTagIds: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
25
20
  readonly catId: z$1.ZodOptional<z$1.ZodString> & SchemaHasDefaultValue;
26
- readonly smartLayout: z$1.ZodOptional<z$1.ZodObject<{
27
- enabled: z$1.ZodOptional<z$1.ZodBoolean>;
28
- categories: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
29
- tags: z$1.ZodOptional<z$1.ZodArray<z$1.ZodAny>>;
30
- sortRule: z$1.ZodOptional<z$1.ZodString>;
31
- contentForms: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
32
- }, z$1.core.$loose>>;
33
21
  readonly items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
34
22
  contentId: z$1.ZodString;
35
23
  coverMode: z$1.ZodOptional<z$1.ZodEnum<{
@@ -38,14 +26,6 @@ declare const homeRecommendWaterfallInspectorPropsSchema: z$1.ZodObject<{
38
26
  }>>;
39
27
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
40
28
  is_ad: z$1.ZodOptional<z$1.ZodBoolean>;
41
- ad: z$1.ZodOptional<z$1.ZodObject<{
42
- ad_code: z$1.ZodOptional<z$1.ZodString>;
43
- ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
44
- ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
45
- ad_advertise_type: z$1.ZodOptional<z$1.ZodNumber>;
46
- ad_advertise_desc: z$1.ZodOptional<z$1.ZodString>;
47
- ad_ext_data: z$1.ZodOptional<z$1.ZodString>;
48
- }, z$1.core.$strip>>;
49
29
  ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
50
30
  ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
51
31
  badge_url: z$1.ZodOptional<z$1.ZodString>;
@@ -65,9 +45,9 @@ declare const homeRecommendWaterfallInspectorPropsSchema: z$1.ZodObject<{
65
45
  }>>;
66
46
  }, z$1.core.$strip>;
67
47
  declare const homeRecommendWaterfallInspectorDefaultProps: {
48
+ smartTagIds: never[];
68
49
  items: never[];
69
- recommendContentConfig: undefined;
70
- smartLayout: undefined;
50
+ smartTagEnabled: boolean;
71
51
  title: string;
72
52
  showPlayCount: boolean;
73
53
  playCountDelta: number;
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as r,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as i,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as a,HOME_RECOMMEND_DEFAULT_TITLE as o}from"../shared/home-recommend-default-config.mjs";import{homeRecommendSmartLayoutSchema as s}from"../shared/home-recommend-smart-layout.mjs";import c from"zod";const l=e(e=>({title:e.string(o,{label:`推荐位名称`}),showPlayCount:e.boolean(a,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(r,{label:`播放量浮动`}),showEpisode:e.boolean(i,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),recommendContentConfig:s.optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),smartLayout:s.optional(),items:c.array(c.object({contentId:c.string(),coverMode:c.enum([`upload`,`content`]).optional(),coverUrl:c.string().optional(),is_ad:c.boolean().optional(),ad:c.object({ad_code:c.string().optional(),ad_advertise_url:c.string().optional(),ad_advertise_icon:c.string().optional(),ad_advertise_type:c.number().optional(),ad_advertise_desc:c.string().optional(),ad_ext_data:c.string().optional()}).optional(),ad_advertise_url:c.string().optional(),ad_advertise_icon:c.string().optional(),badge_url:c.string().optional(),titleMode:c.enum([`custom`,`content`]).optional(),title:c.string().optional(),showPlayCount:c.boolean().optional(),playCountDelta:c.number().optional(),showEpisode:c.boolean().optional()})).optional()})),u={...t(l),items:[],recommendContentConfig:void 0,smartLayout:void 0},d={title:{type:`string`,title:`推荐位名称`,default:u.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:u.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:u.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:u.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:u.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:u.moreLink},recommendContentConfig:{type:`object`,title:`推荐内容配置`,description:`频道下发的筛选与排序;enabled 为 true 时走动态列表`,default:u.recommendContentConfig},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:u.catId},smartLayout:{type:`object`,title:`智能筛选配置`,description:`enabled 为 true 时使用最新视频列表接口;categories/tags 取 id 透传 cat_ids、tags`,default:u.smartLayout},items:{type:`array`,title:`推荐项`,default:u.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad:{type:`object`,title:`广告对象`,properties:{ad_code:{type:`string`,title:`广告业务编码`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},ad_advertise_type:{type:`number`,title:`广告类型`},ad_advertise_desc:{type:`string`,title:`广告文案描述`},ad_ext_data:{type:`string`,title:`广告扩展信息`}}},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{u as homeRecommendWaterfallInspectorDefaultProps,l as homeRecommendWaterfallInspectorPropsSchema,d as homeRecommendWaterfallPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as r,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as i,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as a,HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED as o,HOME_RECOMMEND_DEFAULT_TITLE as s}from"../shared/home-recommend-default-config.mjs";import c from"zod";const l=e(e=>({smartTagEnabled:e.boolean(o,{fieldType:`switch`,label:`智能铺设`}),title:e.string(s,{label:`推荐位名称`}),showPlayCount:e.boolean(a,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(r,{label:`播放量浮动`}),showEpisode:e.boolean(i,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),smartTagIds:c.array(c.string()).optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),items:c.array(c.object({contentId:c.string(),coverMode:c.enum([`upload`,`content`]).optional(),coverUrl:c.string().optional(),is_ad:c.boolean().optional(),ad_advertise_url:c.string().optional(),ad_advertise_icon:c.string().optional(),badge_url:c.string().optional(),titleMode:c.enum([`custom`,`content`]).optional(),title:c.string().optional(),showPlayCount:c.boolean().optional(),playCountDelta:c.number().optional(),showEpisode:c.boolean().optional()})).optional()})),u={...t(l),smartTagIds:[],items:[]},d={smartTagEnabled:{type:`boolean`,title:`智能铺设`,default:u.smartTagEnabled},title:{type:`string`,title:`推荐位名称`,default:u.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:u.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:u.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:u.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:u.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:u.moreLink},smartTagIds:{type:`array`,title:`智能铺设标签`,default:u.smartTagIds,items:{type:`string`,title:`标签 ID`}},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:u.catId},items:{type:`array`,title:`推荐项`,default:u.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{u as homeRecommendWaterfallInspectorDefaultProps,l as homeRecommendWaterfallInspectorPropsSchema,d as homeRecommendWaterfallPropsSchema};
@@ -9,27 +9,15 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
 
10
10
  //#region components/biz/business/home-recommend/home-recommend-waterfall/material.d.ts
11
11
  declare const homeRecommendWaterfallMaterial: DefineMaterialOption<typeof HomeRecommendWaterfall, typeof HomeRecommendWaterfallClient, zod.ZodObject<{
12
+ readonly smartTagEnabled: zod.ZodBoolean & SchemaHasDefaultValue;
12
13
  readonly title: zod.ZodString & SchemaHasDefaultValue;
13
14
  readonly showPlayCount: zod.ZodBoolean & SchemaHasDefaultValue;
14
15
  readonly playCountDelta: zod.ZodNumber & SchemaHasDefaultValue;
15
16
  readonly showEpisode: zod.ZodBoolean & SchemaHasDefaultValue;
16
17
  readonly enableInfinite: zod.ZodBoolean & SchemaHasDefaultValue;
17
18
  readonly moreLink: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
18
- readonly recommendContentConfig: zod.ZodOptional<zod.ZodObject<{
19
- enabled: zod.ZodOptional<zod.ZodBoolean>;
20
- categories: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
21
- tags: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
22
- sortRule: zod.ZodOptional<zod.ZodString>;
23
- contentForms: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
24
- }, zod_v4_core0.$loose>>;
19
+ readonly smartTagIds: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
25
20
  readonly catId: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
26
- readonly smartLayout: zod.ZodOptional<zod.ZodObject<{
27
- enabled: zod.ZodOptional<zod.ZodBoolean>;
28
- categories: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
29
- tags: zod.ZodOptional<zod.ZodArray<zod.ZodAny>>;
30
- sortRule: zod.ZodOptional<zod.ZodString>;
31
- contentForms: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
32
- }, zod_v4_core0.$loose>>;
33
21
  readonly items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
34
22
  contentId: zod.ZodString;
35
23
  coverMode: zod.ZodOptional<zod.ZodEnum<{
@@ -38,14 +26,6 @@ declare const homeRecommendWaterfallMaterial: DefineMaterialOption<typeof HomeRe
38
26
  }>>;
39
27
  coverUrl: zod.ZodOptional<zod.ZodString>;
40
28
  is_ad: zod.ZodOptional<zod.ZodBoolean>;
41
- ad: zod.ZodOptional<zod.ZodObject<{
42
- ad_code: zod.ZodOptional<zod.ZodString>;
43
- ad_advertise_url: zod.ZodOptional<zod.ZodString>;
44
- ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
45
- ad_advertise_type: zod.ZodOptional<zod.ZodNumber>;
46
- ad_advertise_desc: zod.ZodOptional<zod.ZodString>;
47
- ad_ext_data: zod.ZodOptional<zod.ZodString>;
48
- }, zod_v4_core0.$strip>>;
49
29
  ad_advertise_url: zod.ZodOptional<zod.ZodString>;
50
30
  ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
51
31
  badge_url: zod.ZodOptional<zod.ZodString>;
@@ -1,2 +1,2 @@
1
1
 
2
- import e from"./client.mjs";import{normalizeHomeRecommendRuntimeProps as t}from"../shared/home-recommend-runtime-props.mjs";import{resolveHomeRecommendServerData as n}from"../shared/home-recommend-server-data.mjs";import{jsx as r}from"react/jsx-runtime";function i(e,t){if(e===!0)return 16;let n=Array.isArray(t)?t.length:0;return n<=0?16:n}async function a(a){let{mode:o=`renderer`,...s}=a,c=t(s);if(o!==`renderer`)return r(e,{...c,mode:o});let l=await n({enableInfinite:c.enableInfinite,pageSize:i(c.enableInfinite,c.items),items:c.items,smartLayout:c.smartLayout});return r(e,{...c,prefetchData:l.data,mode:o})}export{a as HomeRecommendWaterfall};
2
+ import e from"./client.mjs";import{normalizeHomeRecommendRuntimeProps as t}from"../shared/home-recommend-runtime-props.mjs";import{resolveHomeRecommendServerData as n}from"../shared/home-recommend-server-data.mjs";import{jsx as r}from"react/jsx-runtime";function i(e,t){if(e===!0)return 16;let n=Array.isArray(t)?t.length:0;return n<=0?16:n}async function a(a){let{mode:o=`renderer`,...s}=a,c=t(s);if(o!==`renderer`)return r(e,{...c,mode:o});let l=await n({smartTagEnabled:c.smartTagEnabled,smartTagIds:c.smartTagIds,catId:c.catId,enableInfinite:c.enableInfinite,pageSize:i(c.enableInfinite,c.items),items:c.items});return r(e,{...c,prefetchData:l.data,mode:o})}export{a as HomeRecommendWaterfall};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{pContentGetNewstVideoList as e,pContentGetPopularVideoList as t}from"../../../../../service/generated/client.mjs";import{Image as n}from"../../../../ui/image.mjs";import{Box as r}from"../../../../ui/box.mjs";import{Text as i}from"../../../../ui/text.mjs";import a from"../../../../ui/loading.mjs";import o from"../../../../ui/link.mjs";import{useGridFirstRowHeight as s,useWaterfallFirstRowHeight as c}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as l}from"../../../../../hooks/use-min-duration-loading.mjs";import u from"../../../../../assets/icons/common/right_arrow.mjs";import d from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as f}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as ee,HOME_RECOMMEND_DEFAULT_GRID_ROWS as p,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as m,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as h,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as te,HOME_RECOMMEND_DEFAULT_TITLE as ne,HOME_RECOMMEND_MAX_GRID_COLUMNS as re,HOME_RECOMMEND_MAX_GRID_ROWS as ie}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as ae}from"./home-recommend-preview.mjs";import{isHomeRecommendLatestSortRule as oe}from"./home-recommend-smart-layout.mjs";import{enrichHomeRecommendItemsWithVideoDetails as se}from"./home-recommend-video-detail.mjs";import{useCallback as ce,useEffect as g,useId as _,useLayoutEffect as le,useMemo as v,useRef as y,useState as b}from"react";import{Fragment as ue,jsx as x,jsxs as S}from"react/jsx-runtime";const de={backgroundImage:`var(--gradient-card-mask-medium)`},fe={},pe={list:[]},C=new Map,w=[];function me(e){if(e)return C.get(e)}function he(e,t){if(!e||(C.has(e)||w.push(e),C.set(e,{items:[...t.items],cursor:t.cursor}),w.length<=120))return;let n=w.shift();n&&C.delete(n)}function ge({variant:n,props:ae=fe,data:_=pe,mode:de=`renderer`}){let C=de===`editor`,{list:w,title:ge,cursor:T}=_,E=v(()=>Array.isArray(w)?w:[],[w]),D=v(()=>Array.isArray(_.icons)?_.icons:[],[_.icons]),{rows:O,columns:xe,moreLink:k,title:A,showPlayCount:j,playCountDelta:Se,showEpisode:Ce,enableInfinite:M,items:N,smartLayout:P}=ae,F=P?.enabled===!0,I=F&&oe(P?.sortRule),L=M===!0&&F,R=!C&&L&&E.length>=16,z=v(()=>F||!Array.isArray(N)?``:N.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[F,N]),[B,we]=b(0),[De,V]=b(E),[ke,Ae]=b(D),[je,H]=b(()=>typeof T==`string`?T:void 0),[Me,Ne]=b(!1),Pe=y(null),Fe=y(null),Ie=y(null),Le=y([]),U=y({left:null,right:null}),Re=y(!1),W=y(``),{isLoading:ze,show:Be,hide:Ve}=l(600),He=ye(O,p,ie),G=ye(xe,ee,re),K=L?16:n===`grid`?He*G:16,q=v(()=>[n,(()=>{if(!F||!P)return`manual:${z}`;if(I)return`smart:newest:${P.tagIds.join(`,`)}:${P.catIds.join(`,`)}`;let e=String(P.sortRule??``);return`smart:popular:${P.tagIds.join(`,`)}:${P.catIds.join(`,`)}:sr:${e}`})(),String(K)].join(`|`),[F,z,K,P,I,n]);g(()=>{V(E),Ae(D),H(typeof T==`string`?T:void 0)},[T,D,E]);let Ue=He*G,We=C&&n===`grid`,J=We?De.slice(0,Ue):De,Ge=We?ke.slice(0,Ue):ke,Ke=n===`waterfall`?6:4,qe=J.length>0?Math.max(0,J.length-Ke):-1,Je=!!je,Ye=A&&A.trim()||ge||ne,Y=j??te,X=Number(Se??m),Z=Ce??h,Xe=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,Ze=n===`grid`?d:C?u:d,Qe=ve(k),$e=(n===`waterfall`||!L)&&!!Qe,et=$e?Qe:``,tt=n===`grid`?`flex size-[24px] shrink-0 items-center justify-center ${C?`opacity-100`:`opacity-50`}`:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center ${C?`opacity-100`:`opacity-50`}`,nt=`size-[16px] text-text1`,rt=s({enabled:!C&&n===`grid`,containerRef:Fe,firstRowItemRef:Le,columns:G,itemsCount:J.length,deps:[n]}),it=c({enabled:!C&&n===`waterfall`,containerRef:Pe,firstRowRef:U,deps:[n,J.length]}),at=n===`grid`?rt:it,ot=ce(async()=>{if(C||W.current===q)return;let n=me(q);if(n){V(n.items),F&&H(n.cursor);return}if(F||z){W.current=q;try{if(Be(),!F){if(!z)return;let e=await se(E);V(e),he(q,{items:e});return}if(!P)return;let n={page_size:K,tags:P.tagIds.length>0?P.tagIds:void 0,cat_ids:P.catIds.length>0?P.catIds:void 0},r=I?await e(n,{cache:`no-store`}):await t(n,{cache:`no-store`}),i=Array.isArray(r.data?.videos)?r.data.videos:[],a=r.data?.cursor;V(i),H(a),he(q,{items:i,cursor:a})}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{W.current===q&&(W.current=``),Ve()}}},[Ve,E,C,F,z,q,K,Be,P,I]);g(()=>{ot()},[ot]);let st=ce(async()=>{let n=je;if(!(!R||!n||Re.current)){Re.current=!0,Ne(!0);try{if(!P)return;let r={cursor:n,page_size:K,tags:P.tagIds.length>0?P.tagIds:void 0,cat_ids:P.catIds.length>0?P.catIds:void 0},i=I?await e(r):await t(r),a=Array.isArray(i.data?.videos)?i.data.videos:[],o=i.data?.cursor;a.length>0&&V(e=>e.concat(a)),H(e=>{if(!(!a.length||!o))return o===e?void 0:o})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),H(void 0)}finally{Re.current=!1,Ne(!1)}}},[je,K,R,P,I]);g(()=>{let e=Ie.current;if(!e||!R||!Je)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||Me||st()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[st,Je,Me,J.length,K,R,qe]),le(()=>{let e=Pe.current;if(!e||n!==`waterfall`)return;let t=()=>{let t=e.clientWidth||0;we(t>0?(t-15)/2:0)};t();let r=new ResizeObserver(t);return r.observe(e),()=>{r.disconnect()}},[n]);let Q=v(()=>n===`waterfall`?Ee(J,Ge,B):{left:[],right:[]},[B,Ge,J,n]),ct=v(()=>n===`waterfall`?{left:Q.left.map(e=>Te(e,Y,X,Z)),right:Q.right.map(e=>Te(e,Y,X,Z))}:{left:[],right:[]},[X,Z,Y,n,Q.left,Q.right]);if(g(()=>{n===`waterfall`&&(Q.left.length||(U.current.left=null),Q.right.length||(U.current.right=null))},[n,Q.left.length,Q.right.length]),!J.length)return null;let $=!C&&ze,lt=!C&&Me,ut=at>0?at/2:160;return S(r,{className:`w-full mt-[16px]`,children:[n===`grid`&&S(r,{className:`flex items-center justify-between pl-[16px] pr-0 mb-[16px]`,children:[x(i,{className:Xe,children:Ye}),$e&&x(o,{href:et,"aria-label":`更多`,className:tt,children:x(Ze,{className:nt})})]}),n===`grid`&&S(r,{ref:Fe,className:`relative flex w-full flex-wrap items-start gap-[16px] px-[16px]`,children:[J.map((e,t)=>{let n=Ge[t],r=be(e);return x(`div`,{ref:e=>{t===qe&&(Ie.current=e),t<G&&(Le.current[t]=e)},className:`w-[calc((100%-16px)/2)]`,children:x(_e,{item:e,icon:n,index:t,showPlayCount:Y&&(r?.showPlayCount??!0),playCountDelta:r?.playCountDelta??X,showEpisode:r?.showEpisode??Z,widthStyle:{width:`100%`}})},Oe(e,t))}),$&&x(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&x(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ut},"aria-hidden":!0,children:x(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),n===`waterfall`&&x(f,{title:Ye,moreHref:et||void 0,moreIcon:$e?x(Ze,{className:nt}):void 0,titleClassName:Xe,moreLinkClassName:tt,columns:ct,containerClassName:`relative flex w-full gap-[15px] px-[16px]`,getItemRef:({item:e,column:t,columnIndex:n})=>r=>{e.sourceIndex===qe&&(Ie.current=r),n===0&&(U.current[t]=r)},overlay:$?S(ue,{children:[x(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),x(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ut},"aria-hidden":!0,children:x(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]}):void 0}),lt&&x(r,{className:`w-full flex justify-center py-[12px]`,children:x(a,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function _e({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o}){return x(T,{item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o})}function T({item:e,icon:t,index:a,showPlayCount:s,playCountDelta:c,showEpisode:l,widthStyle:u}){let d=xe(e),f=e.name||e?.title||``,ee=e.id?O(e):`#`,p=we(e,t,a),m=I(e,l),h=s?M(e.static?.browse_cnt??0,c):``;return x(o,{href:ee,className:`block w-full`,style:u,children:S(r,{className:`relative w-full overflow-hidden rounded-[8px] bg-bg3`,style:{aspectRatio:`109 / 150`},children:[d&&x(n,{src:d,alt:f||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover object-top`}),x(r,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:de,"aria-hidden":!0}),p&&x(r,{className:`absolute left-[8px] top-[8px] z-10`,children:x(E,{url:p})}),m&&x(r,{className:`absolute right-[8px] top-[10px] z-10 max-w-[56px]`,children:x(i,{as:`span`,className:`block text-right text-[10px] leading-[14px] font-medium not-italic text-text1 line-clamp-1 font-['PingFang_SC']`,children:m})}),S(r,{className:`absolute left-[8px] right-[8px] bottom-[8px] top-[78px] z-10 flex flex-col justify-end`,children:[x(r,{className:`flex min-h-[40px] w-full items-end`,children:x(i,{as:`h3`,className:`w-full line-clamp-2 text-[14px] font-medium not-italic leading-normal text-white font-['PingFang_SC']`,children:f})}),h&&S(r,{className:`flex h-[20px] items-center gap-[6px]`,children:[x(D,{className:`h-[15px] w-[12px] shrink-0`}),x(i,{as:`span`,className:`shrink-0 whitespace-nowrap text-[14px] font-normal not-italic leading-normal text-text3 font-['PingFang_SC']`,children:h})]})]})]})})}function E({url:e}){return x(n,{src:e,alt:`角标`,width:96,height:18,className:`h-[18px] w-auto max-w-[96px] object-contain`})}function D({className:e}){let t=_().replace(/:/g,``),n=`grid-heat-outer-${t}`,r=`grid-heat-highlight-left-${t}`,i=`grid-heat-highlight-right-${t}`;return S(`svg`,{viewBox:`0 0 11.9811 15`,fill:`none`,"aria-hidden":!0,className:e,children:[x(`path`,{d:`M2.94686 4.47572C4.52521 4.03871 4.39118 0.994604 4.39118 0C7.76131 0.497302 8.72372 3.31535 9.20563 4.97302C14.02 7.45953 12.568 15.9138 4.87263 14.9191C-2.42073 13.9763 -0.183446 5.34241 2.94686 4.47572Z`,fill:`url(#${n})`}),x(`path`,{d:`M5.66995 6.45327C6.82541 4.06622 5.16406 1.16037 4.20118 0C4.13684 1.21533 4.37554 3.91735 2.75432 4.45159C1.0513 5.01279 0.16048 7.16814 0 8.16274L3.26275 9.93438C3.58371 9.76861 4.51449 8.84032 5.66995 6.45327Z`,fill:`url(#${r})`,transform:`translate(0.19 0.01)`}),x(`path`,{d:`M3.55359 3.57102C2.65587 2.53581 3.298 0.846416 3.48828 0C0.514078 0.39887 -0.0720454 5.22416 0.0066677 7.58695L4.28508 8.57876C4.99512 7.12607 4.45131 4.60622 3.55359 3.57102Z`,fill:`url(#${i})`,transform:`translate(7.39 2.85)`}),S(`defs`,{children:[S(`linearGradient`,{id:n,x1:`7.35676`,y1:`1.93157`,x2:`3.49864`,y2:`15.4663`,gradientUnits:`userSpaceOnUse`,children:[x(`stop`,{offset:`0.0817308`,stopColor:`#FF3F49`}),x(`stop`,{offset:`0.6`,stopColor:`#FF4D56`}),x(`stop`,{offset:`1`,stopColor:`#FFA060`})]}),S(`linearGradient`,{id:r,x1:`4.39349`,y1:`0`,x2:`0.834125`,y2:`10.4383`,gradientUnits:`userSpaceOnUse`,children:[x(`stop`,{stopColor:`#FFBCB5`}),x(`stop`,{offset:`0.834055`,stopColor:`#FE676F`,stopOpacity:`0`})]}),S(`linearGradient`,{id:i,x1:`2.30551`,y1:`2.82163`,x2:`0.860506`,y2:`6.96924`,gradientUnits:`userSpaceOnUse`,children:[x(`stop`,{stopColor:`#FFA49B`}),x(`stop`,{offset:`1`,stopColor:`#FE676F`,stopOpacity:`0`})]})]})]})}function O(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ve(e){return e?e.trim():``}function ye(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function be(e){return e[ae]}function xe(e){return e.img_y||e.img_x||e?.coverUrl}function k(e){return typeof e==`string`?e:``}function A(e){return typeof e==`string`?e.trim():``}function j(e){return A(e.img_type).toLowerCase()===`long`?`short`:`tall`}function Se(e,t){return t===`short`?e.img_x||e.img_y||e?.coverUrl:e.img_y||e.img_x||e?.coverUrl}function Ce(e,t){return(e.tags?.map(e=>e.name).filter(Boolean).join(` · `)??``)||(t?F(e,!0):``)}function M(e,t){let n=z(e,t);return n<=0?``:`${N(n)}热度`}function N(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e4?`${Math.floor(e/1e4)}万`:Math.floor(e).toString()}function P(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function F(e,t){return t?L(e)||B(Number(e.duration||0)):``}function I(e,t){return t?L(e):``}function L(e){if(!R(e))return``;let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}function R(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function z(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function B(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function we(e,t,n){return k(e.badge_url)||k(t?.material_url)||``}function Te(e,t,n,r){let i=j(e.item),a=Se(e.item,i),o=e.item.name||e.item?.title||``,s=e.item.id?O(e.item):`#`,c=we(e.item,e.icon,e.index),l=Ce(e.item,r),u=t?M(e.item.static?.browse_cnt??0,n):``,d=P(e.item.score);return{key:Oe(e.item,e.index),sourceIndex:e.index,href:s,cardKind:i,coverUrl:a,title:o,badgeImageUrl:c,metaPrimaryText:l,heatText:u,score:d}}function Ee(e,t,n){let r=[],i=[],a=n<=0,o=0,s=0;return e.forEach((e,c)=>{let l=t[c];if(a){c%2==0?r.push({item:e,icon:l,index:c}):i.push({item:e,icon:l,index:c});return}let u=De(n,e);o<=s?(r.push({item:e,icon:l,index:c}),o+=u):(i.push({item:e,icon:l,index:c}),s+=u)}),{left:r,right:i}}function De(e,t){return e?(j(t)===`tall`?218:120)+16:0}function Oe(e,t){return e.id?`home-recommend-${e.id}-${t}`:`home-recommend-${t}`}export{ge as default};
2
+ "use client";import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.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"../../../../ui/loading.mjs";import a from"../../../../ui/link.mjs";import{useGridFirstRowHeight as o,useWaterfallFirstRowHeight as s}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as c}from"../../../../../hooks/use-min-duration-loading.mjs";import l from"../../../../../assets/icons/common/right_arrow.mjs";import u from"../../../../../assets/icons/common/right_arrow_thin.mjs";import ee from"../../../../../assets/icons/detail/video_flag.mjs";import{RECOMMEND_BADGE_IMAGE_CLASS_NAME as d,RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME as te,normalizeRecommendBadgeUrl as f}from"../../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import{WATERFALL_SHORT_CARD_ASPECT_RATIO as p,WATERFALL_TALL_CARD_ASPECT_RATIO as ne,buildWaterfallRecommendLegacyDisplay as m}from"../../../../common/list/waterfall-recommend/waterfall-recommend-display.mjs";import{WaterfallRecommend as re}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as ie,HOME_RECOMMEND_DEFAULT_GRID_ROWS as h,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as ae,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as oe,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as g,HOME_RECOMMEND_DEFAULT_TITLE as se,HOME_RECOMMEND_MAX_GRID_COLUMNS as ce,HOME_RECOMMEND_MAX_GRID_ROWS as le}from"./home-recommend-default-config.mjs";import{buildHomeRecommendHeatText as _,resolveHomeRecommendBrowseCount as v}from"./home-recommend-play-count.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as ue}from"./home-recommend-preview.mjs";import{limitPopularVideoPageItems as de}from"./home-recommend-smart-tag.mjs";import{enrichHomeRecommendItemsWithVideoDetails as fe}from"./home-recommend-video-detail.mjs";import{useCallback as pe,useEffect as y,useLayoutEffect as me,useMemo as b,useRef as x,useState as S}from"react";import{Fragment as he,jsx as C,jsxs as w}from"react/jsx-runtime";const ge={backgroundImage:`var(--gradient-card-mask-medium)`},_e={},ve={list:[]},T=new Map,E=[];function ye(e){if(e)return T.get(e)}function be(e,t){if(!e||(T.has(e)||E.push(e),T.set(e,{items:[...t.items],cursor:t.cursor}),E.length<=120))return;let n=E.shift();n&&T.delete(n)}function xe({variant:t,props:ee=_e,data:d=ve,mode:te=`renderer`}){let f=te===`editor`,{list:p,title:ne,cursor:m}=d,_=b(()=>Array.isArray(p)?p:[],[p]),v=b(()=>Array.isArray(d.icons)?d.icons:[],[d.icons]),{rows:ue,columns:ge,moreLink:T,title:E,smartTagEnabled:xe,smartTagIds:D,catId:O,showPlayCount:k,playCountDelta:Ee,showEpisode:A,enableInfinite:j,items:M}=ee,N=xe===!0,P=j===!0&&N,F=!f&&P&&_.length>=16,I=b(()=>Array.isArray(D)?D.map(e=>String(e||``).trim()).filter(Boolean):[],[D]),L=typeof O==`string`?O.trim():``,R=b(()=>N||!Array.isArray(M)?``:M.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[N,M]),[z,ke]=S(0),[je,B]=S(_),[Me,Ne]=S(v),[Pe,V]=S(()=>typeof m==`string`?m:void 0),[Fe,Ie]=S(!1),Le=x(null),Re=x(null),H=x(null),ze=x([]),U=x({left:null,right:null}),W=x(!1),G=x(``),{isLoading:Be,show:Ve,hide:He}=c(600),Ue=we(ue,h,le),K=we(ge,ie,ce),q=P?16:t===`grid`?Ue*K:16,J=b(()=>[t,N?`smart`:`manual:${R}`,I.join(`,`),L,String(q)].join(`|`),[N,R,L,q,I,t]);y(()=>{B(_),Ne(v),V(typeof m==`string`?m:void 0)},[m,v,_]);let We=Ue*K,Ge=f&&t===`grid`,Y=Ge?je.slice(0,We):je,Ke=Ge?Me.slice(0,We):Me,qe=t===`waterfall`?6:4,Je=Y.length>0?Math.max(0,Y.length-qe):-1,Ye=!!Pe,Xe=E&&E.trim()||ne||se,X=k??g,Z=Number(Ee??ae),Q=A??oe,Ze=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,Qe=t===`grid`?u:f?l:u,$e=Ce(T),et=(t===`waterfall`||!P)&&!!$e,tt=et?$e:``,nt=t===`grid`?`flex size-[24px] shrink-0 items-center justify-center ${f?`opacity-100`:`opacity-50`}`:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center ${f?`opacity-100`:`opacity-50`}`,rt=`size-[16px] text-text1`,it=o({enabled:!f&&t===`grid`,containerRef:Re,firstRowItemRef:ze,columns:K,itemsCount:Y.length,deps:[t]}),at=s({enabled:!f&&t===`waterfall`,containerRef:Le,firstRowRef:U,deps:[t,Y.length]}),ot=t===`grid`?it:at,st=pe(async()=>{if(f||G.current===J)return;let t=ye(J);if(t){B(t.items),N&&V(t.cursor);return}if(N||R){G.current=J;try{if(Ve(),!N){if(!R)return;let e=await fe(_);B(e),be(J,{items:e});return}let t=await e({page_size:q,tags:I.length>0?I:void 0,cat_id:L||void 0},{cache:`no-store`}),n=de(t.data?.videos,q),r=t.data?.cursor;B(n),V(r),be(J,{items:n,cursor:r})}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{G.current===J&&(G.current=``),He()}}},[He,_,f,N,R,J,L,q,I,Ve]);y(()=>{st()},[st]);let ct=pe(async()=>{let t=Pe;if(!(!F||!t||W.current)){W.current=!0,Ie(!0);try{let n=await e({cursor:t,page_size:q,tags:I.length>0?I:void 0,cat_id:L||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=n.data?.cursor;r.length>0&&B(e=>e.concat(r)),V(e=>{if(!(!r.length||!i))return i===e?void 0:i})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),V(void 0)}finally{W.current=!1,Ie(!1)}}},[Pe,L,q,I,F]);y(()=>{let e=H.current;if(!e||!F||!Ye)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||Fe||ct()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[ct,Ye,Fe,Y.length,q,F,Je]),me(()=>{let e=Le.current;if(!e||t!==`waterfall`)return;let n=()=>{let t=e.clientWidth||0;ke(t>0?(t-15)/2:0)};n();let r=new ResizeObserver(n);return r.observe(e),()=>{r.disconnect()}},[t]);let $=b(()=>t===`waterfall`?Oe(Y,Ke,z):{left:[],right:[]},[z,Ke,Y,t]),lt=b(()=>t===`waterfall`?{left:$.left.map(e=>De(e,X,Z,Q)),right:$.right.map(e=>De(e,X,Z,Q))}:{left:[],right:[]},[Z,Q,X,t,$.left,$.right]);if(y(()=>{t===`waterfall`&&($.left.length||(U.current.left=null),$.right.length||(U.current.right=null))},[t,$.left.length,$.right.length]),!Y.length)return null;let ut=!f&&Be,dt=!f&&Fe,ft=ot>0?ot/2:160;return w(n,{className:`w-full mt-[16px]`,children:[t===`grid`&&w(n,{className:`flex items-center justify-between pl-[16px] pr-0 mb-[16px]`,children:[C(r,{className:Ze,children:Xe}),et&&C(a,{href:tt,"aria-label":`更多`,className:nt,children:C(Qe,{className:rt})})]}),t===`grid`&&w(n,{ref:Re,className:`relative flex w-full flex-wrap items-start gap-[16px] px-[16px]`,children:[Y.map((e,t)=>{let n=Ke[t],r=Te(e);return C(`div`,{ref:e=>{t===Je&&(H.current=e),t<K&&(ze.current[t]=e)},className:`w-[calc((100%-16px)/2)]`,children:C(Se,{item:e,icon:n,index:t,showPlayCount:X&&(r?.showPlayCount??!0),playCountDelta:r?.playCountDelta??Z,showEpisode:r?.showEpisode??Q,widthStyle:{width:`100%`}})},Ae(e,t))}),ut&&C(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),ut&&C(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ft},"aria-hidden":!0,children:C(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),t===`waterfall`&&C(re,{title:Xe,moreHref:tt||void 0,moreIcon:et?C(Qe,{className:rt}):void 0,titleClassName:Ze,moreLinkClassName:nt,columns:lt,containerClassName:`relative flex w-full gap-[15px] px-[16px]`,getItemRef:({item:e,column:t,columnIndex:n})=>r=>{e.sourceIndex===Je&&(H.current=r),n===0&&(U.current[t]=r)},overlay:ut?w(he,{children:[C(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),C(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ft},"aria-hidden":!0,children:C(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]}):void 0}),dt&&C(n,{className:`w-full flex justify-center py-[12px]`,children:C(i,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function Se({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o}){return C(D,{item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o})}function D({item:e,icon:i,index:o,showPlayCount:s,playCountDelta:c,showEpisode:l,widthStyle:u}){let re=A(e),ie=re===`short`?p:ne,h=j(e,re),ae=e.name||e?.title||``,oe=e.id?O(e):`#`,g=m({title:ae,badgeImageUrl:z(e,i,o),episodeText:F(e,l),heatText:s?_(v(e),c):``,score:N(e.score)}),se=f(g.topLeftBadgeImageUrl);return C(a,{href:oe,className:`block w-full`,style:u,children:w(he,{children:[w(n,{className:`relative w-full overflow-hidden rounded-[8px] bg-bg3`,style:{aspectRatio:ie},children:[h&&C(t,{src:h,alt:ae||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover object-top`}),C(n,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:ge,"aria-hidden":!0}),se&&C(n,{className:te,children:C(t,{src:se,alt:`角标`,width:96,height:18,className:d})}),g.topRightScoreText&&C(r,{as:`span`,className:`absolute right-[8px] top-[8px] z-10 shrink-0 text-[14px] leading-[22px] font-semibold text-[#FFC24B]`,children:g.topRightScoreText}),w(n,{className:`absolute left-[8px] right-[8px] bottom-[8px] z-10 flex items-end justify-between gap-[8px]`,children:[C(n,{className:`flex min-w-0 items-center gap-[4px]`,children:g.bottomLeftHeatText&&w(he,{children:[C(ee,{className:`h-[16px] w-[16px] shrink-0 text-white`}),C(r,{as:`span`,className:`min-w-0 truncate text-[14px] leading-[20px] text-white`,children:g.bottomLeftHeatText})]})}),g.bottomRightEpisodeText&&C(r,{as:`span`,className:`shrink-0 text-[14px] leading-[20px] text-white`,children:g.bottomRightEpisodeText})]})]}),C(n,{className:`mt-[8px] overflow-hidden`,children:C(r,{as:`h3`,className:`line-clamp-2 text-[16px] leading-[22px] text-[--color-text-white80]`,children:g.title})})]})})}function O(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function Ce(e){return e?e.trim():``}function we(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function Te(e){return e[ue]}function k(e){return typeof e==`string`?e:``}function Ee(e){return typeof e==`string`?e.trim():``}function A(e){return Ee(e.img_type).toLowerCase()===`long`?`short`:`tall`}function j(e,t){return t===`short`?e.img_x||e.img_y||e?.coverUrl:e.img_y||e.img_x||e?.coverUrl}function M(e,t){return(e.tags?.map(e=>e.name).filter(Boolean).join(` · `)??``)||(t?P(e,!0):``)}function N(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function P(e,t){return t?I(e)||R(Number(e.duration||0)):``}function F(e,t){return t?I(e):``}function I(e){if(!L(e))return``;let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}function L(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function R(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function z(e,t,n){return k(e.badge_url)||k(t?.material_url)||``}function De(e,t,n,r){let i=A(e.item),a=j(e.item,i),o=e.item.name||e.item?.title||``,s=e.item.id?O(e.item):`#`,c=z(e.item,e.icon,e.index),l=P(e.item,r),u=M(e.item,r),ee=t?_(v(e.item),n):``,d=N(e.item.score);return{key:Ae(e.item,e.index),sourceIndex:e.index,href:s,cardKind:i,coverUrl:a,title:o,badgeImageUrl:c,episodeText:l,metaPrimaryText:u,heatText:ee,score:d}}function Oe(e,t,n){let r=[],i=[],a=n<=0,o=0,s=0;return e.forEach((e,c)=>{let l=t[c];if(a){c%2==0?r.push({item:e,icon:l,index:c}):i.push({item:e,icon:l,index:c});return}let u=ke(n,e);o<=s?(r.push({item:e,icon:l,index:c}),o+=u):(i.push({item:e,icon:l,index:c}),s+=u)}),{left:r,right:i}}function ke(e,t){return e?(A(t)===`tall`?216:142)+16:0}function Ae(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{xe as default};
@@ -1,2 +1,2 @@
1
1
 
2
- const e=`推荐`,t=1,n=2,r=10,i=6,a=!0,o=0,s=!0,c=!1;function l(e){return e===!0?`manual-with-video-detail`:`popular`}export{c as HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE,n as HOME_RECOMMEND_DEFAULT_GRID_COLUMNS,t as HOME_RECOMMEND_DEFAULT_GRID_ROWS,o as HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA,s as HOME_RECOMMEND_DEFAULT_SHOW_EPISODE,a as HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT,e as HOME_RECOMMEND_DEFAULT_TITLE,i as HOME_RECOMMEND_MAX_GRID_COLUMNS,r as HOME_RECOMMEND_MAX_GRID_ROWS,l as resolveHomeRecommendFeedMode};
2
+ const e=`推荐`,t=1,n=2,r=10,i=6,a=!1,o=!0,s=0,c=!0,l=!1;function u(e){return e===!0?`manual-with-video-detail`:`popular`}export{l as HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE,n as HOME_RECOMMEND_DEFAULT_GRID_COLUMNS,t as HOME_RECOMMEND_DEFAULT_GRID_ROWS,s as HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA,c as HOME_RECOMMEND_DEFAULT_SHOW_EPISODE,o as HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT,a as HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED,e as HOME_RECOMMEND_DEFAULT_TITLE,i as HOME_RECOMMEND_MAX_GRID_COLUMNS,r as HOME_RECOMMEND_MAX_GRID_ROWS,u as resolveHomeRecommendFeedMode};
@@ -0,0 +1,2 @@
1
+
2
+ function e(e){let t=e.static,n=Number(t?.browse_cnt??t?.browse_count??0);return!Number.isFinite(n)||n<0?0:n}function t(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e4?`${Math.floor(e/1e4)}万`:Math.floor(e).toString()}function n(e,n){let r=Number(e||0),i=Number(n||0);return!Number.isFinite(r)||!Number.isFinite(i)?`0`:t(Math.max(0,r+i))}export{n as buildHomeRecommendHeatText,e as resolveHomeRecommendBrowseCount};
@@ -1,2 +1,2 @@
1
1
 
2
- import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as e,HOME_RECOMMEND_DEFAULT_GRID_ROWS as t,HOME_RECOMMEND_DEFAULT_TITLE as n,HOME_RECOMMEND_MAX_GRID_COLUMNS as r,HOME_RECOMMEND_MAX_GRID_ROWS as i}from"./home-recommend-default-config.mjs";const a=`/static/components-thumb/items_cover.png`,o=`__homeRecommendCardConfig`,s=[`东野圭吾作品:11字谜案`,`诡异纸嫁衣:深夜回魂`,`夜行者档案:无声证词`,`狐面新娘:冥婚谜局`,`赤焰长歌:风雪诛心`,`山海禁术:九尾秘闻`],c=[`烧脑悬疑`,`民俗怪谈`,`悬疑推理`,`东方奇幻`,`古风权谋`,`奇诡冒险`],l=[8.9,9.1,8.7,9.3,8.8,9],u=[``,`独播`,``,`巅峰榜·历史上榜`,``,`独播`],d=Array.from({length:60},(e,t)=>{let n=t%2==0,r=s[t%s.length],i=c[t%c.length],o=l[t%l.length],d=u[t%u.length],f=d?[{id:`preview-tag-${t+1}`,name:d}]:void 0,p={browse_cnt:2242e4+t*186e3};return{id:`preview-recommend-${t+1}`,name:r,img_y:a,img_x:a,img_type:t%3==1?`long`:`short`,cat_name:i,score:o,tags:f,type:n?2:1,duration:n?0:60*(18+t),episode_cnt:n?24+t%3*6:0,static:p}});function f({variant:e,enableInfinite:t,rows:n,columns:r,items:i}){let a=Array.isArray(i)?i.length:0;return e===`grid`?a>0?a:Math.max(g(n,r),2,a):t?Math.max(8,a):e===`waterfall`?Math.max(4,a):Math.max(2,a)}function p(e){let t=Math.max(1,Math.floor(e));return Array.from({length:t},(e,t)=>{let n=d[t%d.length];return{...n,id:`preview-recommend-${t+1}`,name:n.name}})}function m(e,t,n){return t.length?e.map((e,r)=>{let i=t[r];if(!i)return e;let a=(i.contentId?n.get(i.contentId):void 0)||e,s=i.titleMode===`custom`?i.title?.trim()||a.name||e.name||``:a.name||e.name||``,c=i.coverUrl?.trim()||``,l=i.coverMode===`content`,u=l?a.img_y||a.img_x||e.img_y||e.img_x||c||``:c||a.img_y||a.img_x||e.img_y||e.img_x||``,d=l?a.img_x||a.img_y||e.img_x||e.img_y||c||``:c||a.img_x||a.img_y||e.img_x||e.img_y||``,f=a.badge_url||e.badge_url||``,p=i.badge_url??f,m=h(i,a),g=i.is_ad===!0;return{...e,...a,id:a.id||e.id||`preview-recommend-${r+1}`,name:s,img_y:u,img_x:d,is_ad:g,ad_advertise_url:g?i.ad_advertise_url?.trim()||``:void 0,ad_advertise_icon:g?i.ad_advertise_icon?.trim()||u||d||``:void 0,badge_url:p||void 0,[o]:m}}):e}function h(e,t){let n=t[o],r={showPlayCount:e.showPlayCount??n?.showPlayCount,playCountDelta:e.playCountDelta??n?.playCountDelta,showEpisode:e.showEpisode??n?.showEpisode};if(!(r.showPlayCount===void 0&&r.playCountDelta===void 0&&r.showEpisode===void 0))return r}function g(n,a){return _(n,t,1,i)*_(a,e,1,r)}function _(e,t,n,r){let i=Number(e);return Number.isFinite(i)?Math.min(r,Math.max(n,Math.floor(i))):t}function v({variant:e,schemaTitle:t,enableInfinite:r,dynamicRecommendEnabled:i,rows:a,columns:o,items:s}){let c=new Map,l=i?[]:Array.isArray(s)?s.filter(Boolean):[],u=m(p(f({variant:e,enableInfinite:r,rows:a,columns:o,items:l})),l,c);return{title:t&&t.trim()||n,list:u,icons:[],cursor:``,show_style:void 0}}export{o as HOME_RECOMMEND_CARD_CONFIG_FIELD,v as buildHomeRecommendEditorPreviewData};
2
+ import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as e,HOME_RECOMMEND_DEFAULT_GRID_ROWS as t,HOME_RECOMMEND_DEFAULT_TITLE as n,HOME_RECOMMEND_MAX_GRID_COLUMNS as r,HOME_RECOMMEND_MAX_GRID_ROWS as i}from"./home-recommend-default-config.mjs";const a=`/static/components-thumb/items_cover.png`,o=`__homeRecommendCardConfig`,s=[`东野圭吾作品:11字谜案`,`诡异纸嫁衣:深夜回魂`,`夜行者档案:无声证词`,`狐面新娘:冥婚谜局`,`赤焰长歌:风雪诛心`,`山海禁术:九尾秘闻`],c=[`烧脑悬疑`,`民俗怪谈`,`悬疑推理`,`东方奇幻`,`古风权谋`,`奇诡冒险`],l=[8.9,9.1,8.7,9.3,8.8,9],u=[``,`独播`,``,`巅峰榜·历史上榜`,``,`独播`],d=Array.from({length:60},(e,t)=>{let n=t%2==0,r=s[t%s.length],i=c[t%c.length],o=l[t%l.length],d=u[t%u.length],f=d?[{id:`preview-tag-${t+1}`,name:d}]:void 0,p={browse_cnt:2242e4+t*186e3};return{id:`preview-recommend-${t+1}`,name:r,img_y:a,img_x:a,img_type:t%3==1?`long`:`short`,cat_name:i,score:o,tags:f,type:n?2:1,duration:n?0:60*(18+t),episode_cnt:n?24+t%3*6:0,static:p}});function f({variant:e,enableInfinite:t,rows:n,columns:r,items:i}){let a=Array.isArray(i)?i.length:0;return e===`grid`?a>0?a:Math.max(g(n,r),2,a):t?Math.max(8,a):e===`waterfall`?Math.max(4,a):Math.max(2,a)}function p(e){let t=Math.max(1,Math.floor(e));return Array.from({length:t},(e,t)=>{let n=d[t%d.length];return{...n,id:`preview-recommend-${t+1}`,name:n.name}})}function m(e,t,n){return t.length?e.map((e,r)=>{let i=t[r];if(!i)return e;let a=(i.contentId?n.get(i.contentId):void 0)||e,s=i.titleMode===`custom`?i.title?.trim()||a.name||e.name||``:a.name||e.name||``,c=i.coverUrl?.trim()||``,l=i.coverMode===`content`,u=l?a.img_y||a.img_x||e.img_y||e.img_x||c||``:c||a.img_y||a.img_x||e.img_y||e.img_x||``,d=l?a.img_x||a.img_y||e.img_x||e.img_y||c||``:c||a.img_x||a.img_y||e.img_x||e.img_y||``,f=a.badge_url||e.badge_url||``,p=i.badge_url??f,m=h(i,a),g=i.is_ad===!0;return{...e,...a,id:a.id||e.id||`preview-recommend-${r+1}`,name:s,img_y:u,img_x:d,is_ad:g,ad_advertise_url:g?i.ad_advertise_url?.trim()||``:void 0,ad_advertise_icon:g?i.ad_advertise_icon?.trim()||u||d||``:void 0,badge_url:p||void 0,[o]:m}}):e}function h(e,t){let n=t[o],r={showPlayCount:e.showPlayCount??n?.showPlayCount,playCountDelta:e.playCountDelta??n?.playCountDelta,showEpisode:e.showEpisode??n?.showEpisode};if(!(r.showPlayCount===void 0&&r.playCountDelta===void 0&&r.showEpisode===void 0))return r}function g(n,a){return _(n,t,1,i)*_(a,e,1,r)}function _(e,t,n,r){let i=Number(e);return Number.isFinite(i)?Math.min(r,Math.max(n,Math.floor(i))):t}function v({variant:e,schemaTitle:t,enableInfinite:r,smartTagEnabled:i,rows:a,columns:o,items:s}){let c=new Map,l=i?[]:Array.isArray(s)?s.filter(Boolean):[],u=m(p(f({variant:e,enableInfinite:r,rows:a,columns:o,items:l})),l,c);return{title:t&&t.trim()||n,list:u,icons:[],cursor:``,show_style:void 0}}export{o as HOME_RECOMMEND_CARD_CONFIG_FIELD,v as buildHomeRecommendEditorPreviewData};
@@ -1,2 +1,2 @@
1
1
 
2
- import{normalizeHomeRecommendSmartLayout as e}from"./home-recommend-smart-layout.mjs";function t(e){let t=e;if(t.smartLayout!==void 0&&t.smartLayout!==null)return t.smartLayout;let n=t.recommendContentConfig;if(typeof n==`object`&&n)return n;let r=t.enabled,i=t.categories,a=t.tags;if(typeof r==`boolean`&&Array.isArray(i)&&Array.isArray(a))return t}function n(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===1;if(typeof e==`string`){let t=e.trim().toLowerCase();return t===`true`||t===`1`||t===`y`||t===`yes`||t===`on`}return!1}function r(r){let i=typeof r.catId==`string`?r.catId.trim():``,a=Array.isArray(r.items)?r.items.filter(Boolean):r.items,o=e(t(r)),s=o?.enabled===!0?n(r.enableInfinite):!1;return{...r,catId:i,enableInfinite:s,items:a,smartLayout:o}}export{r as normalizeHomeRecommendRuntimeProps};
2
+ function e(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===1;if(typeof e==`string`){let t=e.trim().toLowerCase();return t===`true`||t===`1`||t===`y`||t===`yes`||t===`on`}return!1}function t(t){let n=e(t.smartTagEnabled),r=Array.isArray(t.smartTagIds)?t.smartTagIds.map(e=>String(e||``).trim()).filter(Boolean):[],i=typeof t.catId==`string`?t.catId.trim():``,a=n?e(t.enableInfinite):!1,o=Array.isArray(t.items)?t.items.filter(Boolean):t.items;return{...t,smartTagEnabled:n,smartTagIds:r,catId:i,enableInfinite:a,items:o}}export{t as normalizeHomeRecommendRuntimeProps};
@@ -1,2 +1,2 @@
1
1
 
2
- import{pContentGetNewstVideoList as e,pContentGetPopularVideoList as t}from"../../../../../service/generated/client.mjs";import{resolveHomeRecommendFeedMode as n}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as r}from"./home-recommend-preview.mjs";import{isHomeRecommendLatestSortRule as i}from"./home-recommend-smart-layout.mjs";import{batchGetHomeRecommendVideoDetailMap as a}from"./home-recommend-video-detail.mjs";function o(e){return typeof e==`string`?e.trim():``}function s(e){return typeof e==`string`?e.trim():``}function c(e){return Array.isArray(e)?e.map(e=>s(e)).filter(Boolean):[]}function l(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function u(e,t){let n=e,r=o(n.video_id||e.id||e.mid)||t,i=l(n.play_count)??l(e.browse_count),a=l(n.like_count),s=l(n.collect_count),c=(Array.isArray(n.episodes)?n.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0),u=i!==void 0||a!==void 0||s!==void 0?{browse_cnt:i,like_cnt:a,collect_cnt:s}:void 0;return{id:r,mid:o(e.mid),name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type,cat_id:e.cat_id,cat_name:e.cat_name,status:e.status,status_text:e.status_text,show_at:e.show_at,update_status:e.update_status,description:e.description,language:e.language,director:e.director,issue_date:e.issue_date,actor:e.actor,up_user:e.up_user,time:e.time,money:e.money,source_username:e.source_username,task_id:e.task_id,error_msg:e.error_msg,file_status:e.file_status,score:l(e.score)??void 0,duration:l(e.duration)??void 0,episode_cnt:c>0?c:void 0,type:e.is_more_link?2:1,static:u}}function d(e){let t={showPlayCount:e.showPlayCount,playCountDelta:e.playCountDelta,showEpisode:e.showEpisode};if(!(t.showPlayCount===void 0&&t.playCountDelta===void 0&&t.showEpisode===void 0))return t}function f(e,t){let n=s(t.coverUrl),i=t.coverMode===`content`?e.img_y||e.img_x||n||``:n||e.img_y||e.img_x||``,a=s(t.title),o=t.titleMode===`custom`||a&&t.titleMode!==`content`?a:e.name||``,c=s(t.description),l=s(t.badge_url),u=d(t);return{...e,name:o||e.name,img_y:i||e.img_y||e.img_x,img_x:i||e.img_x||e.img_y,description:c||e.description,badge_url:l||e.badge_url,[r]:u}}function p(e){let t=o(e.contentId),n=s(e.coverUrl),r=s(e.title),i=s(e.description);return{id:t,mid:t,name:r||``,img_x:n,img_y:n,description:i,type:1}}async function m(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:o(e.contentId)})),n=t.filter(e=>!!e.contentId).map(e=>({id:e.contentId})),r=n.length?await a(n):new Map;return t.map(e=>{let t=e.contentId?r.get(e.contentId):void 0;return f(t?u(t,e.contentId||``):p(e),e)})}async function h(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:o(e.contentId)})).filter(e=>!!e.contentId);if(!t.length)return[];let n=await a(t.map(e=>({id:e.contentId})));return t.map(e=>{let t=n.get(e.contentId||``);return f(t?u(t,e.contentId||``):p(e),e)})}async function g(t,n,r){let i=Math.max(1,Math.floor(Number(t)||16)),a=c(n),l=(Array.isArray(r)?r:[]).map(e=>s(e)).filter(Boolean);try{let t=[],n=new Set,r=new Set,s=``;for(;t.length<i;){let c=s||`__first__`;if(r.has(c))break;r.add(c);let u=await e({cursor:s||void 0,page_size:i-t.length,tags:a.length>0?a:void 0,cat_ids:l.length>0?l:void 0}),d=Array.isArray(u.data?.videos)?u.data.videos:[];d.forEach(e=>{let r=o(e?.id||e?.mid);r&&n.has(r)||(r&&n.add(r),t.push(e))});let f=u.data?.cursor??``;if(!f||!d.length){s=``;break}s=f}return{videos:t.slice(0,i),nextCursor:s,loaded:!0}}catch(e){return console.error(`推荐位获取最新视频失败(server)`,e),{videos:[],nextCursor:``,loaded:!1}}}async function _(e,n,r){let i=Math.max(1,Math.floor(Number(e)||16)),a=c(n),l=(Array.isArray(r)?r:[]).map(e=>s(e)).filter(Boolean);try{let e=[],n=new Set,r=new Set,s=``;for(;e.length<i;){let c=s||`__first__`;if(r.has(c))break;r.add(c);let u=await t({cursor:s||void 0,page_size:i-e.length,tags:a.length>0?a:void 0,cat_ids:l.length>0?l:void 0}),d=Array.isArray(u.data?.videos)?u.data.videos:[];d.forEach(t=>{let r=o(t?.id||t?.mid);r&&n.has(r)||(r&&n.add(r),e.push(t))});let f=u.data?.cursor??``;if(!f||!d.length){s=``;break}s=f}return{videos:e.slice(0,i),nextCursor:s,loaded:!0}}catch(e){return console.error(`推荐位获取热门视频失败(server)`,e),{videos:[],nextCursor:``,loaded:!1}}}async function v({enableInfinite:e,pageSize:t=16,items:r=[],smartLayout:a}){let o=a?.enabled===!0,s=n(o),c=Array.isArray(r)&&r.length>0,l={list:[],icons:[],title:``,cursor:``,show_style:void 0};if(!o)return c?{feedMode:s,data:{...l,list:await m(r),cursor:``}}:{feedMode:s,data:{...l,list:[],cursor:``}};if(s===`manual-with-video-detail`&&a){let n=i(a.sortRule)?await g(t,a.tagIds,a.catIds):await _(t,a.tagIds,a.catIds);if(n.loaded){let t=e===!0;return{feedMode:s,data:{...l,list:n.videos,cursor:t?n.nextCursor:``}}}try{let e=await h(r);return{feedMode:s,data:{...l,list:e,cursor:``}}}catch(e){return console.error(`推荐位智能铺设补齐视频详情失败(server)`,e),{feedMode:s,data:{...l,list:[],cursor:``}}}}return{feedMode:s,data:l}}export{v as resolveHomeRecommendServerData};
2
+ import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{resolveHomeRecommendFeedMode as t}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as n}from"./home-recommend-preview.mjs";import{limitPopularVideoPageItems as r,resolvePopularVideoPageSize as i}from"./home-recommend-smart-tag.mjs";import{batchGetHomeRecommendVideoDetailMap as a}from"./home-recommend-video-detail.mjs";function o(e){return typeof e==`string`?e.trim():``}function s(e){return typeof e==`string`?e.trim():``}function c(e){return s(e)}function l(e){return Array.isArray(e)?e.map(e=>s(e)).filter(Boolean):[]}function u(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function d(e,t){let n=e,r=o(n.video_id||e.id||e.mid)||t,i=u(n.play_count)??u(e.browse_count),a=u(n.like_count),s=u(n.collect_count),c=(Array.isArray(n.episodes)?n.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0),l=i!==void 0||a!==void 0||s!==void 0?{browse_cnt:i,like_cnt:a,collect_cnt:s}:void 0;return{id:r,mid:o(e.mid),name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type,cat_id:e.cat_id,cat_name:e.cat_name,status:e.status,status_text:e.status_text,show_at:e.show_at,update_status:e.update_status,description:e.description,language:e.language,director:e.director,issue_date:e.issue_date,actor:e.actor,up_user:e.up_user,time:e.time,money:e.money,source_username:e.source_username,task_id:e.task_id,error_msg:e.error_msg,file_status:e.file_status,score:u(e.score)??void 0,duration:u(e.duration)??void 0,episode_cnt:c>0?c:void 0,type:e.is_more_link?2:1,static:l}}function f(e){let t={showPlayCount:e.showPlayCount,playCountDelta:e.playCountDelta,showEpisode:e.showEpisode};if(!(t.showPlayCount===void 0&&t.playCountDelta===void 0&&t.showEpisode===void 0))return t}function p(e,t){let r=s(t.coverUrl),i=t.coverMode===`content`?e.img_y||e.img_x||r||``:r||e.img_y||e.img_x||``,a=s(t.title),o=t.titleMode===`custom`||a&&t.titleMode!==`content`?a:e.name||``,c=s(t.description),l=s(t.badge_url),u=f(t);return{...e,name:o||e.name,img_y:i||e.img_y||e.img_x,img_x:i||e.img_x||e.img_y,description:c||e.description,badge_url:l||e.badge_url,[n]:u}}function m(e){let t=o(e.contentId),n=s(e.coverUrl),r=s(e.title),i=s(e.description);return{id:t,mid:t,name:r||``,img_x:n,img_y:n,description:i,type:1}}async function h(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:o(e.contentId)})),n=t.filter(e=>!!e.contentId).map(e=>({id:e.contentId})),r=n.length?await a(n):new Map;return t.map(e=>{let t=e.contentId?r.get(e.contentId):void 0;return p(t?d(t,e.contentId||``):m(e),e)})}async function g(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:o(e.contentId)})).filter(e=>!!e.contentId);if(!t.length)return[];let n=await a(t.map(e=>({id:e.contentId})));return t.map(e=>{let t=n.get(e.contentId||``);return p(t?d(t,e.contentId||``):m(e),e)})}async function _(t,n,a){let s=i(t),u=l(n),d=c(a);try{let t=[],n=new Set,i=new Set,a=``;for(;t.length<s;){let r=a||`__first__`;if(i.has(r))break;i.add(r);let c=await e({cursor:a||void 0,page_size:s-t.length,tags:u.length>0?u:void 0,cat_id:d||void 0}),l=Array.isArray(c.data?.videos)?c.data.videos:[];l.forEach(e=>{let r=o(e?.id||e?.mid);r&&n.has(r)||(r&&n.add(r),t.push(e))});let f=c.data?.cursor??``;if(!f||!l.length){a=``;break}a=f}return{videos:r(t,s),nextCursor:a,loaded:!0}}catch(e){return console.error(`推荐位获取热门视频失败(server)`,e),{videos:[],nextCursor:``,loaded:!1}}}async function v({smartTagEnabled:e,smartTagIds:n,catId:r,pageSize:i=16,items:a=[]}){let o=t(e),s=e===!0?l(n):[],u=c(r),d=Array.isArray(a)&&a.length>0,f={list:[],icons:[],title:``,cursor:``,show_style:void 0};if(e!==!0)return d?{feedMode:o,data:{...f,list:await h(a),cursor:``}}:{feedMode:o,data:{...f,list:[],cursor:``}};if(o===`manual-with-video-detail`){let e=await _(i,s,u);if(e.loaded)return{feedMode:o,data:{...f,list:e.videos,cursor:e.nextCursor}};try{let e=await g(a);return{feedMode:o,data:{...f,list:e,cursor:``}}}catch(e){return console.error(`推荐位智能铺设补齐视频详情失败(server)`,e),{feedMode:o,data:{...f,list:[],cursor:``}}}}return{feedMode:o,data:f}}export{v as resolveHomeRecommendServerData};
@@ -0,0 +1,2 @@
1
+
2
+ function e(e){let t=Math.floor(Number(e)||16);return!Number.isFinite(t)||t<=0?16:t}function t(t,n){if(!Array.isArray(t))return[];let r=e(n);return t.slice(0,r)}export{t as limitPopularVideoPageItems,e as resolvePopularVideoPageSize};