{"version":3,"file":"pwc-957.2fbd10d7.chunk.js","mappings":"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","sources":["static/svg/EmptyFeed.svg","static/svg/EmptyLibrary.svg","static/svg/MediaPrivateGlyph.svg","static/svg/MediaProcessingGlyph.svg","component/collections/CollectionActionMenu.tsx","component/collections/CollectionContent.tsx","component/collections/CollectionNotificationToggle.tsx","component/details/CollectionMediaRemove.tsx","component/header/HeaderPlaceholder.tsx","component/library/BatchSelectionIndicator.tsx","component/modals/RenameCollectionModal.tsx","component/util/MediaQueryParamsBuilder.ts","component/util/ScreenReaderHelper.tsx","component/util/SortDirectionOptions.tsx","util/MediaSorter.ts","util/TimeFormatter.ts","util/UserMessaging.ts","../node_modules/dayjs/plugin/relativeTime.js","../node_modules/react-infinite-scroller/dist/InfiniteScroll.js","../node_modules/react-infinite-scroller/index.js","../node_modules/use-query-params/adapters/react-router-5/index.js"],"sourcesContent":["function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n className: styles[\"feed-splash-hero-image\"] || \"feed-splash-hero-image\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"134\",\n height: \"114\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a9198431-4ca8-41e3-947c-1cbbc3e855a5\",\n \"data-name\": \"New Gradient Swatch 5\",\n x1: \"-9.96\",\n y1: \"60.57\",\n x2: \"109.78\",\n y2: \"81.12\",\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"0\",\n stopColor: \"#35abab\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \".67\",\n stopColor: \"#676e96\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \".89\",\n stopColor: \"#5c568f\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#56488b\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a2a20e68-5b20-4278-8e5b-3d3cb02a1a19\",\n x1: \"-19.96\",\n y1: \"60.57\",\n x2: \"99.78\",\n y2: \"81.12\",\n xlinkHref: \"#a9198431-4ca8-41e3-947c-1cbbc3e855a5\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"edc4a9b2-14b4-4193-a37d-8fb0916de50b\",\n x1: \"-57.08\",\n y1: \"34.67\",\n x2: \"172.23\",\n y2: \"74.03\",\n xlinkHref: \"#a9198431-4ca8-41e3-947c-1cbbc3e855a5\"\n})), /*#__PURE__*/React.createElement(\"title\", null, \"spot_newspaper\"), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n isolation: \"isolate\"\n }\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"ac2aa931-1993-41de-8f04-f0e2632e64e0\",\n \"data-name\": \"Layer 1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34 20v82a12 12 0 01-24 0V20z\",\n fill: \"url(#a9198431-4ca8-41e3-947c-1cbbc3e855a5)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34 20v82a12 12 0 01-24 0V20z\",\n fill: \"#193138\",\n opacity: \".2\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24 20v82a12 12 0 01-24 0V20z\",\n fill: \"url(#a2a20e68-5b20-4278-8e5b-3d3cb02a1a19)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134 0v102a12 12 0 01-12 12H12a12 12 0 0012-12V0z\",\n fill: \"url(#edc4a9b2-14b4-4193-a37d-8fb0916de50b)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24 20v82a12 12 0 01-24 0V20z\",\n fill: \"#193138\",\n opacity: \".2\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#193138\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n },\n d: \"M74 30h50v52H74z\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"99.35\",\n cy: \"49.82\",\n r: \"12.24\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.65 82H78a21.7 21.7 0 0142.61 0z\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n})), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"11\",\n width: \"90\",\n height: \"10\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"30\",\n width: \"34\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"42\",\n width: \"34\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"54\",\n width: \"34\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"66\",\n width: \"34\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"78\",\n width: \"34\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"90\",\n width: \"90\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"34\",\n y: \"102\",\n width: \"90\",\n height: \"4\",\n rx: \"2\",\n fill: \"#193138\",\n opacity: \".25\",\n style: {\n mixBlendMode: \"multiply\"\n }\n}))));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"110\",\n height: \"100\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a4beb2ac-b902-4eaf-913c-f90275d4c103\",\n \"data-name\": \"New Gradient Swatch 5\",\n x1: \"5.59\",\n y1: \"-4.41\",\n x2: \"73\",\n y2: \"63\",\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"0\",\n stopColor: \"#35abab\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \".67\",\n stopColor: \"#676e96\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \".89\",\n stopColor: \"#5c568f\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#56488b\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a65bef58-523d-4ab2-aa2b-abf844054b7f\",\n x1: \"36.26\",\n y1: \"26.26\",\n x2: \"112.18\",\n y2: \"102.18\",\n xlinkHref: \"#a4beb2ac-b902-4eaf-913c-f90275d4c103\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"eba387c6-5590-472f-81ec-2b3238bf0d4d\",\n x1: \"36.44\",\n y1: \"26.44\",\n x2: \"112.01\",\n y2: \"102.01\",\n xlinkHref: \"#a4beb2ac-b902-4eaf-913c-f90275d4c103\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a0451b37-e70d-4850-8a8f-9df7d5d85a79\",\n x1: \"81.5\",\n y1: \"51\",\n x2: \"95.5\",\n y2: \"51\",\n xlinkHref: \"#a4beb2ac-b902-4eaf-913c-f90275d4c103\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n isolation: \"isolate\"\n }\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"b87bf8ce-7d02-49ee-8378-f2e30aa6c017\",\n \"data-name\": \"Layer 1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98 0H2a2 2 0 00-2 2v76a2 2 0 002 2h42v-4h-7a1 1 0 01-1-1v-6a1 1 0 011-1h7V36h56V2a2 2 0 00-2-2zM68 5a1 1 0 011-1h10a1 1 0 011 1v6a1 1 0 01-1 1H69a1 1 0 01-1-1zM52 5a1 1 0 011-1h10a1 1 0 011 1v6a1 1 0 01-1 1H53a1 1 0 01-1-1zM36 5a1 1 0 011-1h10a1 1 0 011 1v6a1 1 0 01-1 1H37a1 1 0 01-1-1zM20 5a1 1 0 011-1h10a1 1 0 011 1v6a1 1 0 01-1 1H21a1 1 0 01-1-1zM4 5a1 1 0 011-1h10a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1zm12 70a1 1 0 01-1 1H5a1 1 0 01-1-1v-6a1 1 0 011-1h10a1 1 0 011 1zm16 0a1 1 0 01-1 1H21a1 1 0 01-1-1v-6a1 1 0 011-1h10a1 1 0 011 1zm64-64a1 1 0 01-1 1H85a1 1 0 01-1-1V5a1 1 0 011-1h10a1 1 0 011 1z\",\n fill: \"url(#a4beb2ac-b902-4eaf-913c-f90275d4c103)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96 17v19H44v28H5a1 1 0 01-1-1V17a1 1 0 011-1h90a1 1 0 011 1z\",\n style: {\n mixBlendMode: \"multiply\"\n },\n fill: \"#193138\",\n opacity: \".2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44 41.83V64H5a1 1 0 01-1-1V50.76C15.34 42 24.72 40.13 31.06 40A41.06 41.06 0 0144 41.83z\",\n style: {\n mixBlendMode: \"multiply\"\n },\n fill: \"#193138\",\n opacity: \".1\"\n}), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n x: \"50\",\n y: \"40\",\n width: \"52\",\n height: \"52\",\n rx: \"2\",\n fill: \"url(#a65bef58-523d-4ab2-aa2b-abf844054b7f)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42 34v64a2 2 0 002 2h64a2 2 0 002-2V34a2 2 0 00-2-2H44a2 2 0 00-2 2zm61.81 62H48.19A2.19 2.19 0 0146 93.81V38.19A2.19 2.19 0 0148.19 36h55.62a2.19 2.19 0 012.19 2.19v55.62a2.19 2.19 0 01-2.19 2.19z\",\n fill: \"url(#eba387c6-5590-472f-81ec-2b3238bf0d4d)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"88.5\",\n cy: \"51\",\n r: \"7\",\n style: {\n mixBlendMode: \"multiply\"\n },\n opacity: \".2\",\n fill: \"url(#a0451b37-e70d-4850-8a8f-9df7d5d85a79)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102 53.62L85 81 67.25 65.07 50 82.62V90a2 2 0 002 2h48a2 2 0 002-2z\",\n style: {\n mixBlendMode: \"multiply\"\n },\n fill: \"#193138\",\n opacity: \".2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n mixBlendMode: \"multiply\"\n },\n fill: \"#193138\",\n opacity: \".2\",\n d: \"M67.44 65.06l29.12 26.93h-21l-8.12-26.93z\"\n})))));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"250\",\n height: \"160\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165 71v-8a40 40 0 00-80 0v8a8 8 0 00-8 8v48a8 8 0 008 8h80a8 8 0 008-8V79a8 8 0 00-8-8zm-32 32a8 8 0 01-16 0v-8a8 8 0 0116 0zm16-32h-48v-8a24 24 0 0148 0z\",\n fill: \"#f5f6f8\",\n id: \"_16x16\",\n \"data-name\": \"16x16\",\n opacity: \".25\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"250\",\n height: \"160\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n opacity: \".25\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.81 105.18v-8L127 95a20.74 20.74 0 00-2.4-5.8l4.68-8-5.44-5.44-8 4.68A21.22 21.22 0 00110 78l-2.2-8.84h-8L97.61 78a21.48 21.48 0 00-5.8 2.4l-8-4.68-5.44 5.44 4.68 8a21.35 21.35 0 00-2.4 5.8l-8.84 2.2v8l8.84 2.2a21.35 21.35 0 002.4 5.8l-4.68 8 5.44 5.44 8-4.68a21.48 21.48 0 005.8 2.4l2.2 8.84h8l2.2-8.84a21.22 21.22 0 005.8-2.4l8 4.68 5.44-5.44-4.68-8a20.74 20.74 0 002.4-5.8zm-32 8a12 12 0 1112-12 12 12 0 01-12 12z\",\n \"data-name\": \"16x16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"16x16\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.12 49.43L175.06 42l-9 1.36a21 21 0 00-4.44-4.36l1.26-9.19-7.11-2.94-5.6 7.38a21 21 0 00-6.28 0l-5.41-7.33-7.39 3.06 1.35 9a21 21 0 00-4.44 4.41l-9.18-1.26-2.95 7.1 7.39 5.6a21 21 0 000 6.28l-7.33 5.42 3.07 7.39 9-1.35a21.24 21.24 0 004.44 4.43l-1.26 9.18 7.11 2.94 5.6-7.38a21.25 21.25 0 006.27 0l5.42 7.32L163 86l-1.35-9a21 21 0 004.44-4.44l9.18 1.27 2.95-7.11-7.39-5.6a21.32 21.32 0 000-6.28zm-26.5 19.63a12 12 0 116.49-15.68 12 12 0 01-6.49 15.68z\",\n \"data-name\": \"settings\"\n}))));","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {ControlButton, TscButtonType, Glyphs, MenuItem, TscPopoverOrigin, PopoverButton} from '@techsmith/tsc-cloud-style-guide';\nimport Constants, {GroupRoleTypes} from '../../constants/Constants';\nimport {collectionsStore, refreshActiveCollection, removeCollectionFromState, updateActiveCollection, addCollectionToState} from '../../context/collectionsProvider';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {useTscTheme} from '../../context/themeProvider';\nimport {ICollectionModel} from '../../model/appModel';\nimport config from '../../service/config';\nimport collectionApi from '../../service/collectionApi';\nimport logging from '../../service/logging';\nimport LeaveCollectionModal from '../modals/LeaveCollectionModal';\nimport cssConstants from '../../constants/cssConstants';\nimport DeleteModal from '../modals/DeleteModal';\nimport CollectionLeaveGlyph from '../../static/svg/leave-16x16.svg';\nimport AddYoutubeMediaModal from '../modals/AddYoutubeMediaModal';\nimport RenameCollectionModal from '../modals/RenameCollectionModal';\nimport {GridLayoutButtonGroup} from '../util/StyledElements';\nimport ShareCollectionModal from '../modals/ShareCollectionModal';\nimport {IMediaDetails} from '../../model/mediaDetails';\nimport {batchSelectionStore} from '../../context/batchSelectionProvider';\nimport CollectionMediaRemove from '../details/CollectionMediaRemove';\nimport CollectionNotificationToggle from './CollectionNotificationToggle';\n\nexport const CollectionActionMenuBase: React.FC<ICollectionActionMenuProps & IStateMappedProps> = ({isManagementView, activeCollection, selectedMedia}) => {\n const {t} = useTranslation();\n const theme = useTscTheme();\n\n const [showShareModal, setShowShareModal] = useState(false);\n const [showLeaveModal, setShowLeaveModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [showYoutubeModal, setShowYoutubeModal] = useState(false);\n const [showRenameModal, setShowRenameModal] = useState(false);\n const [showBatchRemoveModal, setShowBatchRemoveModal] = useState(false);\n const [activeCollectionRole, setActiveCollectionRole] = useState(activeCollection?.Role);\n\n useEffect(() => {\n setActiveCollectionRole(activeCollection?.Role ?? GroupRoleTypes.notMember);\n }, [activeCollection]);\n\n const onJoinCollection = async () => {\n try {\n const joinedCollection = await collectionApi.joinCollection(activeCollection.Id);\n addCollectionToState(joinedCollection);\n await refreshActiveCollection();\n } catch (e) {\n logging.error(`Failed to join collection ${activeCollection.Id} with error: `, e);\n }\n };\n\n const onLeaveCollection = async () => {\n activeCollection.CanLeave = false;\n activeCollection.Role = GroupRoleTypes.notMember;\n const selfMemberIndex = activeCollection.Members.findIndex(m => m.toLowerCase() === config.user.EmailAddress.toLowerCase());\n if (selfMemberIndex !== -1) {\n activeCollection.Members.splice(selfMemberIndex, 1);\n }\n const selfMemberDetailsIndex = activeCollection.MemberDetails.findIndex(m => m.TechSmithId === config.user.TechSmithId);\n if (selfMemberDetailsIndex !== -1) {\n activeCollection.MemberDetails.splice(selfMemberDetailsIndex, 1);\n }\n await updateActiveCollection(activeCollection);\n removeCollectionFromState(activeCollection, false);\n };\n\n const onDeleteCollection = () => {\n removeCollectionFromState(activeCollection, true);\n };\n\n const userCanAdmin = config.user.IsSignedIn && (\n config.isAdmin ||\n activeCollection?.Role === GroupRoleTypes.manager\n );\n\n const userCanContribute = config.user.IsSignedIn && (\n config.isAdmin ||\n activeCollection?.Role === GroupRoleTypes.manager ||\n activeCollection?.Role === GroupRoleTypes.contributor\n );\n\n const areItemsSelected = selectedMedia?.length > 0;\n const showLeave = !isManagementView && config.user.IsSignedIn && activeCollection?.CanLeave;\n const showManage = !isManagementView && config.user.IsSignedIn && userCanAdmin;\n const showJoin = !areItemsSelected && config.user.IsSignedIn && activeCollectionRole === GroupRoleTypes.notMember;\n const showLoginToJoin = !isManagementView && !config.user.IsSignedIn;\n const showShare = !areItemsSelected;\n const showNotificationButton = config.featureSwitches.IsScreencast && config.user.IsSignedIn && activeCollectionRole !== GroupRoleTypes.notMember;\n\n const showMoreDelete = isManagementView && userCanAdmin;\n const showMoreLeave = isManagementView && activeCollection?.CanLeave;\n const showMoreAddYouTube = config.IsYouTubeEnabled && isManagementView && userCanContribute;\n const showMoreRename = isManagementView && userCanAdmin;\n const showMore = isManagementView && !areItemsSelected &&\n (showMoreDelete || showMoreLeave || showMoreAddYouTube || showMoreRename);\n\n const moreMenu = (\n <>\n {showMoreDelete && (\n <MenuItem\n key=\"delete\"\n label={t('collections.options.delete')}\n glyph={<Glyphs.Delete16x16 />}\n onClick={() => setShowDeleteModal(true)}\n testId=\"collection-actions-more-delete\"\n />\n )}\n {showMoreLeave && (\n <MenuItem\n key=\"leave\"\n label={t('collections.options.leave')}\n glyph={<CollectionLeaveGlyph />}\n onClick={() => setShowLeaveModal(true)}\n testId=\"collection-actions-more-leave\"\n />\n )}\n {showMoreAddYouTube && (\n <MenuItem\n key=\"addyoutube\"\n label={t('collections.options.importYoutube')}\n glyph={<Glyphs.Upload16x16 />}\n onClick={() => setShowYoutubeModal(true)}\n testId=\"collection-actions-more-addyoutube\"\n />\n )}\n {showMoreRename && (\n <MenuItem\n key=\"rename\"\n label={t('collections.options.rename')}\n glyph={<Glyphs.Edit16x16 />}\n onClick={() => setShowRenameModal(true)}\n testId=\"collection-actions-more-rename\"\n />\n )}\n </>\n );\n\n const collectionMoreMenuButton = (\n <PopoverButton\n style={{}}\n buttonGlyph={<Glyphs.EllipsisStacked16x16 />}\n origin={TscPopoverOrigin.bottomRight}\n themeName={theme}\n showArrow={false}\n buttonText={t('More')}\n buttonTitle={t('More')}\n buttonType={TscButtonType.tertiary}\n mobileContextMenuTitle={t('collections.options.title', {collectionName: activeCollection?.Name})}\n popoverMenu={moreMenu}\n useMobileMenu={true}\n mobileContextMenuZindex={cssConstants.zIndex.mobileContextMenu}\n closeMenuOnClick={true}\n popoverMenuMaxHeight={cssConstants.contextMenuMaxHeight}\n testId=\"collection-actions-more\"\n />\n );\n\n return (\n <>\n <GridLayoutButtonGroup>\n {showShare && (\n <ControlButton\n buttonType={TscButtonType.tertiary}\n themeName={theme}\n glyph={<Glyphs.Share16x16 />}\n title={t('share.action')}\n label={t('share.action')}\n testId=\"collection-actions-share\"\n onClick={() => setShowShareModal(true)}\n />\n )}\n {showLeave && (\n <ControlButton\n buttonType={TscButtonType.secondary}\n themeName={theme}\n onClick={() => setShowLeaveModal(true)}\n title={t('collections.options.leave')}\n label={t('collections.options.leave')}\n testId=\"collection-actions-leave\"\n />\n )}\n {showManage && (\n <ControlButton\n buttonType={TscButtonType.primary}\n themeName={theme}\n href={`${Constants.navigation.myCollectionsLink}/${activeCollection?.Id}`}\n title={t('collections.options.manage')}\n label={t('collections.options.manage')}\n testId=\"collection-actions-manage\"\n />\n )}\n {showJoin && (\n <ControlButton\n buttonType={TscButtonType.secondary}\n onClick={onJoinCollection}\n themeName={theme}\n title={t('collections.options.join')}\n label={t('collections.options.join')}\n testId=\"collection-actions-join\"\n />\n )}\n {showLoginToJoin && (\n <ControlButton\n buttonType={TscButtonType.secondary}\n href={`/register?redirect=/collections/${activeCollection?.Id}`}\n themeName={theme}\n title={t('collections.options.signInToFollow')}\n label={t('collections.options.signInToFollow')}\n testId=\"collection-actions-signInToFollow\"\n />\n )}\n {showNotificationButton && <CollectionNotificationToggle />}\n {showMore && collectionMoreMenuButton}\n {areItemsSelected && (\n <ControlButton\n title={t('removeMedia.removeMedia')}\n glyph={<Glyphs.CircleRemove16x16 />}\n label={t('removeMedia.removeButtonLabel')}\n buttonType={TscButtonType.tertiary}\n themeName={theme}\n onClick={() => setShowBatchRemoveModal(true)}\n testId=\"collection-actions-batch-remove\"\n />\n )}\n\n {showLeaveModal && (\n <LeaveCollectionModal\n collection={activeCollection}\n onClose={() => setShowLeaveModal(false)}\n onLeave={onLeaveCollection}\n />\n )}\n {showShareModal && <ShareCollectionModal onClose={() => setShowShareModal(false)} />}\n {showDeleteModal && (\n <DeleteModal\n onClose={() => setShowDeleteModal(false)}\n onDelete={onDeleteCollection}\n collectionsToDelete={[activeCollection]}\n title={t('collections.delete.title')}\n warning={t('collections.delete.warning', {collectionName: activeCollection?.Name})}\n />\n )}\n {showYoutubeModal && (\n <AddYoutubeMediaModal\n onClose={() => setShowYoutubeModal(false)}\n collectionId={activeCollection?.Id}\n />\n )}\n {showRenameModal && <RenameCollectionModal onClose={() => setShowRenameModal(false)} />}\n {showBatchRemoveModal && (\n <CollectionMediaRemove\n onClose={() => setShowBatchRemoveModal(false)}\n collection={activeCollection}\n media={selectedMedia}\n />\n )}\n </GridLayoutButtonGroup>\n </>\n );\n};\n\nexport interface ICollectionActionMenuProps {\n isManagementView: boolean;\n}\n\nexport interface IStateMappedProps {\n activeCollection: ICollectionModel;\n selectedMedia: IMediaDetails[];\n}\n\nconst mapStatesToProps = (\n {isManagementView}: ICollectionActionMenuProps,\n {activeCollection}: Partial<IStateMappedProps>,\n {selectedMedia}: Partial<IStateMappedProps>\n): ICollectionActionMenuProps & IStateMappedProps => ({isManagementView, activeCollection, selectedMedia});\n\nexport default withMemoizedContexts(mapStatesToProps, collectionsStore, batchSelectionStore)(CollectionActionMenuBase);\n","import React, {useEffect, useRef, useState} from 'react';\nimport {renderToStaticMarkup} from 'react-dom/server';\nimport {useTranslation} from 'react-i18next';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport config from '../../service/config';\nimport {Avatar, TscAvatarSize, ControlButton, TscButtonType, EmptyState, Glyphs, MediaCard, TscMediaOrganizationType, Spinner, Label, TscThemeName, TscStyles, TscThemeNames} from '@techsmith/tsc-cloud-style-guide';\nimport {IMediaDetails} from '../../model/mediaDetails';\nimport dayjs from 'dayjs';\nimport {ButtonStyledAsAnchor, GridLayoutContainer, LibraryContentContainer, MediaSectionHeader, Subheader, SubheaderControls, SubheaderTitleContainer} from '../util/StyledElements';\nimport decode from 'entity-decode';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {useTscTheme} from '../../context/themeProvider';\nimport collectionApi from '../../service/collectionApi';\nimport {buildMediaQueryParams} from '../util/MediaQueryParamsBuilder';\nimport Axios, {CancelTokenSource} from 'axios';\nimport Constants, {CollectionPrivacyTypes, GroupRoleTypes, SortMetric} from '../../constants/Constants';\nimport {collectionMediaStore, updateCollectionMediaState} from '../../context/collectionMediaProvider';\nimport {collectionsStore, updateActiveCollectionById} from '../../context/collectionsProvider';\nimport {ICollectionModel, IMemberDetailsModel, IMemberDetailsWithProfileImageModel} from '../../model/appModel';\nimport EmptyLibrary from '../../static/svg/EmptyLibrary.svg';\nimport TimeFormatter from '../../util/TimeFormatter';\nimport styled from 'styled-components';\nimport {sortMedia} from '../../util/MediaSorter';\nimport SortDirectionOptions from '../util/SortDirectionOptions';\nimport {sortMetricStore} from '../../service/sortMetricProvider';\nimport MediaProcessingGlyph from '../../static/svg/MediaProcessingGlyph.svg';\nimport MediaPrivateGlyph from '../../static/svg/MediaPrivateGlyph.svg';\nimport CollectionActionMenu from './CollectionActionMenu';\nimport {CollectionMediaRemove} from '../details/CollectionMediaRemove';\nimport profileApi from '../../service/profileApi';\nimport {useParams} from 'react-router';\nimport {batchSelectionStore, clearBatchSelection, updateBatchSelectionState} from '../../context/batchSelectionProvider';\nimport BatchSelectionIndicator from '../library/BatchSelectionIndicator';\nimport ShareCollectionModal from '../modals/ShareCollectionModal';\n\ninterface IRouterParams {\n id: string;\n}\n\ndayjs.extend(relativeTime);\n\nexport const SubheaderTitle = styled.h3`\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst CollectionMemberAvatars = styled(ButtonStyledAsAnchor)`\n display: flex;\n align-items: center;\n margin-left: 1rem;\n text-decoration: none;\n`;\n\nexport const PrivateCollectionEmptyStateContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 100%;\n`;\n\nexport const AvatarButtonContainer = styled.div`\n display: grid;\n grid-template-columns: auto auto;\n grid-gap: .25rem;\n flex-shrink: 0;\n}`;\n\nconst MoreMembersButton = styled(ControlButton)`\n border-radius: 1rem;\n\n &:focus:after {\n border-radius: 1rem;\n }\n`;\n\nconst StackedAvatar = styled(Avatar)<{theme: TscThemeNames}>`\n border: 1px solid ${props => props.theme === TscThemeName.dusk ? '#2a3137' : TscStyles.color.global.white};\n background-color: ${props => props.theme === TscThemeName.dusk ? '#2a3137' : TscStyles.color.global.white};\n margin-left: -0.5rem;\n &:first-child {\n margin-left: 0;\n }\n`;\n\nconst decorateMemberWithProfileImageUrl = (user: IMemberDetailsModel): IMemberDetailsWithProfileImageModel => ({...user, profileImageUrl: profileApi.getProfileImageUrl(user.TechSmithId)});\nconst collectionMemberRolePriority = (role: GroupRoleTypes): number => role === GroupRoleTypes.manager ? 2 : role === GroupRoleTypes.contributor ? 1 : 0;\nconst compareMemberRoles = (m1: IMemberDetailsModel, m2: IMemberDetailsModel) => m1.Role === m2.Role ? 0 : collectionMemberRolePriority(m1.Role) > collectionMemberRolePriority(m2.Role) ? -1 : 1;\n\nexport const CollectionContentBase: React.FC<ICollectionContentProps & IStateMappedProps> = ({isManagementView, activeCollection, isUpdatingSidebarCollections, collections, collectionMedia, collectionMediaCanLoadMore, collectionMediaCursor, sortMetric, selectedMedia}) => {\n const {id} = useParams<IRouterParams>();\n const {t} = useTranslation();\n const theme = useTscTheme();\n const mediaProcessingSvgDataUri = `data:image/svg+xml;base64,${btoa(renderToStaticMarkup(<MediaProcessingGlyph />))}`;\n const mediaPrivateSvgDataUri = `data:image/svg+xml;base64,${btoa(renderToStaticMarkup(<MediaPrivateGlyph />))}`;\n const [isFetchingMedia, setIsFetchingMedia] = useState(!!(id || activeCollection));\n const getMediaCancellationToken = useRef<CancelTokenSource>(null);\n const [showShareModal, setShowShareModal] = useState(false);\n const [members, setMembers] = useState<IMemberDetailsWithProfileImageModel[]>(activeCollection?.MemberDetails.map(m => decorateMemberWithProfileImageUrl(m)) ?? []);\n const [showCollectionMediaRemove, setShowCollectionMediaRemove] = useState(false);\n const [mediaToRemove, setMediaToRemove] = useState([]);\n\n const initialize = async () => {\n if (!activeCollection) {\n await updateActiveCollectionById(id);\n }\n };\n\n useEffect(() => {\n void initialize();\n }, [id, collections]);\n\n useEffect(() => {\n if (activeCollection) {\n clearBatchSelection();\n void getCollectionMediaDiscardingExistingMedia();\n }\n }, [activeCollection]);\n\n useEffect(() => {\n if (activeCollection?.MemberDetails) {\n activeCollection?.MemberDetails.sort(compareMemberRoles);\n setMembers(activeCollection?.MemberDetails.map(m => decorateMemberWithProfileImageUrl(m)));\n }\n }, [activeCollection?.MemberDetails?.length]);\n\n useEffect(() => {\n if (collectionMediaCanLoadMore) {\n void (activeCollection && getCollectionMediaDiscardingExistingMedia());\n } else if (collectionMedia) {\n updateCollectionMediaState({collectionMedia: Object.assign([], sortMedia(collectionMedia, sortMetric, true))});\n }\n }, [sortMetric]);\n\n const generateGetMediaCancellationToken = () => {\n const currentCancellationToken = getMediaCancellationToken.current;\n if (currentCancellationToken) {\n currentCancellationToken.cancel();\n }\n\n const newCancellationToken = Axios.CancelToken.source();\n getMediaCancellationToken.current = newCancellationToken;\n return newCancellationToken;\n };\n\n const getCollectionMediaDiscardingExistingMedia = async () => {\n updateCollectionMediaState({collectionMedia: [], collectionMediaCursor: null});\n // We need to pass the cursor to the get collection method because the state doesn't always update fast enough\n await getCollectionMedia([], null);\n };\n\n const getCollectionMedia = async (existingMedia: IMediaDetails[], collectionCursor: string) => {\n setIsFetchingMedia(true);\n\n let newBatch: IMediaDetails[];\n try {\n newBatch = await collectionApi.getMedia(activeCollection?.Id, buildMediaQueryParams(sortMetric, collectionCursor), generateGetMediaCancellationToken());\n } catch (error) {\n if (Axios.isCancel(error)) {\n return;\n }\n\n throw error;\n }\n\n if (newBatch?.length) {\n const loadedMedia = existingMedia.concat(newBatch);\n const newLastLoadedMediaHash = newBatch[newBatch.length - 1].Hash;\n updateCollectionMediaState({\n collectionMedia: loadedMedia,\n collectionMediaCursor: newLastLoadedMediaHash,\n collectionMediaCanLoadMore: newBatch.length >= Constants.mediaPaginationBatchSize\n });\n } else {\n updateCollectionMediaState({collectionMediaCanLoadMore: false});\n }\n\n setIsFetchingMedia(false);\n };\n\n const selectMedia = (media: IMediaDetails) => {\n const newSelectedMedia: IMediaDetails[] = selectedMedia.slice();\n const mediaIndex: number = newSelectedMedia.findIndex(m => m.Hash === media.Hash);\n\n if (mediaIndex === -1) {\n newSelectedMedia.push(media);\n } else {\n newSelectedMedia.splice(mediaIndex, 1);\n }\n\n updateBatchSelectionState({selectedMedia: newSelectedMedia});\n };\n\n const onRemoveMediaClick = (media: IMediaDetails) => {\n setMediaToRemove([media]);\n setShowCollectionMediaRemove(true);\n };\n\n const onCloseRemoveMedia = () => {\n setShowCollectionMediaRemove(false);\n setMediaToRemove([]);\n };\n\n const maxMembersToDisplay = 5;\n const moreMembersCount = members.length - maxMembersToDisplay;\n const membersContent = members && (\n <AvatarButtonContainer>\n <CollectionMemberAvatars onClick={() => setShowShareModal(true)}>\n {members.slice(0, maxMembersToDisplay).map(m => (\n <StackedAvatar\n key={`member-avatar-${m.TechSmithId}`}\n size={TscAvatarSize.small}\n userDisplayName={m.DisplayName}\n userAltText={m.EmailAddress}\n userID={m.TechSmithId}\n avatarImageUrl={m.profileImageUrl}\n testId={`collection-member-user-avatar-${m.TechSmithId}`}\n className=\"member-avatar\"\n theme={theme}\n />\n ))}\n </CollectionMemberAvatars>\n {moreMembersCount > 0 && (\n <MoreMembersButton\n buttonType={TscButtonType.secondary}\n themeName={theme}\n title={t('collection.modal.members.membersTitle')}\n label={`+${moreMembersCount.toString()}`}\n testId=\"collection-more-members\"\n onClick={() => setShowShareModal(true)}\n />\n )}\n </AvatarButtonContainer>\n );\n const emptyLibrarySvgDataUri = `data:image/svg+xml;base64,${btoa(renderToStaticMarkup(<EmptyLibrary />))}`;\n const collectionHasMedia = collectionMedia?.length > 0;\n const showPrivateCollectionEmptyState = !config.isAdmin && activeCollection?.Privacy === CollectionPrivacyTypes.invite && activeCollection?.Role === GroupRoleTypes.notMember;\n const areItemsSelected = selectedMedia?.length > 0;\n const userCanAdmin = config.user.IsSignedIn && (config.isAdmin || activeCollection?.Role === GroupRoleTypes.manager);\n\n const userCanRemove = (media: IMediaDetails) => userCanAdmin || (activeCollection?.Role === GroupRoleTypes.contributor && media.OwnerLibrary.User.TechSmithId === config.user.TechSmithId);\n\n return (\n <>\n {showPrivateCollectionEmptyState && (\n <PrivateCollectionEmptyStateContainer>\n <EmptyState\n maxWidth=\"25rem\"\n title={t('collection.privateTitle')}\n text={t('collection.privateText')}\n imageSource={emptyLibrarySvgDataUri}\n themeName={theme}\n alt={t('collection.privateImageAltText')}\n />\n </PrivateCollectionEmptyStateContainer>\n )}\n {!showPrivateCollectionEmptyState && (\n <InfiniteScroll\n loadMore={() => getCollectionMedia(collectionMedia, collectionMediaCursor)}\n initialLoad={true}\n hasMore={collectionMediaCanLoadMore && !isFetchingMedia}\n useWindow={true}\n >\n <Subheader\n theme={theme}\n isVisible={!showPrivateCollectionEmptyState}\n >\n <SubheaderControls theme={theme}>\n <SubheaderTitleContainer theme={theme}>\n {areItemsSelected && <BatchSelectionIndicator />}\n {!areItemsSelected && (\n <>\n <Glyphs.Collection16x16 />\n <SubheaderTitle className=\"t-collection-name\">\n {activeCollection?.Name}\n </SubheaderTitle>\n {membersContent}\n </>\n )}\n </SubheaderTitleContainer>\n {!isUpdatingSidebarCollections && <CollectionActionMenu isManagementView={isManagementView} />}\n </SubheaderControls>\n </Subheader>\n <LibraryContentContainer data-test-id=\"collection-content\">\n <MediaSectionHeader theme={theme}>\n <Label labelText={t('library.media.sectionHeader')} />\n <SortDirectionOptions />\n </MediaSectionHeader>\n <GridLayoutContainer hasMedia={collectionHasMedia}>\n {collectionHasMedia && collectionMedia.map(media => (\n <MediaCard\n key={media.Hash}\n mediaDate={dayjs(media.AddedToGroupDateTime).fromNow()}\n mediaDateTitle={dayjs(media.AddedToGroupDateTime).toLocaleString()}\n mediaDuration={media.IsVideo && media.Duration ? TimeFormatter.formatTime(TimeFormatter.getSecondsFromTimeString(media.Duration)) : ''}\n mediaUrl={`/${media.Hash}?collection=${id}&sort=${sortMetric}`}\n ownerAvatarUrl={`${config.environmentData.ProfileApiUrl}/api/v1/profiles/${media.OwnerLibrary.User.TechSmithId}/default/picture`}\n ownerId={media.OwnerLibrary.User.TechSmithId}\n ownerName={media.Author}\n themeName={theme}\n thumbnailUrl={media.IsReady ? media.ThumbnailUrl ?? mediaPrivateSvgDataUri : mediaProcessingSvgDataUri}\n title={decode(media.Title)}\n maxTitleLines={1}\n viewCount={media.ViewCount}\n organizationType={TscMediaOrganizationType.collection}\n hasCaptions={media.HasPublishedCaptions}\n showDetails={true}\n testId={`t-media-${media.Hash}`}\n controls={isManagementView && !areItemsSelected && userCanRemove(media) && (\n <ControlButton\n themeName={theme}\n title={t('removeMedia.removeMedia')}\n glyph={<Glyphs.CircleRemove16x16 />}\n buttonType={TscButtonType.tertiary}\n onClick={() => onRemoveMediaClick(media)}\n testId={`remove-button-${media.Hash}`}\n />\n )}\n isSelected={userCanAdmin ? selectedMedia.some(m => m.Hash === media.Hash) : null}\n onSelect={isManagementView && userCanAdmin ? (): void => selectMedia(media) : null}\n />\n ))}\n {!isFetchingMedia && !collectionHasMedia && (\n <EmptyState\n maxWidth=\"25rem\"\n title={t('collection.emptyTitle')}\n text={t('collection.emptyText')}\n imageSource={emptyLibrarySvgDataUri}\n themeName={theme}\n alt={t('collection.emptyImageAltText')}\n />\n )}\n </GridLayoutContainer>\n {isFetchingMedia && (\n <Spinner\n testId=\"t-collection-loading\"\n key=\"spinner\"\n themeName={theme}\n />\n )}\n </LibraryContentContainer>\n </InfiniteScroll>\n )}\n {showShareModal && <ShareCollectionModal onClose={() => setShowShareModal(false)} />}\n {showCollectionMediaRemove && (\n <CollectionMediaRemove\n onClose={onCloseRemoveMedia}\n collection={activeCollection}\n media={mediaToRemove}\n />\n )}\n </>\n );\n};\n\nexport interface ICollectionContentProps {\n isManagementView: boolean;\n}\n\nexport interface IStateMappedProps {\n activeCollection: ICollectionModel;\n collections: ICollectionModel[];\n isUpdatingSidebarCollections: boolean;\n collectionMedia: IMediaDetails[];\n collectionMediaCanLoadMore: boolean;\n collectionMediaCursor?: string;\n sortMetric: SortMetric;\n selectedMedia: IMediaDetails[];\n}\n\nconst mapStatesToProps = (\n {isManagementView}: ICollectionContentProps,\n {activeCollection, collections, isUpdatingSidebarCollections}: Partial<IStateMappedProps>,\n {collectionMedia, collectionMediaCanLoadMore, collectionMediaCursor}: Partial<IStateMappedProps>,\n {sortMetric}: Partial<IStateMappedProps>,\n {selectedMedia}: Partial<IStateMappedProps>\n): ICollectionContentProps & IStateMappedProps => ({isManagementView, activeCollection, collections, isUpdatingSidebarCollections, collectionMedia, collectionMediaCanLoadMore, collectionMediaCursor, sortMetric, selectedMedia});\n\nexport default withMemoizedContexts(mapStatesToProps, collectionsStore, collectionMediaStore, sortMetricStore, batchSelectionStore)(CollectionContentBase);\n","import * as React from 'react';\nimport {ControlButton, Glyphs, TscButtonType} from '@techsmith/tsc-cloud-style-guide';\nimport UserMessaging from '../../util/UserMessaging';\nimport {useTranslation} from 'react-i18next';\nimport {SetupWorkerState} from '../../model/workerState';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {useTscTheme} from '../../context/themeProvider';\nimport logging from '../../service/logging';\nimport collectionApi from '../../service/collectionApi';\nimport {collectionsStore} from '../../context/collectionsProvider';\nimport {ICollectionModel} from '../../model/appModel';\nimport {BooleanParam, useQueryParam} from 'use-query-params';\nimport Constants, {GroupRoleTypes} from '../../constants/Constants';\nimport {AlertModalPortal} from '../util/ModalPortalHelper';\n\nexport const CollectionNotificationToggleBase: React.FC<IStateMappedProps> = ({activeCollection}) => {\n const {t} = useTranslation();\n const theme = useTscTheme();\n const [isNotificationEnabled, setIsNotificationEnabled] = React.useState(null);\n const [loadingState, setLoadingState] = SetupWorkerState();\n // Grab the value of the query param 'unsubscribe' to enable unsubscribing from collections via a URL\n const [unsubscribeParam, setUnsubscribeParam] = useQueryParam(Constants.queryParams.unsubscribe, BooleanParam);\n const [showCollectionNotificationModal, setShowCollectionNotificationModal] = React.useState(false);\n\n const undoUnsubscribe = () => {\n void collectionApi.subscribeToCollection(activeCollection.Id);\n setIsNotificationEnabled(true);\n setShowCollectionNotificationModal(false);\n };\n\n const onCloseNotificationsModal = () => {\n setUnsubscribeParam(null);\n setShowCollectionNotificationModal(false);\n };\n\n React.useEffect(() => {\n if (isNotificationEnabled) {\n unsubscribe();\n } else if (isNotificationEnabled === false) {\n // Remove the query param 'unsubscribe' from the URL, preventing it from causing any side effects on navigation or page refresh\n setUnsubscribeParam(null);\n }\n }, [isNotificationEnabled]);\n\n const getNotificationPreference = async () => {\n if (activeCollection && activeCollection.Role !== GroupRoleTypes.notMember) {\n setIsNotificationEnabled(await collectionApi.isSubscribedToCollection(activeCollection.Id) !== false);\n }\n };\n\n const unsubscribe = () => {\n if (unsubscribeParam) {\n void collectionApi.unsubscribeFromCollection(activeCollection.Id);\n setIsNotificationEnabled(false);\n setShowCollectionNotificationModal(true);\n }\n };\n\n React.useEffect(() => {\n void getNotificationPreference();\n }, [activeCollection]);\n\n const toggleNotificationPreference = async (): Promise<void> => {\n if (!loadingState.isWorking) {\n try {\n setLoadingState({isWorking: true, hasError: false});\n const newNotificationValue = !isNotificationEnabled;\n setIsNotificationEnabled(newNotificationValue);\n if (newNotificationValue) {\n await collectionApi.subscribeToCollection(activeCollection.Id);\n } else {\n await collectionApi.unsubscribeFromCollection(activeCollection.Id);\n }\n setLoadingState({isWorking: false, hasError: false});\n } catch (e) {\n setLoadingState({isWorking: false, hasError: true});\n logging.error('Failed to toggle notification preference', e);\n UserMessaging.warn(t('collections.failedUpdatePreference'));\n }\n }\n };\n\n return (\n <>\n <ControlButton\n glyph={isNotificationEnabled ? <Glyphs.Alert16x16 /> : <Glyphs.AlertOutline16x16 />}\n buttonType={TscButtonType.tertiary}\n title={isNotificationEnabled ? t('collections.options.unsubscribeToCollectionAlerts') : t('collections.options.subscribeToCollectionAlerts')}\n label={t('collections.notify')}\n onClick={toggleNotificationPreference}\n active={isNotificationEnabled}\n themeName={theme}\n testId=\"collection-notification-toggle\"\n disabled={loadingState.isWorking}\n />\n {showCollectionNotificationModal && (\n <AlertModalPortal\n title={t('collections.collectionNotifications')}\n onClose={onCloseNotificationsModal}\n onConfirm={onCloseNotificationsModal}\n confirmButtonType={TscButtonType.secondary}\n confirmContent={t('general.close')}\n onDismiss={undoUnsubscribe}\n dismissButtonType={TscButtonType.tertiary}\n dismissContent={t('collections.undoUnsubscribe')}\n >\n {t('collections.unsubscribeConfirmation')}\n </AlertModalPortal>\n )}\n </>\n );\n};\n\nexport interface IStateMappedProps {\n activeCollection: ICollectionModel;\n}\n\nconst mapStatesToProps = (\n // eslint-disable-next-line no-empty-pattern\n {},\n {activeCollection}: Partial<IStateMappedProps>\n): IStateMappedProps => ({activeCollection});\n\nexport default withMemoizedContexts(mapStatesToProps, collectionsStore)(CollectionNotificationToggleBase);\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {ICollectionModel} from '../../model/appModel';\nimport {Glyphs} from '@techsmith/tsc-cloud-style-guide';\nimport DeleteModal from '../modals/DeleteModal';\nimport {IMediaDetails} from '../../model/mediaDetails';\nimport {removeMediaFromCollection} from '../../context/collectionMediaProvider';\nimport styled from 'styled-components';\nimport decode from 'entity-decode';\nimport {clearBatchSelection} from '../../context/batchSelectionProvider';\n\nconst MediaList = styled.ul`\n list-style-type: none;\n overflow-x: auto; \n white-space: nowrap; \n`;\n\nconst ItemDescriptionTitle = styled.span`\n margin-left: .5rem;\n flex: 0 1 auto;\n`;\nconst ItemDescription = styled.li`\n display: flex;\n align-items: center;\n`;\n\nconst IconContainer = styled.div`\n flex-shrink: 0;\n display: flex;\n align-items: center;\n margin-right: 5px;\n`;\n\nexport const CollectionMediaRemove: React.FC<ICollectionMediaRemoveProps> = ({onClose, collection, media}) => {\n const {t} = useTranslation();\n\n const mediaToRemove = {\n media: media,\n collection: collection\n };\n\n const mediaWarningMessage = (\n <>\n <p>\n {t('removeMedia.batch', {amount: media.length})}\n </p>\n <MediaList>\n {media.map((item, index) => (\n <ItemDescription key={index}>\n <IconContainer>\n {item.IsVideo ? <Glyphs.Video16x16 /> : <Glyphs.Image16x16 />}\n </IconContainer>\n <ItemDescriptionTitle>\n {decode(item.Title)}\n </ItemDescriptionTitle>\n </ItemDescription>\n ))}\n </MediaList>\n </>\n );\n\n const onDelete = () => {\n removeMediaFromCollection(media);\n clearBatchSelection();\n };\n\n return (\n <DeleteModal\n onClose={onClose}\n onDelete={onDelete}\n collectionMediaToDelete={mediaToRemove}\n title={t('removeMedia.title', {type: media.length > 1 ? t('removeMedia.mediaType') : media[0]?.IsVideo ? t('removeMedia.videoType') : t('removeMedia.imageType')})}\n warning={media.length > 1 ? mediaWarningMessage : t('removeMedia.warning', {media: decode(media[0]?.Title)})}\n deleteButtonText={t('general.remove')}\n />\n );\n};\n\nexport interface ICollectionMediaRemoveProps {\n onClose(): void;\n collection: ICollectionModel;\n media: IMediaDetails[];\n}\n\nexport default CollectionMediaRemove;\n","import React, {memo} from 'react';\nimport {GradientBorder} from '../../component/util/StyledElements';\nimport styled from 'styled-components';\nimport {TscThemeNames, TscStyles} from '@techsmith/tsc-cloud-style-guide';\nimport cssConstants from '../../constants/cssConstants';\nimport {useTscTheme} from '../../context/themeProvider';\n\nconst HeaderContainerPlaceholder = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n flex: 0 0 auto;\n font-size: 0.875rem;\n top: 0;\n left: 0;\n right: 0;\n`;\n\nconst StyledHeaderPlaceholder = styled.header<{theme: TscThemeNames}>`\n display: flex;\n flex-direction: row;\n background-color: ${cssConstants.headerBackgroundColor};\n color: ${TscStyles.color.text.light};\n height: ${cssConstants.headerHeight};\n padding: 0 1rem;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n`;\n\nexport const HeaderPlaceholderBase: React.FC = () => {\n const theme = useTscTheme();\n\n return (\n <HeaderContainerPlaceholder>\n <StyledHeaderPlaceholder theme={theme} />\n <GradientBorder />\n </HeaderContainerPlaceholder>\n );\n};\n\nexport default memo(HeaderContainerPlaceholder);\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {ControlButton, TscButtonType} from '@techsmith/tsc-cloud-style-guide';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport styled from 'styled-components';\nimport {IFolderTreeNode} from '../../model/folderTreeNode';\nimport {IMediaDetails} from '../../model/mediaDetails';\nimport {batchSelectionStore, clearBatchSelection} from '../../context/batchSelectionProvider';\nimport {useTscTheme} from '../../context/themeProvider';\n\nexport const BatchSelectionContainer = styled.div`\n margin-right: .5rem;\n`;\n\nexport const BatchSelectionIndicatorBase: React.FC<IStateMappedProps> = ({selectedFolders, selectedMedia}) => {\n const {t} = useTranslation();\n const theme = useTscTheme();\n\n let selectionMessage;\n const selectedItemsCount = selectedFolders.length + selectedMedia.length;\n const hasSelectedItems = selectedItemsCount > 0;\n const itemCountMessage = t('library.multiSelect.itemCountMessage', {itemCount: selectedItemsCount});\n const foldersMessage = selectedFolders.length === 1 ? t('library.multiSelect.singleFolderMessage') : t('library.multiSelect.foldersMessage', {numFolders: selectedFolders.length});\n const mediaMessage = t('library.multiSelect.mediaMessage', {numMedia: selectedMedia.length});\n if (selectedFolders.length && selectedMedia.length) {\n selectionMessage = itemCountMessage;\n } else if (selectedFolders.length) {\n selectionMessage = foldersMessage;\n } else {\n selectionMessage = mediaMessage;\n }\n\n return hasSelectedItems ? (\n <BatchSelectionContainer>\n <ControlButton\n buttonType={TscButtonType.secondary}\n themeName={theme}\n onClick={clearBatchSelection}\n title={t('library.multiSelect.clearSelectionTitle')}\n label={t('library.multiSelect.clearSelectionLabel', {selectionMessage: selectionMessage})}\n />\n </BatchSelectionContainer>\n ) :\n null;\n};\n\nexport interface IStateMappedProps {\n selectedFolders: IFolderTreeNode[];\n selectedMedia: IMediaDetails[];\n}\n\nconst mapStatesToProps = (\n // eslint-disable-next-line no-empty-pattern\n {},\n {selectedFolders, selectedMedia}: Partial<IStateMappedProps>\n): IStateMappedProps => ({selectedFolders, selectedMedia});\n\nexport default withMemoizedContexts(mapStatesToProps, batchSelectionStore)(BatchSelectionIndicatorBase);\n","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {ControlButton, TscButtonType, TextInput} from '@techsmith/tsc-cloud-style-guide';\nimport cssConstants from '../../constants/cssConstants';\nimport {MinWidthButtonWrapper, StyledWarning} from '../util/StyledElements';\nimport '../../static/css/modal.less';\nimport {BasicModalPortal} from '../util/ModalPortalHelper';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {useTscTheme} from '../../context/themeProvider';\nimport {collectionsStore, updateActiveCollection} from '../../context/collectionsProvider';\nimport {IWorkerState} from '../../model/workerState';\nimport {ICollectionModel} from '../../model/appModel';\nimport collectionApi from '../../service/collectionApi';\nimport Constants from '../../constants/Constants';\nimport StringUtil from '../../util/StringUtil';\n\ninterface IModalState extends IWorkerState {\n collectionName: string;\n errorMessage: string;\n}\n\nexport const RenameCollectionModalBase: React.FC<IRenameCollectionModalProps & IStateMappedProps> = ({onClose, activeCollection}) => {\n const {t} = useTranslation();\n const theme = useTscTheme();\n const [modalState, updateModalState] = useState<IModalState>({\n isWorking: false,\n hasError: false,\n collectionName: activeCollection.Name,\n errorMessage: ''\n });\n\n const updateCollectionName = (evt: React.ChangeEvent<HTMLInputElement>): void => {\n const updatedCollectionName = evt.target.value;\n\n updateModalState({\n ...modalState,\n collectionName: updatedCollectionName,\n hasError: updatedCollectionName.length > Constants.maxCollectionNameLength,\n errorMessage: updatedCollectionName.length > Constants.maxCollectionNameLength ? t('collection.modal.rename.errorNameTooLong', {maxLength: Constants.maxCollectionNameLength}) : ''\n });\n };\n\n const renameCollection = async () => {\n const trimmedCollectionName = modalState.collectionName.trim();\n await collectionApi.renameCollection(activeCollection.Id, trimmedCollectionName);\n activeCollection.Name = trimmedCollectionName;\n await updateActiveCollection({...activeCollection, Name: trimmedCollectionName});\n await onClose();\n };\n\n return (\n <BasicModalPortal\n visible={true}\n title={t('collection.modal.rename.title')}\n width={cssConstants.defaultModalWidth}\n onClose={modalState.isWorking ? (): void => null : onClose}\n themeName={theme}\n isLoading={modalState.isWorking}\n >\n <div className=\"modal-body\">\n <div className=\"form-body themeable-section\">\n <div className=\"form-field-group\">\n {modalState.hasError && (\n <StyledWarning>\n {StringUtil.isNullOrWhiteSpace(modalState.errorMessage) ? t('general.errorText') : modalState.errorMessage}\n </StyledWarning>\n )}\n <label>\n {t('collection.modal.rename.inputLabel')}\n <TextInput\n value={modalState.collectionName}\n onChange={updateCollectionName}\n themeName={theme}\n ariaLabel={t('collection.modal.rename.inputLabel')}\n readOnly={false}\n testId=\"rename-collection-link-input\"\n disabled={modalState.isWorking}\n />\n </label>\n </div>\n <MinWidthButtonWrapper className=\"button-group\">\n <ControlButton\n label={t('general.cancel')}\n buttonType={TscButtonType.secondary}\n disabled={modalState.isWorking}\n themeName={theme}\n onClick={modalState.isWorking ? (): void => null : onClose}\n testId=\"rename-collection-cancel-button\"\n />\n <ControlButton\n label={t('conversations.actions.rename')}\n buttonType={TscButtonType.primary}\n disabled={StringUtil.isNullOrWhiteSpace(modalState.collectionName) || modalState.hasError}\n themeName={theme}\n onClick={renameCollection}\n testId=\"rename-collection-submit-button\"\n />\n </MinWidthButtonWrapper>\n </div>\n </div>\n </BasicModalPortal>\n );\n};\n\nexport interface IRenameCollectionModalProps {\n onClose(): void | Promise<void>;\n}\n\nexport interface IStateMappedProps {\n activeCollection: ICollectionModel;\n}\n\nconst mapStatesToProps = (\n {onClose}: IRenameCollectionModalProps,\n {activeCollection}: Partial<IStateMappedProps>\n): IStateMappedProps & IRenameCollectionModalProps => ({onClose, activeCollection});\n\nexport default withMemoizedContexts(mapStatesToProps, collectionsStore)(RenameCollectionModalBase);\n","import {IGetMediaQueryParams} from '../../service/userApi';\nimport Constants, {OrderByQueryString, SortMetric} from '../../constants/Constants';\nimport {IFolderTreeNode} from '../../model/folderTreeNode';\nimport {MediaContentType} from '../../model/baseMedia';\n\nexport const buildMediaQueryParams = (sortMetric: SortMetric, fromHash?: string, activeFolder?: IFolderTreeNode, mediaContentFilters?: MediaContentType[], includeExcludedMedia?: boolean) => {\n const fromValue = fromHash;\n const queryParams: Partial<IGetMediaQueryParams> = fromValue ? {from: fromValue, take: Constants.mediaPaginationBatchSize} : {take: Constants.mediaPaginationBatchSize};\n\n if (activeFolder?.Hash) {\n queryParams.folderHash = activeFolder.Hash;\n }\n\n Object.assign(queryParams, buildSortMetricQueryParams(sortMetric));\n\n queryParams.includeExcludedMedia = typeof includeExcludedMedia === 'boolean' ? includeExcludedMedia : true;\n\n if (mediaContentFilters) {\n queryParams.mediaContentFilter = mediaContentFilters;\n }\n\n return queryParams;\n};\n\nexport const buildSortMetricQueryParams = (sortMetric: SortMetric) => {\n const sortMetricQueryParams: Partial<IGetMediaQueryParams> = {};\n if (sortMetric === SortMetric.dateAscending) {\n sortMetricQueryParams.orderBy = OrderByQueryString.date;\n } else if (sortMetric === SortMetric.dateDescending) {\n sortMetricQueryParams.orderBy = OrderByQueryString.date;\n sortMetricQueryParams.descending = true;\n } else if (sortMetric === SortMetric.titleAscending) {\n sortMetricQueryParams.orderBy = OrderByQueryString.title;\n } else if (sortMetric === SortMetric.titleDescending) {\n sortMetricQueryParams.orderBy = OrderByQueryString.title;\n sortMetricQueryParams.descending = true;\n } else if (sortMetric === SortMetric.viewsAscending) {\n sortMetricQueryParams.orderBy = OrderByQueryString.views;\n } else if (sortMetric === SortMetric.viewsDescending) {\n sortMetricQueryParams.orderBy = OrderByQueryString.views;\n sortMetricQueryParams.descending = true;\n }\n return sortMetricQueryParams;\n};\n","import React from 'react';\nimport {ScreenReaderOnly} from './StyledElements';\n\nconst ScreenReaderHelper: React.FC<IScreenReaderHelperProps> = ({href, text}) => (\n <ScreenReaderOnly data-test-id=\"screen-reader\">\n <span\n id=\"aria-live-status\"\n role=\"status\"\n aria-live=\"polite\"\n />\n <a href={href}>\n {text}\n </a>\n </ScreenReaderOnly>\n);\n\ninterface IScreenReaderHelperProps {\n href: string;\n text: string;\n}\n\nexport default ScreenReaderHelper;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {SelectInput, TscThemeName, TscThemeNames, TscStyles} from '@techsmith/tsc-cloud-style-guide';\nimport styled from 'styled-components';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {SortMetric} from '../../constants/Constants';\nimport {setSortMetric, sortMetricStore} from '../../service/sortMetricProvider';\nimport {useTscTheme} from '../../context/themeProvider';\n\nconst SortDirectionWrapper = styled.div<{theme: TscThemeNames}>`\n & div {\n display: flex;\n align-items: center;\n color: ${props => props.theme === TscThemeName.dusk ? TscStyles.color.text.light : TscStyles.color.text.dark};\n\n label {\n margin-right: 0.5rem;\n margin-bottom: 0;\n }\n }\n\n select {\n font-size: 0.875rem;\n line-height: 1.4;\n }\n`;\n\nexport const SortDirectionOptionsBase: React.FC<IStateMappedProps> = ({sortMetric}) => {\n const {t} = useTranslation();\n const theme = useTscTheme();\n\n const updateSortOption = (evt: React.ChangeEvent<HTMLSelectElement>): void => {\n const newSortMetric = evt.target.value as SortMetric;\n setSortMetric(newSortMetric);\n };\n\n const sortOptions = [\n {value: SortMetric.dateAscending, label: t('sortOptions.date.ascending.label'), title: t('sortOptions.date.ascending.title')},\n {value: SortMetric.dateDescending, label: t('sortOptions.date.descending.label'), title: t('sortOptions.date.descending.title')},\n {value: SortMetric.titleAscending, label: t('sortOptions.title.ascending.label'), title: t('sortOptions.title.ascending.title')},\n {value: SortMetric.titleDescending, label: t('sortOptions.title.descending.label'), title: t('sortOptions.title.descending.title')},\n {value: SortMetric.viewsAscending, label: t('sortOptions.views.ascending.label'), title: t('sortOptions.views.ascending.title')},\n {value: SortMetric.viewsDescending, label: t('sortOptions.views.descending.label'), title: t('sortOptions.views.descending.title')}\n ];\n\n return (\n <SortDirectionWrapper data-test-id=\"sort-direction-wrapper\">\n <SelectInput\n label={t('sortOptions.label')}\n value={sortMetric}\n options={sortOptions}\n onChange={updateSortOption}\n themeName={theme}\n isFullWidth={false}\n />\n </SortDirectionWrapper>\n );\n};\n\nexport interface IStateMappedProps {\n sortMetric: SortMetric;\n}\n\nconst mapStatesToProps = (\n // eslint-disable-next-line no-empty-pattern\n {},\n {sortMetric}: Partial<IStateMappedProps>\n): IStateMappedProps => ({sortMetric});\n\nexport default withMemoizedContexts(mapStatesToProps, sortMetricStore)(SortDirectionOptionsBase);\n","import {IMediaDetails} from '../model/mediaDetails';\nimport {SortMetric} from '../constants/Constants';\nimport dayjs from 'dayjs';\nimport logging from '../service/logging';\n\nconst sortMediaByDate = (media: IMediaDetails[], descending: boolean, isCollectionMedia: boolean): IMediaDetails[] => {\n const mediaSort = (a: IMediaDetails, b: IMediaDetails): number => {\n const aSortDateTime = isCollectionMedia ? dayjs(a.AddedToGroupDateTime) : dayjs(a.SharedDateTime);\n const bSortDateTime = isCollectionMedia ? dayjs(b.AddedToGroupDateTime) : dayjs(b.SharedDateTime);\n if (aSortDateTime.isSame(bSortDateTime)) {\n return 0;\n }\n\n if (descending) {\n return aSortDateTime.isAfter(bSortDateTime) ? -1 : 1;\n }\n\n return aSortDateTime.isAfter(bSortDateTime) ? 1 : -1;\n };\n\n return media.sort(mediaSort);\n};\n\nconst sortMediaByTitle = (media: IMediaDetails[], descending: boolean): IMediaDetails[] => {\n const mediaSort = (a: IMediaDetails, b: IMediaDetails): number => {\n const aTitle = a.Title.toUpperCase();\n const bTitle = b.Title.toUpperCase();\n if (aTitle === bTitle) {\n return 0;\n }\n\n if (descending) {\n return aTitle > bTitle ? -1 : 1;\n }\n return aTitle > bTitle ? 1 : -1;\n };\n\n return media.sort(mediaSort);\n};\n\nconst sortMediaByViewCount = (media: IMediaDetails[], descending: boolean): IMediaDetails[] => {\n const mediaSort = (a: IMediaDetails, b: IMediaDetails): number => {\n if (a.ViewCount === b.ViewCount) {\n return 0;\n }\n\n if (descending) {\n return a.ViewCount > b.ViewCount ? -1 : 1;\n }\n return a.ViewCount > b.ViewCount ? 1 : -1;\n };\n\n return media.sort(mediaSort);\n};\n\nexport const sortMedia = (media: IMediaDetails[], sortMetric: SortMetric, isCollectionMedia?: boolean): IMediaDetails[] => {\n if (sortMetric === SortMetric.dateAscending) {\n return sortMediaByDate(media, false, isCollectionMedia);\n } else if (sortMetric === SortMetric.dateDescending) {\n return sortMediaByDate(media, true, isCollectionMedia);\n } else if (sortMetric === SortMetric.titleAscending) {\n return sortMediaByTitle(media, false);\n } else if (sortMetric === SortMetric.titleDescending) {\n return sortMediaByTitle(media, true);\n } else if (sortMetric === SortMetric.viewsDescending) {\n return sortMediaByViewCount(media, true);\n } else if (sortMetric === SortMetric.viewsAscending) {\n return sortMediaByViewCount(media, false);\n }\n\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n logging.error(`Attempted to sort media by unknown sortMetric: ${sortMetric}`);\n return media;\n};\n","const numberNotNeedingPadding = 10;\nconst secondsInHour = 3600;\nconst secondsInMinute = 60;\n\nconst padZero = (num: number): string => num >= numberNotNeedingPadding ? `${num}` : `0${num}`;\n\nconst formatTime = (totalSeconds: number): string => {\n const negative = totalSeconds < 0 ? '-' : '';\n const roundedTotalSeconds = negative ? Math.round(totalSeconds * -1) : Math.round(totalSeconds);\n const hoursPlace = Math.floor(roundedTotalSeconds / secondsInHour);\n const secondsWithoutHours = roundedTotalSeconds % secondsInHour;\n const minutesPlace = Math.floor(secondsWithoutHours / secondsInMinute);\n const secondsPlace = secondsWithoutHours % secondsInMinute;\n\n if (hoursPlace > 0) {\n return `${negative}${hoursPlace}:${padZero(minutesPlace)}:${padZero(secondsPlace)}`;\n } else if (minutesPlace > 0) {\n return `${negative}${minutesPlace}:${padZero(secondsPlace)}`;\n }\n\n return `${negative}00:${padZero(secondsPlace)}`;\n};\n\nconst formatTimeForSpeech = (totalSeconds: number): string => {\n const negative = totalSeconds < 0 ? '-' : '';\n const roundedTotalSeconds = negative ? Math.round(totalSeconds * -1) : Math.round(totalSeconds);\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n return Math.floor(roundedTotalSeconds) === 0 ? '0 seconds' : new Date(roundedTotalSeconds * 1000).toISOString().substr(11, 8);\n};\n\nconst getRoundedTime = (time: number): number => Math.floor(time * 1000) / 1000;\n\nconst getSecondsFromTimeString = (time: string): number => {\n const timecodeDelimiter = ':';\n const maxSupportTimecodePlaces = 3;\n const secondsMultiplier = 60;\n let timeInSeconds = 0;\n let multiplier = 1;\n const timecodeParts = time.split(timecodeDelimiter);\n const lowTimeBounds = timecodeParts.length > maxSupportTimecodePlaces ? timecodeParts.length - maxSupportTimecodePlaces : 0;\n\n for (let i = timecodeParts.length - 1; i >= lowTimeBounds; i--) {\n const timePartAsNumber = parseInt(timecodeParts[i], 10);\n if (!isNaN(timePartAsNumber)) {\n timeInSeconds += timePartAsNumber * multiplier;\n }\n multiplier *= secondsMultiplier;\n }\n\n return timeInSeconds;\n};\n\n// convert milliseconds to hh:mm:ss format with hh being included only if necessary\nconst millisecondsToFormattedTimeString = (milliseconds: number): string => {\n const seconds = Math.round(milliseconds / 1000);\n const hours = Math.floor(seconds / secondsInHour);\n const minutes = Math.floor((seconds - (hours * secondsInHour)) / secondsInMinute);\n const remainingSeconds = seconds - (hours * secondsInHour) - (minutes * secondsInMinute);\n return `${hours ? `${hours}:` : ''}${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;\n};\n\nexport default {\n formatTime,\n formatTimeForSpeech,\n getRoundedTime,\n getSecondsFromTimeString,\n millisecondsToFormattedTimeString\n};\n","/* eslint-disable no-alert */\nconst info = (message: string): void => {\n alert(message);\n};\n\nconst warn = (message: string): void => {\n alert(message);\n};\n\nexport default {\n info,\n warn\n};","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n\n var testOptions = {\n get passive() {\n passive = true;\n }\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {\n // ignore\n }\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n } else {\n options = {\n passive: false\n };\n }\n return options;\n }\n\n // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n if (scrollParent != null) {\n return scrollParent;\n }\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n\n var offset = void 0;\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n }\n\n // Here we make sure the element is visible as well as checking the offset\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop;\n // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];\n","module.exports = require('./dist/InfiniteScroll')\n","import { useHistory, useLocation } from \"react-router-dom\";\nconst ReactRouter5Adapter = ({\n children\n}) => {\n const location = useLocation();\n const history = useHistory();\n const adapter = {\n replace(location2) {\n history.replace(location2.search || \"?\", location2.state);\n },\n push(location2) {\n history.push(location2.search || \"?\", location2.state);\n },\n get location() {\n return history.location;\n }\n };\n return children(adapter);\n};\nexport {\n ReactRouter5Adapter\n};\n"],"names":["_react","_interopRequireDefault","require","_excluded","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","exports","_ref","_ref$styles","styles","props","_objectWithoutProperties2","default","React","createElement","xmlns","className","xmlnsXlink","width","height","id","x1","y1","x2","y2","gradientUnits","offset","stopColor","xlinkHref","style","isolation","d","fill","opacity","mixBlendMode","cx","cy","x","y","rx","_interopRequireWildcard","_reactI18next","_tscCloudStyleGuide","_Constants","_collectionsProvider","_contextContainerHoC","_themeProvider","_config","_collectionApi","_logging","_LeaveCollectionModal","_cssConstants","_DeleteModal","_leave16x","_AddYoutubeMediaModal","_RenameCollectionModal","_StyledElements","_ShareCollectionModal","_batchSelectionProvider","_CollectionMediaRemove","_CollectionNotificationToggle","_getRequireWildcardCache","WeakMap","__esModule","_typeof","has","get","__proto__","a","defineProperty","getOwnPropertyDescriptor","u","i","set","CollectionActionMenuBase","isManagementView","activeCollection","selectedMedia","useTranslation","theme","useTscTheme","_useState","useState","_useState2","_slicedToArray2","showShareModal","setShowShareModal","_useState3","_useState4","showLeaveModal","setShowLeaveModal","_useState5","_useState6","showDeleteModal","setShowDeleteModal","_useState7","_useState8","showYoutubeModal","setShowYoutubeModal","_useState9","_useState10","showRenameModal","setShowRenameModal","_useState11","_useState12","showBatchRemoveModal","setShowBatchRemoveModal","_useState13","Role","_useState14","activeCollectionRole","setActiveCollectionRole","useEffect","_activeCollection$Rol","GroupRoleTypes","notMember","onJoinCollection","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","joinedCollection","wrap","_context","prev","next","collectionApi","joinCollection","Id","sent","addCollectionToState","refreshActiveCollection","t0","logging","error","concat","stop","onLeaveCollection","_ref3","_callee2","selfMemberIndex","selfMemberDetailsIndex","_context2","CanLeave","Members","findIndex","m","toLowerCase","config","user","EmailAddress","splice","MemberDetails","TechSmithId","updateActiveCollection","removeCollectionFromState","userCanAdmin","IsSignedIn","isAdmin","manager","userCanContribute","contributor","areItemsSelected","showLeave","showManage","showJoin","showLoginToJoin","showShare","showNotificationButton","featureSwitches","IsScreencast","showMoreDelete","showMoreLeave","showMoreAddYouTube","IsYouTubeEnabled","showMoreRename","showMore","moreMenu","Fragment","MenuItem","key","label","glyph","Glyphs","Delete16x16","onClick","testId","Upload16x16","Edit16x16","collectionMoreMenuButton","PopoverButton","buttonGlyph","EllipsisStacked16x16","origin","TscPopoverOrigin","bottomRight","themeName","showArrow","buttonText","buttonTitle","buttonType","TscButtonType","tertiary","mobileContextMenuTitle","collectionName","Name","popoverMenu","useMobileMenu","mobileContextMenuZindex","cssConstants","zIndex","mobileContextMenu","closeMenuOnClick","popoverMenuMaxHeight","contextMenuMaxHeight","GridLayoutButtonGroup","ControlButton","Share16x16","title","secondary","primary","href","Constants","navigation","myCollectionsLink","CircleRemove16x16","collection","onClose","onLeave","onDelete","collectionsToDelete","warning","collectionId","media","withMemoizedContexts","_ref4","_ref5","_ref6","collectionsStore","batchSelectionStore","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_server","_relativeTime","_reactInfiniteScroller","_dayjs","_entityDecode","_MediaQueryParamsBuilder","_axios","_collectionMediaProvider","_EmptyLibrary","_TimeFormatter","_styledComponents","_MediaSorter","_SortDirectionOptions","_sortMetricProvider","_MediaProcessingGlyph","_MediaPrivateGlyph","_CollectionActionMenu","_profileApi","_reactRouter","_BatchSelectionIndicator","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","dayjs","extend","relativeTime","SubheaderTitle","styled","h3","_taggedTemplateLiteral2","CollectionMemberAvatars","ButtonStyledAsAnchor","PrivateCollectionEmptyStateContainer","div","AvatarButtonContainer","MoreMembersButton","StackedAvatar","Avatar","TscThemeName","dusk","TscStyles","color","global","white","decorateMemberWithProfileImageUrl","profileImageUrl","profileApi","getProfileImageUrl","collectionMemberRolePriority","role","compareMemberRoles","m1","m2","CollectionContentBase","_activeCollection$Mem","_activeCollection$Mem2","isUpdatingSidebarCollections","collections","collectionMedia","collectionMediaCanLoadMore","collectionMediaCursor","sortMetric","useParams","mediaProcessingSvgDataUri","btoa","renderToStaticMarkup","mediaPrivateSvgDataUri","isFetchingMedia","setIsFetchingMedia","getMediaCancellationToken","useRef","map","members","setMembers","showCollectionMediaRemove","setShowCollectionMediaRemove","mediaToRemove","setMediaToRemove","initialize","updateActiveCollectionById","clearBatchSelection","getCollectionMediaDiscardingExistingMedia","sort","updateCollectionMediaState","sortMedia","generateGetMediaCancellationToken","currentCancellationToken","current","cancel","newCancellationToken","Axios","CancelToken","source","getCollectionMedia","_callee3","existingMedia","collectionCursor","_newBatch","newBatch","loadedMedia","newLastLoadedMediaHash","_context3","getMedia","buildMediaQueryParams","isCancel","abrupt","Hash","mediaPaginationBatchSize","_x","_x2","moreMembersCount","membersContent","slice","size","TscAvatarSize","small","userDisplayName","DisplayName","userAltText","userID","avatarImageUrl","toString","emptyLibrarySvgDataUri","collectionHasMedia","showPrivateCollectionEmptyState","Privacy","CollectionPrivacyTypes","invite","userCanRemove","OwnerLibrary","User","EmptyState","maxWidth","text","imageSource","alt","loadMore","initialLoad","hasMore","useWindow","Subheader","isVisible","SubheaderControls","SubheaderTitleContainer","Collection16x16","LibraryContentContainer","MediaSectionHeader","Label","labelText","GridLayoutContainer","hasMedia","_media$ThumbnailUrl","MediaCard","mediaDate","AddedToGroupDateTime","fromNow","mediaDateTitle","toLocaleString","mediaDuration","IsVideo","Duration","TimeFormatter","formatTime","getSecondsFromTimeString","mediaUrl","ownerAvatarUrl","environmentData","ProfileApiUrl","ownerId","ownerName","Author","thumbnailUrl","IsReady","ThumbnailUrl","decode","Title","maxTitleLines","viewCount","ViewCount","organizationType","TscMediaOrganizationType","hasCaptions","HasPublishedCaptions","showDetails","controls","onRemoveMediaClick","isSelected","some","onSelect","newSelectedMedia","mediaIndex","updateBatchSelectionState","selectMedia","Spinner","CollectionMediaRemove","_ref7","_ref8","_ref9","collectionMediaStore","sortMetricStore","_UserMessaging","_workerState","_useQueryParams","_ModalPortalHelper","CollectionNotificationToggleBase","_React$useState","_React$useState2","isNotificationEnabled","setIsNotificationEnabled","_SetupWorkerState","SetupWorkerState","_SetupWorkerState2","loadingState","setLoadingState","_useQueryParam","useQueryParam","queryParams","unsubscribe","BooleanParam","_useQueryParam2","unsubscribeParam","setUnsubscribeParam","_React$useState3","_React$useState4","showCollectionNotificationModal","setShowCollectionNotificationModal","onCloseNotificationsModal","getNotificationPreference","isSubscribedToCollection","t1","t2","unsubscribeFromCollection","toggleNotificationPreference","newNotificationValue","isWorking","hasError","subscribeToCollection","UserMessaging","warn","Alert16x16","AlertOutline16x16","active","disabled","AlertModalPortal","onConfirm","confirmButtonType","confirmContent","onDismiss","dismissButtonType","dismissContent","_objectDestructuringEmpty2","MediaList","ul","ItemDescriptionTitle","span","ItemDescription","li","IconContainer","_media$","_media$2","mediaWarningMessage","amount","item","index","Video16x16","Image16x16","removeMediaFromCollection","collectionMediaToDelete","type","deleteButtonText","HeaderContainerPlaceholder","StyledHeaderPlaceholder","header","headerBackgroundColor","light","headerHeight","GradientBorder","memo","BatchSelectionContainer","BatchSelectionIndicatorBase","selectionMessage","selectedFolders","selectedItemsCount","hasSelectedItems","itemCountMessage","itemCount","foldersMessage","numFolders","mediaMessage","numMedia","_StringUtil","RenameCollectionModalBase","errorMessage","modalState","updateModalState","renameCollection","trimmedCollectionName","trim","BasicModalPortal","visible","defaultModalWidth","isLoading","StyledWarning","StringUtil","isNullOrWhiteSpace","TextInput","value","onChange","evt","updatedCollectionName","target","maxCollectionNameLength","maxLength","ariaLabel","readOnly","MinWidthButtonWrapper","fromHash","activeFolder","mediaContentFilters","includeExcludedMedia","from","take","folderHash","buildSortMetricQueryParams","mediaContentFilter","sortMetricQueryParams","SortMetric","dateAscending","orderBy","OrderByQueryString","date","dateDescending","descending","titleAscending","titleDescending","viewsAscending","views","viewsDescending","ScreenReaderOnly","SortDirectionWrapper","dark","SortDirectionOptionsBase","sortOptions","SelectInput","options","newSortMetric","setSortMetric","isFullWidth","sortMediaByDate","isCollectionMedia","b","aSortDateTime","SharedDateTime","bSortDateTime","isSame","isAfter","sortMediaByTitle","aTitle","toUpperCase","bTitle","sortMediaByViewCount","padZero","num","totalSeconds","negative","roundedTotalSeconds","Math","round","hoursPlace","floor","secondsWithoutHours","minutesPlace","secondsPlace","formatTimeForSpeech","Date","toISOString","substr","getRoundedTime","time","timeInSeconds","multiplier","timecodeParts","split","lowTimeBounds","timePartAsNumber","parseInt","isNaN","millisecondsToFormattedTimeString","milliseconds","seconds","hours","minutes","remainingSeconds","padStart","info","message","alert","module","prototype","future","past","s","mm","h","hh","dd","M","MM","yy","fromToBase","en","f","l","$locale","thresholds","c","diff","p","rounding","abs","v","replace","to","this","$u","utc","toNow","_createClass","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react2","_propTypes2","obj","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","getPrototypeOf","scrollListener","eventListenerOptions","mousewheelListener","subClass","superClass","create","constructor","setPrototypeOf","_inherits","pageLoaded","pageStart","attachScrollListener","isReverse","parentElement","getParentElement","scrollComponent","scrollTop","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","passive","testOptions","document","addEventListener","removeEventListener","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","window","parentNode","el","scrollParent","getScrollParent","deltaY","preventDefault","doc","documentElement","body","undefined","pageYOffset","calculateOffset","clientHeight","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","_this2","renderProps","filterProps","children","element","ref","indexOf","_objectWithoutProperties","node","childrenArray","unshift","Component","propTypes","isRequired","bool","func","number","defaultProps","ReactRouter5Adapter","useLocation","history","useHistory","location2","search","state","location"],"sourceRoot":""}