@clickview/reports 0.86.0-rc.0 → 0.87.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +304 -295
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BV2ee_KR.chunk.js → 28JMpJbt.chunk.js} +2 -2
- package/dist/scripts/{BV2ee_KR.chunk.js.map → 28JMpJbt.chunk.js.map} +1 -1
- package/dist/scripts/{CglHgfcX.chunk.js → BLzQ085A.chunk.js} +2 -2
- package/dist/scripts/{CglHgfcX.chunk.js.map → BLzQ085A.chunk.js.map} +1 -1
- package/dist/scripts/{BWJBtdAK2.chunk.js → BOGodQXj2.chunk.js} +2 -2
- package/dist/scripts/{BWJBtdAK2.chunk.js.map → BOGodQXj2.chunk.js.map} +1 -1
- package/dist/scripts/{dMt3Yeox.chunk.js → BQLCt3Ad.chunk.js} +4 -4
- package/dist/scripts/{dMt3Yeox.chunk.js.map → BQLCt3Ad.chunk.js.map} +1 -1
- package/dist/scripts/{oPoOD_J-2.chunk.js → BQcTfbZm2.chunk.js} +2 -2
- package/dist/scripts/{oPoOD_J-2.chunk.js.map → BQcTfbZm2.chunk.js.map} +1 -1
- package/dist/scripts/BSV_W0cK.chunk.js.map +1 -1
- package/dist/scripts/{PLyhtHwt2.chunk.js → BYLD2f9R2.chunk.js} +2 -2
- package/dist/scripts/{PLyhtHwt2.chunk.js.map → BYLD2f9R2.chunk.js.map} +1 -1
- package/dist/scripts/B_HlStqa2.chunk.js +2 -0
- package/dist/scripts/B_HlStqa2.chunk.js.map +1 -0
- package/dist/scripts/{Cv9H330A2.chunk.js → BbTaGrM02.chunk.js} +2 -2
- package/dist/scripts/{Cv9H330A2.chunk.js.map → BbTaGrM02.chunk.js.map} +1 -1
- package/dist/scripts/{B2L2H3g9.chunk.js → Bn4Go0UF.chunk.js} +2 -2
- package/dist/scripts/{B2L2H3g9.chunk.js.map → Bn4Go0UF.chunk.js.map} +1 -1
- package/dist/scripts/{DQamsoU_2.chunk.js → Bs_S7mFn2.chunk.js} +2 -2
- package/dist/scripts/{DQamsoU_2.chunk.js.map → Bs_S7mFn2.chunk.js.map} +1 -1
- package/dist/scripts/{BHTp9hJG.chunk.js → BxKrer6h.chunk.js} +2 -2
- package/dist/scripts/{BHTp9hJG.chunk.js.map → BxKrer6h.chunk.js.map} +1 -1
- package/dist/scripts/{DsnkNBu62.chunk.js → C1m-1G6w2.chunk.js} +2 -2
- package/dist/scripts/{DsnkNBu62.chunk.js.map → C1m-1G6w2.chunk.js.map} +1 -1
- package/dist/scripts/{CmiQpwgd2.chunk.js → C2ZUZoNE2.chunk.js} +2 -2
- package/dist/scripts/{CmiQpwgd2.chunk.js.map → C2ZUZoNE2.chunk.js.map} +1 -1
- package/dist/scripts/{BVgajZti.chunk.js → C7rNnvPs.chunk.js} +2 -2
- package/dist/scripts/{BVgajZti.chunk.js.map → C7rNnvPs.chunk.js.map} +1 -1
- package/dist/scripts/{BQjyL0qS2.chunk.js → CItOH7dg2.chunk.js} +2 -2
- package/dist/scripts/{BQjyL0qS2.chunk.js.map → CItOH7dg2.chunk.js.map} +1 -1
- package/dist/scripts/{CudCJxPc2.chunk.js → CKTy7NJ92.chunk.js} +2 -2
- package/dist/scripts/{CudCJxPc2.chunk.js.map → CKTy7NJ92.chunk.js.map} +1 -1
- package/dist/scripts/CZQnIbqt.chunk.js +1 -0
- package/dist/scripts/CfPosTww.chunk.js +2 -0
- package/dist/scripts/CfPosTww.chunk.js.map +1 -0
- package/dist/scripts/{DcKDIHY92.chunk.js → CkS0imTk2.chunk.js} +3 -3
- package/dist/scripts/CkS0imTk2.chunk.js.map +1 -0
- package/dist/scripts/{CMQlrOon2.chunk.js → CllvFALa2.chunk.js} +2 -2
- package/dist/scripts/{CMQlrOon2.chunk.js.map → CllvFALa2.chunk.js.map} +1 -1
- package/dist/scripts/{Chh-4QFk.chunk.js → CqVCiInU.chunk.js} +2 -2
- package/dist/scripts/{Chh-4QFk.chunk.js.map → CqVCiInU.chunk.js.map} +1 -1
- package/dist/scripts/{D4_Ou9e_.chunk.js → DFxl2xgU.chunk.js} +2 -2
- package/dist/scripts/{D4_Ou9e_.chunk.js.map → DFxl2xgU.chunk.js.map} +1 -1
- package/dist/scripts/{CPw6bsFu2.chunk.js → DK50VHUW2.chunk.js} +2 -2
- package/dist/scripts/{CPw6bsFu2.chunk.js.map → DK50VHUW2.chunk.js.map} +1 -1
- package/dist/scripts/{D68hdbWD2.chunk.js → DfhaG70Z2.chunk.js} +3 -3
- package/dist/scripts/{D68hdbWD2.chunk.js.map → DfhaG70Z2.chunk.js.map} +1 -1
- package/dist/scripts/DkXQWig4.chunk.js +2 -0
- package/dist/scripts/DkXQWig4.chunk.js.map +1 -0
- package/dist/scripts/{BPVl1Je7.chunk.js → DldsJ3cq.chunk.js} +2 -2
- package/dist/scripts/{BPVl1Je7.chunk.js.map → DldsJ3cq.chunk.js.map} +1 -1
- package/dist/scripts/{cBssbttB.chunk.js → Du87dvla.chunk.js} +2 -2
- package/dist/scripts/{cBssbttB.chunk.js.map → Du87dvla.chunk.js.map} +1 -1
- package/dist/scripts/{Dj68Q14w.chunk.js → DuQ74iFu.chunk.js} +2 -2
- package/dist/scripts/{Dj68Q14w.chunk.js.map → DuQ74iFu.chunk.js.map} +1 -1
- package/dist/scripts/{BCPzswJq.chunk.js → DxBCBFh3.chunk.js} +2 -2
- package/dist/scripts/{BCPzswJq.chunk.js.map → DxBCBFh3.chunk.js.map} +1 -1
- package/dist/scripts/SNiCkvSP.chunk.js +2 -0
- package/dist/scripts/SNiCkvSP.chunk.js.map +1 -0
- package/dist/scripts/{D3WnBGZG.chunk.js → WxjzAHzM.chunk.js} +2 -2
- package/dist/scripts/{D3WnBGZG.chunk.js.map → WxjzAHzM.chunk.js.map} +1 -1
- package/dist/scripts/ao_3LgdP.chunk.js +1 -0
- package/dist/scripts/{app-cakVQEAF.js → app-BeoBow2q.js} +6 -6
- package/dist/scripts/app-BeoBow2q.js.map +1 -0
- package/dist/scripts/{DrBRL2aF.chunk.js → rdbFZIyT.chunk.js} +2 -2
- package/dist/scripts/{DrBRL2aF.chunk.js.map → rdbFZIyT.chunk.js.map} +1 -1
- package/dist/scripts/{CFA2yuiv.chunk.js → rtCrJwRm.chunk.js} +2 -2
- package/dist/scripts/{CFA2yuiv.chunk.js.map → rtCrJwRm.chunk.js.map} +1 -1
- package/dist/scripts/{BLy0WwGy.chunk.js → yklF-2M1.chunk.js} +2 -2
- package/dist/scripts/{BLy0WwGy.chunk.js.map → yklF-2M1.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/296Drw6z.chunk.js +0 -2
- package/dist/scripts/296Drw6z.chunk.js.map +0 -1
- package/dist/scripts/CyRTALRJ.chunk.js +0 -1
- package/dist/scripts/DNKj09Lh2.chunk.js +0 -2
- package/dist/scripts/DNKj09Lh2.chunk.js.map +0 -1
- package/dist/scripts/DcKDIHY92.chunk.js.map +0 -1
- package/dist/scripts/DhJ5lhcc.chunk.js +0 -2
- package/dist/scripts/DhJ5lhcc.chunk.js.map +0 -1
- package/dist/scripts/Dm7M2BT8.chunk.js +0 -1
- package/dist/scripts/app-cakVQEAF.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Kn as e,P as t,st as n}from"./BSV_W0cK.chunk.js";import{v as r}from"./COrUmz0l.chunk.js";import{d as i,n as a}from"./DLiesDxa.chunk.js";import{t as o}from"./BmJ66zOA.chunk.js";import{n as s}from"./CNQKHXPY.chunk.js";import{t as c}from"./DHk1ZJ0C.chunk.js";import{r as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{Kn as e,P as t,st as n}from"./BSV_W0cK.chunk.js";import{v as r}from"./COrUmz0l.chunk.js";import{d as i,n as a}from"./DLiesDxa.chunk.js";import{t as o}from"./BmJ66zOA.chunk.js";import{n as s}from"./CNQKHXPY.chunk.js";import{t as c}from"./DHk1ZJ0C.chunk.js";import{r as l}from"./app-BeoBow2q.js";import{a as u,n as d,t as f}from"./Bs_S7mFn2.chunk.js";import{t as p}from"./BOGodQXj2.chunk.js";var m=function(e){return e[e.RootTopic=1]=`RootTopic`,e[e.ChildTopic=2]=`ChildTopic`,e}({});function h(e,t,n){return{...e,topicAnalyticsType:t,query:`cover`,limit:n}}var g={topTopics(e,t,n,r,i){return{url:s.urlBuilder(`{gateway}/v1/analytics/topics/top`,h(e,t)),key:p(`top:topics:${t}`,e),success:n,error:r,always:i}},topTopicsV2(e,t,n,r,i,a){return{url:s.urlBuilder(`{gateway}/v2/analytics/streams/topics/top`,h(e,t,n)),key:p(`top:topics:${t}:v2:${n}`,e),formatData:e=>(Array.isArray(e)?e:[e]).map(e=>({collectionId:e.topicId,count:e.combinedCount,collection:e.topic})),success:r,error:i,always:a}},viewsByTopic(e,t,n,r,i){return{url:s.urlBuilder(`{gateway}/v1/analytics/topics/count`,h(e,t)),key:p(`views:topics:${t}`,e),normalize:!1,success:n,error:r,always:i}}},_={cover:`_cover_ggfj4_1`,fallbackImage:`_fallbackImage_ggfj4_5`},v=e(n()),y=t();function b(e){return(0,y.jsxs)(`div`,{className:`d-flex position-relative mb-3`,children:[(0,y.jsx)(`div`,{className:`${_.fallbackImage} me-2`,children:(0,y.jsx)(f,{type:d.Subject,extraClasses:`border rounded`})}),(0,y.jsx)(`div`,{className:`w-100`,children:(0,y.jsx)(`div`,{className:`partial-loading-background ${e.className}`,children:`\xA0`})})]})}function x(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`div`,{className:`partial-loading-background w-25 mb-3`,children:`\xA0`}),(0,y.jsx)(b,{className:`w-25`}),(0,y.jsx)(b,{className:`w-50`}),(0,y.jsx)(b,{className:`w-33`}),(0,y.jsx)(b,{className:`w-25`})]})}var S=o(),C=`reportsShared.topClassificationsCard`;function w(e){let[t,n]=v.useState(!1);return(0,y.jsxs)(`div`,{className:`d-flex position-relative`,children:[!t&&(0,y.jsx)(f,{type:d.Subject,extraClasses:`${_.fallbackImage} border rounded`}),(0,y.jsx)(`div`,{className:`${_.cover} flex-shrink-0 me-2 rounded overflow-hidden`,children:(0,y.jsx)(u,{data:e.topClassification.collection.cover,imageOptions:{size:c.Medium},onLoad:()=>n(!0)})}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`h3`,{className:`h6 mb-0 clamp-2 mt-1`,children:e.topClassification.collection.name}),(0,y.jsx)(`p`,{children:(0,y.jsx)(a,{namespace:C,phrase:`views`,options:{smartCount:e.topClassification.count}})})]})]})}function T(e){let t=l(`video-views`),n=i(!!t&&g.topTopicsV2(t,e.type,e.limit)),a=n.data?.sort((e,t)=>t.count-e.count);return(0,y.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:n.data?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,y.jsx)(`h2`,{className:`h6 mb-3`,children:e.heading}),e.appLink&&e.appLinkText&&(0,y.jsx)(r,{appLink:e.appLink,className:`text-info`,children:e.appLinkText})]}),n.data.length?(0,y.jsx)(S.Scrollbars,{className:`pb-3`,children:(0,y.jsx)(`ul`,{className:`list-unstyled m-0 pe-3`,children:a.map((e,t)=>(0,y.jsx)(`li`,{className:`pb-3`,children:(0,y.jsx)(w,{topClassification:e})},t))})}):(0,y.jsx)(`div`,{className:`d-flex align-items-center justify-content-center h-100`,children:e.emptyStateText})]}):(0,y.jsx)(x,{})})}export{m as n,T as t};
|
|
2
|
+
//# sourceMappingURL=BQcTfbZm2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oPoOD_J-2.chunk.js","names":[],"sources":["../../src/shared/enums/TopicAnalyticsType.ts","../../src/shared/flight-requests/TopicRequests.ts","../../src/shared/views/overview-cards/top-classifications-card/top-classification-card.module.scss","../../src/shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard.tsx","../../src/shared/views/overview-cards/top-classifications-card/TopClassificationsCardView.tsx"],"sourcesContent":["export enum TopicAnalyticsType {\n RootTopic = 1,\n ChildTopic = 2\n}\n","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsRequestFilter, Classification } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\n\nfunction getTopicRequestParams(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit?: number\n): HashObject {\n return {\n ...filter,\n topicAnalyticsType,\n query: 'cover',\n limit\n };\n}\n\nexport const TopicRequests = {\n topTopics(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}`, filter),\n success,\n error,\n always\n };\n },\n\n topTopicsV2(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit: number,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v2/analytics/streams/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType, limit)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}:v2:${limit}`, filter),\n formatData: data => {\n const items = Array.isArray(data) ? data : [data];\n\n return items.map(item => ({\n collectionId: item.topicId,\n count: item.combinedCount,\n collection: item.topic\n }));\n },\n success,\n error,\n always\n };\n },\n\n viewsByTopic(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/count',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`views:topics:${topicAnalyticsType}`, filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n",":local {\n .cover {\n height: 5rem;\n width: 5rem;\n }\n\n .fallbackImage {\n height: 5rem;\n min-width: 5rem;\n border: none;\n }\n}","import React from 'react';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from '../top-classification-card.module.scss';\n\ninterface PartialClassificationItemProps {\n className?: string;\n}\n\nfunction PartialClassificationItem(props: PartialClassificationItemProps) {\n return (\n <div className='d-flex position-relative mb-3'>\n <div className={`${styles.fallbackImage} me-2`}>\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='border rounded'\n />\n </div>\n\n <div className='w-100'>\n <div className={`partial-loading-background ${props.className}`}> </div>\n </div>\n </div>\n );\n}\n\nexport function PartialTopClassificationsCard() {\n return (\n <>\n <div className='partial-loading-background w-25 mb-3'> </div>\n\n <PartialClassificationItem className='w-25' />\n <PartialClassificationItem className='w-50' />\n <PartialClassificationItem className='w-33'/>\n <PartialClassificationItem className='w-25'/>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { TopicRequests } from 'shared/flight-requests/TopicRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { CollectionViewEvent } from 'shared/interfaces';\nimport { PartialTopClassificationsCard } from 'shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard';\n\nimport styles from './top-classification-card.module.scss';\n\nconst namespace = 'reportsShared.topClassificationsCard';\n\ninterface ClassificationListItemProps {\n topClassification: CollectionViewEvent<Classification>;\n}\n\nfunction ClassificationListItem(props: ClassificationListItemProps) {\n const [ hasLoadedImage, setHasLoadedImage ] = React.useState(false);\n\n return (\n <div className='d-flex position-relative'>\n {!hasLoadedImage && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={`${styles.fallbackImage} border rounded`}\n />\n )}\n <div className={`${styles.cover} flex-shrink-0 me-2 rounded overflow-hidden`}>\n <BaseImage\n data={props.topClassification.collection.cover}\n imageOptions={{ size: ImageSize.Medium }}\n onLoad={() => setHasLoadedImage(true)}\n />\n </div>\n <div>\n <h3 className='h6 mb-0 clamp-2 mt-1'>\n {props.topClassification.collection.name}\n </h3>\n <p><Text namespace={namespace} phrase='views' options={{ smartCount: props.topClassification.count }} /></p>\n </div>\n </div>\n );\n}\n\ninterface TopClassificationsCardProps {\n heading: string;\n type: TopicAnalyticsType;\n appLink?: Core.AppLink;\n appLinkText?: string;\n emptyStateText: string;\n limit: number;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopClassificationsCardView(props: TopClassificationsCardProps) {\n const requestFilter = useGetRequestFilter('video-views');\n \n const topClassifications = Flight.useBasicFetch<CollectionViewEvent<Classification>[]>(!!requestFilter &&\n TopicRequests.topTopicsV2(requestFilter, props.type, props.limit));\n\n const sortedTopClassifications = topClassifications.data?.sort((a, b) => b.count - a.count);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {topClassifications.data ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{props.heading}</h2>\n\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n {topClassifications.data.length ?\n <Scrollbars className='pb-3'>\n <ul className='list-unstyled m-0 pe-3'>\n {sortedTopClassifications.map((t, idx) => (\n <li key={idx} className='pb-3'>\n <ClassificationListItem topClassification={t} />\n </li>\n ))}\n </ul>\n </Scrollbars> :\n <div className='d-flex align-items-center justify-content-center h-100'>{props.emptyStateText}</div>\n }\n </> : <PartialTopClassificationsCard />\n }\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BQcTfbZm2.chunk.js","names":[],"sources":["../../src/shared/enums/TopicAnalyticsType.ts","../../src/shared/flight-requests/TopicRequests.ts","../../src/shared/views/overview-cards/top-classifications-card/top-classification-card.module.scss","../../src/shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard.tsx","../../src/shared/views/overview-cards/top-classifications-card/TopClassificationsCardView.tsx"],"sourcesContent":["export enum TopicAnalyticsType {\n RootTopic = 1,\n ChildTopic = 2\n}\n","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsRequestFilter, Classification } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\n\nfunction getTopicRequestParams(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit?: number\n): HashObject {\n return {\n ...filter,\n topicAnalyticsType,\n query: 'cover',\n limit\n };\n}\n\nexport const TopicRequests = {\n topTopics(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}`, filter),\n success,\n error,\n always\n };\n },\n\n topTopicsV2(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit: number,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v2/analytics/streams/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType, limit)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}:v2:${limit}`, filter),\n formatData: data => {\n const items = Array.isArray(data) ? data : [data];\n\n return items.map(item => ({\n collectionId: item.topicId,\n count: item.combinedCount,\n collection: item.topic\n }));\n },\n success,\n error,\n always\n };\n },\n\n viewsByTopic(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/count',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`views:topics:${topicAnalyticsType}`, filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n",":local {\n .cover {\n height: 5rem;\n width: 5rem;\n }\n\n .fallbackImage {\n height: 5rem;\n min-width: 5rem;\n border: none;\n }\n}","import React from 'react';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from '../top-classification-card.module.scss';\n\ninterface PartialClassificationItemProps {\n className?: string;\n}\n\nfunction PartialClassificationItem(props: PartialClassificationItemProps) {\n return (\n <div className='d-flex position-relative mb-3'>\n <div className={`${styles.fallbackImage} me-2`}>\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='border rounded'\n />\n </div>\n\n <div className='w-100'>\n <div className={`partial-loading-background ${props.className}`}> </div>\n </div>\n </div>\n );\n}\n\nexport function PartialTopClassificationsCard() {\n return (\n <>\n <div className='partial-loading-background w-25 mb-3'> </div>\n\n <PartialClassificationItem className='w-25' />\n <PartialClassificationItem className='w-50' />\n <PartialClassificationItem className='w-33'/>\n <PartialClassificationItem className='w-25'/>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { TopicRequests } from 'shared/flight-requests/TopicRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { CollectionViewEvent } from 'shared/interfaces';\nimport { PartialTopClassificationsCard } from 'shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard';\n\nimport styles from './top-classification-card.module.scss';\n\nconst namespace = 'reportsShared.topClassificationsCard';\n\ninterface ClassificationListItemProps {\n topClassification: CollectionViewEvent<Classification>;\n}\n\nfunction ClassificationListItem(props: ClassificationListItemProps) {\n const [ hasLoadedImage, setHasLoadedImage ] = React.useState(false);\n\n return (\n <div className='d-flex position-relative'>\n {!hasLoadedImage && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={`${styles.fallbackImage} border rounded`}\n />\n )}\n <div className={`${styles.cover} flex-shrink-0 me-2 rounded overflow-hidden`}>\n <BaseImage\n data={props.topClassification.collection.cover}\n imageOptions={{ size: ImageSize.Medium }}\n onLoad={() => setHasLoadedImage(true)}\n />\n </div>\n <div>\n <h3 className='h6 mb-0 clamp-2 mt-1'>\n {props.topClassification.collection.name}\n </h3>\n <p><Text namespace={namespace} phrase='views' options={{ smartCount: props.topClassification.count }} /></p>\n </div>\n </div>\n );\n}\n\ninterface TopClassificationsCardProps {\n heading: string;\n type: TopicAnalyticsType;\n appLink?: Core.AppLink;\n appLinkText?: string;\n emptyStateText: string;\n limit: number;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopClassificationsCardView(props: TopClassificationsCardProps) {\n const requestFilter = useGetRequestFilter('video-views');\n \n const topClassifications = Flight.useBasicFetch<CollectionViewEvent<Classification>[]>(!!requestFilter &&\n TopicRequests.topTopicsV2(requestFilter, props.type, props.limit));\n\n const sortedTopClassifications = topClassifications.data?.sort((a, b) => b.count - a.count);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {topClassifications.data ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{props.heading}</h2>\n\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n {topClassifications.data.length ?\n <Scrollbars className='pb-3'>\n <ul className='list-unstyled m-0 pe-3'>\n {sortedTopClassifications.map((t, idx) => (\n <li key={idx} className='pb-3'>\n <ClassificationListItem topClassification={t} />\n </li>\n ))}\n </ul>\n </Scrollbars> :\n <div className='d-flex align-items-center justify-content-center h-100'>{props.emptyStateText}</div>\n }\n </> : <PartialTopClassificationsCard />\n }\n </div>\n );\n}\n"],"mappings":"6YAAA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,UAAA,GAAA,YACA,EAAA,EAAA,WAAA,GAAA,mBACD,CCOD,SAAS,EACP,EACA,EACA,EACY,CACZ,MAAO,CACL,GAAG,EACH,qBACA,MAAO,QACP,QACD,CAGH,IAAa,EAAgB,CAC3B,UACE,EACA,EACA,EACA,EACA,EACgB,CAChB,MAAO,CACL,IAAK,EAAU,WACb,oCACA,EAAsB,EAAQ,EAAmB,CAClD,CACD,IAAK,EAAuB,cAAc,IAAsB,EAAO,CACvE,UACA,QACA,SACD,EAGH,YACE,EACA,EACA,EACA,EACA,EACA,EACgB,CAChB,MAAO,CACL,IAAK,EAAU,WACb,4CACA,EAAsB,EAAQ,EAAoB,EAAM,CACzD,CACD,IAAK,EAAuB,cAAc,EAAmB,MAAM,IAAS,EAAO,CACnF,WAAY,IACI,MAAM,QAAQ,EAAK,CAAG,EAAO,CAAC,EAAK,EAEpC,IAAI,IAAS,CACxB,aAAc,EAAK,QACnB,MAAO,EAAK,cACZ,WAAY,EAAK,MAClB,EAAE,CAEL,UACA,QACA,SACD,EAGH,aACE,EACA,EACA,EACA,EACA,EACgB,CAChB,MAAO,CACL,IAAK,EAAU,WACb,sCACA,EAAsB,EAAQ,EAAmB,CAClD,CACD,IAAK,EAAuB,gBAAgB,IAAsB,EAAO,CACzE,UAAW,GACX,UACA,QACA,SACD,EAEJ,kFEjFD,SAAS,EAA0B,EAAuC,CACxE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yCAAf,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,cAAc,iBACtC,EAAA,EAAA,KAAC,EAAD,CACE,KAAM,EAAkB,QACxB,aAAa,iBACb,CAAA,CACE,CAAA,EAEN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kBACb,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAM,qBAAa,OAAY,CAAA,CACzE,CAAA,CAAA,GAKZ,SAAgB,GAAgC,CAC9C,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,gDAAuC,OAAY,CAAA,EAElE,EAAA,EAAA,KAAC,EAAD,CAA2B,UAAU,OAAS,CAAA,EAC9C,EAAA,EAAA,KAAC,EAAD,CAA2B,UAAU,OAAS,CAAA,EAC9C,EAAA,EAAA,KAAC,EAAD,CAA2B,UAAU,OAAQ,CAAA,EAC7C,EAAA,EAAA,KAAC,EAAD,CAA2B,UAAU,OAAQ,CAAA,CAC5C,CAAA,CAAA,WCfD,EAAY,uCAMlB,SAAS,EAAuB,EAAoC,CAClE,GAAM,CAAE,EAAgB,GAAA,EAA4B,SAAS,GAAM,CAEnE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,oCAAf,CACG,CAAC,IACA,EAAA,EAAA,KAAC,EAAD,CACE,KAAM,EAAkB,QACxB,aAAc,GAAG,EAAO,cAAc,iBACtC,CAAA,EAEJ,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,MAAM,uDAC9B,EAAA,EAAA,KAAC,EAAD,CACE,KAAM,EAAM,kBAAkB,WAAW,MACzC,aAAc,CAAE,KAAM,EAAU,OAAQ,CACxC,WAAc,EAAkB,GAAA,CAChC,CAAA,CACE,CAAA,EACN,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,gCACX,EAAM,kBAAkB,WAAW,KACjC,CAAA,EACL,EAAA,EAAA,KAAC,IAAD,CAAA,UAAG,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,QAAQ,QAAS,CAAE,WAAY,EAAM,kBAAkB,MAAA,CAAW,CAAA,CAAI,CAAA,CACxG,CAAA,CAAA,IAeZ,SAAgB,EAA2B,EAAoC,CAC7E,IAAM,EAAgB,EAAoB,cAAc,CAElD,EAAqB,EAA4D,CAAC,CAAC,GACvF,EAAc,YAAY,EAAe,EAAM,KAAM,EAAM,MAAM,CAAC,CAE9D,EAA2B,EAAmB,MAAM,MAAM,EAAG,IAAM,EAAE,MAAQ,EAAE,MAAM,CAE3F,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,+EACZ,EAAmB,MAClB,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0CAAf,EACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,mBAAW,EAAM,QAAa,CAAA,CAE3C,EAAM,SAAW,EAAM,cACtB,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAM,QACf,UAAU,qBAET,EAAM,YACC,CAAA,CAAA,GAGb,EAAmB,KAAK,QACvB,EAAA,EAAA,KAAC,EAAA,WAAD,CAAY,UAAU,iBACpB,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,kCACX,EAAyB,KAAK,EAAG,KAChC,EAAA,EAAA,KAAC,KAAD,CAAc,UAAU,iBACtB,EAAA,EAAA,KAAC,EAAD,CAAwB,kBAAmB,EAAK,CAAA,CAC7C,CAFI,EAEJ,CAAA,CAEJ,CAAA,CACM,CAAA,EACb,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kEAA0D,EAAM,eAAqB,CAAA,CAErG,CAAA,CAAA,EAAG,EAAA,EAAA,KAAC,EAAD,EAAiC,CAAA,CAErC,CAAA"}
|