@clickview/lite 0.0.20-rc.1 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/scripts/{bundle-df3f2fe30a.min.js → bundle-0a051d30d1.min.js} +1 -1
  2. package/dist/scripts/bundles.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/css/0.chunk.css.map +0 -1
  5. package/dist/css/1.chunk.css +0 -146
  6. package/dist/css/1.chunk.css.map +0 -1
  7. package/dist/css/11.chunk.css.map +0 -1
  8. package/dist/css/12.chunk.css.map +0 -1
  9. package/dist/css/13.chunk.css.map +0 -1
  10. package/dist/css/14.chunk.css.map +0 -1
  11. package/dist/css/15.chunk.css.map +0 -1
  12. package/dist/css/16.chunk.css.map +0 -1
  13. package/dist/css/17.chunk.css.map +0 -1
  14. package/dist/css/18.chunk.css.map +0 -1
  15. package/dist/css/19.chunk.css.map +0 -1
  16. package/dist/css/21.chunk.css.map +0 -1
  17. package/dist/css/22.chunk.css.map +0 -1
  18. package/dist/css/23.chunk.css.map +0 -1
  19. package/dist/css/24.chunk.css.map +0 -1
  20. package/dist/css/25.chunk.css.map +0 -1
  21. package/dist/css/26.chunk.css.map +0 -1
  22. package/dist/css/27.chunk.css.map +0 -1
  23. package/dist/css/28.chunk.css.map +0 -1
  24. package/dist/css/29.chunk.css.map +0 -1
  25. package/dist/css/3.chunk.css.map +0 -1
  26. package/dist/css/30.chunk.css +0 -32
  27. package/dist/css/30.chunk.css.map +0 -1
  28. package/dist/css/31.chunk.css.map +0 -1
  29. package/dist/css/32.chunk.css +0 -6
  30. package/dist/css/32.chunk.css.map +0 -1
  31. package/dist/css/33.chunk.css +0 -5
  32. package/dist/css/33.chunk.css.map +0 -1
  33. package/dist/css/34.chunk.css.map +0 -1
  34. package/dist/css/36.chunk.css +0 -6
  35. package/dist/css/36.chunk.css.map +0 -1
  36. package/dist/css/37.chunk.css +0 -7
  37. package/dist/css/37.chunk.css.map +0 -1
  38. package/dist/css/38.chunk.css.map +0 -1
  39. package/dist/css/41.chunk.css +0 -38
  40. package/dist/css/41.chunk.css.map +0 -1
  41. package/dist/css/5.chunk.css.map +0 -1
  42. package/dist/css/51.chunk.css +0 -9
  43. package/dist/css/51.chunk.css.map +0 -1
  44. package/dist/css/6.chunk.css.map +0 -1
  45. package/dist/css/7.chunk.css +0 -66
  46. package/dist/css/7.chunk.css.map +0 -1
  47. package/dist/css/lite-app.css.map +0 -1
  48. package/dist/projects/lite/src/polyfills.d.ts +0 -2
  49. package/dist/scripts/0.chunk.js +0 -308
  50. package/dist/scripts/0.chunk.js.map +0 -1
  51. package/dist/scripts/1.chunk.js +0 -623
  52. package/dist/scripts/1.chunk.js.map +0 -1
  53. package/dist/scripts/10.chunk.js +0 -530
  54. package/dist/scripts/10.chunk.js.map +0 -1
  55. package/dist/scripts/11.chunk.js +0 -380
  56. package/dist/scripts/11.chunk.js.map +0 -1
  57. package/dist/scripts/12.chunk.js +0 -434
  58. package/dist/scripts/12.chunk.js.map +0 -1
  59. package/dist/scripts/13.chunk.js +0 -1287
  60. package/dist/scripts/13.chunk.js.map +0 -1
  61. package/dist/scripts/14.chunk.js +0 -575
  62. package/dist/scripts/14.chunk.js.map +0 -1
  63. package/dist/scripts/15.chunk.js +0 -806
  64. package/dist/scripts/15.chunk.js.map +0 -1
  65. package/dist/scripts/16.chunk.js +0 -482
  66. package/dist/scripts/16.chunk.js.map +0 -1
  67. package/dist/scripts/17.chunk.js +0 -428
  68. package/dist/scripts/17.chunk.js.map +0 -1
  69. package/dist/scripts/18.chunk.js +0 -766
  70. package/dist/scripts/18.chunk.js.map +0 -1
  71. package/dist/scripts/19.chunk.js +0 -647
  72. package/dist/scripts/19.chunk.js.map +0 -1
  73. package/dist/scripts/2.chunk.js +0 -18882
  74. package/dist/scripts/2.chunk.js.map +0 -1
  75. package/dist/scripts/20.chunk.js +0 -212
  76. package/dist/scripts/20.chunk.js.map +0 -1
  77. package/dist/scripts/21.chunk.js +0 -1591
  78. package/dist/scripts/21.chunk.js.map +0 -1
  79. package/dist/scripts/22.chunk.js +0 -1348
  80. package/dist/scripts/22.chunk.js.map +0 -1
  81. package/dist/scripts/23.chunk.js +0 -1181
  82. package/dist/scripts/23.chunk.js.map +0 -1
  83. package/dist/scripts/24.chunk.js +0 -1141
  84. package/dist/scripts/24.chunk.js.map +0 -1
  85. package/dist/scripts/25.chunk.js +0 -907
  86. package/dist/scripts/25.chunk.js.map +0 -1
  87. package/dist/scripts/26.chunk.js +0 -979
  88. package/dist/scripts/26.chunk.js.map +0 -1
  89. package/dist/scripts/27.chunk.js +0 -655
  90. package/dist/scripts/27.chunk.js.map +0 -1
  91. package/dist/scripts/28.chunk.js +0 -615
  92. package/dist/scripts/28.chunk.js.map +0 -1
  93. package/dist/scripts/29.chunk.js +0 -622
  94. package/dist/scripts/29.chunk.js.map +0 -1
  95. package/dist/scripts/3.chunk.js +0 -809
  96. package/dist/scripts/3.chunk.js.map +0 -1
  97. package/dist/scripts/30.chunk.js +0 -468
  98. package/dist/scripts/30.chunk.js.map +0 -1
  99. package/dist/scripts/31.chunk.js +0 -441
  100. package/dist/scripts/31.chunk.js.map +0 -1
  101. package/dist/scripts/32.chunk.js +0 -509
  102. package/dist/scripts/32.chunk.js.map +0 -1
  103. package/dist/scripts/33.chunk.js +0 -957
  104. package/dist/scripts/33.chunk.js.map +0 -1
  105. package/dist/scripts/34.chunk.js +0 -502
  106. package/dist/scripts/34.chunk.js.map +0 -1
  107. package/dist/scripts/35.chunk.js +0 -938
  108. package/dist/scripts/35.chunk.js.map +0 -1
  109. package/dist/scripts/36.chunk.js +0 -537
  110. package/dist/scripts/36.chunk.js.map +0 -1
  111. package/dist/scripts/37.chunk.js +0 -414
  112. package/dist/scripts/37.chunk.js.map +0 -1
  113. package/dist/scripts/38.chunk.js +0 -245
  114. package/dist/scripts/38.chunk.js.map +0 -1
  115. package/dist/scripts/39.chunk.js +0 -337
  116. package/dist/scripts/39.chunk.js.map +0 -1
  117. package/dist/scripts/4.chunk.js +0 -402
  118. package/dist/scripts/4.chunk.js.map +0 -1
  119. package/dist/scripts/40.chunk.js +0 -350
  120. package/dist/scripts/40.chunk.js.map +0 -1
  121. package/dist/scripts/41.chunk.js +0 -343
  122. package/dist/scripts/41.chunk.js.map +0 -1
  123. package/dist/scripts/42.chunk.js +0 -404
  124. package/dist/scripts/42.chunk.js.map +0 -1
  125. package/dist/scripts/43.chunk.js +0 -221
  126. package/dist/scripts/43.chunk.js.map +0 -1
  127. package/dist/scripts/44.chunk.js +0 -230
  128. package/dist/scripts/44.chunk.js.map +0 -1
  129. package/dist/scripts/45.chunk.js +0 -409
  130. package/dist/scripts/45.chunk.js.map +0 -1
  131. package/dist/scripts/46.chunk.js +0 -272
  132. package/dist/scripts/46.chunk.js.map +0 -1
  133. package/dist/scripts/47.chunk.js +0 -267
  134. package/dist/scripts/47.chunk.js.map +0 -1
  135. package/dist/scripts/48.chunk.js +0 -359
  136. package/dist/scripts/48.chunk.js.map +0 -1
  137. package/dist/scripts/49.chunk.js +0 -225
  138. package/dist/scripts/49.chunk.js.map +0 -1
  139. package/dist/scripts/5.chunk.js +0 -1104
  140. package/dist/scripts/5.chunk.js.map +0 -1
  141. package/dist/scripts/50.chunk.js +0 -318
  142. package/dist/scripts/50.chunk.js.map +0 -1
  143. package/dist/scripts/51.chunk.js +0 -64
  144. package/dist/scripts/51.chunk.js.map +0 -1
  145. package/dist/scripts/52.chunk.js +0 -108
  146. package/dist/scripts/52.chunk.js.map +0 -1
  147. package/dist/scripts/53.chunk.js +0 -110
  148. package/dist/scripts/53.chunk.js.map +0 -1
  149. package/dist/scripts/54.chunk.js +0 -162
  150. package/dist/scripts/54.chunk.js.map +0 -1
  151. package/dist/scripts/55.chunk.js +0 -145
  152. package/dist/scripts/55.chunk.js.map +0 -1
  153. package/dist/scripts/56.chunk.js +0 -139
  154. package/dist/scripts/56.chunk.js.map +0 -1
  155. package/dist/scripts/57.chunk.js +0 -142
  156. package/dist/scripts/57.chunk.js.map +0 -1
  157. package/dist/scripts/58.chunk.js +0 -173
  158. package/dist/scripts/58.chunk.js.map +0 -1
  159. package/dist/scripts/59.chunk.js +0 -160
  160. package/dist/scripts/59.chunk.js.map +0 -1
  161. package/dist/scripts/6.chunk.js +0 -335
  162. package/dist/scripts/6.chunk.js.map +0 -1
  163. package/dist/scripts/60.chunk.js +0 -98
  164. package/dist/scripts/60.chunk.js.map +0 -1
  165. package/dist/scripts/61.chunk.js +0 -48
  166. package/dist/scripts/61.chunk.js.map +0 -1
  167. package/dist/scripts/62.chunk.js +0 -70
  168. package/dist/scripts/62.chunk.js.map +0 -1
  169. package/dist/scripts/63.chunk.js +0 -32
  170. package/dist/scripts/63.chunk.js.map +0 -1
  171. package/dist/scripts/64.chunk.js +0 -29
  172. package/dist/scripts/64.chunk.js.map +0 -1
  173. package/dist/scripts/65.chunk.js +0 -27
  174. package/dist/scripts/65.chunk.js.map +0 -1
  175. package/dist/scripts/66.chunk.js +0 -65
  176. package/dist/scripts/66.chunk.js.map +0 -1
  177. package/dist/scripts/67.chunk.js +0 -67
  178. package/dist/scripts/67.chunk.js.map +0 -1
  179. package/dist/scripts/68.chunk.js +0 -104
  180. package/dist/scripts/68.chunk.js.map +0 -1
  181. package/dist/scripts/69.chunk.js +0 -89
  182. package/dist/scripts/69.chunk.js.map +0 -1
  183. package/dist/scripts/7.chunk.js +0 -2579
  184. package/dist/scripts/7.chunk.js.map +0 -1
  185. package/dist/scripts/70.chunk.js +0 -1001
  186. package/dist/scripts/70.chunk.js.map +0 -1
  187. package/dist/scripts/71.chunk.js +0 -36
  188. package/dist/scripts/71.chunk.js.map +0 -1
  189. package/dist/scripts/8.chunk.js +0 -24
  190. package/dist/scripts/8.chunk.js.map +0 -1
  191. package/dist/scripts/9.chunk.js +0 -327
  192. package/dist/scripts/9.chunk.js.map +0 -1
  193. package/dist/scripts/bundle.js +0 -38145
  194. package/dist/scripts/bundle.js.map +0 -1
  195. package/dist/scripts/polyfills.js +0 -15232
  196. package/dist/scripts/polyfills.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyPlaylistList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistList.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/playlist.scss?344d","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/ActionButton.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/Actions.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/actions.scss?9153","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/audience-label/AudienceLabel.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/audience-label/audience-label.scss?0950","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/flight-requests/AudienceRequests.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/utils/AudienceHelper.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/components/playlist-list-header/PlaylistListHeader.tsx","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/components/sort-select/PlaylistSortSelect.tsx","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/interfaces/PlaylistCollectionIdentifier.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/views/playlists/PlaylistsView.tsx"],"names":[],"mappings":"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","file":"scripts/25.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\n\r\nimport { ImageUrlService } from 'libs/shared/services/ImageUrlService';\r\nimport { EmptyState } from 'libs/shared/components/empty-state/EmptyState';\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('playlists.emptyState');\r\n\r\nexport function EmptyPlaylistList(): React.ReactElement {\r\n const imageUrlService = useService<ImageUrlService>(SharedServices.ImageUrl);\r\n const imageUrls = imageUrlService.getImageUrls();\r\n\r\n return (\r\n <EmptyState\r\n imageUrl={imageUrls.EmptyStates.VIDEOS}\r\n heading={getPhrase('noPlaylistsHeading')}\r\n description={getPhrase('noPlaylistsInfo')}\r\n />\r\n );\r\n}","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport styles from './playlist.scss';\r\n\r\ninterface PartialPlaylistListProps {\r\n numItems?: number;\r\n itemClassName?: string;\r\n showHeading?: boolean;\r\n}\r\n\r\nPartialPlaylistList.defaultProps = {\r\n numItems: 8\r\n};\r\n\r\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\r\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\r\n\r\n const className = props.itemClassName || '';\r\n\r\n return (\r\n <>\r\n {props.showHeading && <div className={`${styles.partialHeading} partial-loading-background`} />}\r\n <Row>\r\n {PARTIAL_PLAYLISTS.map((p, idx) =>\r\n <Col key={idx} xs={6} sm={4} md={3} lg={2} className={className}>\r\n <div className='py-2'>\r\n <div className={`${styles.basePlaylistItem} partial-loading-background`} />\r\n </div>\r\n </Col>\r\n )}\r\n </Row>\r\n </>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Playlist, PresentationAudience } from 'libs/shared/interfaces';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { AudienceHelper } from 'libs/shared/utils/AudienceHelper';\r\nimport { ImageSize, ResizeType } from 'libs/shared/enums/Images';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { BaseThumbnail } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { AudienceLabelList, AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\r\n\r\nimport styles from './playlist.scss';\r\n\r\ninterface PlaylistItemProps {\r\n data: Playlist;\r\n appLink: Core.AppLink;\r\n presentationAudiences: PresentationAudience[];\r\n className?: string;\r\n showCount?: boolean;\r\n}\r\n\r\nexport function PlaylistItem(props: PlaylistItemProps): JSX.Element {\r\n const imageUrl = ImageHelper.createUrl(props.data.cover && props.data.cover.url, {\r\n size: ImageSize.Medium,\r\n resizeType: ResizeType.Cover\r\n });\r\n\r\n const audiences = props.data.subjectPresentationAudiences &&\r\n props.data.subjectPresentationAudiences.data;\r\n\r\n const filteredAudiences = AudienceHelper.getSortedPresentationAudiences(audiences, props.presentationAudiences);\r\n const mergedAudience = AudienceHelper.getMergedPresentationAudienceString(filteredAudiences);\r\n\r\n const count = !!props.showCount && !!props.data.videos && props.data.videos.count;\r\n\r\n return (\r\n <AppLink appLink={props.appLink}>\r\n <BaseThumbnail data={imageUrl} className={styles.playlistItem}>\r\n <ThumbnailFallback type={ThumbnailFallbackType.Playlist} />\r\n <div className={`text-white ${styles.playlistMetadata}`}>\r\n {Number.isInteger(count) &&\r\n <Text namespace='shared.playlistItem' phrase='videos' options={{ smartCount: count }} />\r\n }\r\n <h5 className='text-shadow mb-0'>{props.data.name}</h5>\r\n {!!audiences && !!audiences.length &&\r\n <AudienceLabel\r\n audience={mergedAudience}\r\n border='white'\r\n />\r\n }\r\n </div>\r\n </BaseThumbnail>\r\n </AppLink>\r\n );\r\n}","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Playlist, PresentationAudience } from 'libs/shared/interfaces';\r\n\r\nimport { PlaylistItem } from './PlaylistItem';\r\n\r\ninterface PlaylistListProps {\r\n playlists: Playlist[];\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n presentationAudiences: PresentationAudience[];\r\n itemClassName?: string;\r\n showCount?: boolean;\r\n}\r\n\r\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\r\n return (\r\n <Row>\r\n {props.playlists.map(p =>\r\n <Col key={p.id} xs={6} sm={4} lg={3} className={`mb-3 ${props.itemClassName ? props.itemClassName : ''}`}>\r\n <PlaylistItem\r\n key={p.id}\r\n data={p}\r\n appLink={props.getPlaylistAppLink(p)}\r\n presentationAudiences={props.presentationAudiences}\r\n showCount={props.showCount}\r\n />\r\n </Col>\r\n )}\r\n </Row>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"basePlaylistItem\":\"cv--basePlaylistItem--2nvrp\",\"playlistItem\":\"cv--playlistItem--6o0Z2\",\"playlistMetadata\":\"cv--playlistMetadata--3MCKL\",\"partialHeading\":\"cv--partialHeading--13tO6\"};","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\r\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\ninterface ActionButtonProps {\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n tooltip?: string;\r\n}\r\n\r\nexport function ActionButton(props: React.PropsWithChildren<ActionButtonProps>): JSX.Element {\r\n let className = 'ml-2';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n if (props.tooltip) {\r\n return (\r\n <Tooltip title={props.tooltip}>\r\n <IconButton\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n onClick={props.onClick}\r\n className={className}\r\n >\r\n {props.children}\r\n </IconButton>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n if (props.svgName) {\r\n return (\r\n <IconButton\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n className={className}\r\n >\r\n {props.children}\r\n </IconButton>\r\n );\r\n }\r\n\r\n if (props.appLink)\r\n return <AppLink onClick={props.onClick} appLink={props.appLink} className={className}>{props.children}</AppLink>;\r\n\r\n return (\r\n <button onClick={props.onClick} className={className}>\r\n {props.children}\r\n </button>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { ActionsDropdown } from './ActionsDropdown';\r\nimport { ActionButton } from './ActionButton';\r\n\r\nimport styles from './actions.scss';\r\n\r\nexport interface ActionOptions {\r\n label: string;\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\r\n tooltip?: string;\r\n}\r\n\r\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\r\n\r\ninterface ActionsProps {\r\n actions: ActionOptions[];\r\n className?: string;\r\n actionsDropdownClassName?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport function Actions(props: ActionsProps): JSX.Element {\r\n const buttonActions: ActionOptions[] = [];\r\n const moreActions: ActionOptions[] = [];\r\n\r\n props.actions.forEach(a => {\r\n if (a.button)\r\n buttonActions.push(a);\r\n else\r\n moreActions.push(a);\r\n });\r\n\r\n let className = 'd-flex';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n return (\r\n <div className={className}>\r\n <>\r\n {!!buttonActions.length &&\r\n <span className={styles.buttonList}>\r\n {buttonActions.map((a, idx) =>\r\n <ActionButton\r\n key={idx}\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n tooltip={a.tooltip}\r\n >\r\n {a.label}\r\n </ActionButton>\r\n )}\r\n </span>\r\n }\r\n {props.sortComponent ? props.sortComponent : '' }\r\n {!!moreActions.length &&\r\n <ActionsDropdown\r\n actions={moreActions}\r\n className={!!buttonActions.length && 'ml-2'}\r\n dropdownToggleClassName={props.actionsDropdownClassName}\r\n />\r\n }\r\n </>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './actions.scss';\r\n\r\nimport { ActionOptions } from './Actions';\r\n\r\nfunction getDropdownItemClassName(actionClassName?: string): string {\r\n let className = 'dropdown-item';\r\n\r\n if (actionClassName)\r\n className += ` ${actionClassName}`;\r\n\r\n return className;\r\n}\r\n\r\ntype DropdownActionOptions = Omit<ActionOptions, 'button' | 'tooltip'>;\r\n\r\ninterface ActionsDropdownProps {\r\n actions: DropdownActionOptions[];\r\n className?: string;\r\n dropdownToggleClassName?: string;\r\n}\r\n\r\nActionsDropdown.defaultProps = {\r\n dropdownToggleClassName: 'btn btn-light'\r\n};\r\n\r\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\r\n if (!props.actions || !props.actions.length)\r\n return <></>;\r\n\r\n // Generate unique id to avoid collisions.\r\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\r\n\r\n let dropdownToggleClassName = `px-0 ${styles.dropdownToggle}`;\r\n\r\n if (props.dropdownToggleClassName)\r\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\r\n\r\n return (\r\n <Dropdown className={props.className ? props.className : ''} alignRight>\r\n <Dropdown.Toggle as='button' type='button' id={dropdownToggleId} className={dropdownToggleClassName}>\r\n <SvgContainer svgName={cvSvgLibrary.More} size={SvgContainerSize.Small} />\r\n </Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {props.actions.map((a, idx) =>\r\n <AppLink key={idx} appLink={a.appLink} onClick={a.onClick} className={getDropdownItemClassName(a.className)}>\r\n {a.label}\r\n </AppLink>\r\n )}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonList\":\"cv--buttonList--2v9CT\",\"dropdownToggle\":\"cv--dropdownToggle--AYBvQ\"};","import * as React from 'react';\r\nimport { Audience } from 'libs/shared/interfaces';\r\n\r\nimport styles from './audience-label.scss';\r\n\r\ntype AudienceBorderColour = 'dark' | 'white';\r\n\r\ninterface AudienceLabelProps {\r\n audience: Audience;\r\n border: AudienceBorderColour;\r\n}\r\n\r\nexport function AudienceLabel(props: AudienceLabelProps): JSX.Element {\r\n if (!props.audience)\r\n return <></>;\r\n\r\n return (\r\n <div className={`border rounded-pill d-inline-block px-2 mt-1 ${'border-' + props.border}`}>\r\n {props.audience.name}\r\n </div>\r\n );\r\n}\r\n\r\ninterface AudienceLabelListProps {\r\n audiences: Audience[];\r\n border: AudienceBorderColour;\r\n}\r\n\r\nexport function AudienceLabelList(props: AudienceLabelListProps): JSX.Element {\r\n if (!props.audiences || !props.audiences.length)\r\n return <></>;\r\n\r\n return (\r\n <>\r\n {props.audiences.map((a, idx) => (\r\n <span key={idx} className={styles.audienceLabelListItem}>\r\n <AudienceLabel audience={a} border={props.border} />\r\n </span>\r\n ))}\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"audienceLabelListItem\":\"cv--audienceLabelListItem--2YGVO\"};","import { Flight } from 'libs/common/flight';\r\n\r\nconst endpoints = {\r\n presentationAudiences: () => `/api/domain/v1/subjects/audiences`\r\n};\r\n\r\nexport const AudienceRequests = {\r\n presentationAudiences(): Flight.Request {\r\n return {\r\n bootstrapName: 'presentationAudiences',\r\n url: endpoints.presentationAudiences(),\r\n key: `presentation:audiences`,\r\n normalize: false\r\n };\r\n }\r\n};","import { HashObject } from 'libs/common/react/interfaces';\r\nimport { Audience, PresentationAudience, BaseObject } from 'libs/shared/interfaces';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\n\r\nconst DIGIT_REGEX = /([0-9]+)/ig;\r\nconst NAME_REGEX = /(^\\w+)/ig;\r\nconst COUNT_OFFSET = 1;\r\n\r\nfunction processAudienceRanges(audienceValues: number[]): string[] {\r\n /**\r\n * Lookahead by increments of offset\r\n */\r\n let offset = COUNT_OFFSET;\r\n\r\n let initialVal, nextVal;\r\n let isContinguous: boolean = false;\r\n\r\n const ranges: string[] = [];\r\n\r\n // Audience values need to be in ascending order\r\n audienceValues = audienceValues.sort((a, b) => a - b);\r\n\r\n let i, j;\r\n\r\n for (i = 0; i < audienceValues.length; i++) {\r\n j = i + 1;\r\n\r\n // Set our lower boundary to compare against\r\n if (!isContinguous)\r\n initialVal = audienceValues[i];\r\n\r\n nextVal = audienceValues[j];\r\n\r\n /**\r\n * Where the next number is also the next incremental value\r\n * we're going to continue iterating until the next value\r\n * is no longer contiguos.\r\n */\r\n if (audienceValues[i] + offset === nextVal) {\r\n isContinguous = true;\r\n\r\n } else if (isContinguous) {\r\n\r\n /**\r\n * Where we were tracking a contiguous set, format appropriately \r\n * and store the vals\r\n */\r\n\r\n ranges.push(`${initialVal} - ${audienceValues[i]}`);\r\n isContinguous = false;\r\n\r\n } else {\r\n\r\n /**\r\n * Where the values arent contiguous, just store the current value\r\n */\r\n\r\n ranges.push(`${audienceValues[i]}`);\r\n isContinguous = false;\r\n }\r\n\r\n }\r\n\r\n return ranges;\r\n}\r\n\r\nexport const AudienceHelper = {\r\n /**\r\n * This is needed to sort an object's audiences, as they are not sorted by the backend.\r\n * To do this, we take the presentation audiences (sorted) and filter them by the object's\r\n * audiences, leaving behind a sorted array of object audiences.\r\n */\r\n getSortedPresentationAudiences(\r\n objectAudiences: Audience[],\r\n presentationAudiences: PresentationAudience[]\r\n ): PresentationAudience[] {\r\n const objectAudienceIds = objectAudiences.map(audience => audience.id.toString());\r\n\r\n /**\r\n * Remove audiences that aren't relevant for the user's current presentation\r\n */\r\n const filteredAudiences = presentationAudiences.filter(presAudience => {\r\n return objectAudienceIds.includes(presAudience.masterId.toString());\r\n });\r\n\r\n return filteredAudiences;\r\n },\r\n\r\n getMergedPresentationAudienceString(presentationAudiences: PresentationAudience[]): PresentationAudience {\r\n if (presentationAudiences.length === 1)\r\n return presentationAudiences[0];\r\n\r\n /**\r\n * Create a string with all of the audiences\r\n */\r\n const valuesStr = presentationAudiences.map(a => a.name).join(',');\r\n\r\n /**\r\n * Extract all the numbers and matches from the string\r\n * Where there aren't matches, just return the first Audience.\r\n */\r\n const valMatches = valuesStr.match(DIGIT_REGEX);\r\n const nameMatches = valuesStr.match(NAME_REGEX);\r\n\r\n if (!valMatches || !nameMatches) return presentationAudiences[0];\r\n\r\n const audienceValues = valMatches\r\n .map(l => +l) || [];\r\n\r\n /**\r\n * Build set of logical audience ranges\r\n */\r\n const audienceRange = processAudienceRanges(audienceValues);\r\n\r\n /**\r\n * Get matches name\r\n */\r\n const audienceName = nameMatches[0];\r\n\r\n return {\r\n name: `${audienceName} ${audienceRange.join(' , ')}`\r\n } as PresentationAudience;\r\n },\r\n\r\n /**\r\n * This function assumes the members array passed in is ordered by `name`.\r\n */\r\n sortMembersWithDuplicateNamesByAudience(members: BaseObject[]): BaseObject[] {\r\n // Returns the lowest level audience out of an array of audience objects by looking at the name\r\n const getLowestAudience = (audiences: Audience[]) => {\r\n if (!audiences.length)\r\n return null;\r\n\r\n let lowestAudience: Audience;\r\n let lowestAudienceDigit: number;\r\n\r\n audiences.forEach(audience => {\r\n const digit = +ArrayHelper.first(audience.name.match(DIGIT_REGEX));\r\n\r\n if (!lowestAudience) {\r\n lowestAudience = audience;\r\n lowestAudienceDigit = digit;\r\n return;\r\n }\r\n\r\n if (digit > lowestAudienceDigit)\r\n lowestAudience = audience;\r\n });\r\n\r\n return lowestAudience;\r\n };\r\n\r\n // This is used to track how many times a member's name appears in the collection\r\n const nameCountMap: HashObject<number> = {};\r\n\r\n let sorted: BaseObject[] = [];\r\n\r\n members.forEach(member => {\r\n if (!nameCountMap[member.name]) {\r\n nameCountMap[member.name] = 1;\r\n sorted.push(member);\r\n return;\r\n }\r\n\r\n sorted.push(member);\r\n nameCountMap[member.name]++;\r\n\r\n // Take the slice of duplicates that we want to sort by audience\r\n const slice = sorted.splice(sorted.length - nameCountMap[member.name]);\r\n\r\n // Sort the slice by lowest audience\r\n const sortedSlice = slice.sort((a: any, b: any) => {\r\n const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);\r\n const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);\r\n\r\n if (!firstObjLowestAudience && secondObjLowestAudience)\r\n return 1;\r\n\r\n if (!secondObjLowestAudience)\r\n return -1;\r\n\r\n return firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);\r\n });\r\n\r\n sorted = sorted.concat(sortedSlice);\r\n });\r\n\r\n return sorted;\r\n }\r\n};","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { CurrentUser } from 'libs/shared/interfaces';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nimport { PlaylistSortSelect } from 'apps/playlists/components/sort-select/PlaylistSortSelect';\r\n\r\nconst namespace = 'playlists.playlistListHeader';\r\n\r\ninterface PlaylistListHeaderProps {\r\n user: CurrentUser;\r\n imageCdnUrl: string;\r\n sortType: PlaylistSortType;\r\n getSortAppLink: (sort: PlaylistSortType) => Core.AppLink;\r\n}\r\n\r\nexport function PlaylistListHeader(props: PlaylistListHeaderProps): JSX.Element {\r\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\r\n\r\n const actions = [\r\n {\r\n label: LanguageService.getPhrase(namespace, 'newPlaylist'),\r\n appLink: { application: currentAppLink.application, action: Actions.Playlists.NEW_PLAYLIST },\r\n svgName: cvSvgLibrary.Plus,\r\n className: 'btn btn-light',\r\n button: true\r\n }\r\n ];\r\n\r\n return (\r\n <div className='mb-3'>\r\n <BannerHeader\r\n heading={LanguageService.getPhrase(namespace, 'header')}\r\n banner={null}\r\n imageCdnUrl={props.imageCdnUrl}\r\n actions={actions}\r\n sortComponent={<PlaylistSortSelect type={props.sortType} getSortAppLink={props.getSortAppLink} />}\r\n />\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { Core } from 'libs/common/core';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nconst namespace = 'playlists.playlistSortSelect';\r\n\r\nconst getSortTypes = FunctionHelper.memoize(() => {\r\n return {\r\n [PlaylistSortType.RecentlyUpdated]: {\r\n name: LanguageService.getPhrase(namespace, 'recentlyUpdated')\r\n },\r\n [PlaylistSortType.AtoZ]: {\r\n name: LanguageService.getPhrase(namespace, 'atoz')\r\n },\r\n [PlaylistSortType.Newest]: {\r\n name: LanguageService.getPhrase(namespace, 'newest')\r\n },\r\n };\r\n});\r\n\r\ninterface PlaylistSortSelectProps {\r\n type: PlaylistSortType;\r\n getSortAppLink: (sort: PlaylistSortType) => Core.AppLink;\r\n}\r\n\r\n\r\nexport function PlaylistSortSelect(props: PlaylistSortSelectProps): JSX.Element {\r\n const { type, getSortAppLink } = props;\r\n const sortTypes = getSortTypes();\r\n\r\n return (\r\n <Dropdown>\r\n <Dropdown.Toggle variant='light' id='sort-select' className={'ml-2'}>{sortTypes[type].name}</Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {Object.values(PlaylistSortType).filter(k => k !== type).map(k => {\r\n return (\r\n <AppLink key={k} className={'dropdown-item'} appLink={getSortAppLink(k)}>{sortTypes[k].name}</AppLink>\r\n );\r\n })}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","import { BaseCollectionIdentifier } from 'libs/common/backbone/interfaces';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\n\r\nexport class PlaylistCollectionIdentifier extends BaseCollectionIdentifier<PlaylistSortType> {\r\n constructor(sort: PlaylistSortType = PlaylistSortType.Newest, cursor: string = '') {\r\n super({ collectionPrefix: 'user:playlists', cursor, sort });\r\n }\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Playlist, Config, PresentationAudience, CurrentUser } from 'libs/shared/interfaces';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { useInfiniteScroll } from 'libs/shared/hooks/UseInfiniteScroll';\r\nimport { useSetPageTitle } from 'libs/shared/hooks/useSetPageTitle';\r\nimport { useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\nimport { PlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistList';\r\nimport { PartialPlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PartialPlaylistList';\r\nimport { EmptyPlaylistList } from 'libs/shared/apps/playlists/components/empty-state/EmptyPlaylistList';\r\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\r\n\r\nimport { PlaylistListHeader } from 'apps/playlists/components/playlist-list-header/PlaylistListHeader';\r\nimport { PlaylistCollectionIdentifier } from 'apps/playlists/interfaces/PlaylistCollectionIdentifier';\r\n\r\nconst namespace = 'playlists.playlists';\r\n\r\ninterface PlaylistsViewProps {\r\n sort: PlaylistSortType;\r\n getSortAppLink: (sort: PlaylistSortType) => Core.AppLink;\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n}\r\n\r\nexport function PlaylistsView(props: PlaylistsViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser);\r\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(AudienceRequests.presentationAudiences());\r\n\r\n const getPlaylistRequest = (cursor?: string) =>\r\n PlaylistRequests.getUserPlaylists(new PlaylistCollectionIdentifier(props.sort, cursor));\r\n\r\n const fetchNext = (cursor?: string) => {\r\n Flight.getFetch(dispatch, getPlaylistRequest(cursor))();\r\n };\r\n\r\n const playlists = useSelectAllPages((cursor?: string) => getPlaylistRequest(cursor).key);\r\n\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'title'));\r\n\r\n useInfiniteScroll(() => fetchNext(playlists.nextCursor), !!playlists.nextCursor, playlists.isFetching);\r\n\r\n React.useEffect(() => {\r\n if (playlists.shouldInitialFetch)\r\n fetchNext();\r\n }, [playlists.shouldInitialFetch]);\r\n\r\n if (ArrayHelper.isEmpty(playlists.items))\r\n return <EmptyPlaylistList />;\r\n\r\n return (\r\n <div className='bg-white padding-gutter'>\r\n {(!!config.data && !!user.data) && (\r\n <PlaylistListHeader\r\n user={user.data}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n sortType={props.sort}\r\n getSortAppLink={props.getSortAppLink}\r\n />\r\n )}\r\n {(!!playlists.items && (!!audiences.data || audiences.hasError))\r\n ? <PlaylistList\r\n playlists={playlists.items}\r\n getPlaylistAppLink={props.getPlaylistAppLink}\r\n presentationAudiences={audiences.data || []}\r\n showCount\r\n />\r\n : <PartialPlaylistList />\r\n }\r\n {!!playlists.items && !!(playlists.nextCursor || playlists.isFetching) &&\r\n <InfiniteScrollFooter\r\n isFetching={playlists.isFetching}\r\n onClick={() => fetchNext(playlists.nextCursor)}\r\n />\r\n }\r\n </div>\r\n );\r\n}"],"sourceRoot":""}