PageSourceSearch

https://vtvprime.vn/_next/static/chunks/pages/block/[slug]-4e66f9bca0fabc5c.js

js vtvprime.vn collected 2026-10-01 16:06:34 UTC 16,477 bytes, 467 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4745],{1596:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>g});var r=i(37876),o=i(14232),n=i(89099),a=i(78379),l=i(36066),c=i(16758),s=i(28505),p=i(71336),m=i(9842);let d="blockDetailCache:";function u(){let e=(0,n.useRouter)(),{slug:t}=e.query,i=(0,m.wo)(t),a=(0,m.Td)(t),u=(0,o.useRef)(void 0);if(void 0===u.current){let e=function(e){if(!e)return null;try{return JSON.parse(sessionStorage.getItem(d+e)||"null")}catch(e){return null}}(i);u.current=e,e&&function(e){if(e)try{sessionStorage.removeItem(d+e)}catch(e){}}(i)}let g=u.current,[T,y]=(0,o.useState)(g?.data||[]),[S,E]=(0,o.useState)(g?.cursor||""),[f,U]=(0,o.useState)(!g),[R,I]=(0,o.useState)(!1),h=(0,o.useRef)({data:T,cursor:S});(0,o.useEffect)(()=>{h.current={data:T,cursor:S}},[T,S]);let L=async()=>{if(i)try{U(!0);let{data:e,nextCursor:t}=await (0,s.A)(i,null,30);y(e||[]),E(t||""),I(!1)}catch(e){console.log({error:e}),I(!1),y([])}finally{U(!1)}},v=async()=>{if(S)try{U(!0);let{data:e,nextCursor:t}=await (0,p.A)(S);y(t=>[...t||[],...e||[]]),E(t||"")}catch(e){console.log({error:e})}finally{I(!1),U(!1)}};return(0,o.useEffect)(()=>{if(e.isReady&&i){if(g)return void requestAnimationFrame(()=>window.scrollTo(0,g.scrollY||0));L()}},[e.isReady,i]),(0,o.useEffect)(()=>{function e(e){let{scrollHeight:t=0,scrollTop:i=0,clientHeight:r=0}=e.target?.documentElement||{};i+r+1200>t&&I(!0)}return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)},[]),(0,o.useEffect)(()=>{R&&S&&!f&&v()},[R]),(0,r.jsxs)("section",{className:"min-h-[80svh] px-[3.15%] pb-12 pt-20 md:pb-16 md:pt-[100px] xl:pb-20",children:[(0,r.jsx)("h1",{className:"mb-5 text-primary text24_700_32",children:a||"Tất cả nội dung"}),T?.length>0&&(0,r.jsx)("div",{onClickCapture:()=>{if(i){var e={...h.current,scrollY:window.scrollY};if(i)try{sessionStorage.setItem(d+i,JSON.stringify(e))}catch(e){}}},className:"grid grid-cols-2 gap-x-3 gap-y-6 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-5 xl:gap-x-5 xl:gap-y-8",children:T.map((e,t)=>(0,r.jsx)(l.A,{...e,hideText:!1,showTime:!1},`${e?.content?.id||e?.id||"block-content"}-${t}`))}),!f&&T?.length<=0&&(0,r.jsxs)("div",{className:"flex min-h-[500px] w-full flex-col items-center justify-center",children:[c.Z,(0,r.jsx)("b",{className:"text-primary",children:"Chưa c\xf3 nội dung."}),(0,r.jsx)("p",{className:"text-secondary2",children:"Vui l\xf2ng thử lại sau một thời gian"})]})]})}let g=u;u.Layout=a.PE},9842:(e,t,i)=>{"use strict";i.d(t,{Td:()=>a,nF:()=>o,wo:()=>n});let r=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function o(e,t){return t?`/block/${String(e||"").normalize("NFC").replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"")||"block"}-${t}`:""}function n(e){let t=Array.isArray(e)?e[0]:e;return t?String(t).match(r)?.[0]||String(t):""}function a(e){let t=Array.isArray(e)?e[0]:e;return t?String(t).replace(r,"").replace(/-+$/g,"").split("-").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):""}},28505:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var r=i(52639),o=i(79350),n=i(30700);let a=(0,o.J1)`
2  query HomepageBlockContentsByBlockID(
3    $blockID: String!
4    $category: String
5    $pageSize: Int
6    $protocolType: ProtocolType!
7  ) {
8    homepageBlockContentsByBlockID(
9      clientType: WEBSITE
10      blockID: $blockID
11      screenScale: X2
12      category: $category
13      pageSize: $pageSize
14    ) {
15      nextCursor
16      contents {
17        contentType
18        labels
19        imageURL
20        titleArtURL
21        content {
22          id
23          ... on VOD {
24            id
25            contentType
26            title
27            viewCount
28            warningCriteria
29            publicationTimestamp
30            video {
31              playURL(clientType: WEBSITE, protocolType: $protocolType)
32              duration
33              drmEnabled
34              loginRequired
35              drmLicenseToken
36              lastWatchPosition
37              thumbnails {
38                vttURL
39              }
40            }
41            trailer {
42              playURL(clientType: WEBSITE, protocolType: $protocolType)
43            }
44            studioProfile {
45              id
46              title
47              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
48            }
49            categories
50            series {
51              id
52              episodeOffset
53            }
54          }
55          ... on Programme {
56            id
57            startTime
58            stopTime
59            title
60            notificationOn
61            thumbnailURL(screenScale: X2, clientType: WEBSITE)
62            channel {
63              id
64            }
65          }
66          ... on Channel {
67            id
68            title
69            number
70            logoURL(screenScale: X2, clientType: WEBSITE)
71            isVip
72            canCatchUp
73            canStartOver
74            partner
75            labels
76            isFavorite
77            liveImageURL(screenScale: X2, imageName: THUMBNAIL)
78            errorCode
79            video {
80              liveURL(clientType: WEBSITE, protocolType: $protocolType)
81              catchUpURL(clientType: WEBSITE, protocolType: $protocolType)
82              drmEnabled
83              loginRequired
84            }
85            programmes {
86              id
87              startTime
88              stopTime
89              title
90              notificationOn
91              thumbnailURL(clientType: WEBSITE, screenScale: X2)
92            }
93          }
94          ... on Event {
95            id
96            title
97            imageUrl(screenScale: X2, imageName: THUMBNAIL_BIG)
98            startTimestamp
99            duration
100            reminderSet
101            categories
102            errorCode
103            channel {
104              id
105              title
106              number
107              logoURL(screenScale: X2, clientType: WEBSITE)
108              isVip
109              canCatchUp
110              canStartOver
111              partner
112              labels
113              isFavorite
114              liveViewCount
115              errorCode
116              video {
117                liveURL(clientType: WEBSITE, protocolType: $protocolType)
118                catchUpURL(clientType: WEBSITE, protocolType: $protocolType)
119                drmEnabled
120                loginRequired
121              }
122              programmes {
123                id
124                startTime
125                stopTime
126                title
127                notificationOn
128                thumbnailURL(screenScale: X2, clientType: WEBSITE)
129              }
130            }
131          }
132          ... on Series {
133            id
134            title
135            episodeCount
136            viewCount
137            warningCriteria
138            publicationTimestamp
139            trailer {
140              playURL(clientType: WEBSITE, protocolType: $protocolType)
141              thumbnails {
142                vttURL
143              }
144            }
145            currentEpisode {
146              seriesID
147              offset
148              id
149              title
150              imageURL
151              publicationTimestamp
152              viewCount
153              video {
154                duration
155                drmEnabled
156                loginRequired
157                drmLicenseToken
158                lastWatchPosition
159                playURL(clientType: WEBSITE, protocolType: $protocolType)
160                thumbnails {
161                  vttURL
162                }
163              }
164            }
165            studioProfile {
166              id
167              title
168              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
169            }
170            categories
171          }
172          ... on StudioProfile {
173            id
174            title
175            profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
176          }
177          ... on Collection {
178            id
179            collectionType
180            imageURL(screenScale: X2)
181            title
182            viewCount
183            total
184            studioProfile {
185              id
186              title
187              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
188            }
189          }
190          ... on Episode {
191            id
192            commentCount
193            seriesID
194            offset
195            title
196            imageURL
197            publicationTimestamp
198            viewCount
199            likeCount
200            liked
201            saved
202            commentEnabled
203            warningCriteria
204            errorCode
205            video {
206              playURL(clientType: WEBSITE, protocolType: $protocolType)
207              duration
208              drmEnabled
209              loginRequired
210              drmLicenseToken
211              lastWatchPosition
212            }
213            studioProfile {
214              id
215              title
216              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
217            }
218            shareURL
219          }
220          ... on Playlist {
221            id
222            title
223            imageURL(screenScale: X2)
224            shareURL
225            playlistType
226            errorCode
227            itemCount {
228              vod
229              short
230              genericCollection
231              series
232            }
233            user {
234              id
235              avatarURL(imageName: USER_AVATAR, screenScale: X2)
236              fullName
237              birthDate
238              email
239              gender
240              phoneNumber
241            }
242          }
243        }
244      }
245    }
246  }
247`;async function l(e,t,i=9){let o=(0,n.l)()||"DASH";if(e){let{data:n}=await r.client.query({query:a,variables:{blockID:e,pageSize:i,category:t&&"Tất cả"!==t?t:null,protocolType:o},fetchPolicy:"no-cache"});return{data:n?.homepageBlockContentsByBlockID?.contents||[],nextCursor:n?.homepageBlockContentsByBlockID?.nextCursor}}return{data:[],nextCursor:""}}},55100:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/block/[slug]",function(){return i(1596)}])},57293:(e,t,i)=>{"use strict";i.d(t,{A:()=>
247o});var r=i(37876);i(14232);let o=function({labels:e,page:t}){if(e?.includes("PREMIUM")){window.innerWidth;let e="";return e="event-featured-miniapp"===t?"/Home/TagPackage/TagPremium.svg":"/Home/TagPackage/TagPremiumSmall.svg",(0,r.jsx)("div",{className:`absolute ${"event-featured-miniapp"===t?"top-3 right-3":"top-1 right-1"}  w-auto lg:h-[22px] h-[20px]`,children:(0,r.jsx)("img",{src:e,alt:"Premium",className:"w-full h-full object-cover"})})}return(0,r.jsx)(r.Fragment,{})}},71336:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var r=i(79350),o=i(52639);let n=(0,r.J1)`
248  query HomepageBlockContents($cursor: String, $pageSize: Int) {
249    homepageBlockContents(clientType: WEBSITE, cursor: $cursor, screenScale: X2, pageSize: $pageSize) {
250      nextCursor
251      contents {
252        contentType
253        labels
254        imageURL
255        titleArtURL
256        content {
257          id
258          ... on VOD {
259            id
260            contentType
261            title
262            viewCount
263            warningCriteria
264            publicationTimestamp
265            description {
266              html
267            }
268            video {
269              playURL(clientType: WEBSITE)
270              duration
271              drmEnabled
272              drmLicenseToken
273              lastWatchPosition
274              thumbnails {
275                vttURL
276              }
277            }
278            trailer {
279              playURL(clientType: WEBSITE)
280            }
281            studioProfile {
282              id
283              title
284              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
285            }
286            ageRating
287            categories
288            series {
289              id
290              episodeOffset
291            }
292          }
293          ... on Programme {
294            id
295            startTime
296            stopTime
297            title
298            notificationOn
299            thumbnailURL(screenScale: X2, clientType: WEBSITE)
300            channel {
301              id
302              title
303              number
304              logoURL(screenScale: X2, clientType: WEBSITE)
305              canCatchUp
306              canStartOver
307              isFavorite
308              liveViewCount
309              partner
310              labels
311              liveImageURL(screenScale: X2, imageName: THUMBNAIL)
312              video {
313                liveURL(clientType: WEBSITE)
314                catchUpURL(clientType: WEBSITE)
315                drmEnabled
316                loginRequired
317              }
318              studioProfile {
319                id
320                title
321                profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
322              }
323            }
324          }
325          ... on Channel {
326            id
327            title
328            number
329            logoURL(screenScale: X2, clientType: WEBSITE)
330            isVip
331            canCatchUp
332            canStartOver
333            isFavorite
334            partner
335            labels
336            programmes {
337              title
338            }
339            liveImageURL(screenScale: X2, imageName: THUMBNAIL)
340            errorCode
341            video {
342              liveURL(clientType: WEBSITE)
343              catchUpURL(clientType: WEBSITE)
344              drmEnabled
345              loginRequired
346            }
347          }
348          ... on Event {
349            id
350            title
351            imageUrl(screenScale: X2, imageName: THUMBNAIL_BIG)
352            startTimestamp
353            duration
354            reminderSet
355            isReminded
356            categories
357            description {
358              html
359            }
360            errorCode
361            studioProfile {
362              id
363              title
364              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
365              followerCount
366              isVerified
367              followed
368              shareURL
369              errorCode
370            }
371            channel {
372              id
373              title
374              number
375              logoURL(screenScale: X2, clientType: WEBSITE)
376              isVip
377              canCatchUp
378              canStartOver
379              liveViewCount
380              isFavorite
381              partner
382              labels
383              errorCode
384              video {
385                liveURL(clientType: WEBSITE)
386                catchUpURL(clientType: WEBSITE)
387                drmEnabled
388                loginRequired
389              }
390              programmes {
391                id
392                startTime
393                stopTime
394                title
395                notificationOn
396                thumbnailURL(screenScale: X2, clientType: WEBSITE)
397              }
398            }
399          }
400          ... on Series {
401            id
402            title
403            episodeCount
404            viewCount
405            warningCriteria
406            publicationTimestamp
407            description {
408              html
409            }
410            trailer {
411              playURL(clientType: WEBSITE)
412              thumbnails {
413                vttURL
414              }
415            }
416            currentEpisode {
417              seriesID
418              offset
419              id
420              title
421              imageURL
422              publicationTimestamp
423              viewCount
424              video {
425                duration
426                drmEnabled
427                drmLicenseToken
428                lastWatchPosition
429                playURL(clientType: WEBSITE)
430
431                thumbnails {
432                  vttURL
433                }
434              }
435            }
436            studioProfile {
437              id
438              title
439              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
440            }
441            categories
442            ageRating
443          }
444          ... on StudioProfile {
445            id
446            title
447            followed
448            followerCount
449          }
450          ... on Collection {
451            id
452            collectionType
453            imageURL(screenScale: X2)
454            title
455            viewCount
456            total
457            studioProfile {
458              id
459              title
460              profileImageURL(imageName: STUDIO_PROFILE, screenScale: X2)
461            }
462          }
463        }
464      }
465    }
466  }
467`;async function a(e){let{data:t,loading:i,error:r}=await o.client.query({query:n,variables:{pageSize:15,cursor:e},errorPolicy:"ignore",fetchPolicy:"no-cache"});return{loading:i,error:r,data:t?.homepageBlockContents?.contents,nextCursor:t?.homepageBlockContents?.nextCursor}}}},e=>{e.O(0,[4094,5617,636,6593,8792],()=>e(e.s=55100)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.