@clickview/lite 0.83.0-rc.0 → 0.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/2074-lite-ac8da6c78b.chunk.css +4 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1199-01cc084886-lite.chunk.js → 1199-da55d69853-lite.chunk.js} +1 -1
- package/dist/scripts/{1199-01cc084886-lite.chunk.js.map → 1199-da55d69853-lite.chunk.js.map} +1 -1
- package/dist/scripts/1202-d96ad80884-lite.chunk.js +2 -0
- package/dist/scripts/1202-d96ad80884-lite.chunk.js.map +1 -0
- package/dist/scripts/{4208-0706461da6-lite.chunk.js → 1336-1826f6e582-lite.chunk.js} +2 -2
- package/dist/scripts/1336-1826f6e582-lite.chunk.js.map +1 -0
- package/dist/scripts/1938-c52383e98d-lite.chunk.js +3 -0
- package/dist/scripts/1938-c52383e98d-lite.chunk.js.map +1 -0
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js +2 -0
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js.map +1 -0
- package/dist/scripts/{2664-907153c03b-lite.chunk.js → 2664-87c8cbfa7f-lite.chunk.js} +2 -2
- package/dist/scripts/2664-87c8cbfa7f-lite.chunk.js.map +1 -0
- package/dist/scripts/2888-2596e106a5-lite.chunk.js +2 -0
- package/dist/scripts/2888-2596e106a5-lite.chunk.js.map +1 -0
- package/dist/scripts/289-669c0c8222-lite.chunk.js +2 -0
- package/dist/scripts/289-669c0c8222-lite.chunk.js.map +1 -0
- package/dist/scripts/{9911-8892b6dbfe-lite.chunk.js → 3612-8c6423bd51-lite.chunk.js} +2 -2
- package/dist/scripts/{9911-8892b6dbfe-lite.chunk.js.map → 3612-8c6423bd51-lite.chunk.js.map} +1 -1
- package/dist/scripts/3836-bf1359bed7-lite.chunk.js +3 -0
- package/dist/scripts/3836-bf1359bed7-lite.chunk.js.map +1 -0
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js +2 -0
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js.map +1 -0
- package/dist/scripts/3893-2856933742-lite.chunk.js +2 -0
- package/dist/scripts/3893-2856933742-lite.chunk.js.map +1 -0
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js +3 -0
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js.map +1 -0
- package/dist/scripts/{4177-2d876c7b14-lite.chunk.js → 4177-285ddf9ae3-lite.chunk.js} +2 -2
- package/dist/scripts/4177-285ddf9ae3-lite.chunk.js.map +1 -0
- package/dist/scripts/{4578-27028d26eb-lite.chunk.js → 4578-7578bcf17a-lite.chunk.js} +2 -2
- package/dist/scripts/4578-7578bcf17a-lite.chunk.js.map +1 -0
- package/dist/scripts/{4621-7fb0a05bcb-lite.chunk.js → 4621-1f79d94416-lite.chunk.js} +2 -2
- package/dist/scripts/4621-1f79d94416-lite.chunk.js.map +1 -0
- package/dist/scripts/4806-f36469abb7-lite.chunk.js +2 -0
- package/dist/scripts/4806-f36469abb7-lite.chunk.js.map +1 -0
- package/dist/scripts/{4948-ba684e5f4f-lite.chunk.js → 4948-de1c75e7fb-lite.chunk.js} +1 -1
- package/dist/scripts/{4948-ba684e5f4f-lite.chunk.js.map → 4948-de1c75e7fb-lite.chunk.js.map} +1 -1
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js +2 -0
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js.map +1 -0
- package/dist/scripts/{5554-f1f3baf822-lite.chunk.js → 5554-17bb3b86fc-lite.chunk.js} +2 -2
- package/dist/scripts/5554-17bb3b86fc-lite.chunk.js.map +1 -0
- package/dist/scripts/5579-a9c152057f-lite.chunk.js +2 -0
- package/dist/scripts/5579-a9c152057f-lite.chunk.js.map +1 -0
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js +2 -0
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js.map +1 -0
- package/dist/scripts/6070-a390fdce21-lite.chunk.js +2 -0
- package/dist/scripts/6070-a390fdce21-lite.chunk.js.map +1 -0
- package/dist/scripts/{6909-ba75701156-lite.chunk.js → 6909-a9b8930e37-lite.chunk.js} +2 -2
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js.map +1 -0
- package/dist/scripts/7401-833bc4a088-lite.chunk.js +2 -0
- package/dist/scripts/7401-833bc4a088-lite.chunk.js.map +1 -0
- package/dist/scripts/{7617-211f084b70-lite.chunk.js → 7617-9d34c841e6-lite.chunk.js} +2 -2
- package/dist/scripts/7617-9d34c841e6-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js +2 -0
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js.map +1 -0
- package/dist/scripts/7843-f6033528ce-lite.chunk.js +2 -0
- package/dist/scripts/7843-f6033528ce-lite.chunk.js.map +1 -0
- package/dist/scripts/787-dcb3a0a26c-lite.chunk.js +2 -0
- package/dist/scripts/787-dcb3a0a26c-lite.chunk.js.map +1 -0
- package/dist/scripts/8077-bfb3530f78-lite.chunk.js +3 -0
- package/dist/scripts/8077-bfb3530f78-lite.chunk.js.map +1 -0
- package/dist/scripts/{3392-f7f8cb65e5-lite.chunk.js → 8133-ffcff3b7fc-lite.chunk.js} +3 -3
- package/dist/scripts/8133-ffcff3b7fc-lite.chunk.js.map +1 -0
- package/dist/scripts/8364-ff63447d36-lite.chunk.js +3 -0
- package/dist/scripts/8364-ff63447d36-lite.chunk.js.map +1 -0
- package/dist/scripts/8672-6967ce8a23-lite.chunk.js +2 -0
- package/dist/scripts/8672-6967ce8a23-lite.chunk.js.map +1 -0
- package/dist/scripts/{9042-fd7e79b891-lite.chunk.js → 9042-fdc5ecb459-lite.chunk.js} +1 -1
- package/dist/scripts/{9042-fd7e79b891-lite.chunk.js.map → 9042-fdc5ecb459-lite.chunk.js.map} +1 -1
- package/dist/scripts/9295-4242401e60-lite.chunk.js +2 -0
- package/dist/scripts/9295-4242401e60-lite.chunk.js.map +1 -0
- package/dist/scripts/{9742-3f6b75484a-lite.chunk.js → 9742-5f99d74bb0-lite.chunk.js} +2 -2
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js.map +1 -0
- package/dist/scripts/979-4b893e5603-lite.chunk.js +2 -0
- package/dist/scripts/979-4b893e5603-lite.chunk.js.map +1 -0
- package/dist/scripts/9911-9272b96e46-lite.chunk.js +2 -0
- package/dist/scripts/9911-9272b96e46-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-dcea87749e.min.js +3 -0
- package/dist/scripts/{bundle-f926852f33.min.js.map → bundle-dcea87749e.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1074-fdce06d863-lite.chunk.js +0 -2
- package/dist/scripts/1074-fdce06d863-lite.chunk.js.map +0 -1
- package/dist/scripts/1938-e067e06dac-lite.chunk.js +0 -3
- package/dist/scripts/1938-e067e06dac-lite.chunk.js.map +0 -1
- package/dist/scripts/2664-907153c03b-lite.chunk.js.map +0 -1
- package/dist/scripts/2970-024b1dd55d-lite.chunk.js +0 -2
- package/dist/scripts/2970-024b1dd55d-lite.chunk.js.map +0 -1
- package/dist/scripts/3392-f7f8cb65e5-lite.chunk.js.map +0 -1
- package/dist/scripts/3836-2c82a9fbf7-lite.chunk.js +0 -3
- package/dist/scripts/3836-2c82a9fbf7-lite.chunk.js.map +0 -1
- package/dist/scripts/3840-59e5e53cda-lite.chunk.js +0 -2
- package/dist/scripts/3840-59e5e53cda-lite.chunk.js.map +0 -1
- package/dist/scripts/4177-2d876c7b14-lite.chunk.js.map +0 -1
- package/dist/scripts/4208-0706461da6-lite.chunk.js.map +0 -1
- package/dist/scripts/4578-27028d26eb-lite.chunk.js.map +0 -1
- package/dist/scripts/4598-8f5266e4c2-lite.chunk.js +0 -2
- package/dist/scripts/4598-8f5266e4c2-lite.chunk.js.map +0 -1
- package/dist/scripts/4621-7fb0a05bcb-lite.chunk.js.map +0 -1
- package/dist/scripts/4806-a6f31d703c-lite.chunk.js +0 -2
- package/dist/scripts/4806-a6f31d703c-lite.chunk.js.map +0 -1
- package/dist/scripts/4985-7e02d5df40-lite.chunk.js +0 -2
- package/dist/scripts/4985-7e02d5df40-lite.chunk.js.map +0 -1
- package/dist/scripts/5554-f1f3baf822-lite.chunk.js.map +0 -1
- package/dist/scripts/5712-7cee70c6b4-lite.chunk.js +0 -2
- package/dist/scripts/5712-7cee70c6b4-lite.chunk.js.map +0 -1
- package/dist/scripts/6550-d99e0ed75d-lite.chunk.js +0 -2
- package/dist/scripts/6550-d99e0ed75d-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-ba75701156-lite.chunk.js.map +0 -1
- package/dist/scripts/7148-1ced1b5dce-lite.chunk.js +0 -2
- package/dist/scripts/7148-1ced1b5dce-lite.chunk.js.map +0 -1
- package/dist/scripts/7568-55e9b01367-lite.chunk.js +0 -3
- package/dist/scripts/7568-55e9b01367-lite.chunk.js.map +0 -1
- package/dist/scripts/7617-211f084b70-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-514844bd1a-lite.chunk.js +0 -2
- package/dist/scripts/7742-514844bd1a-lite.chunk.js.map +0 -1
- package/dist/scripts/7843-cbebf1a786-lite.chunk.js +0 -2
- package/dist/scripts/7843-cbebf1a786-lite.chunk.js.map +0 -1
- package/dist/scripts/8077-870bd8e245-lite.chunk.js +0 -3
- package/dist/scripts/8077-870bd8e245-lite.chunk.js.map +0 -1
- package/dist/scripts/843-4dbc5df109-lite.chunk.js +0 -3
- package/dist/scripts/843-4dbc5df109-lite.chunk.js.map +0 -1
- package/dist/scripts/8735-e74a148502-lite.chunk.js +0 -2
- package/dist/scripts/8735-e74a148502-lite.chunk.js.map +0 -1
- package/dist/scripts/8856-2d332952ae-lite.chunk.js +0 -2
- package/dist/scripts/8856-2d332952ae-lite.chunk.js.map +0 -1
- package/dist/scripts/904-2784e45cfc-lite.chunk.js +0 -2
- package/dist/scripts/904-2784e45cfc-lite.chunk.js.map +0 -1
- package/dist/scripts/9295-eb130a0b17-lite.chunk.js +0 -2
- package/dist/scripts/9295-eb130a0b17-lite.chunk.js.map +0 -1
- package/dist/scripts/9528-4e954d9dff-lite.chunk.js +0 -2
- package/dist/scripts/9528-4e954d9dff-lite.chunk.js.map +0 -1
- package/dist/scripts/9742-3f6b75484a-lite.chunk.js.map +0 -1
- package/dist/scripts/979-6a70a0e616-lite.chunk.js +0 -2
- package/dist/scripts/979-6a70a0e616-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-f926852f33.min.js +0 -3
- /package/dist/css/{9528-lite-4a892bdbf2.chunk.css → 1202-lite-4a892bdbf2.chunk.css} +0 -0
- /package/dist/css/{7148-lite-856c02f000.chunk.css → 2888-lite-856c02f000.chunk.css} +0 -0
- /package/dist/css/{904-lite-2435a34b13.chunk.css → 289-lite-2435a34b13.chunk.css} +0 -0
- /package/dist/css/{9911-lite-2b4142796a.chunk.css → 3612-lite-2b4142796a.chunk.css} +0 -0
- /package/dist/css/{8856-lite-f8e496136d.chunk.css → 5579-lite-f8e496136d.chunk.css} +0 -0
- /package/dist/css/{6550-lite-45dc286aab.chunk.css → 6070-lite-45dc286aab.chunk.css} +0 -0
- /package/dist/css/{2970-lite-5a317efacd.chunk.css → 787-lite-5a317efacd.chunk.css} +0 -0
- /package/dist/css/{843-lite-db31e36b79.chunk.css → 8364-lite-db31e36b79.chunk.css} +0 -0
- /package/dist/css/{8735-lite-856c02f000.chunk.css → 9911-lite-856c02f000.chunk.css} +0 -0
- /package/dist/scripts/{1938-e067e06dac-lite.chunk.js.LICENSE.txt → 1938-c52383e98d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3392-f7f8cb65e5-lite.chunk.js.LICENSE.txt → 3836-bf1359bed7-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3836-2c82a9fbf7-lite.chunk.js.LICENSE.txt → 4006-9dfe9cec1b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7568-55e9b01367-lite.chunk.js.LICENSE.txt → 8077-bfb3530f78-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8077-870bd8e245-lite.chunk.js.LICENSE.txt → 8133-ffcff3b7fc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{843-4dbc5df109-lite.chunk.js.LICENSE.txt → 8364-ff63447d36-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-f926852f33.min.js.LICENSE.txt → bundle-dcea87749e.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9295-4242401e60-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/new-badge/NewBadge.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-view-count/ShareViewCount.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-viewed-by-count/ShareViewedByCount.tsx","file:///app/packages/projects/lite/src/apps/assign/components/previous-assignments/previous-assignments.scss","file:///app/packages/projects/lite/src/apps/assign/components/previous-assignments/PreviousAssignments.tsx","file:///app/packages/libs/shared/src/components/recommended-badge/RecommendedBadge.tsx","file:///app/packages/projects/lite/src/apps/assign/views/flow-selector-view/components/flow-option-badge/FlowOptionBadge.tsx","file:///app/packages/projects/lite/src/apps/assign/views/flow-selector-view/components/flow-selector-options/flow-selector-options.scss","file:///app/packages/projects/lite/src/apps/assign/views/flow-selector-view/components/flow-selector-options/FlowSelectorOptions.tsx","file:///app/packages/projects/lite/src/apps/assign/views/flow-selector-view/hooks/useFlowSelectorData.ts","file:///app/packages/projects/lite/src/apps/assign/views/flow-selector-view/FlowSelectorView.tsx","file:///app/packages/projects/lite/src/apps/assign/views/assign-flow-view/AssignFlowView.tsx","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.newBadge';\n\ninterface NewBadgeProps {\n size: 'sm' | 'std';\n invert?: boolean;\n text?: string;\n className?: string;\n}\n\nexport function NewBadge(props: NewBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex justify-content-center',\n 'fw-medium text-blue',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-blue',\n props.className\n )}>\n {props.text || <Text phrase='new' namespace={namespace} />}\n </span>\n );\n}","import React from 'react';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\n\nconst namespace = 'sharev2.shareViewCount';\n\ninterface ShareViewCountProps {\n share: Share;\n}\n\nexport function ShareViewCount(props: ShareViewCountProps): JSX.Element {\n const isCollection = [ MasterType.Playlist, MasterType.Series ].includes(props.share.objectTypeId);\n \n if (isCollection)\n return <span>-</span>;\n\n return <Text namespace={namespace} phrase='viewCount' options={{ smartCount: props.share.viewCount || 0 }} />;\n}","import React from 'react';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface ShareViewedByCountProps {\n share: Share;\n}\n\nexport function ShareViewedByCount(props: ShareViewedByCountProps): JSX.Element {\n const isCollection = [ MasterType.Playlist, MasterType.Series ].includes(props.share.objectTypeId);\n\n if (isCollection)\n return <span>-</span>;\n \n function getViewCount(): string {\n const shareAccessCount = props.share.accessCount || 0;\n if (props.share.type === ShareType.Open)\n return `${shareAccessCount}`;\n\n if (props.share.type === ShareType.Classroom) {\n const totalRecipients = props.share.recipients.length;\n return `${shareAccessCount}/${totalRecipients}`;\n }\n\n return `${shareAccessCount}`;\n }\n \n return (\n <span className='d-inline-flex flex-row gap-2 align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.User} />\n <span>{getViewCount()}</span>\n </span>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"shareListItem\":\"vLROV\",\"visibleOnHover\":\"o2KJH\",\"shareAvatar\":\"zDcMp\",\"shareAvatarTitle\":\"U8yMQ\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport Scrollbars from 'react-custom-scrollbars-2';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { ShareViewCount } from 'libs/shared/apps/share-v2/components/share-view-count/ShareViewCount';\nimport { ShareViewedByCount } from 'libs/shared/apps/share-v2/components/share-viewed-by-count/ShareViewedByCount';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './previous-assignments.scss';\n\nconst namespace = 'assign.previousAssignments';\n\ninterface PreviousAssignmentsHeaderProps {\n count: number;\n show: boolean;\n onToggle: () => void;\n}\n\nfunction PreviousAssignmentsHeader(props: PreviousAssignmentsHeaderProps): JSX.Element {\n return (\n <div className={classNames('d-flex align-items-center justify-content-between', props.show && 'mb-3')}>\n <h3 className='h6 m-0 p-0'><Text namespace={namespace} phrase='heading' options={{ count: props.count }} /></h3>\n <IconButton\n svgName={props.show ? cvSvgLibrary.ChevronUp : cvSvgLibrary.ChevronDown}\n onClick={props.onToggle}\n />\n </div>\n );\n}\n\nexport function PreviousAssignmentsListHeader(): JSX.Element {\n const columnClassNames = 'd-flex align-items-end justify-content-start fw-medium';\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Row className='gx-2 px-3 mb-2'>\n <Col xs={4} className={columnClassNames}>\n <Text phrase='assignedTo' />\n </Col>\n <Col xs={2} className={columnClassNames}>\n <Text phrase='views' />\n </Col>\n <Col xs={2} className={columnClassNames}>\n <Text phrase='viewedBy' />\n </Col>\n <Col xs={4} className={columnClassNames}>\n <Text phrase='dateCreated' />\n </Col>\n </Row>\n </LanguageNamespaceContext.Provider>\n );\n}\n\ntype ItemAnalytics = {\n data: HashObject;\n options: AnalyticsOptions;\n}\ninterface PreviousAssignmentListItemProps {\n share: Share;\n classrooms: Classroom[];\n getItemAppLink: (share: Share) => Core.AppLink;\n\n getItemAnalytics?: (share: Share) => ItemAnalytics;\n className?: string;\n}\n\nfunction PreviousAssignmentListItem(props: PreviousAssignmentListItemProps): JSX.Element {\n const shareClassroom = ShareHelper.getClassroomForShare(props.share, props.classrooms);\n\n const analytics = props.getItemAnalytics?.(props.share);\n\n return (\n <AppLink\n key={props.share.shareId}\n appLink={props.getItemAppLink(props.share)}\n analyticsData={analytics?.data}\n analyticsOptions={analytics?.options}\n className={classNames('d-block p-3 hover-bg-light-blue border border-top-0 no-hover-text-underline', styles.shareListItem, props.className)}\n >\n <Row className='gx-2'>\n <Col xs={4} className='d-flex align-items-center'>\n <ShareAvatar\n type={props.share.type}\n privacy={props.share.privacy}\n classroomName={shareClassroom?.name}\n svgSize={SvgContainerSize.Small}\n openClassroomName={props.share.options?.openClassroomName}\n className={classNames(styles.shareAvatar)}\n titleClassName={classNames('text-truncate', styles.shareAvatarTitle)}\n hideSubtitle\n />\n </Col>\n <Col xs={2} className='d-flex align-items-center justify-content-start'>\n <ShareViewCount share={props.share} />\n </Col>\n <Col xs={2} className='d-flex align-items-center justify-content-start'>\n <ShareViewedByCount share={props.share} />\n </Col>\n <Col xs={4} lg={3} className='d-flex align-items-center justify-content-start'>\n <span>{formatDate(props.share.dateCreated)}</span>\n </Col>\n <Col lg={1} className='align-items-center justify-content-end d-none d-lg-flex'>\n <span className={classNames('cursor-pointer text-info hover-text-underline', styles.visibleOnHover)}>\n <Text namespace={namespace} phrase='view' />\n </span>\n </Col>\n </Row>\n </AppLink>\n );\n}\n\ninterface PreviousAssignmentsListProps {\n assignments: Share[];\n classrooms: Classroom[];\n getItemAppLink: (share: Share) => Core.AppLink;\n getItemAnalytics?: (share: Share, yIndex: number) => ItemAnalytics;\n scrollHeightMax?: number;\n}\n\nexport function PreviousAssignmentsList(props: PreviousAssignmentsListProps): JSX.Element {\n return (\n <div className={classNames(\n 'd-flex flex-column border-top rounded-top overflow-hidden'\n )}>\n <Scrollbars\n autoHeight\n autoHeightMin={0}\n autoHeightMax={props.scrollHeightMax ?? 215}\n autoHide\n >\n {props.assignments.map((share, idx) => (\n <PreviousAssignmentListItem\n share={share}\n classrooms={props.classrooms}\n getItemAppLink={props.getItemAppLink}\n getItemAnalytics={share => props.getItemAnalytics?.(share, idx)}\n className={classNames(idx % 2 === 0 && 'bg-gray-100')}\n key={share.shareId}\n />\n ))}\n </Scrollbars>\n </div>\n );\n}\n\ninterface PreviousAssignmentsProps {\n show: boolean;\n assignments: Share[];\n classrooms: Classroom[];\n onToggle: () => void;\n getItemAppLink: (share: Share) => Core.AppLink;\n getItemAnalytics?: (share: Share, yIndex: number) => ItemAnalytics;\n}\n\nexport function PreviousAssignments(props: PreviousAssignmentsProps): JSX.Element {\n if (!props.assignments.length)\n return <></>;\n \n const noBottomPadding = props.show && props.assignments.length > 3;\n \n return (\n <div className={classNames('bg-white rounded-3 p-3', noBottomPadding && 'pb-0')}>\n <PreviousAssignmentsHeader count={props.assignments.length} onToggle={props.onToggle} show={props.show} />\n {props.show && (\n <>\n <PreviousAssignmentsListHeader />\n <PreviousAssignmentsList {...props} />\n </>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.recommendedBadge';\n\ninterface RecommendedBadgeProps {\n invert?: boolean;\n text?: string;\n size: 'sm' | 'std';\n className?: string;\n}\n\nexport function RecommendedBadge(props: RecommendedBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex justify-content-center',\n 'fw-medium text-teal',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-teal',\n props.className\n )}>\n {props.text ??\n <Text phrase='recommended' namespace={namespace} />\n }\n </span>\n );\n}","import React from 'react';\n\nimport { NewBadge } from 'libs/shared/components/new-badge/NewBadge';\nimport { PremiumBadge } from 'libs/shared/components/premium-badge/PremiumBadge';\nimport { RecommendedBadge } from 'libs/shared/components/recommended-badge/RecommendedBadge';\nimport { GatedPermission } from 'libs/shared/enums/PermissionName';\n\nimport { AssignFlowSteps } from 'apps/assign/interfaces/Assign';\n\ninterface FlowOptionBadgeProps {\n hovered: boolean;\n hasClassrooms: boolean;\n type: AssignFlowSteps;\n openClassroomGatedPermission: GatedPermission;\n}\n\n// TODO: Clean up the premiums stuff in this file if we don't need it anymore - Sha\nexport function FlowOptionBadge(props: FlowOptionBadgeProps): JSX.Element {\n if (props.type === 'existing-classroom') {\n if (props.hasClassrooms)\n return <RecommendedBadge size='sm' invert={props.hovered} />;\n return null;\n }\n\n if (props.type === 'open-classroom') {\n if (props.hasClassrooms)\n return <NewBadge size='sm' invert={props.hovered} />;\n\n if (props.openClassroomGatedPermission === 'soft-gate' || props.openClassroomGatedPermission === 'hard-gate') {\n return (\n <div className='d-flex align-items-center gap-2'>\n <NewBadge size='sm' invert={props.hovered} />\n <PremiumBadge size='sm' invert={props.hovered} />\n </div>\n );\n }\n\n return (\n <div className='d-flex align-items-center gap-2'>\n <NewBadge size='sm' invert={props.hovered} />\n <RecommendedBadge size='sm' invert={props.hovered} />\n </div>\n );\n }\n\n return null;\n}","// extracted by mini-css-extract-plugin\nexport default {\"optionItem\":\"Lu2bY\"};","import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useHover } from 'libs/shared/hooks/UseHover';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { AssignFlowSteps } from 'apps/assign/interfaces/Assign';\n\nimport styles from './flow-selector-options.scss';\n\nexport interface FlowOptionItem {\n id: AssignFlowSteps;\n title: string;\n subTitle?: string;\n badgeComponent?: ({ hovered }: {hovered: boolean}) => JSX.Element;\n}\n\nconst IdVariantMap: {[key in AssignFlowSteps]: ButtonProps['variant']} = {\n 'flow-selector': 'purple',\n 'existing-classroom': 'purple',\n 'open-classroom': 'blue'\n};\n\ninterface FlowSelectorOptionItemProps {\n item: FlowOptionItem;\n onClick: (option: FlowOptionItem) => void;\n}\n\nfunction FlowSelectorOptionItem(props: FlowSelectorOptionItemProps): JSX.Element {\n const [ hoverRef, hovered ] = useHover<HTMLDivElement>();\n\n const BadgeComponent = props.item.badgeComponent;\n\n return (\n <DivButton\n onClick={() => props.onClick(props.item)}\n className={classNames(\n 'd-flex flex-column gap-4 align-items-start align-self-stretch justify-content-center',\n 'text-left cursor-pointer p-3 border rounded-3 user-select-none hover-bg-light-blue',\n styles.optionItem\n )}\n ref={hoverRef}\n >\n <div className='d-flex flex-column gap-2 w-100'>\n <div className='d-flex flex-column flex-md-row justify-content-between align-items-start align-items-md-center gap-2'>\n <div className='d-flex align-items-center gap-2 order-2 order-md-0'>\n <div>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Standard}\n variant={IdVariantMap[props.item.id]}\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <h3 className='h6 m-0'>\n {props.item.title}\n </h3>\n </div>\n {!!BadgeComponent && <BadgeComponent hovered={hovered} />}\n </div>\n {props.item.subTitle && <p className='mb-0 text-gray-900'>{props.item.subTitle}</p>}\n </div>\n </DivButton>\n );\n}\n\ninterface FlowSelectorOptions {\n title?: string;\n options: [FlowOptionItem, FlowOptionItem];\n onClick: (option: FlowOptionItem) => void;\n}\n\nexport function FlowSelectorOptions(props: FlowSelectorOptions): JSX.Element {\n return (\n <div className='bg-white rounded-bottom-3 p-3 d-flex flex-column gap-3 justify-content-center align-items-center'>\n {!!props.title &&\n <h2 className='h4 m-0'>{props.title}</h2>\n }\n <div className='d-flex flex-column justify-content-center align-items-center gap-3 w-100'>\n {props.options.map(option => (\n <FlowSelectorOptionItem item={option} onClick={props.onClick} key={option.id} />\n ))}\n </div>\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { BasePaginatedCollection, Classroom } from 'libs/shared/interfaces';\n\nimport { getInsightsOverviewAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { useAssignSharedData } from 'apps/assign/hooks/useAssignSharedData';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\n\nconst SHOW_PREVIOUS_ASSIGNMENTS = 'show:previous:assignments';\n\ninterface UseAssignDataOptions {\n objectId: string;\n entityType: SharableEntityType;\n}\n\nexport function useFlowSelectorData(options: UseAssignDataOptions) {\n /**\n * We want to persist if the user has opened previous shares accordion\n * when they hit back or re-open the modal\n */\n const [ showPreviousAssignments, setShowPreviousAssignments ] =\n useViewModel<boolean>(SHOW_PREVIOUS_ASSIGNMENTS, false);\n\n const assignData = useAssignSharedData({\n entityType: options.entityType,\n objectId: options.objectId\n });\n\n const { isLoadingSettings, hasClassrooms } = useSettings(null);\n\n const previousShares = Flight.useBasicFetch<Share[]>(ShareRequests.getSharesByObjectId(options.objectId));\n // @todo Replace with backend filters\n const previousAssignments = previousShares.data?.filter(\n share => [ ShareType.Classroom, ShareType.Open ].includes(share.type)\n ) || [];\n const previousAssignmentClassroomIds = ArrayHelper.uniq(\n previousAssignments.map(ShareHelper.getClassroomIdFromShare).filter(x => !!x)\n );\n const previousAssignmentClassrooms = Flight.useBasicFetch<Classroom[]>(\n previousShares.hasCompleted &&\n ClassroomRequests.getClassroomsByIds(previousAssignmentClassroomIds, assignData.currentUser.data?.customerId)\n );\n const userClassrooms = Flight.useBasicFetch<BasePaginatedCollection<Classroom>>(\n hasClassrooms && ClassroomRequests.getPublished(assignData.currentUser.data?.customerId)\n );\n\n function getPreviousAssignItemAppLink(share: Share): Core.AppLink {\n const appLink = getInsightsOverviewAppLink(share);\n\n if (!appLink)\n return;\n\n return appLink;\n }\n\n function onTogglePreviousAssignment() {\n setShowPreviousAssignments(!showPreviousAssignments);\n }\n\n const dataLoaded = (\n assignData.loaded &&\n !isLoadingSettings &&\n !!previousShares.data &&\n !!previousAssignmentClassrooms.data &&\n !!userClassrooms.data\n );\n\n return {\n data: {\n loaded: dataLoaded,\n previousAssignments,\n previousAssignmentClassrooms\n },\n showPreviousAssignments,\n hasClassrooms: (hasClassrooms && !!userClassrooms.data?.data.length),\n canCreateClassrooms: assignData.canCreateClassrooms,\n openClassroomGatedPermission: assignData.openClassroomGatedPermission,\n getPreviousAssignItemAppLink,\n onTogglePreviousAssignment\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\n\nimport { useClassroomExperience } from 'shared/hooks/useClassroomExperience';\n\nimport { PreviousAssignments } from 'apps/assign/components/previous-assignments/PreviousAssignments';\nimport { getAssignEventLogger } from 'apps/assign/utils/get-assign-event-logger/getAssignEventLogger';\n\nimport { FlowOptionBadge } from './components/flow-option-badge/FlowOptionBadge';\nimport { FlowOptionItem, FlowSelectorOptions } from './components/flow-selector-options/FlowSelectorOptions';\nimport { useFlowSelectorData } from './hooks/useFlowSelectorData';\n\nconst namespace = 'assign.flowSelectorView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface FlowSelectorViewProps extends MultiStepPopupViewProps {\n objectId: string;\n entityType: SharableEntityType;\n goToCreateClassroomPrompt: () => void;\n goToOpenClassroomFlow: () => void;\n goToExistingClassroomFlow: () => void;\n goToNoClassroomPrompt: () => void;\n goToNoExistingClassroomPrompt: () => void;\n goToHardGateOpenClassroomPrompt: () => void;\n}\n\nexport function FlowSelectorView(props: FlowSelectorViewProps): JSX.Element {\n const viewModel = useFlowSelectorData({\n entityType: props.entityType,\n objectId: props.objectId\n });\n\n const { experience } = useClassroomExperience();\n\n React.useEffect(() => {\n /**\n * When open classroom is gated, we always go to the \n */\n if (viewModel.openClassroomGatedPermission === 'soft-gate')\n props.goToOpenClassroomFlow();\n\n if (viewModel.openClassroomGatedPermission === 'hard-gate')\n props.goToHardGateOpenClassroomPrompt();\n }, []);\n\n const {\n loaded,\n previousAssignmentClassrooms,\n previousAssignments\n } = viewModel.data;\n\n const { log, getData } = getAssignEventLogger({\n data: {\n entity: {\n id: props.objectId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n entity: EntityType.Assign\n }\n });\n \n const choices: [FlowOptionItem, FlowOptionItem] = [\n {\n id: 'existing-classroom',\n title: getPhrase('existingClassroomTitle'),\n subTitle: getPhrase('existingClassroomDescription'),\n badgeComponent: ({ hovered }) => (\n <FlowOptionBadge\n type='existing-classroom'\n hasClassrooms={viewModel.hasClassrooms && viewModel.canCreateClassrooms}\n hovered={hovered}\n openClassroomGatedPermission={viewModel.openClassroomGatedPermission}\n />\n )\n },\n {\n id: 'open-classroom',\n title: getPhrase('openClassroomTitle'),\n subTitle: getPhrase('openClassroomDescription'),\n badgeComponent: ({ hovered }) => (\n <FlowOptionBadge\n type='open-classroom'\n hasClassrooms={viewModel.hasClassrooms && viewModel.canCreateClassrooms}\n hovered={hovered}\n openClassroomGatedPermission={viewModel.openClassroomGatedPermission}\n />\n )\n }\n ];\n\n function onClickFlowOption(option: FlowOptionItem) {\n if (option.id === 'existing-classroom') {\n if (experience === 'minimal') {\n props.goToNoClassroomPrompt();\n log({\n type: 'select-existing-classroom-flow',\n initialStep: 'no-classroom'\n });\n return;\n }\n /** \n * If a user clicks 'existing-classroom' flow and they dont have classrooms but can create classrooms then\n * We take them through the 'existing-classroom' flow with 'create-classroom-prompt' as initial step\n */\n if (!viewModel.hasClassrooms && viewModel.canCreateClassrooms) {\n props.goToCreateClassroomPrompt();\n log({\n type: 'select-existing-classroom-flow',\n initialStep: 'create-classroom'\n });\n return;\n }\n\n if (!viewModel.hasClassrooms && !viewModel.canCreateClassrooms) {\n props.goToNoExistingClassroomPrompt();\n log({\n type: 'select-existing-classroom-flow',\n initialStep: 'no-existing-classroom'\n });\n return;\n }\n \n props.goToExistingClassroomFlow();\n log({\n type: 'select-existing-classroom-flow'\n });\n } else if (option.id === 'open-classroom') {\n props.goToOpenClassroomFlow();\n log({\n type: 'select-open-classroom-flow'\n });\n }\n }\n\n function getItemAnalytics(share: Share, yIndex: number) {\n const { analyticsOptions, data } = getData({\n type: 'view-previous-assignment',\n share,\n yIndex\n });\n\n return {\n data,\n options: analyticsOptions\n };\n }\n\n return (\n <Popup\n size='lg'\n animation={props.animate}\n title={getPhrase('title')}\n closePopup={props.closePopup}\n bodyClassName='d-flex flex-column gap-3 p-0'\n contentClassName={classNames(loaded && 'bg-transparent border-0')}\n showLoadingSpinner={!loaded || props.loading}\n >\n <FlowSelectorOptions\n options={choices}\n onClick={onClickFlowOption}\n />\n\n <PreviousAssignments\n assignments={previousAssignments}\n show={viewModel.showPreviousAssignments}\n classrooms={previousAssignmentClassrooms.data}\n onToggle={viewModel.onTogglePreviousAssignment}\n getItemAppLink={viewModel.getPreviousAssignItemAppLink}\n getItemAnalytics={getItemAnalytics}\n />\n </Popup>\n );\n}","import React from 'react';\n\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopup } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { AssignFlowSteps } from 'apps/assign/interfaces/Assign';\nimport { ExistingClassroomFlowView, ExistingClassroomFlowViewProps } from 'apps/assign/views/existing-classroom-flow-view/ExistingClassroomFlowView';\nimport { FlowSelectorView, FlowSelectorViewProps } from 'apps/assign/views/flow-selector-view/FlowSelectorView';\nimport { OpenClassroomFlowView, OpenClassroomFlowViewProps } from 'apps/assign/views/open-classroom-flow-view/OpenClassroomFlowView';\n\ntype AllAssignFlowViewProps = FlowSelectorViewProps\n & ExistingClassroomFlowViewProps\n & OpenClassroomFlowViewProps;\n\ninterface AssignViewProps extends PopupViewProps {\n objectId: string;\n entityType: SharableEntityType;\n selectedFlow?: AssignFlowSteps\n}\n\nexport function AssignFlowView(props: AssignViewProps): JSX.Element {\n const [ selectedFlow, setSelectedFlow ] = React.useState<AssignFlowSteps>(props.selectedFlow ?? 'flow-selector');\n const [ existingClassroomInitialStep, setExistingClassroomInitialStep ] = React.useState<'create-classroom' | 'no-classroom' | 'no-existing-classroom'>(null);\n const [ openClassroomInitialStep, setOpenClassroomInitialStep ] = React.useState<'settings' | 'hard-gate'>('settings');\n const [ animate, setAnimate ] = React.useState(true);\n\n function setFlow(flow: AssignFlowSteps) {\n setAnimate(false);\n setSelectedFlow(flow);\n }\n\n function goToCreateClassroomPrompt() {\n setExistingClassroomInitialStep('create-classroom');\n setFlow('existing-classroom');\n }\n\n function goToNoClassroomPrompt() {\n setExistingClassroomInitialStep('no-classroom');\n setFlow('existing-classroom');\n }\n\n function goToHardGateOpenClassroomPrompt() {\n setOpenClassroomInitialStep('hard-gate');\n setFlow('open-classroom');\n }\n\n function goToNoExistingClassroomPrompt() {\n setExistingClassroomInitialStep('no-existing-classroom');\n setFlow('existing-classroom');\n }\n\n const data: AllAssignFlowViewProps = {\n objectId: props.objectId,\n entityType: props.entityType,\n closePopup: props.closePopup,\n initialStep: existingClassroomInitialStep,\n openClassroomInitialStep,\n goToCreateClassroomPrompt,\n goToNoClassroomPrompt,\n goToNoExistingClassroomPrompt,\n goToHardGateOpenClassroomPrompt,\n goToExistingClassroomFlow: () => setFlow('existing-classroom'),\n goToFlowSelector: () => setFlow('flow-selector'),\n goToOpenClassroomFlow: () => setFlow('open-classroom')\n };\n \n return (\n <MultiStepPopup<AllAssignFlowViewProps, AssignFlowSteps>\n data={data}\n step={selectedFlow}\n setStep={setFlow}\n closePopup={props.closePopup}\n animate={animate}\n steps={{\n 'flow-selector': { view: FlowSelectorView },\n 'open-classroom': { view: OpenClassroomFlowView },\n 'existing-classroom': { view: ExistingClassroomFlowView }\n }}\n />\n );\n}","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["namespace","NewBadge","props","className","size","invert","text","phrase","ShareViewCount","MasterType","includes","share","objectTypeId","Text","options","smartCount","viewCount","ShareViewedByCount","SvgContainer","svgName","shareAccessCount","accessCount","type","ShareType","totalRecipients","recipients","length","getViewCount","PreviousAssignmentsHeader","show","count","IconButton","onClick","onToggle","PreviousAssignmentsListHeader","columnClassNames","value","Row","Col","xs","PreviousAssignmentListItem","shareClassroom","ShareHelper","classrooms","analytics","getItemAnalytics","AppLink","key","shareId","appLink","getItemAppLink","analyticsData","data","analyticsOptions","ShareAvatar","privacy","classroomName","name","svgSize","S","openClassroomName","titleClassName","hideSubtitle","lg","dateCreated","PreviousAssignmentsList","autoHeight","autoHeightMin","autoHeightMax","scrollHeightMax","autoHide","assignments","map","idx","PreviousAssignments","noBottomPadding","RecommendedBadge","FlowOptionBadge","hasClassrooms","hovered","openClassroomGatedPermission","PremiumBadge","IdVariantMap","FlowSelectorOptionItem","hoverRef","BadgeComponent","item","badgeComponent","DivButton","ref","IconCircle","variant","id","textVariant","svgWrapperClassName","title","subTitle","FlowSelectorOptions","option","SHOW_PREVIOUS_ASSIGNMENTS","getPhrase","LanguageService","FlowSelectorView","viewModel","showPreviousAssignments","setShowPreviousAssignments","assignData","useAssignSharedData","entityType","objectId","useSettings","isLoadingSettings","previousShares","ShareRequests","previousAssignments","filter","previousAssignmentClassroomIds","ArrayHelper","x","previousAssignmentClassrooms","hasCompleted","ClassroomRequests","currentUser","customerId","userClassrooms","loaded","canCreateClassrooms","getPreviousAssignItemAppLink","onTogglePreviousAssignment","useFlowSelectorData","experience","useClassroomExperience","goToOpenClassroomFlow","goToHardGateOpenClassroomPrompt","getAssignEventLogger","entity","location","log","getData","choices","Popup","animation","animate","closePopup","bodyClassName","contentClassName","showLoadingSpinner","loading","goToNoClassroomPrompt","initialStep","goToCreateClassroomPrompt","goToNoExistingClassroomPrompt","goToExistingClassroomFlow","yIndex","AssignFlowView","selectedFlow","setSelectedFlow","existingClassroomInitialStep","setExistingClassroomInitialStep","openClassroomInitialStep","setOpenClassroomInitialStep","setAnimate","setFlow","flow","goToFlowSelector","MultiStepPopup","step","setStep","steps","view","OpenClassroomFlowView","ExistingClassroomFlowView","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","date","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","floor","toString","unit"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9742],{91200:(e,t,a)=>{a.d(t,{Y:()=>s});var n=a(32735),r=a(68050),i=a(69111),l=a(79382);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function s(e){var t,a=function(e){if(Array.isArray(e))return o(e)}(t=Array(e.numItems))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?o(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=e.itemClassName||"";return n.createElement(n.Fragment,null,e.showHeading&&n.createElement("div",{className:"".concat(l.Z.partialHeading," mb-1 partial-loading-background")}),n.createElement(r.Z,{className:"mx-n1 mb-n2"},a.map(function(e,t){return n.createElement(i.Z,{key:t,xs:6,sm:4,lg:3,className:"".concat(s," px-1 pb-2")},n.createElement("div",{className:"".concat(l.Z.playlistItem," partial-loading-background rounded-3")}))})))}s.defaultProps={numItems:8}},23162:(e,t,a)=>{a.d(t,{t:()=>N});var n=a(32735),r=a(82602),i=a(23481),l=a(110),o=a(65858),s=a(83345),c="playlists.playlistCount";function u(e){var t=function(e){var t,a,n,r,i,l;return!!e&&(null!==(a=null===(t=e.videos)||void 0===t?void 0:t.count)&&void 0!==a?a:0)+(null!==(r=null===(n=e.interactives)||void 0===n?void 0:n.count)&&void 0!==r?r:0)+(null!==(l=null===(i=e.clips)||void 0===i?void 0:i.count)&&void 0!==l?l:0)}(e.playlist);return!1===t||Number.isNaN(t)?n.createElement(n.Fragment,null):n.createElement("span",{className:"text-shadow font-size-sm"},n.createElement(s.x,{namespace:c,phrase:"count",options:{smartCount:t}}))}var d=a(97408),m=a(97392),p=a(64818);function v(e){var t,a,r,i=e.playlist._liteOwner;if(null===(t=e.playlist._isClickViewCurated)||void 0===t?void 0:t.value)return n.createElement(m.F,null);if(!(null==i?void 0:i.id)||!(null===(a=e.currentUser)||void 0===a?void 0:a.id))return n.createElement(n.Fragment,null);if(i.id.toString()===e.currentUser.id.toString())return n.createElement(n.Fragment,null);var l="string"==typeof i.avatar?i.avatar:null===(r=i.avatar)||void 0===r?void 0:r.url;return n.createElement(d.q,{imageUrl:l,imageCdnUrl:e.imageCdnUrl,initials:p.l.getInitials(i.name,i.surname)})}var y=a(15611),f=a(69776),g=a(7432),h=a(11834),b=a(54610),C=a(80143),E=a(9085),w=a(67453),P=a(79382),S="playlists.playlistList";function N(e){var t,a,s=w.j.createUrl(e.data.cover&&e.data.cover.url,{size:b.h2.Medium,resizeType:b.Nq.Cover}),c=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,d=(0,C.n)(c,e.presentationAudiences),m=P.Z.playlistItem,p=!!s||!!e.showFallbackImage;p&&(m+=" ".concat(P.Z.playlistItemGradient)),!p&&e.bgColourClassNames&&(m+=" ".concat(P.Z.playlistItem," ").concat((0,E.x)(e.data.name,e.bgColourClassNames))),"round"===e.itemStyle&&(m+=" rounded-3 overflow-hidden"),"round-left"===e.itemStyle&&(m+=" rounded-start-lg overflow-hidden");var N=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(a=e.data)||void 0===a?void 0:a.name}),I=Object.assign(Object.assign({},e.analyticsOptions),{entity:o.py.Playlist});return n.createElement(y.F,{appLink:e.appLink,analyticsData:N,analyticsOptions:I,title:function(){var t;return!e.data.contentModifiedDate||(null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value)?"":i.T.getPhrase(S,"lastUpdated",{timeago:(0,r.WU)(l.O.convertUTCToLocal(e.data.contentModifiedDate))})}()},n.createElement(g.Z,{data:s,alt:e.data.name,className:m},!!e.showFallbackImage&&n.createElement(h.oy,{type:h.mS.Playlist}),n.createElement("div",{className:"text-white ".concat(P.Z.playlistMetadata)},!!e.showCount&&n.createElement(u,{playlist:e.data}),n.createElement("h5",{className:"mb-0 ".concat(e.titleClassName||"")},n.createElement("span",{className:"text-shadow clamp-2"},e.data.name)),!!c&&!!c.length&&!!d&&n.createElement(f.P,{className:"".concat(e.audienceLabelClass?e.audienceLabelClass:""," mt-1"),audience:d,border:"white"})),!!e.showOwner&&!!e.imageCdnUrl&&n.createElement("div",{className:P.Z.ownerAvatarContainer},n.createElement(v,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl}))))}N.defaultProps={itemStyle:"square"}},31273:(e,t,a)=>{a.d(t,{P:()=>c});var n=a(32735),r=a(68050),i=a(69111),l=a(65858),o=a(23162),s={actionType:l.Vw.Click,entity:l.py.Playlist,location:l.LZ.PlaylistListItem,descriptor:l._S.Cover};function c(e){return n.createElement(r.Z,{as:"ul",className:"list-unstyled mx-n1"},e.extraPlaylistItem&&n.createElement(i.Z,{as:"li",key:"extra-playlist-item",xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},e.extraPlaylistItem),e.playlists.map(function(t){return n.createElement(i.Z,{as:"li",key:t.id,xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},n.createElement(o.t,{data:t,appLink:e.getPlaylistAppLink(t),imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,presentationAudiences:e.presentationAudiences,bgColourClassNames:e.bgColourClassNames,showCount:e.showCount,showOwner:e.showOwner,showFallbackImage:e.showFallbackImage,titleClassName:e.itemTitleClassName,itemStyle:e.itemStyle,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),s)}))}))}},94644:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(50242),r=a(81886),i=a(67058),l=a(14553),o=a(49267),s=a(49075),c={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:o.a,privacy:l.q},badRequest:s._,internalServerError:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},c),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==n.o.InternalServer?i!==n.o.NotFound?i!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new l.badRequest):a.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):a.notFound||r.Q.Ry.throw(new l.notFound):a.internalServerError||r.Q.Ry.throw(new s._))}}},60115:(e,t,a)=>{a.d(t,{K:()=>c});var n=a(32735),r=a(50242),i=a(91967),l=400,o=a(45719);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function c(e,t,a,c,u,d){var m,p,v,y,f=(m=(0,n.useState)(0),p=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],s=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(m,p)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(m,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=f[0],h=f[1],b=t,C=(0,o.P)(function(t){if(!e)return null;var a=e(t);return a?a.key:null},c,u);return v={fetchNextPage:function(){if(t&&e&&C)return h(function(e){return e+1}),b(C.nextCursor)},hasMore:!!(null==C?void 0:C.nextCursor),isFetching:null==C?void 0:C.isFetching,scrollContainer:d},y=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-l)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-l)return;v.fetchNextPage()}},(0,n.useEffect)(function(){var e=i.q.throttle(y,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,n.useEffect)(function(){C&&C.shouldInitialFetch&&t&&(b(),h(function(e){return e+1}))},[null==C?void 0:C.shouldInitialFetch,t]),(0,n.useEffect)(function(){var e,t;if((null==C?void 0:C.statusCode)&&i.q.isFunction(a)){var n=+(null===(t=null===(e=C.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));n!==r.k.ClientError&&n!==r.k.ServerError||a(g,C.statusCode)}},[null==C?void 0:C.statusCode]),{items:null==C?void 0:C.items,hasMore:!!(null==C?void 0:C.nextCursor),nextCursor:null==C?void 0:C.nextCursor,isFetching:null==C?void 0:C.isFetching,totalItems:null==C?void 0:C.totalItems,hasFirstPageCompleted:null==C?void 0:C.hasFirstPageCompleted}}},89742:(e,t,a)=>{a.r(t),a.d(t,{PlaylistsView:()=>$});var n=a(32735),r=a(70680),i=a(23481),l=a(20354),o=a(65858),s=a(91200),c=a(31273),u=a(91967),d=a(76611),m=a(15611);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function v(e,t,a){return(t=function(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=p(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var y="playlists.playlistSortSelect",f=u.q.memoize(function(){return v(v(v(v(v({},d.o.RecentlyUpdated,{name:i.T.getPhrase(y,"recentlyUpdated")}),d.o.AtoZ,{name:i.T.getPhrase(y,"atoz")}),d.o.ZtoA,{name:i.T.getPhrase(y,"ztoa")}),d.o.Newest,{name:i.T.getPhrase(y,"newest")}),d.o.Oldest,{name:i.T.getPhrase(y,"oldest")})});function g(e){var t=e.type,a=e.getSortAppLink,r=e.variant,i=f();return n.createElement("div",{className:"dropdown"},n.createElement("button",{className:"btn btn-".concat(r," ms-2 dropdown-toggle"),type:"button",id:"sort-select","data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},i[t].name),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":"sort-select"},Object.values(d.o).map(function(e){var r="dropdown-item";return e===t&&(r+=" active"),n.createElement("li",{key:e},n.createElement(m.F,{className:r,appLink:a(e),analyticsData:{sort:i[e].name},analyticsOptions:{location:o.LZ.PlaylistListHeader,entity:o.py.Playlists,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}},i[e].name))})))}g.defaultProps={variant:"light"};var h=a(23257),b=a(70006),C=a(71521),E=a(83657),w=a(87801),P=a(83345),S=a(7733),N=a(16714),I=a(94644),L=a(39151),A=a(5112),T=a(31949),k=a(69883),F=a(60115),x=a(22902),O=a(79612),U=a(35223),j=a(14070),_=a(97291),M=a(44110),Z=a(26323),D=a(99742);const V={playlistMetadata:"vv8fW"};var Y="playlists.favouritesPlaylistItem",R=i.T.encloseNamespace(Y);function q(e){var t={entity:o.py.Playlist,actionType:o.Vw.Click,location:o.LZ.PlaylistListItem},a=D.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_COVER,r={application:_.O.MY_FAVOURITES,action:j.e.MyFavourites.MY_FAVOURITES};return n.createElement(m.F,{appLink:r,analyticsData:{name:"Favourites",extraItem:"user-favourites"},analyticsOptions:t,title:R("favouritesTitle")},n.createElement("div",{className:"position-relative"},n.createElement("div",{className:"text-white font-size-sm text-shadow ".concat(V.playlistMetadata)},!e.isLoadingCount&&n.createElement("span",null,n.createElement(P.x,{namespace:Y,phrase:"count",options:{smartCount:e.count}})),n.createElement("h5",{className:"mb-0"},n.createElement("span",{className:"clamp-2"},R("favouritesTitle")))),n.createElement("img",{src:a,alt:R("favouritesTitle"),className:"w-100 h-100 rounded-3"})))}var B=a(52931),z="playlists.playlists",H=i.T.encloseNamespace(z);function W(e){return{application:_.O.PLAYLISTS,action:j.e.Playlists.HOME,params:{sort:e}}}function $(e){var t,a=(0,r.I0)(),i=(0,k.Z)(),u=(0,x.T)(),d=u.hasLocalPermissions,m=u.isLoaded,p=l.a.useBasicFetch(L.L.config()),v=l.a.useBasicFetch(T.N.currentUser()),y=(0,M.i)(),f=!!v.data&&C.A.getOrSetSortType(v.data.id,e.sort),D=(0,Z.B)(null===(t=v.data)||void 0===t?void 0:t.id),V=D.count,Y=D.favourites,R={count:V,isLoadingCount:D.isLoading,data:Y},$=!!f&&function(e){return A.C.getUserPlaylists(new b.l(f,e,h.e.All))},Q=!!$&&function(e){l.a.getFetch(a)($(e))};(0,O.M)({title:H("pageTitle"),description:H("pageDescription")});var G=!d(N.E.ViewPlaylistsLanding)&&f,J=(0,F.K)(!!G&&$,Q,function(e,t){if(1===e)return(0,I.r)(t);i.error(H("error"))}),K=J.items,X=J.hasMore,ee=J.isFetching,te=[{label:H("createPlaylist"),appLink:{application:_.O.PLAYLISTS,action:j.e.Playlists.NEW_PLAYLIST},svgName:U.vn.Plus,className:"btn btn-outline-dark",button:!0,analyticsData:{},analyticsOptions:{location:o.LZ.Banner,entity:o.py.Playlist,workflowPhase:o.eu.Start,actionType:o.Vw.Create}}],ae=!!K&&!!v.data&&!!p.data&&(!!y.data||y.hasError)&&!!m;return d(N.E.ViewPlaylistsLanding)?n.createElement(B.Y,null):n.createElement("div",{className:"bg-white px-3"},n.createElement("div",{className:"d-flex justify-content-between align-items-end pb-3"},n.createElement("h1",{className:"h2 mb-0"},n.createElement(P.x,{namespace:z,phrase:"headerTitle"})),!!f&&n.createElement(E.e,{actions:te,sortComponent:n.createElement(g,{variant:"outline-dark",type:f,getSortAppLink:W})})),ae?n.createElement(c.P,{playlists:K,getPlaylistAppLink:e.getPlaylistAppLink,imageCdnUrl:p.data.imageCdnUrl,currentUser:v.data,presentationAudiences:y.data||[],bgColourClassNames:S.o,itemContainerClassName:"columns-of-five",itemStyle:"round",showCount:!0,showOwner:!0,extraPlaylistItem:n.createElement(q,Object.assign({},R))}):n.createElement(s.Y,{itemClassName:"columns-of-five"}),ae&&(X||ee)&&n.createElement(w._,{isFetching:ee,fetchNext:Q}))}},52931:(e,t,a)=>{a.d(t,{Y:()=>y,v:()=>v});var n=a(32735),r=a(23481),i=a(65858),l=a(97958),o=a(83345),s=a(35223),c=a(99742),u=a(14070),d=a(97291),m="playlists.playlistsEmptyState",p=r.T.encloseNamespace(m);function v(e){return n.createElement(o.D.Provider,{value:m},n.createElement(l.u,{className:e.className},n.createElement(l.u.Image,{src:c.W.EmptyStates.Playlists.PLAYLISTS,altText:p("info"),size:e.imageSize}),n.createElement(l.u.Heading,{className:e.headingClassName},n.createElement(o.x,{phrase:"heading"})),n.createElement(l.u.Info,{className:"w-75"},n.createElement(o.x,{phrase:e.isStudent?"studentInfo":"info"})),!e.hideButton&&n.createElement(l.u.Cta,{text:r.T.getPhrase(m,"cta"),icon:s.vn.Plus,appLink:{application:d.O.PLAYLISTS,action:u.e.Playlists.NEW_PLAYLIST}})))}function y(){return n.createElement(o.D.Provider,{value:m},n.createElement(l.u,null,n.createElement(l.u.Image,{src:c.W.EmptyStates.Playlists.PLAYLISTS_PUBLIC,altText:p("info")}),n.createElement(l.u.Heading,null,n.createElement(o.x,{phrase:"heading"})),n.createElement(l.u.Info,null,n.createElement(o.x,{phrase:"info"})),n.createElement(l.u.Cta,{text:r.T.getPhrase(m,"publicCta"),appLink:{application:d.O.SIGN_UP,action:u.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:i.Vw.Click,location:i.LZ.PlaylistsLanding,entity:i.py.AppLink,workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp}})))}},44110:(e,t,a)=>{a.d(t,{i:()=>l});var n=a(20354),r=a(89454),i=a(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,a=e.getFallbackPresentation,l=t||a();return n.a.useBasicFetch(!!l&&r.O.presentationAudiences(l.id))}},26323:(e,t,a)=>{a.d(t,{B:()=>o});var n=a(20354),r=a(63419);function i(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function o(e){var t,a,l,o,s,c,u,d,m,p=n.a.useBasicFetch(e&&r.P.getFavouritesVideosCount(e)),v=n.a.useBasicFetch(e&&r.P.getFavouritesClipsCount(e)),y=n.a.useBasicFetch(e&&r.P.getFavouritesInteractivesCount(e));return{count:(null===(t=p.data)||void 0===t?void 0:t.count)+(null===(a=y.data)||void 0===a?void 0:a.count)+(null===(l=v.data)||void 0===l?void 0:l.count),favourites:[].concat(i((null===(o=p.data)||void 0===o?void 0:o.data)||[]),i((null===(s=v.data)||void 0===s?void 0:s.data)||[]),i((null===(c=y.data)||void 0===c?void 0:c.data)||[])),isLoading:!(null===(u=p.data)||void 0===u?void 0:u.data)||!(null===(d=v.data)||void 0===d?void 0:d.data)||!(null===(m=y.data)||void 0===m?void 0:m.data)}}},79382:(e,t,a)=>{a.d(t,{Z:()=>n});const n={playlistItem:"CaRJx",playlistItemGradient:"BI7p2",playlistMetadata:"eDk1l",partialHeading:"w4lWh",ownerAvatarContainer:"JImqE"}},82602:(e,t,a)=>{a.d(t,{WU:()=>c});var n=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],i={},l=function(e,t){i[e]=t},o=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,a){var n=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=o[r]&&r<o.length;r++)e/=o[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}(n,function(e){return i[e]||i.en_US}(t))};l("en_US",function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]}),l("zh_CN",function(e,t){if(0===t)return["刚刚","片刻后"];var a=r[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]})}}]);
|
|
2
|
-
//# sourceMappingURL=9742-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9742],{91200:(e,t,a)=>{a.d(t,{Y:()=>s});var n=a(32735),r=a(68050),i=a(69111),l=a(79382);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function s(e){var t,a=function(e){if(Array.isArray(e))return o(e)}(t=Array(e.numItems))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?o(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=e.itemClassName||"";return n.createElement(n.Fragment,null,e.showHeading&&n.createElement("div",{className:"".concat(l.Z.partialHeading," mb-1 partial-loading-background")}),n.createElement(r.Z,{className:"mx-n1 mb-n2"},a.map(function(e,t){return n.createElement(i.Z,{key:t,xs:6,sm:4,lg:3,className:"".concat(s," px-1 pb-2")},n.createElement("div",{className:"".concat(l.Z.playlistItem," partial-loading-background rounded-3")}))})))}s.defaultProps={numItems:8}},23162:(e,t,a)=>{a.d(t,{t:()=>N});var n=a(32735),r=a(82602),i=a(23481),l=a(110),o=a(65858),s=a(83345),c="playlists.playlistCount";function u(e){var t=function(e){var t,a,n,r,i,l;return!!e&&(null!==(a=null===(t=e.videos)||void 0===t?void 0:t.count)&&void 0!==a?a:0)+(null!==(r=null===(n=e.interactives)||void 0===n?void 0:n.count)&&void 0!==r?r:0)+(null!==(l=null===(i=e.clips)||void 0===i?void 0:i.count)&&void 0!==l?l:0)}(e.playlist);return!1===t||Number.isNaN(t)?n.createElement(n.Fragment,null):n.createElement("span",{className:"text-shadow font-size-sm"},n.createElement(s.x,{namespace:c,phrase:"count",options:{smartCount:t}}))}var d=a(97408),m=a(97392),p=a(64818);function v(e){var t,a,r,i=e.playlist._liteOwner;if(null===(t=e.playlist._isClickViewCurated)||void 0===t?void 0:t.value)return n.createElement(m.F,null);if(!(null==i?void 0:i.id)||!(null===(a=e.currentUser)||void 0===a?void 0:a.id))return n.createElement(n.Fragment,null);if(i.id.toString()===e.currentUser.id.toString())return n.createElement(n.Fragment,null);var l="string"==typeof i.avatar?i.avatar:null===(r=i.avatar)||void 0===r?void 0:r.url;return n.createElement(d.q,{imageUrl:l,imageCdnUrl:e.imageCdnUrl,initials:p.l.getInitials(i.name,i.surname)})}var y=a(15611),f=a(69776),g=a(7432),h=a(11834),b=a(54610),E=a(80143),C=a(9085),w=a(67453),S=a(79382),P="playlists.playlistList";function N(e){var t,a,s=w.j.createUrl(e.data.cover&&e.data.cover.url,{size:b.h2.Medium,resizeType:b.Nq.Cover}),c=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,d=(0,E.n)(c,e.presentationAudiences),m=S.Z.playlistItem,p=!!s||!!e.showFallbackImage;p&&(m+=" ".concat(S.Z.playlistItemGradient)),!p&&e.bgColourClassNames&&(m+=" ".concat(S.Z.playlistItem," ").concat((0,C.x)(e.data.name,e.bgColourClassNames))),"round"===e.itemStyle&&(m+=" rounded-3 overflow-hidden"),"round-left"===e.itemStyle&&(m+=" rounded-start-lg overflow-hidden");var N=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(a=e.data)||void 0===a?void 0:a.name}),I=Object.assign(Object.assign({},e.analyticsOptions),{entity:o.py.Playlist});return n.createElement(y.F,{appLink:e.appLink,analyticsData:N,analyticsOptions:I,title:function(){var t;return!e.data.contentModifiedDate||(null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value)?"":i.T.getPhrase(P,"lastUpdated",{timeago:(0,r.WU)(l.O.convertUTCToLocal(e.data.contentModifiedDate))})}()},n.createElement(g.Z,{data:s,alt:e.data.name,className:m},!!e.showFallbackImage&&n.createElement(h.oy,{type:h.mS.Playlist}),n.createElement("div",{className:"text-white ".concat(S.Z.playlistMetadata)},!!e.showCount&&n.createElement(u,{playlist:e.data}),n.createElement("h5",{className:"mb-0 ".concat(e.titleClassName||"")},n.createElement("span",{className:"text-shadow clamp-2"},e.data.name)),!!c&&!!c.length&&!!d&&n.createElement(f.P,{className:"".concat(e.audienceLabelClass?e.audienceLabelClass:""," mt-1"),audience:d,border:"white"})),!!e.showOwner&&!!e.imageCdnUrl&&n.createElement("div",{className:S.Z.ownerAvatarContainer},n.createElement(v,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl}))))}N.defaultProps={itemStyle:"square"}},31273:(e,t,a)=>{a.d(t,{P:()=>c});var n=a(32735),r=a(68050),i=a(69111),l=a(65858),o=a(23162),s={actionType:l.Vw.Click,entity:l.py.Playlist,location:l.LZ.PlaylistListItem,descriptor:l._S.Cover};function c(e){return n.createElement(r.Z,{as:"ul",className:"list-unstyled mx-n1"},e.extraPlaylistItem&&n.createElement(i.Z,{as:"li",key:"extra-playlist-item",xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},e.extraPlaylistItem),e.playlists.map(function(t){return n.createElement(i.Z,{as:"li",key:t.id,xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},n.createElement(o.t,{data:t,appLink:e.getPlaylistAppLink(t),imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,presentationAudiences:e.presentationAudiences,bgColourClassNames:e.bgColourClassNames,showCount:e.showCount,showOwner:e.showOwner,showFallbackImage:e.showFallbackImage,titleClassName:e.itemTitleClassName,itemStyle:e.itemStyle,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),s)}))}))}},94644:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(50242),r=a(81886),i=a(67058),l=a(14553),o=a(49267),s=a(49075),c={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:o.a,privacy:l.q},badRequest:s._,internalServerError:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},c),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==n.o.InternalServer?i!==n.o.NotFound?i!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new l.badRequest):a.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):a.notFound||r.Q.Ry.throw(new l.notFound):a.internalServerError||r.Q.Ry.throw(new s._))}}},60115:(e,t,a)=>{a.d(t,{K:()=>c});var n=a(32735),r=a(50242),i=a(91967),l=400,o=a(45719);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function c(e,t,a,c,u,d){var m,p,v,y,f=(m=(0,n.useState)(0),p=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],s=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(m,p)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(m,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=f[0],h=f[1],b=t,E=(0,o.P)(function(t){if(!e)return null;var a=e(t);return a?a.key:null},c,u);return v={fetchNextPage:function(){if(t&&e&&E)return h(function(e){return e+1}),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},y=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-l)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-l)return;v.fetchNextPage()}},(0,n.useEffect)(function(){var e=i.q.throttle(y,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,n.useEffect)(function(){E&&E.shouldInitialFetch&&t&&(b(),h(function(e){return e+1}))},[null==E?void 0:E.shouldInitialFetch,t]),(0,n.useEffect)(function(){var e,t;if((null==E?void 0:E.statusCode)&&i.q.isFunction(a)){var n=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));n!==r.k.ClientError&&n!==r.k.ServerError||a(g,E.statusCode)}},[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},89742:(e,t,a)=>{a.r(t),a.d(t,{PlaylistsView:()=>$});var n=a(32735),r=a(70680),i=a(23481),l=a(20354),o=a(65858),s=a(91200),c=a(31273),u=a(91967),d=a(76611),m=a(15611);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function v(e,t,a){return(t=function(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=p(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var y="playlists.playlistSortSelect",f=u.q.memoize(function(){return v(v(v(v(v({},d.o.RecentlyUpdated,{name:i.T.getPhrase(y,"recentlyUpdated")}),d.o.AtoZ,{name:i.T.getPhrase(y,"atoz")}),d.o.ZtoA,{name:i.T.getPhrase(y,"ztoa")}),d.o.Newest,{name:i.T.getPhrase(y,"newest")}),d.o.Oldest,{name:i.T.getPhrase(y,"oldest")})});function g(e){var t=e.type,a=e.getSortAppLink,r=e.variant,i=f();return n.createElement("div",{className:"dropdown"},n.createElement("button",{className:"btn btn-".concat(r," ms-2 dropdown-toggle"),type:"button",id:"sort-select","data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},i[t].name),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":"sort-select"},Object.values(d.o).map(function(e){var r="dropdown-item";return e===t&&(r+=" active"),n.createElement("li",{key:e},n.createElement(m.F,{className:r,appLink:a(e),analyticsData:{sort:i[e].name},analyticsOptions:{location:o.LZ.PlaylistListHeader,entity:o.py.Playlists,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}},i[e].name))})))}g.defaultProps={variant:"light"};var h=a(23257),b=a(70006),E=a(71521),C=a(83657),w=a(87801),S=a(83345),P=a(7733),N=a(16714),I=a(94644),L=a(39151),A=a(5112),x=a(31949),T=a(69883),k=a(60115),F=a(22902),O=a(79612),U=a(35223),_=a(14070),j=a(97291),M=a(44110),Z=a(26323),D=a(99742);const R={playlistMetadata:"vv8fW"};var V="playlists.favouritesPlaylistItem",Y=i.T.encloseNamespace(V);function B(e){var t={entity:o.py.Playlist,actionType:o.Vw.Click,location:o.LZ.PlaylistListItem},a=D.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_COVER,r={application:j.O.MY_FAVOURITES,action:_.e.MyFavourites.MY_FAVOURITES};return n.createElement(m.F,{appLink:r,analyticsData:{name:"Favourites",extraItem:"user-favourites"},analyticsOptions:t,title:Y("favouritesTitle")},n.createElement("div",{className:"position-relative"},n.createElement("div",{className:"text-white font-size-sm text-shadow ".concat(R.playlistMetadata)},!e.isLoadingCount&&n.createElement("span",null,n.createElement(S.x,{namespace:V,phrase:"count",options:{smartCount:e.count}})),n.createElement("h5",{className:"mb-0"},n.createElement("span",{className:"clamp-2"},Y("favouritesTitle")))),n.createElement("img",{src:a,alt:Y("favouritesTitle"),className:"w-100 h-100 rounded-3"})))}var q=a(12909),H=a(52931),z="playlists.playlists",W=i.T.encloseNamespace(z);function G(e){return{application:j.O.PLAYLISTS,action:_.e.Playlists.HOME,params:{sort:e}}}function $(e){var t,a=(0,r.I0)(),i=(0,T.Z)(),u=(0,F.T)(),d=u.hasLocalPermissions,m=u.getGatedPermission,p=u.isLoaded,v=l.a.useBasicFetch(L.L.config()),y=l.a.useBasicFetch(x.N.currentUser()),f=(0,M.i)(),D=!!y.data&&E.A.getOrSetSortType(y.data.id,e.sort),R=(0,Z.B)(null===(t=y.data)||void 0===t?void 0:t.id),V=R.count,Y=R.favourites,$={count:V,isLoadingCount:R.isLoading,data:Y},Q=!!D&&function(e){return A.C.getUserPlaylists(new b.l(D,e,h.e.All))},J=!!Q&&function(e){l.a.getFetch(a)(Q(e))};(0,O.M)({title:W("pageTitle"),description:W("pageDescription")});var K=!d(N.E.ViewPlaylistsLanding)&&D,X=(0,k.K)(!!K&&Q,J,function(e,t){if(1===e)return(0,I.r)(t);i.error(W("error"))}),ee=X.items,te=X.hasMore,ae=X.isFetching,ne=[{label:W("createPlaylist"),appLink:{application:j.O.PLAYLISTS,action:_.e.Playlists.NEW_PLAYLIST},svgName:U.vn.Plus,className:"btn btn-outline-dark",button:!0,analyticsData:{},analyticsOptions:{location:o.LZ.Banner,entity:o.py.Playlist,workflowPhase:o.eu.Start,actionType:o.Vw.Create}}],re=!!ee&&!!y.data&&!!v.data&&(!!f.data||f.hasError)&&!!p;return d(N.E.ViewPlaylistsLanding)?n.createElement(H.Y,null):n.createElement("div",{className:"bg-white px-3"},"soft-gate"===m(N.C.CreatePlaylist)&&n.createElement(q.H,null),n.createElement("div",{className:"d-flex justify-content-between align-items-end pb-3"},n.createElement("h1",{className:"h2 mb-0"},n.createElement(S.x,{namespace:z,phrase:"headerTitle"})),!!D&&n.createElement(C.e,{actions:ne,sortComponent:n.createElement(g,{variant:"outline-dark",type:D,getSortAppLink:G})})),re?n.createElement(c.P,{playlists:ee,getPlaylistAppLink:e.getPlaylistAppLink,imageCdnUrl:v.data.imageCdnUrl,currentUser:y.data,presentationAudiences:f.data||[],bgColourClassNames:P.o,itemContainerClassName:"columns-of-five",itemStyle:"round",showCount:!0,showOwner:!0,extraPlaylistItem:n.createElement(B,Object.assign({},$))}):n.createElement(s.Y,{itemClassName:"columns-of-five"}),re&&(te||ae)&&n.createElement(w._,{isFetching:ae,fetchNext:J}))}},52931:(e,t,a)=>{a.d(t,{Y:()=>y,v:()=>v});var n=a(32735),r=a(23481),i=a(65858),l=a(97958),o=a(83345),s=a(35223),c=a(99742),u=a(14070),d=a(97291),m="playlists.playlistsEmptyState",p=r.T.encloseNamespace(m);function v(e){return n.createElement(o.D.Provider,{value:m},n.createElement(l.u,{className:e.className},n.createElement(l.u.Image,{src:c.W.EmptyStates.Playlists.PLAYLISTS,altText:p("info"),size:e.imageSize}),n.createElement(l.u.Heading,{className:e.headingClassName},n.createElement(o.x,{phrase:"heading"})),n.createElement(l.u.Info,{className:"w-75"},n.createElement(o.x,{phrase:e.isStudent?"studentInfo":"info"})),!e.hideButton&&n.createElement(l.u.Cta,{text:r.T.getPhrase(m,"cta"),icon:s.vn.Plus,appLink:{application:d.O.PLAYLISTS,action:u.e.Playlists.NEW_PLAYLIST}})))}function y(){return n.createElement(o.D.Provider,{value:m},n.createElement(l.u,null,n.createElement(l.u.Image,{src:c.W.EmptyStates.Playlists.PLAYLISTS_PUBLIC,altText:p("info")}),n.createElement(l.u.Heading,null,n.createElement(o.x,{phrase:"heading"})),n.createElement(l.u.Info,null,n.createElement(o.x,{phrase:"info"})),n.createElement(l.u.Cta,{text:r.T.getPhrase(m,"publicCta"),appLink:{application:d.O.SIGN_UP,action:u.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:i.Vw.Click,location:i.LZ.PlaylistsLanding,entity:i.py.AppLink,workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp}})))}},12909:(e,t,a)=>{a.d(t,{H:()=>d});var n=a(32735),r=a(15611),i=a(83914),l=a(83345),o=a(35223),s=a(14070),c=a(97291),u="signUp.softGateBanner";function d(){return n.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center"},n.createElement(i.x,{svgName:o.vn.StarOutline,size:i.S.Large}),n.createElement(l.x,{namespace:u,phrase:"softGate"})," ",n.createElement(r.F,{appLink:{application:c.O.SIGN_UP,action:s.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},n.createElement(l.x,{namespace:u,phrase:"learnMore"})))}},44110:(e,t,a)=>{a.d(t,{i:()=>l});var n=a(20354),r=a(89454),i=a(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,a=e.getFallbackPresentation,l=t||a();return n.a.useBasicFetch(!!l&&r.O.presentationAudiences(l.id))}},26323:(e,t,a)=>{a.d(t,{B:()=>o});var n=a(20354),r=a(63419);function i(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function o(e){var t,a,l,o,s,c,u,d,m,p=n.a.useBasicFetch(e&&r.P.getFavouritesVideosCount(e)),v=n.a.useBasicFetch(e&&r.P.getFavouritesClipsCount(e)),y=n.a.useBasicFetch(e&&r.P.getFavouritesInteractivesCount(e));return{count:(null===(t=p.data)||void 0===t?void 0:t.count)+(null===(a=y.data)||void 0===a?void 0:a.count)+(null===(l=v.data)||void 0===l?void 0:l.count),favourites:[].concat(i((null===(o=p.data)||void 0===o?void 0:o.data)||[]),i((null===(s=v.data)||void 0===s?void 0:s.data)||[]),i((null===(c=y.data)||void 0===c?void 0:c.data)||[])),isLoading:!(null===(u=p.data)||void 0===u?void 0:u.data)||!(null===(d=v.data)||void 0===d?void 0:d.data)||!(null===(m=y.data)||void 0===m?void 0:m.data)}}},79382:(e,t,a)=>{a.d(t,{Z:()=>n});const n={playlistItem:"CaRJx",playlistItemGradient:"BI7p2",playlistMetadata:"eDk1l",partialHeading:"w4lWh",ownerAvatarContainer:"JImqE"}},82602:(e,t,a)=>{a.d(t,{WU:()=>c});var n=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],i={},l=function(e,t){i[e]=t},o=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,a){var n=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=o[r]&&r<o.length;r++)e/=o[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}(n,function(e){return i[e]||i.en_US}(t))};l("en_US",function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]}),l("zh_CN",function(e,t){if(0===t)return["刚刚","片刻后"];var a=r[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]})}}]);
|
|
2
|
+
//# sourceMappingURL=9742-5f99d74bb0-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9742-5f99d74bb0-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-count/PlaylistCount.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistOwnerAvatar.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/libs/shared/src/apps/playlists/components/sort-select/PlaylistSortSelect.tsx","file:///app/packages/projects/lite/src/apps/playlists/components/favourites-playlist-item/favourites-playlist-item.scss","file:///app/packages/projects/lite/src/apps/playlists/components/favourites-playlist-item/FavouritesPlaylistItem.tsx","file:///app/packages/projects/lite/src/apps/playlists/views/playlists/PlaylistsView.tsx","file:///app/packages/projects/lite/src/apps/playlists/views/playlists/empty-state/PlaylistsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/sign-up/components/soft-gate-banner/SoftGateBanner.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/favourites/hooks/useFavouritesCount.ts","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/playlist.scss","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './playlist.scss';\n\ninterface PartialPlaylistListProps {\n numItems?: number;\n itemClassName?: string;\n showHeading?: boolean;\n}\n\nPartialPlaylistList.defaultProps = {\n numItems: 8\n};\n\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\n\n const className = props.itemClassName || '';\n\n return (\n <>\n {props.showHeading && <div className={`${styles.partialHeading} mb-1 partial-loading-background`} />}\n <Row className='mx-n1 mb-n2'>\n {PARTIAL_PLAYLISTS.map((p, idx) => (\n <Col key={idx} xs={6} sm={4} lg={3} className={`${className} px-1 pb-2`}>\n <div className={`${styles.playlistItem} partial-loading-background rounded-3`} />\n </Col>\n ))}\n </Row>\n </>\n );\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Playlist } from 'libs/shared/interfaces';\n\nconst namespace = 'playlists.playlistCount';\n\nfunction getCount(playlist: Playlist): number | false {\n if (!playlist)\n return false;\n\n const videos = playlist.videos?.count ?? 0;\n const interactives = playlist.interactives?.count ?? 0;\n const clips = playlist.clips?.count ?? 0;\n\n return videos + interactives + clips;\n}\n\ninterface PlaylistCountProps {\n playlist: Playlist;\n}\n\nexport function PlaylistCount(props: PlaylistCountProps): JSX.Element {\n const count = getCount(props.playlist);\n\n if (count === false || Number.isNaN(count))\n return <></>;\n\n return (\n <span className='text-shadow font-size-sm'>\n <Text namespace={namespace} phrase='count' options={{ smartCount: count }} />\n </span>\n );\n}","import * as React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\nimport { CurrentUser, Playlist } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\ninterface PlaylistOwnerAvatarProps {\n playlist: Playlist;\n imageCdnUrl: string;\n currentUser?: CurrentUser;\n}\n\nexport function PlaylistOwnerAvatar(props: PlaylistOwnerAvatarProps): JSX.Element {\n const { _liteOwner } = props.playlist;\n\n if (props.playlist._isClickViewCurated?.value)\n return (\n <ClickViewAvatar />\n );\n\n if (!_liteOwner?.id || !props.currentUser?.id)\n return <></>;\n\n const currentUserIsOwner = _liteOwner.id.toString() === props.currentUser.id.toString();\n\n if (currentUserIsOwner)\n return <></>;\n\n const url = typeof _liteOwner.avatar === 'string' ? _liteOwner.avatar : _liteOwner.avatar?.url;\n\n return (\n <Avatar\n imageUrl={url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(_liteOwner.name, _liteOwner.surname)}\n />\n );\n}","import * as React from 'react';\nimport { format } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsOptions, EntityType, HashObject } from 'libs/analytics/interfaces';\n\nimport { PlaylistCount } from 'libs/shared/apps/playlists/components/playlist-count/PlaylistCount';\nimport { PlaylistOwnerAvatar } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistOwnerAvatar';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ResizeType } from 'libs/shared/enums/Images';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './playlist.scss';\n\nconst namespace = 'playlists.playlistList';\n\nexport type PlaylistItemStyle = 'square' | 'round' | 'round-left';\n\nexport interface PlaylistItemProps {\n data: Playlist;\n appLink: Core.AppLink;\n currentUser?: CurrentUser;\n presentationAudiences?: PresentationAudience[];\n bgColourClassNames?: string[];\n titleClassName?: string;\n imageCdnUrl?: string;\n itemStyle?: PlaylistItemStyle;\n showCount?: boolean;\n showOwner?: boolean;\n showFallbackImage?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n audienceLabelClass?: string;\n}\n\nPlaylistItem.defaultProps = {\n itemStyle: 'square'\n};\n\nexport function PlaylistItem(props: PlaylistItemProps): JSX.Element {\n const imageUrl = ImageHelper.createUrl(props.data.cover && props.data.cover.url, {\n size: ImageSize.Medium,\n resizeType: ResizeType.Cover\n });\n\n const audiences = props.data.subjectPresentationAudiences &&\n props.data.subjectPresentationAudiences.data;\n\n const mergedAudience = useMergeAudiences(audiences, props.presentationAudiences);\n\n let className = styles.playlistItem;\n\n const showImage = !!imageUrl || !!props.showFallbackImage;\n\n if (showImage)\n className += ` ${styles.playlistItemGradient}`;\n\n if (!showImage && props.bgColourClassNames)\n className += ` ${styles.playlistItem} ${getBgColorClass(props.data.name, props.bgColourClassNames)}`;\n\n if (props.itemStyle === 'round')\n className += ` rounded-3 overflow-hidden`;\n\n if (props.itemStyle === 'round-left')\n className += ` rounded-start-lg overflow-hidden`;\n\n const analyticsData = { ...props.analyticsData,\n id: props.data?.id,\n name: props.data?.name\n };\n\n const analyticsOptions = {\n ...props.analyticsOptions,\n entity: EntityType.Playlist\n };\n\n const getTitle = () => {\n if (!props.data.contentModifiedDate || props.data._isClickViewCurated?.value)\n return '';\n\n return LanguageService.getPhrase(namespace, 'lastUpdated', {\n timeago: format(DateHelper.convertUTCToLocal(props.data.contentModifiedDate))\n });\n };\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n title={getTitle()}\n >\n <BaseImage data={imageUrl} alt={props.data.name} className={className}>\n {!!props.showFallbackImage && <ImageFallback type={ImageFallbackType.Playlist} />}\n <div className={`text-white ${styles.playlistMetadata}`}>\n {!!props.showCount && (\n <PlaylistCount playlist={props.data} />\n )}\n <h5 className={`mb-0 ${props.titleClassName || ''}`}><span className='text-shadow clamp-2'>{props.data.name}</span></h5>\n {!!audiences && !!audiences.length && !!mergedAudience &&\n <AudienceLabel\n className={`${props.audienceLabelClass ? props.audienceLabelClass : ''} mt-1`}\n audience={mergedAudience}\n border='white'\n />\n }\n </div>\n {!!props.showOwner && !!props.imageCdnUrl &&\n <div className={styles.ownerAvatarContainer}>\n <PlaylistOwnerAvatar\n playlist={props.data}\n currentUser={props.currentUser}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n }\n </BaseImage>\n </AppLink>\n );\n}","import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { PlaylistItem, PlaylistItemStyle } from './PlaylistItem';\n\ninterface PlaylistListProps {\n playlists: Playlist[];\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\n currentUser?: CurrentUser;\n presentationAudiences?: PresentationAudience[];\n itemContainerClassName?: string;\n itemTitleClassName?: string;\n bgColourClassNames?: string[];\n itemStyle?: PlaylistItemStyle;\n imageCdnUrl?: string;\n showCount?: boolean;\n showOwner?: boolean;\n showFallbackImage?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n extraPlaylistItem?: JSX.Element;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Playlist,\n location: LocationContext.PlaylistListItem,\n descriptor: ClickDescriptor.Cover\n};\n\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\n return (\n <Row as='ul' className='list-unstyled mx-n1'>\n {props.extraPlaylistItem && (\n <Col as='li' key='extra-playlist-item' xs={6} sm={4} lg={3} className={`mb-2 px-1 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\n {props.extraPlaylistItem}\n </Col>\n )}\n\n {props.playlists.map(p => (\n <Col as='li' key={p.id} xs={6} sm={4} lg={3} className={`mb-2 px-1 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\n <PlaylistItem\n data={p}\n appLink={props.getPlaylistAppLink(p)}\n imageCdnUrl={props.imageCdnUrl}\n currentUser={props.currentUser}\n presentationAudiences={props.presentationAudiences}\n bgColourClassNames={props.bgColourClassNames}\n showCount={props.showCount}\n showOwner={props.showOwner}\n showFallbackImage={props.showFallbackImage}\n titleClassName={props.itemTitleClassName}\n itemStyle={props.itemStyle}\n analyticsData={props.analyticsData}\n analyticsOptions={{ ...props.analyticsOptions, ...analyticsOptions }}\n />\n </Col>\n ))}\n </Row>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nconst namespace = 'playlists.playlistSortSelect';\n\nconst getSortTypes = FunctionHelper.memoize(() => {\n return {\n [PlaylistSortType.RecentlyUpdated]: {\n name: LanguageService.getPhrase(namespace, 'recentlyUpdated')\n },\n [PlaylistSortType.AtoZ]: {\n name: LanguageService.getPhrase(namespace, 'atoz')\n },\n [PlaylistSortType.ZtoA]: {\n name: LanguageService.getPhrase(namespace, 'ztoa')\n },\n [PlaylistSortType.Newest]: {\n name: LanguageService.getPhrase(namespace, 'newest')\n },\n [PlaylistSortType.Oldest]: {\n name: LanguageService.getPhrase(namespace, 'oldest')\n }\n };\n});\n\ninterface PlaylistSortSelectProps {\n type: PlaylistSortType;\n getSortAppLink: (sort: PlaylistSortType) => Core.AppLink;\n variant?: ButtonProps['variant'];\n}\n\nPlaylistSortSelect.defaultProps = {\n variant: 'light'\n};\n\nexport function PlaylistSortSelect(props: PlaylistSortSelectProps): JSX.Element {\n const { type, getSortAppLink, variant } = props;\n const sortTypes = getSortTypes();\n\n return (\n <div className='dropdown'>\n <button className={`btn btn-${variant} ms-2 dropdown-toggle`} type='button' id='sort-select' data-bs-toggle='dropdown' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\n {sortTypes[type].name}\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right' aria-labelledby='sort-select'>\n {Object.values(PlaylistSortType).map(k => {\n let className = 'dropdown-item';\n\n if (k === type)\n className += ' active';\n\n return (\n <li key={k}>\n <AppLink\n \n className={className}\n appLink={getSortAppLink(k)}\n analyticsData={{\n sort: sortTypes[k].name\n }}\n analyticsOptions={{\n location: LocationContext.PlaylistListHeader,\n entity: EntityType.Playlists,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n >\n {sortTypes[k].name}\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"playlistMetadata\":\"vv8fW\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport styles from './favourites-playlist-item.scss';\n\nconst namespace = 'playlists.favouritesPlaylistItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface FavouritesPlaylistItemProps {\n data: VideoTypes[];\n count: number;\n isLoadingCount: boolean;\n}\n\nexport function FavouritesPlaylistItem(props: FavouritesPlaylistItemProps): JSX.Element {\n const analyticsData = {\n name: 'Favourites',\n extraItem: 'user-favourites'\n };\n\n const analyticsOptions = {\n entity: EntityType.Playlist,\n actionType: UserAction.Click,\n location: LocationContext.PlaylistListItem\n };\n\n const coverUrl = ImageUrls.FAVOURITES_PLAYLIST.FAV_PLAYLIST_COVER ;\n const appLink = {\n application: AppChannels.MY_FAVOURITES,\n action: Actions.MyFavourites.MY_FAVOURITES\n };\n\n return (\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n title={getPhrase('favouritesTitle')}\n >\n <div className='position-relative'>\n <div className={`text-white font-size-sm text-shadow ${styles.playlistMetadata}`}>\n {!props.isLoadingCount && (\n <span>\n <Text namespace={namespace} phrase='count' options={{ smartCount: props.count }} />\n </span>\n )}\n <h5 className={`mb-0`}><span className='clamp-2'>{getPhrase('favouritesTitle')}</span></h5>\n </div>\n \n <img src={coverUrl} alt={getPhrase('favouritesTitle')} className='w-100 h-100 rounded-3'/>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { PartialPlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PartialPlaylistList';\nimport { PlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistList';\nimport { PlaylistSortSelect } from 'libs/shared/apps/playlists/components/sort-select/PlaylistSortSelect';\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\nimport { PlaylistType } from 'libs/shared/apps/playlists/enums/PlaylistType';\nimport { PlaylistCollectionIdentifier } from 'libs/shared/apps/playlists/interfaces/identifiers/PlaylistCollectionIdentifier';\nimport { PlaylistSortHelper } from 'libs/shared/apps/playlists/utils/PlaylistSortHelper';\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Playlist } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useFavouritesCount } from 'shared/views/favourites/hooks/useFavouritesCount';\n\nimport { FavouritesPlaylistItem } from 'apps/playlists/components/favourites-playlist-item/FavouritesPlaylistItem';\nimport { SoftGateBanner } from 'apps/sign-up/components/soft-gate-banner/SoftGateBanner';\n\nimport { PlaylistsPublicEmptyState } from './empty-state/PlaylistsEmptyState';\n\nconst namespace = 'playlists.playlists';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getSortAppLink(sort: PlaylistSortType): Core.AppLink {\n return {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.HOME,\n params: {\n sort: sort\n }\n };\n}\n\ninterface PlaylistsViewProps {\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\n sort?: PlaylistSortType;\n}\n\nexport function PlaylistsView(props: PlaylistsViewProps): React.ReactElement {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const { hasLocalPermissions, getGatedPermission, isLoaded } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n \n const audiences = usePresentationAudiences();\n\n const sort = !!user.data && PlaylistSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n const { count, favourites, isLoading } = useFavouritesCount(user.data?.id);\n\n const favouritesPlaylist = {\n count,\n isLoadingCount: isLoading,\n data: favourites\n };\n\n const getPlaylistRequest = !!sort && ((cursor?: string) =>\n PlaylistRequests.getUserPlaylists(new PlaylistCollectionIdentifier(sort, cursor, PlaylistType.All)));\n\n const fetchNext = !!getPlaylistRequest && ((cursor?: string) => {\n Flight.getFetch(dispatch)(getPlaylistRequest(cursor));\n });\n\n useSetPageMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription')\n });\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewPlaylistsLanding) && sort;\n\n const {\n items: playlists,\n hasMore,\n isFetching\n } = useInfiniteList<Playlist>(shouldFetch ? getPlaylistRequest : false, fetchNext, onError);\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n const actions = [\n {\n label: getPhrase('createPlaylist'),\n appLink: { application: AppChannels.PLAYLISTS, action: Actions.Playlists.NEW_PLAYLIST },\n svgName: cvSvgLibrary.Plus,\n className: 'btn btn-outline-dark',\n button: true,\n analyticsData: {},\n analyticsOptions: {\n location: LocationContext.Banner,\n entity: EntityType.Playlist,\n workflowPhase: WorkflowPhase.Start,\n actionType: UserAction.Create\n }\n }\n ];\n\n const dataLoaded = (\n !!playlists &&\n !!user.data &&\n !!config.data &&\n (!!audiences.data || audiences.hasError) &&\n !!isLoaded\n );\n\n if (hasLocalPermissions(LocalPermissionName.ViewPlaylistsLanding))\n return <PlaylistsPublicEmptyState />;\n\n return (\n <div className='bg-white px-3'>\n {getGatedPermission(PermissionName.CreatePlaylist) === 'soft-gate' && <SoftGateBanner />}\n <div className='d-flex justify-content-between align-items-end pb-3'>\n <h1 className='h2 mb-0'><Text namespace={namespace} phrase='headerTitle' /></h1>\n {!!sort &&\n <ActionsComponent\n actions={actions}\n sortComponent={(\n <PlaylistSortSelect\n variant='outline-dark'\n type={sort}\n getSortAppLink={getSortAppLink}\n />\n )}\n />\n }\n </div>\n {dataLoaded\n ? (\n <PlaylistList\n playlists={playlists}\n getPlaylistAppLink={props.getPlaylistAppLink}\n imageCdnUrl={config.data.imageCdnUrl}\n currentUser={user.data}\n presentationAudiences={audiences.data || []}\n bgColourClassNames={BG_COLOUR_CLASS_NAMES}\n itemContainerClassName='columns-of-five'\n itemStyle='round'\n showCount\n showOwner\n extraPlaylistItem={<FavouritesPlaylistItem {...favouritesPlaylist} />}\n />\n ) : <PartialPlaylistList itemClassName='columns-of-five' />\n }\n {(dataLoaded && (hasMore || isFetching)) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} />\n }\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'playlists.playlistsEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PlaylistEmptyStateProps {\n isStudent: boolean;\n hideButton?: boolean;\n className?: string;\n imageSize?: 'small' | 'medium';\n headingClassName?: string;\n}\n\nexport function PlaylistsEmptyState(props: PlaylistEmptyStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState className={props.className}>\n <EmptyState.Image src={ImageUrls.EmptyStates.Playlists.PLAYLISTS} altText={getPhrase('info')} size={props.imageSize} />\n\n <EmptyState.Heading className={props.headingClassName}><Text phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info className='w-75'><Text phrase={props.isStudent ? 'studentInfo' : 'info'} /></EmptyState.Info>\n\n {!props.hideButton && <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n icon={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.NEW_PLAYLIST\n }}\n />}\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n\nexport function PlaylistsPublicEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Playlists.PLAYLISTS_PUBLIC} altText={getPhrase('info')} />\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'publicCta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.PlaylistsLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.softGateBanner';\n\nexport function SoftGateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Large} />\n <Text namespace={namespace} phrase='softGate' /> \n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n className='indigo-link text-indigo text-underline d-inline'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </AppLink>\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","\nimport { Flight } from 'libs/common/flight';\n\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { FavouritesCountResponse } from 'libs/shared/interfaces';\n\nexport function useFavouritesCount(userId?: string) {\n// todo there is a beckend bug that we cannot group fetch these three number\n const favouriteVideosCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesVideosCount(userId));\n const favouriteClipsCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesClipsCount(userId));\n const favouriteInteractivesCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesInteractivesCount(userId));\n \n const totalCount = favouriteVideosCount.data?.count\n + favouriteInteractivesCount.data?.count\n + favouriteClipsCount.data?.count;\n\n const favourites = [\n ...(favouriteVideosCount.data?.data || []),\n ...(favouriteClipsCount.data?.data || []),\n ...(favouriteInteractivesCount.data?.data || [])\n ];\n\n return {\n count: totalCount,\n favourites,\n isLoading: !favouriteVideosCount.data?.data\n || !favouriteClipsCount.data?.data\n || !favouriteInteractivesCount.data?.data\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"playlistItem\":\"CaRJx\",\"playlistItemGradient\":\"BI7p2\",\"playlistMetadata\":\"eDk1l\",\"partialHeading\":\"w4lWh\",\"ownerAvatarContainer\":\"JImqE\"};","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["PartialPlaylistList","props","PARTIAL_PLAYLISTS","Array","numItems","className","itemClassName","showHeading","map","p","idx","key","xs","sm","lg","defaultProps","namespace","PlaylistCount","count","playlist","videos","interactives","clips","getCount","Number","isNaN","Text","phrase","options","smartCount","PlaylistOwnerAvatar","_liteOwner","_isClickViewCurated","value","ClickViewAvatar","id","currentUser","toString","url","avatar","Avatar","imageUrl","imageCdnUrl","initials","UserHelper","name","surname","PlaylistItem","ImageHelper","data","cover","size","resizeType","audiences","subjectPresentationAudiences","mergedAudience","presentationAudiences","showImage","showFallbackImage","bgColourClassNames","getBgColorClass","itemStyle","analyticsData","analyticsOptions","entity","AppLink","appLink","title","contentModifiedDate","LanguageService","timeago","DateHelper","getTitle","BaseImage","alt","ImageFallback","type","showCount","titleClassName","length","AudienceLabel","audienceLabelClass","audience","border","showOwner","actionType","location","descriptor","PlaylistList","as","extraPlaylistItem","itemContainerClassName","playlists","getPlaylistAppLink","itemTitleClassName","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","SCROLL_TOLERANCE","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","scrollContainer","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","nextCursor","hasMore","isFetching","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","httpStatusClass","substr","HttpStatus","items","totalItems","hasFirstPageCompleted","getSortTypes","PlaylistSortType","PlaylistSortSelect","getSortAppLink","variant","sortTypes","Object","values","k","sort","workflowPhase","getPhrase","FavouritesPlaylistItem","coverUrl","ImageUrls","application","action","extraItem","isLoadingCount","src","params","PlaylistsView","dispatch","alerts","usePermissions","hasLocalPermissions","getGatedPermission","isLoaded","config","ConfigRequests","user","UserRequests","usePresentationAudiences","PlaylistSortHelper","useFavouritesCount","favourites","favouritesPlaylist","isLoading","getPlaylistRequest","PlaylistRequests","PlaylistCollectionIdentifier","PlaylistType","useSetPageMetadata","description","shouldFetch","pageNumber","httpStatus","error","actions","label","svgName","button","dataLoaded","hasError","PermissionName","SoftGateBanner","Actions","sortComponent","P","InfiniteScrollFooter","PlaylistsEmptyState","altText","imageSize","headingClassName","isStudent","hideButton","text","icon","PlaylistsPublicEmptyState","SignUp","role","S","redirectOnError","activePresentation","getFallbackPresentation","presentation","userId","favouriteVideosCount","favouriteClipsCount","favouriteInteractivesCount","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","test","parseInt","trim","replace","format","date","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","floor","unit"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[979],{51182:(e,t,n)=>{n.d(t,{l:()=>a.l});var a=n(72632)},33518:(e,t,n)=>{var a;n.d(t,{e:()=>a}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(a||(a={}))},2267:(e,t,n)=>{n.d(t,{I:()=>s});var a=n(20354),i=n(64249),r=n(4594),o=n(5112),l=n(60011),c=n(40841),s={canEmbed:function(e){return["video","interactive","clip"].includes(e)},canAddPolicies:function(e){return["interactive"].includes(e)},getEnabledIntegrations:function(e,t){return c._.getShareIntegrations(e,t).filter(function(e){return e.enabled}).map(function(e){return e.id})},getShareSettingsInitialValues:function(e,t){var n,a,i,r,o,l;return{preventScrubbing:null!==(i=null!==(a=null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.preventScrubbing)&&void 0!==a?a:null==t?void 0:t.preventScrubbing)&&void 0!==i&&i,immediateFeedback:null!==(l=null!==(o=null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.immediateFeedback)&&void 0!==o?o:null==t?void 0:t.immediateFeedback)&&void 0!==l&&l}},getEnabledSettingsField:function(e){return{showImmediateFeedbackField:"interactive"===e,showPreventScrubbingField:"interactive"===e}},getSharableEntityType:function(e){switch(e.objectTypeId){case r.E.Video:return"video";case r.E.Playlist:return"playlist";case r.E.Subject:return"subject";case r.E.Series:return"series";case r.E.Interactive:return"interactive";case r.E.Clip:return"clip"}},getFetchFunctionByType:function(e){switch(e){case"playlist":return function(e){return a.a.useBasicFetch(o.C.playlistWithThumbnailAndCount(e))};case"series":return function(e){return a.a.useBasicFetch(l.J.seriesWithThumbnailAndCount(e))}}return i.I.getFetchFunctionByType(e)},getAnalyticsEntity:function(e){return i.I.getAnalyticsEntity(e)},getAnalyticsOptions:function(e){return i.I.getAnalyticsOptions(e)}}},9806:(e,t,n)=>{n.d(t,{k:()=>C});var a=n(32735),i=n(65858),r=n(64249),o=n(15611),l=n(7432),c=n(11834),s=n(83345),m=n(56754),u=n(53829),d=n(7733),p=n(54610),g=n(4594),f=n(68626),v=n(9085),h=n(67453),y=n(31908);const b={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt",thumbnailContainer:"d3CKN",insightsMask:"KM76U",requireMarking:"peLH7",badge:"mVu0E",bar:"zO3MS",a:"K1jW5",expandBar:"YITJl",b:"tCpLF",c:"lC0cq"};var E="shared.sharedObjectImage",k="rounded overflow-hidden";function w(){return a.createElement("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center"},a.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),a.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},a.createElement("div",{className:"d-flex align-items-end h-50"},a.createElement("div",{className:"".concat(b.bar," ").concat(b.a," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-75"},a.createElement("div",{className:"".concat(b.bar," ").concat(b.b," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-100"},a.createElement("div",{className:"".concat(b.bar," ").concat(b.c," rounded shadow")}))))}function C(e){var t=a.useCallback(function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,y.M.isVideoType(n)?16/9:n.typeId===g.E.Playlist?1:n.typeId===g.E.Series?9/16:void 0),"px"))},[]),n=y.M.isVideoType(e.object),C=function(e){var t=h.j.getDisplayImageFromObject(e);if(y.M.isVideoType(e))return{image:t,imageType:p.__.Thumbnails,imageClassName:k,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Video})};switch(e.typeId){case g.E.Series:return{image:t,imageType:p.__.TallPosters,imageClassName:k,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Series,svgContainerClassName:b.posterFallbackSvg})};case g.E.Playlist:return{image:t,imageType:p.__.Covers,imageClassName:(null==t?void 0:t.url)?k:"".concat(k," ").concat((0,v.x)(e.name,d.o)),imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?b.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),x=C.image,S=C.imageType,A=C.imageClassName,N=C.imageFallbackComponent,T=e.showVideoMetadata?{hideBottomBar:e.hideBottomBar}:{hideDuration:!0,hideMask:!0,hideRating:!0,hideVideoBadgeType:!0,hideBottomBar:!0};return a.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},a.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&a.createElement("div",{className:"".concat(b.thumbnailContainer," position-relative")},e.showInsightsMask&&a.createElement(w,null),a.createElement(o.F,{appLink:e.appLink},a.createElement(u.u,Object.assign({video:e.object,size:e.thumbnailSize,imageOptions:e.imageOptions,textPosition:f.z.Independent,type:"cosmetic",imageClassName:e.imageClassName},T))),!!e.requireMarking&&a.createElement("div",{className:"".concat(e.showInsightsMask&&b.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},a.createElement("div",{className:"".concat(b.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},a.createElement(s.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&a.createElement(a.Fragment,null,"videos"in e.object?a.createElement(m.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:r.I.getAnalyticsEntity(e.object.type),actionType:i.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount,onlyCount:e.onlyCount}):a.createElement(l.Z,{data:null==x?void 0:x.url,imageType:S,imageOptions:e.imageOptions,appLink:e.appLink,className:A,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:r.I.getAnalyticsEntity(e.object.type),actionType:i.Vw.Click,location:e.locationContext}},N))))}C.defaultProps={imageOptions:{size:p.h2.Small}}},70791:(e,t,n)=>{n.d(t,{L:()=>o});var a=n(14292),i=n(97395),r="toolbar=0,location=0,menubar=0,width=600,height=600",o={launchGoogleClassroom:function(e){var t=i._.urlBuilder("https://classroom.google.com/share",{link:e});a.A.PageLoad(t,!0,r)},launchMicrosoftTeams:function(e){var t=i._.urlBuilder("https://teams.microsoft.com/share",{href:e,preview:!1,referrer:a.A.GetCurrentHostname(),s:Date.now()});a.A.PageLoad(t,!0,r)}}},64197:(e,t,n)=>{n.d(t,{i:()=>s});var a=n(32735),i=n(23481),r=n(31453);const o={divider:"rpkqv"};var l=i.T.encloseNamespace("shared.divider");function c(e){var t=e.text||l("or");return{"--divider-content":"'".concat(t,"'"),"--divider-text-transform":e.noUpperCase?"none":"uppercase"}}function s(e){return a.createElement("div",{className:(0,r.A)("my-2 w-100 border-bottom position-relative",o.divider,e.className),style:c(e)})}},56754:(e,t,n)=>{n.d(t,{I:()=>E});var a=n(32735),i=n(75896),r=n(65858),o=n(15611),l=n(83914),c=n(83345);const s={thumbnailTitle:"OsWjL"};function m(e){return a.createElement("h3",{title:e.title,className:"h6"},e.title)}function u(e){return e.appLink?a.createElement(o.F,{appLink:e.appLink,className:"".concat(s.thumbnailTitle)},a.createElement(m,Object.assign({},e))):a.createElement(m,Object.assign({},e))}var d=n(53829),p=n(62335),g=n(4594),f=n(68626),v=n(45778),h=n(35223);const y={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var b="shared.collectionThumbnail";function E(e){var t,n,s,m,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===g.E.Playlist){var a=e.collection;a.clips.count&&(n=a.clips),a.interactives.count&&(n=a.interactives)}return i.m.first(n.data)}}(),k=function(){var t,n,a=0;if(e.collection.videos&&e.collection.videos.count&&(a+=e.collection.videos.count),e.collection.typeId===g.E.Playlist){var i=e.collection;(null===(t=i.interactives)||void 0===t?void 0:t.count)&&(a+=i.interactives.count),(null===(n=i.clips)||void 0===n?void 0:n.count)&&(a+=i.clips.count)}return a}(),w=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),C=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),x=Object.assign({actionType:r.Vw.Click,entity:(m=e.collection,v.G.isType(m,g.E.Playlist)?r.py.Playlist:v.G.isType(m,g.E.Series)?r.py.Series:void 0)},e.analyticsOptions);return a.createElement("div",null,a.createElement("div",{className:"position-relative ".concat(y.thumbnailContainer," z-1")},a.createElement(o.F,{appLink:e.appLink,analyticsData:C,analyticsOptions:x,preventFocus:!0},e.showMask&&a.createElement("div",{className:"".concat(y.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},a.createElement("div",{className:"".concat(y.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},a.createElement(l.x,{svgName:h.vn.Play,className:"svg-container text-white"}),a.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(s=e.hoverText)||void 0===s?void 0:s.length)?a.createElement("span",null,e.hoverText):a.createElement(c.x,{namespace:b,phrase:"playAll"})))),E&&a.createElement(d.u,{video:E,imageOptions:e.imageOptions,textPosition:f.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&a.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},a.createElement("div",{className:"d-flex justify-content-center align-items-center"},a.createElement(l.x,{svgName:h.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&a.createElement("div",{className:"".concat(y.badge," d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2")},a.createElement(l.x,{svgName:h.vn.Series,className:"svg-container text-white me-1"}),a.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},e.onlyCount?a.createElement("span",null,k):a.createElement(c.x,{namespace:b,phrase:"videos",options:{count:k,smartCount:k}}))))),w&&a.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&a.createElement(p.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&a.createElement(u,{title:e.collection.name,appLink:e.titleAppLink})))}},84850:(e,t,n)=>{n.d(t,{X:()=>r});var a=n(1048),i=n(49985);function r(e){function t(t,n){var r=e.config[t.type];if(null==r?void 0:r.isValid(t)){var o=Object.assign(Object.assign({},!1===r.logBaseData?{}:e.baseData),t);return{data:a.t.omit(o,["type"]),analyticsOptions:i.k.mergeOptions(r.analyticsOptions,[e.analyticsOptions,n])}}}return{getData:t,log:function(n,a){if(e.shouldLog){var r=t(n,a);r&&i.k.logUserAction(r.data,r.analyticsOptions)}}}}},83351:(e,t,n)=>{n.d(t,{P:()=>c});var a=n(32735),i=n(23481),r=n(13876),o=n(36532),l=i.T.encloseNamespace("assign.flowControls");function c(e){var t=e.hideBackButton||!e.onClickBack,n=e.hideNextButton||!e.onClickNext,i=e.hideCreateClassroomButton||!e.onClickCreateClassroom;return t&&n&&i?a.createElement(a.Fragment,null):a.createElement(r.u,{className:"justify-content-between"},a.createElement("div",null,!!e.leftComponent&&e.leftComponent,!i&&a.createElement(r.u.Submit,{variant:"link",onClick:e.onClickCreateClassroom,text:l("createClassroom"),className:"text-info p-0"})),a.createElement("div",{className:"d-flex"},!t&&a.createElement(r.u.Cancel,{variant:"link",onClick:e.onClickBack,text:e.backButtonText||l("back")}),!n&&a.createElement(o.u,{title:e.nextButtonTooltip,disable:!e.nextButtonTooltip,placement:"top",spanHack:!0},a.createElement(r.u.Submit,{variant:"dark",onClick:e.onClickNext,text:e.nextButtonText||l("next"),disabled:e.disableNextButton,showSpinner:e.showSpinner}))))}},95890:(e,t,n)=>{n.d(t,{_:()=>d});var a=n(20354),i=n(2267),r=n(4594),o=n(16714),l=n(39151),c=n(20768),s=n(31949),m=n(22902),u=n(45778);function d(e){var t,n=a.a.useBasicFetch(s.N.currentUser()),d=i.I.getFetchFunctionByType(e.entityType)(e.objectId,null===(t=n.data)||void 0===t?void 0:t.id),p=a.a.useBasicFetch(l.L.config()),g=a.a.useBasicFetch(u.G.isType(d.data,r.E.Interactive)&&d.data.interactiveId&&c.b.interactive(d.data.interactiveId)),f=(0,m.T)(),v=f.hasPermissions,h=f.getGatedPermission,y=f.isLoaded,b=v(o.C.StudentExperience),E=v(o.C.CreateClassrooms),k=h(o.C.ShareToOpenClassrooms);return{loaded:!!(n.data&&d.data&&p.data&&y),currentUser:n,entity:d,interactive:g,config:p,hasStudentExp:b,canCreateClassrooms:E,openClassroomGatedPermission:k}}},85287:(e,t,n)=>{n.d(t,{z:()=>c});var a=n(97395),i=n(75896),r=n(19808);function o(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var c={getRecipients:function(e){return e.length?e.map(function(e){return e.id}):[]},getLearnersForGroups:function(e){var t=e.reduce(function(e,t){var n;return[].concat(o(e),o(null!==(n=t.users.data)&&void 0!==n?n:[]))},[]);return i.m.uniq(t,"id")},getSelectedEntities:function(e,t){return e.find(function(e){var n,a;return(null===(n=e.id)||void 0===n?void 0:n.toString())===(null===(a=t.id)||void 0===a?void 0:a.toString())})?e.filter(function(e){var n,a;return(null===(n=e.id)||void 0===n?void 0:n.toString())!==(null===(a=t.id)||void 0===a?void 0:a.toString())}):[].concat(o(e),[t])},getContactSupportUrl:function(e,t){if(e&&t){var n="/contact-us/support";return t===r.b.NZ&&(n="/contact-us/"),a._.safeUrlConcat(e,n)}}}},7786:(e,t,n)=>{n.d(t,{y:()=>c});var a=n(65858),i=n(2267),r=n(84850);function o(e){return"share"in e&&!!e.share}function l(e){return{"create-existing-classroom":{isValid:o,analyticsOptions:{actionType:a.Vw.Create,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.ExistingClassroom}},"share-existing-classroom":{isValid:function(){return!0},logBaseData:!1,analyticsOptions:{actionType:a.Vw.Share,entity:i.I.getAnalyticsEntity(e.data.entity.type),workflowPhase:a.eu.Complete,descriptor:a.Os.ExistingClassroom,eventVersion:a.eq.V5}},"create-open-classroom":{isValid:o,analyticsOptions:{actionType:a.Vw.Create,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.OpenClassroom}},"share-open-classroom":{isValid:function(){return!0},logBaseData:!1,analyticsOptions:{actionType:a.Vw.Share,entity:i.I.getAnalyticsEntity(e.data.entity.type),workflowPhase:a.eu.Complete,descriptor:a.Os.OpenClassroom,eventVersion:a.eq.V5}},"view-assignment":{isValid:o,analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.ViewAssignment}},"select-existing-classroom-flow":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Start,descriptor:a.Os.ExistingClassroom,entity:a.py.Assign}},"select-open-classroom-flow":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Start,descriptor:a.Os.OpenClassroom,entity:a.py.Assign}},"view-previous-assignment":{isValid:o,analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Discard,entity:a.py.Assign,descriptor:a.Os.ViewPreviousAssignment}},"close-assign-popup":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Discard,entity:a.py.Assign,descriptor:a.Os.ClosePopup}},"create-new-classroom":{isValid:function(e){return!!e.classroom},analyticsOptions:{actionType:a.Vw.Create,workflowPhase:a.eu.Next,descriptor:a.Os.CreateClassroom,entity:a.py.Assign}},"select-narrow-selection":{isValid:function(e){return!!e.classroom},analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Next,descriptor:a.Os.NarrowSelection}},"click-create-classroom":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Next,descriptor:a.Os.CreateClassroom}},"copy-embed-html":{isValid:function(){return!0},logBaseData:!1,analyticsOptions:{actionType:a.Vw.Share,workflowPhase:a.eu.Complete,entity:i.I.getAnalyticsEntity(e.data.entity.type),descriptor:a.YM.CopyEmbedHtml,eventVersion:a.eq.V5}},"copy-share-link":{isValid:function(){return!0},logBaseData:!1,analyticsOptions:{actionType:a.Vw.Share,workflowPhase:a.eu.Complete,entity:i.I.getAnalyticsEntity(e.data.entity.type),descriptor:a.YM.CopyLink,eventVersion:a.eq.V5}},"print-qr-code":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Print,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.PrintQrCode}},"download-qr-code":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Download,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.DownloadQrCode}},"request-full-screen":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.FullScreen}}}}function c(e){var t,n=(0,r.X)({analyticsOptions:e.analyticsOptions,baseData:e.data,config:l(e),shouldLog:null===(t=e.shouldLog)||void 0===t||t}),a=n.getData;return{log:n.log,getData:a}}},82664:(e,t,n)=>{n.r(t),n.d(t,{AssignDetailsView:()=>Me});var a=n(32735),i=n(6044),r=n(23481),o=n(20354),l=n(65858),c=n(33518),s=n(18488),m=n(9111),u=n(83345),d=n(99998),p=n(86099),g=n(2510),f=n(51182),v=n(84891),h=n(31453),y=n(19494),b=n(83914),E=n(35223);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var w="assign.assignDetailsTabs";function C(e){var t=e.tab===e.active;return a.createElement("button",{className:(0,h.A)("rounded-pill d-flex align-items-center gap-1 ps-1",t?"bg-dark text-white":"bg-light"),onClick:function(){return e.onClick(e.tab)}},e.children)}var x={overview:["",""],"share-link":[E.vn.Link,"shareLink"],"qr-code":[E.vn.QrCode,"qrCode"],embed:[E.vn.Code,"embed"],"join-code":[E.vn.Key,"joinCode"],integrations:["","integrations"]},S=["share-link","join-code","qr-code","embed","integrations"];function A(e){var t=S.filter(function(t){var n;return!(null===(n=e.hideTabs)||void 0===n?void 0:n.includes(t))});return t.length?a.createElement("div",{className:"d-flex justify-content-center mb-3 gap-3 flex-wrap"},t.map(function(t){var n,i,r=(i=2,function(e){if(Array.isArray(e))return e}(n=x[t])||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(n,i)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(n,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=r[0],l=r[1];return"integrations"===t?a.createElement(C,Object.assign({tab:t},e,{key:t}),a.createElement(y.C,{size:"sm",noTooltip:!0}),a.createElement(u.x,{namespace:w,phrase:l})):a.createElement(C,Object.assign({tab:t},e,{key:t}),a.createElement(b.x,{svgName:o}),a.createElement(u.x,{namespace:w,phrase:l}))})):a.createElement(a.Fragment,null)}function N(){return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1"})),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"endStep"})))}function T(){return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1"})),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"step2SignIn"})),a.createElement(v.t.Step,{number:3},a.createElement(u.x,{phrase:"endStep"})))}var j=n(21789),O=n(15611),I=n(14070),P=n(97291),L=n(42648),V=n(98461),F=n(70791);const R=JSON.parse('[{"id":"blackBoard","name":"BlackBoard","icon":"/images/integrations/icons/blackboard.png","link":"https://support.clickvieweducation.com/hc/articles/43194073335321","instanceRegions":[]},{"id":"canvas","name":"Canvas","icon":"/images/integrations/icons/canvas.png","link":"https://support.clickvieweducation.com/hc/articles/42686008655001","instanceRegions":[]},{"id":"compass","name":"Compass","icon":"/images/integrations/icons/compass.png","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"id":"d2lBrightspace","name":"D2L Brightspace","icon":"/images/integrations/icons/brightspace.png","link":"https://support.clickvieweducation.com/hc/articles/42559711867417","instanceRegions":[]},{"id":"edmodo","name":"Edmodo","icon":"/images/integrations/icons/edmodo.png","link":"","instanceRegions":[],"notes":"We don\'t have an article"},{"id":"educationPerfect","name":"Education Perfect","icon":"/images/integrations/icons/education-perfect.png","link":"https://support.clickvieweducation.com/hc/articles/13167768154009","instanceRegions":[]},{"id":"fireFly","name":"FireFly","icon":"/images/integrations/icons/firefly.png","link":"","instanceRegions":[],"notes":"Two old articles: https://www.clickview.co.nz/plugins/firefly/, https://community.fireflylearning.com/s/article/ClickView-Plugin-for-Firefly"},{"id":"frogLearning","name":"Frog Learning","icon":"/images/integrations/icons/frog.png","link":"","instanceRegions":[],"notes":"Users won\'t be able to embed these shares in frog, it\'s an RSS integration."},{"id":"googleClassroom","name":"Google Classroom","icon":"/images/integrations/icons/google-classroom.png","link":"https://support.clickvieweducation.com/hc/articles/4407883106329","instanceRegions":[]},{"id":"itslearning","name":"itslearning","icon":"/images/integrations/icons/its-learning.png","link":"https://support.clickvieweducation.com/hc/articles/42559378556185","instanceRegions":[]},{"id":"microsoftTeams","name":"Microsoft Teams","icon":"/images/integrations/icons/microsoft-teams.png","link":"https://support.clickvieweducation.com/hc/articles/42671122820633","instanceRegions":[]},{"id":"stileEducation","name":"Stile Education","icon":"/images/integrations/icons/stile.png","link":"https://help.stileapp.com/hc/articles/218052537","instanceRegions":[]},{"id":"moodle","name":"Moodle","icon":"/images/integrations/icons/moodle.png","link":"https://support.clickvieweducation.com/hc/articles/42451786827033","instanceRegions":[]},{"id":"seqta","name":"SEQTA","icon":"/images/integrations/icons/seqta.png","link":"https://help.seqta.com.au/s/article/embedding-and-removing-clickview-videos-and-playists","instanceRegions":[]},{"id":"schoolbox","name":"Schoolbox","icon":"/images/integrations/icons/schoolbox.png","link":"","instanceRegions":[],"notes":"Only article I could find is their one: https://help.schoolbox.com.au/homepage/2718"},{"id":"versoLearning","name":"Verso Learning","icon":"/images/integrations/icons/verso.png","link":"","instanceRegions":[],"notes":"https://www.clickview.co.nz/plugins/verso/"},{"id":"schoology","name":"Schoology","icon":"/images/integrations/icons/schoology.png","link":"https://support.clickvieweducation.com/hc/articles/9512518040217","instanceRegions":[]},{"id":"sharePoint","name":"SharePoint","icon":"","link":"","instanceRegions":[],"notes":"This integration is so freaking old we probably don\'t want it here"},{"id":"myEDiary","name":"MyEDiary","icon":"","link":"","instanceRegions":[],"notes":"I don\'t even know WTF this is, I can\'t find it on google, I think we drop it"},{"id":"realSmart","name":"RealSmart","icon":"","link":"","instanceRegions":[],"notes":"No clue"},{"id":"lumio","name":"Lumio","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"id":"daymap","name":"Daymap","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"id":"smart","name":"Smart","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"id":"myEdOnline","name":"myEdOnline","icon":"","link":"","instanceRegions":[]},{"id":"schoolBytes","name":"School Bytes","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"id":"softLink","name":"SoftLink","icon":"","link":"","instanceRegions":[]},{"id":"toddle","name":"Toddle","icon":"","link":"https://support.clickvieweducation.com/hc/articles/44934633120665","instanceRegions":[]}]');function B(e){var t=e.onClick?"div":"a";return a.createElement("div",{className:(0,h.A)("col-6 mb-2",e.className)},a.createElement(t,{href:e.onClick?void 0:e.integration.link,className:"d-flex align-items-center border rounded-1 p-2 text-decoration-none hover-bg-light-blue fw-medium cursor-pointer",target:"_blank",rel:"noopener noreferrer",onClick:e.onClick||void 0},a.createElement("span",{className:"d-block ".concat("_cwyZ"),style:{backgroundImage:"url(".concat(e.integration.icon,")")}}),a.createElement("span",{className:"text-center flex-grow-1"},e.integration.name)))}function D(e){var t,n,i=(t=e.shareLink,n=e.onShareAction,t?{googleClassroom:function(){F.L.launchGoogleClassroom(t),n()},microsoftTeams:function(){F.L.launchMicrosoftTeams(t),n()}}:{}),r=R.filter(function(t){var n=!!t.icon&&(!!t.link||i[t.id]);return e.instanceRegion&&t.instanceRegions.length&&(n=t.instanceRegions.includes(e.instanceRegion)),n});return a.createElement("div",{className:"bg-white rounded-3"},a.createElement(L.$B,{autoHeight:!0,autoHeightMax:e.maxHeight||308},a.createElement("div",{className:"container-fluid py-3"},a.createElement("div",{className:"row mx-0 px-2"},r.map(function(t,n){return a.createElement(B,{integration:t,key:n,className:e.itemClassName,onClick:i[t.id]})}),!e.hideSupportLink&&a.createElement("div",{className:"col-12 text-center"},a.createElement(V.d,{href:e.contactSupportLink,className:"btn btn-link text-info p-0",newTab:!0},a.createElement(u.x,{namespace:"assign.integrationList",phrase:"cantFindIntegration"})))))))}var q="assign.assignIntegrations";function z(){return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1JoinCode"})),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"step2JoinCode"})),a.createElement(v.t.Step,{number:3},a.createElement(u.x,{phrase:"step4"})))}function U(){return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1SignIn"})),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"step2SignIn"})),a.createElement(v.t.Step,{number:3},a.createElement(u.x,{phrase:"step3SignIn"})),a.createElement(v.t.Step,{number:4},a.createElement(u.x,{phrase:"step4"})))}function M(){return a.createElement("div",null,a.createElement("p",null,a.createElement(u.x,{phrase:"requestAccessDescription"})),a.createElement(O.F,{className:"btn btn-outline-dark hover-bg-white",appLink:{application:P.O.SIGN_UP,action:I.e.SignUp.UPGRADE},analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.AssignFlowView,entity:l.py.AppLink,descriptor:l.Yu.Upgrade,workflowPhase:l.eu.Start}},a.createElement(u.x,{namespace:q,phrase:"requestAccess"})))}function Z(e){var t=e.showRequestAccess,n=e.joinCode;return t?a.createElement(M,null):n?a.createElement(z,null):a.createElement(U,null)}var J=n(9806),W=n(64197),Q=n(99742);var H="assign.assignOverview",_=r.T.encloseNamespace(H);function G(e){return a.createElement("button",{className:(0,h.A)("rounded ratio ratio-1x1 border border-light hover-bg-light-blue","r9K_x"),onClick:function(){return e.onClick(e.screen)}},a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center gap-1 p-2 "},e.children))}function X(e){return a.createElement("div",{className:(0,h.A)("d-flex align-items-center justify-content-center","McyhP")},a.createElement("figure",{style:{backgroundImage:"url(".concat(Q.W.Assign.ASSIGN_DETAILS.OVERVIEW_TEXT,")")},className:(0,h.A)("m-0","u6Z4r")}),a.createElement("figure",{style:{backgroundImage:"url(".concat(Q.W.Assign.ASSIGN_DETAILS.OVERVIEW_BG,")")},className:(0,h.A)("position-relative m-0","RtZpT")},a.createElement("div",{className:(0,h.A)("position-absolute","m6eZK")},a.createElement(J.k,{object:e.entity,locationContext:l.LZ.AssignFlowView,thumbnailSize:"md",showVideoCount:!0,onlyCount:!0}))))}var K=n(98269),Y="shared.fullScreen",$=r.T.encloseNamespace(Y);function ee(e){return document.fullscreenEnabled?a.createElement("div",{className:(0,h.A)("vw-100 vh-100 bg-white",!e.isFullScreen&&"d-none"),ref:e.controlsRef},a.createElement("div",{className:"position-absolute top-0 end-0 pe-4 pt-4 z-1"},a.createElement(K.Z,{variant:"outline-dark",className:"d-inline-flex align-items-center gap-1",onClick:function(){document.exitFullscreen()}},a.createElement(u.x,{namespace:Y,phrase:"exitFullScreen"}),a.createElement(b.x,{svgName:E.vn.Close}))),e.children):a.createElement(a.Fragment,null)}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function ne(){var e,t,n=a.useRef(null),i=(e=a.useState(!1),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return te(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=i[0],o=i[1],l=document.fullscreenEnabled;return a.useEffect(function(){var e;if(n.current){var t=function(){!function(e,t){document.fullscreenElement!==e?t(!1):t(!0)}(n.current,o)};return null===(e=n.current)||void 0===e||e.addEventListener("fullscreenchange",t),function(){var e;return null===(e=n.current)||void 0===e?void 0:e.removeEventListener("fullscreenchange",t)}}},[n.current]),{ref:n,isFullScreen:r,isSupported:l,requestFullScreen:function(){n.current&&l&&n.current.requestFullscreen&&n.current.requestFullscreen()},exitFullScreen:function(){document.exitFullscreen().finally(function(){o(!1)})}}}ee.Button=function(e){if(!document.fullscreenEnabled)return a.createElement(a.Fragment,null);var t=e.text||$("buttonText");return a.createElement("div",{className:"w-100 text-center"},a.createElement(K.Z,{variant:e.variant||"link",className:"d-inline-flex justify-content-center text-info p-0",onClick:e.onClick},a.createElement("span",null,t),!e.hideIcon&&a.createElement(b.x,{svgName:E.vn.NewWindow})))};var ae=n(44645),ie=n(17327),re=n.n(ie),oe=n(56050),le=n(81886),ce=n(29866),se={sm:"oAKIc",md:"Ml3L5",lg:"cWnjp"},me={sm:100,md:200,lg:400,custom:0};function ue(e){var t="custom"===e.size?e.customSize:me[e.size],n="custom"===e.size?e.containerClassName:se[e.size];return a.createElement("div",{className:(0,h.A)("position-relative d-flex justify-content-center align-items-center flex-column","border border-dark rounded-3 bg-white",n)},a.createElement(ce.QRCode,{id:e.id||"cv-qr-code",value:e.value,bgColor:"white",size:t,logoImage:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAYFBMVEX////4mB34lhX5qEz4kQD4kwD4lAD+79/4lxf4jwD//vv938L5rFb96NP+9On4lQv6tWf+9/D5pUX8z6D6u3n4nzP82LP5pD/7xo/4nSr6s2X6vX77xpH5rVn5pED/+vVbzc80AAACrElEQVR4nO3di3LTMBSE4R7HDjEF3IaWlmvf/y0RlA4RjWNZHqHZo/97Au1k4m6OZPXqCgAAAAAAAAAAAAAAAAAAAAAAAP/BzW3tFZR2tDe1l1DYbhqua6+hrF1n48faiygqJLTxrvYqSvqV0IZ3b2uvo5zfCW26/1B7IcU8J7Ru/772Skr5k9AO/afaSynkJWF43jzWXksZfxNaf1N7MUWcJLT9w1Pt5RRwmtAmjxUuSmgHhxUuTmgOK9y/Cf1VuFcJ3VW41wm9VbgzCa2bPFW4cwntMDqqcGcTuqpwMwkdVbi5hLY/OpnCzSZ0U+HmE4bnjYsKdyFh+DJ6qHAXE1r/tfb6truc0Hr9CreQ0KbP6o/UpYTWDeIVbjGh/BRuOWH4MkpXuJSE1n+pvcwNkhJKT+HSElp3kK1wiQnD80a1wqUm1J3CpSdUncKtSCg6hVuTMFQ4wSncqoSSG6nrEipO4VYmFJzCrU4oN4Vbn1CtwmUkFKtwOQm1NlKzEoaWqlPh8hKG541MhctNaMNOpMJlJ5SpcPkJVTZSNyQUmcJtSahR4bYlVJjCbUwosJG6NaH1D7UjLOAzXPoEvX8PvT9L3f89dN9pVA74ZSeU2eHP/n0oc0qD3/jnA+6dz2ncz9rcz0vdz7zHb7WXvNLavSeJohZh/zCiMkCMsI9/YpQpahHO07yQ2lCLJCacpIpaJPFs4lGqqEXSzpeKFbUIZ4Qli1qEs/ru37fovysWtUjj7z0JTdTmtfz+oft3SAfhohZp9l1uuYnavDbvVBDZ+kzU4t0mDopapL07hlQnavMau+vLS1GLRHfu/XBS1CIt3ZuocEYtRzP3lypufSZq5B5hza3PRE3c5+2vqEX836vv/38j+P//FgAAAAAAAAAAAAAAAAAAAAAAALJ+AoAWHaLlWtXqAAAAAElFTkSuQmCC",logoPaddingStyle:"circle",logoPadding:1,eyeRadius:[{outer:[10,0,0,0],inner:[1,0,0,0]},{outer:[0,10,0,0],inner:[0,1,0,0]},{outer:[0,0,0,10],inner:[0,0,0,1]}],removeQrCodeBehindLogo:!0,ref:e.qrRef}))}function de(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return pe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pe(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function ge(e){var t=a.useRef();return a.useEffect(function(){var n=setTimeout(function(){var n;null===(n=t.current)||void 0===n||n.download(e.options.type,e.options.name),"function"==typeof e.onDone&&e.onDone()},200);return function(){clearTimeout(n)}},[]),a.createElement("div",{className:"d-none"},a.createElement(ue,{size:e.options.size,value:e.value,qrRef:t}))}var fe=n(2102),ve=n(68050),he=n(69111),ye=n(79967);var be="assign.fullScreen",Ee=r.T.encloseNamespace(be);function ke(e){return a.createElement("div",{className:"container p-4"},a.createElement(ve.Z,null,a.createElement(he.Z,null,a.createElement("h3",{className:"text-center"},a.createElement(u.x,{namespace:be,phrase:"watchVideo"})))),a.createElement(ve.Z,{className:"mb-4"},a.createElement(he.Z,{xs:12,sm:8,md:6,lg:3,className:"mx-auto"},a.createElement(J.k,{object:e.entity,thumbnailSize:"md",locationContext:e.locationContext,showVideoMetadata:!0,hideBottomBar:!0}))),e.children)}ke.QrDetails=function(e){var t=(0,ye.k)(),n=t.sm||t.xs?"md":"lg";return a.createElement(ve.Z,null,a.createElement(he.Z,{xs:12,md:10,lg:8,xl:6,className:"bg-light p-4 rounded mx-auto d-flex flex-column align-items-center"},a.createElement("div",{className:"mb-3 text-center"},a.createElement("span",{className:"fs-3 fw-bold"},a.createElement(u.x,{namespace:be,phrase:"scanQr"}))),a.createElement(ue,{size:n,value:e.value})))},ke.JoinCode=function(e){return a.createElement(ve.Z,null,a.createElement(he.Z,{xs:12,md:8,lg:5,className:"bg-light p-4 d-block rounded mx-auto"},a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{namespace:be,phrase:"goToLink"})),a.createElement(v.t.Textbox,{value:e.link}),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{namespace:be,phrase:"enterJoinCode"})),a.createElement(v.t.Textbox,{value:e.joinCode,size:"lg"}))))},ke.LinkDetails=function(e){return a.createElement("div",{className:"d-flex align-items-center"},a.createElement("div",{className:(0,h.A)("bg-light p-4 d-block rounded mx-auto w-auto","P4XQf")},a.createElement(v.t,{bottomSpacing:"none"},a.createElement(v.t.Textbox,{label:Ee("goToLink"),value:e.link}))))};function we(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Ce="assign.assignQrCode",xe=r.T.encloseNamespace(Ce);function Se(e){return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1"})),a.createElement(v.t.Textbox,{value:e.link,showCopyButton:!0,onCopy:e.onShareAction}),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"endStep"})))}function Ae(e){return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1"})),a.createElement(v.t.Textbox,{value:e.link,showCopyButton:!0,onCopy:e.onShareAction}),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"step2SignIn"})),a.createElement(v.t.Step,{number:3},a.createElement(u.x,{phrase:"endStep"})))}var Ne=n(86073);function Te(e){var t=function(e){var t="";try{var n=new URL(e);t=n.host+n.pathname}catch(n){t=e}return t}(e.playUrl);return a.createElement(v.t,null,a.createElement(v.t.Step,{number:1},a.createElement(u.x,{phrase:"step1",options:{href:e.playUrl,url:t}})),a.createElement(v.t.Step,{number:2},a.createElement(u.x,{phrase:"step2"})),a.createElement(v.t.Textbox,{value:e.joinCode,align:"center",showCopyButton:!0,onCopy:e.onShareAction}),a.createElement(v.t.Step,{number:3},a.createElement(u.x,{phrase:"step3"})),a.createElement(v.t.Step,{number:4},a.createElement(u.x,{phrase:"step4"})))}function je(e){return je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},je(e)}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Ie(e,t,n){return(t=function(e){var t=function(e){if("object"!=je(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=je(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==je(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pe=r.T.encloseNamespace("assign.assignDetails"),Le={overview:{component:function(e){return a.createElement(u.D.Provider,{value:H},a.createElement("div",{className:(0,h.A)("mx-auto","QB4Pm")},a.createElement("div",{className:"d-flex flex-column align-items-center text-center mb-4 gap-3"},a.createElement(X,{entity:e.entity}),a.createElement("h3",{className:"m-0 d-flex flex-column flex-md-row align-items-center gap-2"},a.createElement(b.x,{svgName:E.vn.Check,className:(0,h.A)("d-inline-block svg-container md bg-green rounded-circle text-white")}),a.createElement(u.x,{phrase:"title"})),a.createElement("p",{className:"m-0"},a.createElement(u.x,{phrase:"description"}))),a.createElement(W.i,{text:_("dividerText"),className:"mb-4",noUpperCase:!0}),a.createElement("div",{className:"d-flex justify-content-center gap-3 flex-wrap"},a.createElement(G,{screen:"share-link",onClick:e.onClickTab},a.createElement(b.x,{svgName:E.vn.Link}),a.createElement(u.x,{phrase:"shareLink"})),a.createElement(G,{screen:"qr-code",onClick:e.onClickTab},a.createElement(b.x,{svgName:E.vn.QrCode}),a.createElement(u.x,{phrase:"qrCode"})),a.createElement(G,{screen:"embed",onClick:e.onClickTab},a.createElement(b.x,{svgName:E.vn.Code}),a.createElement(u.x,{phrase:"embed"})),a.createElement(G,{screen:"integrations",onClick:e.onClickTab},a.createElement("span",{className:(0,h.A)("d-inline-flex align-items-center","tTimT")},a.createElement(y.C,{size:"sm",noTooltip:!0})),a.createElement(u.x,{phrase:"integrations"})))))}},"share-link":{component:function(e){var t=ne(),n=j.x.getLink({liteUrl:e.liteUrl,shareLink:e.shareLink,joinCode:e.joinCode});return a.createElement(u.D.Provider,{value:"assign.assignShareLink"},a.createElement("div",null,a.createElement(A,{active:"share-link",onClick:e.onClickTab,hideTabs:e.hideTabs}),a.createElement("div",{className:"bg-light rounded-3 mx-auto py-3 px-sm-5 px-3 d-block ".concat("HrK3n")},e.joinCode?a.createElement(Se,{link:n,onShareAction:e.onShareAction}):a.createElement(Ae,{link:n,onShareAction:e.onShareAction}),a.createElement(ee.Button,{onClick:function(){"function"==typeof e.log&&e.log({type:"request-full-screen",entity:e.entity,flow:e.flow,tab:"share-link"}),t.requestFullScreen(),e.onShareAction()},hideIcon:!0}))),a.createElement(ee,{isFullScreen:t.isFullScreen,controlsRef:t.ref},a.createElement(ke,{entity:e.entity,locationContext:l.LZ.AssignFlowView},a.createElement(ke.LinkDetails,{link:n}))))}},"qr-code":{component:function(e){var t,n,i,r,o,c,s,m=(t=a.useRef(),i=(n=de(a.useState(!1),2))[0],r=n[1],c=(o=de(a.useState(!1),2))[0],s=o[1],{ref:t,isPrinting:i,isDownloading:c,download:function(e){var n=e.name,i=e.size,r=void 0===i?"lg":i,o=e.type,l=void 0===o?"png":o;if(t.current){var c=document.getElementById("print-region");c||le.Q.Ry.throw(new oe.H("Could not find print region in layout"));var m=(0,ae.s)(c);s(!0),m.render(a.createElement(ge,{options:{name:n,size:r,type:l},value:t.current.props.value,onDone:function(){m.unmount(),s(!1)}}))}},print:function(e){var n=e.id,i=e.name,o=e.size,l=void 0===o?"lg":o,c=e.onDone;if(t.current){var s=document.getElementById("print-region");s||le.Q.Ry.throw(new oe.H("Could not find print region in layout"));var m=(0,ae.s)(s);m.render(a.createElement("div",{className:"d-none vw-100 vh-100"},a.createElement("div",{id:n,className:"w-100 h-100 d-flex align-items-center justify-content-center"},a.createElement(ue,{size:l,value:t.current.props.value})))),r(!0),window.setTimeout(function(){re()({printable:n,type:"html",documentTitle:i||"ClickView - QRCode",targetStyles:["*"],imageStyle:"*",style:"@page { size: A4; margin: 1.5cm 0; }",onLoadingEnd:function(){"function"==typeof c&&c(),r(!1),m.unmount()},onError:function(){r(!1),m.unmount()}})},200)}}}),d=ne(),p=xe("fileName",{name:e.entity.name}),g=e.joinCode?{1:"step1",2:"stepWatchVideo"}:{1:"step1",2:"step2SignIn",3:"stepWatchVideo"},f=e.joinCode?"".concat(e.shareLink,"?joinCode=").concat(e.joinCode):e.shareLink;return a.createElement(u.D.Provider,{value:Ce},a.createElement("div",null,a.createElement(A,{active:"qr-code",onClick:e.onClickTab,hideTabs:e.hideTabs}),a.createElement("div",{className:"d-block mx-auto ".concat("OCQzr")},a.createElement("div",{className:"container-fluid py-3 bg-light rounded-3 p-3"},a.createElement("div",{className:"row gy-4"},a.createElement("div",{className:"col-lg-7 col-12 d-flex flex-column justify-content-center"},a.createElement(v.t,null,Object.entries(g).map(function(e){var t,n,i=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return we(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?we(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=i[0],o=i[1];return a.createElement(v.t.Step,{number:r,key:r},a.createElement(u.x,{phrase:o}))})),a.createElement("div",{className:"d-flex flex-column flex-md-row gap-2 mb-2"},a.createElement(fe.m,{variant:"outline-dark",className:"w-100",showSpinner:m.isPrinting,spinnerText:xe("printing"),onClick:function(){e.log&&e.log({type:"print-qr-code",entity:e.entity,flow:e.flow});var t=p;m.print({id:t,name:t}),e.onShareAction()}},a.createElement(u.x,{phrase:"printButton"})),a.createElement(fe.m,{showSpinner:m.isDownloading,variant:"outline-dark",className:"w-100",onClick:function(){e.log&&e.log({type:"download-qr-code",entity:e.entity,flow:e.flow}),m.download({name:p}),e.onShareAction()},spinnerText:xe("downloading")},a.createElement(u.x,{phrase:"downloadButton"}))),a.createElement(ee.Button,{onClick:function(){e.log&&e.log({type:"request-full-screen",entity:e.entity,flow:e.flow,tab:"qr-code"}),d.requestFullScreen(),e.onShareAction()},hideIcon:!0})),a.createElement("div",{className:"col-lg-5 col-12"},a.createElement(ue,{size:"md",value:f,qrRef:m.ref})))))),a.createElement(ee,{isFullScreen:d.isFullScreen,controlsRef:d.ref},a.createElement(ke,{entity:e.entity,locationContext:l.LZ.AssignFlowView},a.createElement(ke.QrDetails,{value:f}))))}},embed:{component:function(e){return a.createElement(u.D.Provider,{value:"assign.assignEmbed"},a.createElement("div",{className:"w-100"},a.createElement(A,{active:"embed",onClick:e.onClickTab,hideTabs:e.hideTabs}),a.createElement("div",{className:"container-fluid bg-light py-3 bg-light rounded-3 p-3"},a.createElement("div",{className:"row gy-4"},a.createElement("div",{className:"col-lg-5 col-12 d-flex flex-column justify-content-center"},e.joinCode?a.createElement(N,null):a.createElement(T,null)),a.createElement("div",{className:"col-lg-7 col-12 d-flex flex-column-reverse gap-3"},a.createElement(f.l,{analyticsOptions:{},embedUrl:e.embedUrl,entity:e.entity,entityId:e.entityId,entityType:e.entityType,liteUrl:e.liteUrl,shareId:e.shareId,hideLabel:!0,hasInputBg:!0,onCopy:function(t){e.log&&e.log({type:"copy-embed-html",embedDetails:t,id:e.entityId,shareId:e.shareId,shareType:e.shareType}),e.onShareAction()},styling:"normal-v2"}))))))}},integrations:{component:function(e){return a.createElement(u.D.Provider,{value:q},a.createElement("div",null,a.createElement(A,{active:"integrations",onClick:e.onClickTab,hideTabs:e.hideTabs}),a.createElement("div",{className:"container-fluid py-3 bg-light rounded-3 p-3"},a.createElement("div",{className:"row gy-4"},a.createElement("div",{className:"col-12 col-lg-5 d-flex flex-column justify-content-center"},a.createElement(Z,{showRequestAccess:e.showRequestAccess,joinCode:e.joinCode})),a.createElement("div",{className:"col-12 col-lg-7"},a.createElement(D,{instanceRegion:e.instanceRegion,contactSupportLink:e.contactSupportLink,shareLink:j.x.getLink({liteUrl:e.liteUrl,shareLink:e.shareLink,joinCode:e.joinCode}),onShareAction:e.onShareAction}))))))}},"join-code":{component:function(e){var t=ne(),n=Ne._.safeUrlConcat(e.liteUrl,"/play");return e.joinCode?a.createElement(u.D.Provider,{value:"assign.assignJoinCode"},a.createElement("div",null,a.createElement(A,{active:"join-code",onClick:e.onClickTab,hideTabs:e.hideTabs}),a.createElement("div",{className:"bg-light rounded-3 mx-auto py-3 px-sm-5 px-3 d-block ".concat("MdqeM")},a.createElement(Te,{playUrl:n,joinCode:e.joinCode,onShareAction:e.onShareAction}),a.createElement(ee.Button,{onClick:function(){"function"==typeof e.log&&e.log({type:"request-full-screen",entity:e.entity,flow:e.flow,tab:"share-link"}),t.requestFullScreen(),e.onShareAction()},hideIcon:!0}))),a.createElement(ee,{isFullScreen:t.isFullScreen,controlsRef:t.ref},a.createElement(ke,{entity:e.entity,locationContext:l.LZ.AssignFlowView},a.createElement(ke.JoinCode,{joinCode:e.joinCode,link:n})))):a.createElement(a.Fragment,null)}}},Ve=Ie(Ie({},g.y.Open,"open-classroom"),g.y.Classroom,"existing-classroom");function Fe(e){var t,n,i,r,o,l=(r=a.useState(null!==(t=e.initialScreen)&&void 0!==t?t:"share-link"),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(r,o)||function(e,t){if(e){if("string"==typeof e)return Oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=l[0],s=l[1],m=e.hideTitle||"overview"===c,u=[];(null===(n=e.sharePincode)||void 0===n?void 0:n.code)||u.push("join-code");var d={entity:e.entity,onClickTab:s,entityId:e.entityId,entityType:e.entityType,liteUrl:e.liteUrl,instanceRegion:e.instanceRegion,joinCode:null===(i=e.sharePincode)||void 0===i?void 0:i.code,shareId:e.share.shareId,embedUrl:e.share.link.shortenedEmbedUrl,shareLink:e.share.link.shortenedUrl,contactSupportLink:e.contactSupportLink,flow:Ve[e.share.type],log:e.log,hideTabs:u,showRequestAccess:e.showRequestAccess,onShareAction:e.onShareAction,shareType:e.share.type},p=Le[c].component,g=e.title||Pe("title");return a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center py-3 gap-4"},!m&&a.createElement("h3",{className:"mb-0"},a.createElement("span",null,g)),a.createElement(p,Object.assign({},d)))}var Re=n(83351),Be=n(95890),De=n(85287),qe=n(7786),ze="assign.assignDetailsView",Ue=r.T.encloseNamespace(ze);function Me(e){var t,n,r,g=o.a.useGetFetch(),f=(0,d.R)().experience,v=(0,Be._)({entityType:e.entityType,objectId:e.objectId}),h=v.config,y=v.loaded,b=v.entity,E=v.currentUser,k=(0,qe.y)({data:{entity:{id:e.objectId,type:e.entityType}},analyticsOptions:{entity:l.py.Assign,location:l.LZ.Popup}}).log,w=o.a.useBasicFetch(s.o.getShare(e.shareId)),C=(null===(t=w.data)||void 0===t?void 0:t.privacy)===c.e.PinCode,x=o.a.useBasicFetch(C&&s.o.getPincodeByShareId(e.shareId)),S=e.initialDetailsScreen||"overview",A=De.z.getContactSupportUrl(null===(n=h.data)||void 0===n?void 0:n.marketingSiteUrl,null===(r=E.data)||void 0===r?void 0:r.instanceRegion),N=!y||e.loading||!w.data||C&&!x.data,T=e.goToSelectClassroom&&a.createElement("button",{className:"btn btn-link text-info",onClick:e.goToSelectClassroom},a.createElement(u.x,{namespace:ze,phrase:"assignAnother"}));return a.createElement(m.G,{size:"lg",showLoadingSpinner:N,closePopup:e.closePopup,bodyClassName:"d-flex flex-column gap-3",animation:e.animate,hideTitle:!0},a.createElement(Fe,{title:e.detailsTitle,entityId:e.objectId,entityType:e.entityType,share:w.data,sharePincode:x.data,entity:b.data,liteUrl:h.data.liteUrl,instanceRegion:E.data.instanceRegion,initialScreen:e.initialDetailsScreen||S,contactSupportLink:A,log:k,showRequestAccess:"minimal"===f,onShareAction:function(){g(s.o.updateDateShared(e.shareId))}}),a.createElement(Re.P,{backButtonText:Ue("backButtonText"),nextButtonText:Ue("nextButtonText"),onClickBack:function(){k({type:"close-assign-popup",share:w.data},{workflowPhase:l.eu.Complete}),e.closePopup()},onClickNext:function(){var t=(0,p.pY)(w.data);t&&(k({type:"view-assignment",share:w.data}),i.C$.trigger(t),e.closePopup())},hideCreateClassroomButton:!0,leftComponent:T}))}},84891:(e,t,n)=>{n.d(t,{t:()=>v});var a=n(32735),i=n(59087),r=n.n(i),o=n(31453),l=n(83914),c=n(83345),s=n(35223);const m={orderedListWithBackground:"ezbBL",number:"hs0Fv",code:"h0c9p",large:"_leUV",success:"f_XNL"};function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function p(e){var t;return a.createElement("div",{className:(0,o.A)(m.success,"col-12 position-absolute w-100 h-100 start-0 top-0","d-inline-flex align-items-center text-white justify-content-center text-truncate bg-success fs-3",e.show?"opacity-1":"opacity-0")},null!==(t=e.text)&&void 0!==t?t:a.createElement(c.x,{namespace:"shared.instructions",phrase:"copied"}))}var g={none:"mb-0",md:"mb-3",sm:"mb-2",lg:"mb-4"},f={none:"",sm:"gap-2",md:"gap-3",lg:"gap-4"};function v(e){return a.createElement("ol",{className:(0,o.A)("d-flex flex-column",g[e.bottomSpacing||"md"],f[e.spacing||"md"],m.orderedListWithBackground,e.className)},e.children)}v.Step=function(e){return a.createElement("li",{className:"d-flex align-items-center"},a.createElement("div",{className:"align-self-start"},a.createElement("span",{className:"".concat(m.number)},e.number)),a.createElement("div",{className:"w-100"},e.children))},v.Code=function(e){var t=u(a.useState(!1),2),n=t[0],i=t[1];return a.createElement(r(),{onCopy:function(){i(!0),setTimeout(function(){return i(!1)},2e3)},text:e.code},a.createElement("div",{className:(0,o.A)("position-relative bg-white border rounded-3 text-center overflow-hidden fw-semibold cursor-pointer ".concat(m.code),"lg"===e.size&&"py-3 ".concat(m.large),"md"===e.size&&"py-2",e.className)},e.code,a.createElement(l.x,{svgName:s.vn.Copy,size:l.S.Large,className:"ms-2 svg-container d-inline-block lg align-middle"}),a.createElement(p,{show:n})))},v.Textbox=function(e){var t=e.size,n=void 0===t?"sm":t,i=u(a.useState(!1),2),c=i[0],m=i[1];function d(){e.showCopyButton&&(m(!0),"function"==typeof e.onCopy&&e.onCopy(),setTimeout(function(){return m(!1)},2e3))}var g=e.showCopyButton?"text-left cursor-pointer":"text-center",f="left"===e.align?"col-1":"";return"center"===e.align&&(g=""),a.createElement(r(),{onCopy:d,text:e.value},a.createElement("div",null,e.label&&a.createElement("h3",{className:"mb-3 text-center"},e.label),a.createElement("div",{className:(0,o.A)("bg-white border rounded-3 overflow-hidden px-4 py-3 text-truncate mb-0","position-relative align-items-center gx-2 gy-0","sm"===n?"h5":"h1","left"===e.align?"row":"d-flex justify-content-center gap-3",e.showCopyButton?"text-left cursor-pointer":"text-center",e.className)},a.createElement("div",{className:(0,o.A)(g,"text-truncate")},e.value),e.showCopyButton&&a.createElement("div",{className:(0,o.A)(f)},a.createElement(l.x,{svgName:s.vn.Copy,size:l.S.Standard,className:"svg-container d-inline-block std",onClick:d})),e.showCopyButton&&a.createElement(p,{show:c}))))}},99998:(e,t,n)=>{n.d(t,{R:()=>o});var a=n(16714),i=n(22902),r=n(37802);function o(){var e=(0,r.r)(null),t=e.hasShareFlowV2,n=e.hasClassrooms,o=e.isLoadingSettings,l=(0,i.T)(),c=l.hasPermissions,s=l.isLoaded,m=l.getGatedPermission;return{experience:n?"soft-gate"===m(a.C.ViewClassrooms)?"minimal":c(a.C.ViewClassrooms)?"full":t?"minimal":void 0:"none",loading:o||!s}}}}]);
|
|
2
|
+
//# sourceMappingURL=979-4b893e5603-lite.chunk.js.map
|