@clickview/lite 0.82.1 → 0.82.2-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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/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/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-98135f09e8-lite.chunk.js +2 -0
- package/dist/scripts/7401-98135f09e8-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-9fdb522d7e-lite.chunk.js +2 -0
- package/dist/scripts/8077-9fdb522d7e-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-9a3e49399a.min.js +3 -0
- package/dist/scripts/{bundle-1187cb1e9f.min.js.map → bundle-9a3e49399a.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/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/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-dfd239131d-lite.chunk.js +0 -2
- package/dist/scripts/8077-dfd239131d-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-1187cb1e9f.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/{3392-f7f8cb65e5-lite.chunk.js.LICENSE.txt → 4006-9dfe9cec1b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7568-55e9b01367-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-1187cb1e9f.min.js.LICENSE.txt → bundle-9a3e49399a.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/7843-cbebf1a786-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/projects/lite/src/apps/classrooms/components/open-classrooms-table/OpenClassroomsTable.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/classroom-label/ClassroomLabel.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/pinned-classrooms-tiles/empty-state/EmptyPinnedClassroomsTiles.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/pinned-classrooms-tiles/pinned-classrooms-tiles.scss","file:///app/packages/projects/lite/src/apps/classrooms/components/pinned-classrooms-tiles/partial-loading/PartialPinnedClassroomsTiles.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/pinned-classrooms-tiles/PinnedClassroomsTiles.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/classrooms-overview/ClassroomsOverviewView.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/minimal-classrooms-experience/MinimalClassroomsExperienceView.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/classrooms/ClassroomsView.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/my-shares-demo-insights.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight.tsx","file:///app/packages/projects/lite/src/apps/my-shares/constants/DemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/MySharesDemoInsights.ts"],"sourcesContent":["export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","import React from 'react';\n\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { YearGroup } from 'libs/shared/interfaces';\n\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\ninterface OpenClassroomsTableProps {\n shareData: ReturnType<typeof useSharesTable>;\n hasShareFlowV2: boolean;\n hasPermissions: HasPermissionsFunc;\n breakpoints: Breakpoints;\n isPlugin: boolean;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n hasDemoInsight?: boolean;\n\n emptyState?: () => JSX.Element;\n loadingState?: () => JSX.Element;\n\n className?: string;\n loading?: boolean;\n}\n\nexport function OpenClassroomsTable(props: OpenClassroomsTableProps) {\n const hasInsightsPermission = props.hasShareFlowV2 && props.hasPermissions(PermissionName.ViewInsights);\n const sharesParams = getSharesParams([]);\n\n const LoadingComponent = props.loadingState ?? PartialMySharesTable;\n const EmptyStateComponent = props.emptyState ?? MySharesTableEmptyState;\n \n if (props.loading || props.shareData.showPartialLoading)\n return <LoadingComponent />;\n\n if (!props.shareData.sentShares.length)\n return <EmptyStateComponent />;\n\n return (\n <div className={props.className}>\n <MySharesTable\n sentShares={props.shareData.sentShares}\n sharedObjects={props.shareData.sharedObjects.items}\n shareRecipients={props.shareData.shareRecipients.items}\n interactivesPendingReview={props.shareData.interactivesPendingReview.itemsArr}\n getObjectActions={row => getShareObjectActions({\n share: row.share,\n sharedObject: row.sharedObject,\n audienceParams: sharesParams.audienceAppLinkParams,\n hasInsights: hasInsightsPermission,\n isPlugin: props.isPlugin,\n breakpoints: props.breakpoints\n })}\n groupByDateShared\n breakpoints={props.breakpoints}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n hasDemoInsights={props.hasDemoInsight}\n />\n {(props.shareData.hasMore || props.shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={props.shareData.isFetching}\n fetchNext={props.shareData.fetchNext}\n nextCursor={props.shareData.nextCursor}\n />\n }\n </div>\n );\n}","import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'classrooms.classroomLabel';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type ClassroomLabelType = 'my-school-classrooms' | 'favourite-classroom' | 'open-classroom';\n\ninterface ClassroomLabelProps {\n type: ClassroomLabelType;\n className?: string;\n text?: string;\n}\n\nconst TypePhraseMap: {[key in ClassroomLabelType]: string} = {\n 'my-school-classrooms': 'mySchoolClassrooms',\n 'favourite-classroom': 'favouriteClassroom',\n 'open-classroom': 'openClassroom'\n};\n\nconst TypeVariantMap: {[key in ClassroomLabelType]: ButtonProps['variant']} = {\n 'my-school-classrooms': 'purple',\n 'favourite-classroom': 'purple',\n 'open-classroom': 'blue'\n};\n\nexport function ClassroomLabel(props: ClassroomLabelProps): JSX.Element {\n return (\n <div className={classNames('d-flex align-items-center gap-2', props.className)}>\n <div>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Standard}\n variant={TypeVariantMap[props.type]}\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <h2 className='h4 m-0'>\n {props.text ?? getPhrase(TypePhraseMap[props.type])}\n </h2>\n </div>\n );\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'classrooms.pinnedClassroomsTiles';\n\nexport function EmptyPinnedClassroomsTiles(): JSX.Element {\n return (\n <div className='py'>\n <Text namespace={namespace} phrase='emptyPinnedClassrooms' />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pinnedClassroomTile\":\"jgtOl\",\"pinnedClassroomTileImage\":\"TRhIX\"};","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport styles from '../pinned-classrooms-tiles.scss';\n\ninterface PartialPinnedClassroomsTilesProps {\n size: number;\n}\n\nfunction PartialPinnedClassroomsTile(): JSX.Element {\n return (\n <div\n className={classNames('d-flex flex-column rounded overflow-hidden border border-gray-200', styles.pinnedClassroomTile)}\n >\n <figure\n className={classNames('m-0', styles.pinnedClassroomTileImage)}\n />\n\n <div className='d-flex flex-column gap-2 p-2'>\n <span className='partial-loading-background p-2 w-50'></span>\n <span className='partial-loading-background p-2'>\n </span>\n </div>\n </div>\n );\n}\n\nexport function PartialPinnedClassroomsTiles(props: PartialPinnedClassroomsTilesProps): JSX.Element {\n return (\n <div className='d-flex flex-row flex-wrap gap-3'>\n {Array.from({ length: props.size }).map((_, index) => <PartialPinnedClassroomsTile key={index} />)}\n </div>\n );\n}","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { Classroom, EnrolmentRole } from 'libs/shared/interfaces';\nimport { getDeterministicBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { EmptyPinnedClassroomsTiles } from './empty-state/EmptyPinnedClassroomsTiles';\nimport { PartialPinnedClassroomsTiles } from './partial-loading/PartialPinnedClassroomsTiles';\n\nimport styles from './pinned-classrooms-tiles.scss';\n\nconst namespace = 'classrooms.pinnedClassroomsTiles';\n\ninterface PinnedClassroomsTileProps {\n classroom: Classroom;\n}\n\nfunction PinnedClassroomsTile(props: PinnedClassroomsTileProps): JSX.Element {\n const studentsCount = props.classroom.enrolments.data.filter(e => e.role === EnrolmentRole.Student).length;\n\n const bgColorClassName = getDeterministicBgColorClass(props.classroom.name, BG_COLOUR_CLASS_NAMES);\n\n return (\n <AppLink\n className={classNames('d-flex flex-column rounded overflow-hidden border border-gray-400', styles.pinnedClassroomTile)}\n appLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_HOME,\n args: [props.classroom.id]\n }}\n >\n <figure\n className={classNames('m-0', styles.pinnedClassroomTileImage, bgColorClassName)}\n />\n\n <div className='d-flex flex-column gap-1 p-2'>\n <span className='fw-medium'>{props.classroom.name}</span>\n <span className='text-muted'>\n {studentsCount\n ? <Text namespace={namespace} phrase='studentsCount' options={{ smartCount: studentsCount }} />\n : <Text namespace={namespace} phrase='noStudents' />\n }\n </span>\n </div>\n </AppLink>\n );\n}\n\ninterface PinnedClassroomsTilesProps {\n classrooms: Classroom[];\n showPartialLoading: boolean;\n emptyStateComponent?: () => JSX.Element;\n loadingStateComponent?: () => JSX.Element;\n}\n\nexport function PinnedClassroomsTiles(props: PinnedClassroomsTilesProps): JSX.Element {\n const EmptyState = props.emptyStateComponent ?? EmptyPinnedClassroomsTiles;\n const LoadingState = props.loadingStateComponent ?? PartialPinnedClassroomsTiles;\n\n if (props.showPartialLoading)\n return <LoadingState size={5} />;\n \n if (!props.classrooms || !props.classrooms.length)\n return <EmptyState />;\n \n return (\n <div className='d-flex flex-row flex-wrap gap-3'>\n {props.classrooms.map(classroom => (\n <PinnedClassroomsTile key={classroom.id} classroom={classroom} />\n ))}\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { RosteringRequests } from 'libs/shared/flight-requests/RosteringRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { ClassroomCollection, Config, CurrentUser, InteractiveMetadata, RosteringResponse, YearGroup } 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 { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { ClassroomLabel, ClassroomLabelType } from 'apps/classrooms/components/classroom-label/ClassroomLabel';\nimport { ClassroomsHeader } from 'apps/classrooms/components/classrooms-header/ClassroomsHeader';\nimport { OpenClassroomsTable } from 'apps/classrooms/components/open-classrooms-table/OpenClassroomsTable';\nimport { PinnedClassroomsTiles } from 'apps/classrooms/components/pinned-classrooms-tiles/PinnedClassroomsTiles';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\n\nconst namespace = 'classrooms.classroomsOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomSectionHeadingProps {\n type: ClassroomLabelType;\n appLink?: Core.AppLink;\n hideSeeAll?: boolean;\n}\n\nfunction ClassroomSectionHeading(props: ClassroomSectionHeadingProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between align-items-center mb-3'>\n <ClassroomLabel type={props.type} />\n {props.appLink && !props.hideSeeAll && (\n <AppLink appLink={props.appLink}>\n <Text namespace={namespace} phrase='seeAll' />\n </AppLink>\n )}\n </div>\n );\n}\n\nexport function ClassroomsOverviewView(): JSX.Element {\n useSetPageMetadata({\n title: getPhrase('pageTitle')\n });\n\n const breakpoints = useBreakpoints();\n const { isPlugin } = usePluginHelper();\n const { hasPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(\n InsightsDemoRequests.interactiveMetadata()\n );\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const rostering = Flight.useBasicFetch<RosteringResponse>(RosteringRequests.getRostering());\n const hasRostering = rostering.data?.status && rostering.data.status !== 'None';\n const shareData = useSharesTable({\n interactiveInsights: true,\n shouldFetch: hasShareFlowV2,\n params: {\n type: [ShareType.Open]\n }\n });\n const favouriteClassrooms = Flight.useBasicFetch<ClassroomCollection>(\n ClassroomRequests.getPinnedClassrooms(\n currentUser.data?.id,\n currentUser.data?.customerId,\n { withStudents: true, limit: 5 }\n )\n );\n\n function getActions(): ActionOptions[] {\n return [{\n label: LanguageService.getPhrase(namespace, 'newClassroom'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.NEW_CLASSROOM\n },\n svgName: cvSvgLibrary.Plus,\n className: 'btn btn-outline-dark',\n disabled: hasRostering,\n tooltip: hasRostering ? getPhrase('disabledByRostering') : '',\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Classroom,\n workflowPhase: WorkflowPhase.Start,\n location: LocationContext.ClassroomsList\n },\n button: !breakpoints.xs\n }];\n }\n \n const loaded = !!config.data && !!demoInteractive.data && !!yearGroups.data && !!favouriteClassrooms.data;\n\n return (\n <div className='px-3'>\n <ClassroomsHeader\n activeTab='overview'\n actions={getActions()}\n hasRostering={hasRostering}\n hasShareFlowV2={hasShareFlowV2}\n />\n\n <section className='mb-4'>\n <ClassroomSectionHeading\n type='favourite-classroom'\n appLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.VIEW_ALL\n }}\n hideSeeAll={!favouriteClassrooms.data?.data?.length}\n />\n\n <PinnedClassroomsTiles\n showPartialLoading={!loaded}\n classrooms={favouriteClassrooms.data?.data}\n />\n </section>\n\n <section className='mb-4'>\n <ClassroomSectionHeading\n type='open-classroom'\n appLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n }}\n hideSeeAll={!shareData.sentShares?.length}\n />\n\n <OpenClassroomsTable\n loading={!loaded}\n shareData={shareData}\n hasShareFlowV2={hasShareFlowV2}\n hasPermissions={hasPermissions}\n breakpoints={breakpoints}\n isPlugin={isPlugin}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n className='mt-3'\n emptyState={() => (\n <MySharesDemoInsight\n heading={getPhrase('demoHeading')}\n demoInteractive={demoInteractive.data}\n breakpoints={breakpoints}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n className='mt-3'\n shareType={ShareType.Open}\n />\n )}\n />\n\n </section>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ExternalLink } from 'libs/shared/components/external-link/ExternalLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { ClassroomLabel } from 'apps/classrooms/components/classroom-label/ClassroomLabel';\nimport { ClassroomsHeader } from 'apps/classrooms/components/classrooms-header/ClassroomsHeader';\nimport { OpenClassroomsTable } from 'apps/classrooms/components/open-classrooms-table/OpenClassroomsTable';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\n\nconst namespace = 'classrooms.minimalClassroomsExperience';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\nconst productIntegrationsPath = '/product/integrations';\n\nexport function MinimalClassroomsExperienceView(): JSX.Element {\n useSetPageMetadata({\n title: getPhrase('pageTitle')\n });\n\n const breakpoints = useBreakpoints();\n const { isPlugin } = usePluginHelper();\n const { hasPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(\n InsightsDemoRequests.interactiveMetadata()\n );\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const shareData = useSharesTable({\n interactiveInsights: true,\n shouldFetch: hasShareFlowV2,\n params: {\n type: [ShareType.Open]\n }\n });\n \n const loaded = !!config.data && !!demoInteractive.data && !!yearGroups.data;\n\n return (\n <div className='px-3'>\n <ClassroomsHeader\n activeTab='classrooms'\n hasRostering={false}\n hasShareFlowV2={hasShareFlowV2}\n hideTabs\n />\n\n <section className='mb-4'>\n <ClassroomLabel type='my-school-classrooms' />\n\n <div className='d-flex flex-column flex-sm-row justify-content-between gap-2 bg-light-blue rounded p-3 align-items-center mt-3'>\n <div>\n <Text namespace={namespace} phrase='myClassroomsNotice' /> \n <ExternalLink\n href={UrlHelper.safeUrlConcat(config.data?.marketingSiteUrl, productIntegrationsPath)} className='text-underline'\n newTab\n >\n <Text namespace={namespace} phrase='learnMore' />\n </ExternalLink>\n </div>\n <div>\n <AppLink\n className='btn btn-outline-dark hover-bg-white'\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.UPGRADE\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.Classroom,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.Upgrade,\n workflowPhase: WorkflowPhase.Start\n }}\n >\n <Text namespace={namespace} phrase='requestFullAccess' />\n </AppLink>\n </div>\n </div>\n </section>\n\n <section className='mb-4'>\n <ClassroomLabel type='open-classroom' />\n\n {loaded &&\n <>\n <MySharesDemoInsight\n heading={getPhrase('demoHeading')}\n demoInteractive={demoInteractive.data}\n breakpoints={breakpoints}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n className='mt-3'\n shareType={ShareType.Open}\n />\n \n <OpenClassroomsTable\n shareData={shareData}\n hasShareFlowV2={hasShareFlowV2}\n hasPermissions={hasPermissions}\n breakpoints={breakpoints}\n isPlugin={isPlugin}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n className='mt-3'\n emptyState={() => <></>}\n hasDemoInsight\n />\n </>\n\n }\n </section>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { useClassroomExperience } from 'shared/hooks/useClassroomExperience';\n\nimport { ClassroomsOverviewView } from '../classrooms-overview/ClassroomsOverviewView';\nimport { FullClassroomsExperienceView } from '../full-classrooms-experience/FullClassroomsExperienceView';\nimport { MinimalClassroomsExperienceView } from '../minimal-classrooms-experience/MinimalClassroomsExperienceView';\n\ninterface ClassroomsViewProps {\n query: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ClassroomsView(props: ClassroomsViewProps): JSX.Element {\n const { experience, loading } = useClassroomExperience();\n const { hasShareFlowV2 } = useSettings(null);\n\n if (loading)\n return <></>;\n \n if (experience === 'none') {\n Core.ErrorHelper.throw(new NotFoundError());\n return <></>;\n }\n \n if (experience === 'full' && hasShareFlowV2) {\n return <ClassroomsOverviewView />;\n }\n\n if (experience === 'full' && !hasShareFlowV2) {\n return <FullClassroomsExperienceView query={props.query} />;\n }\n\n return <MinimalClassroomsExperienceView />;\n}","// extracted by mini-css-extract-plugin\nexport default {\"background\":\"HAuP3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\nimport { DEMO_INTERACTIVE_ID } from 'apps/my-shares/constants/DemoInsights';\nimport { DEMO_INSIGHTS_ACTION, DEMO_INSIGHTS_APPLINK, DEMO_INSIGHTS_OPEN_CLASSROOM_APPLINK, DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE_TABLE_DATA, DEMO_INSIGHTS_SHARE_TABLE_DATA } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nimport { MySharesTableData } from '../my-shares-table/MySharesTableUtils';\n\nimport styles from './my-shares-demo-insights.scss';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesDemoInsightProps {\n demoInteractive: InteractiveMetadata;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n breakpoints: Breakpoints;\n className?: string;\n heading?: string;\n shareType?: ShareType;\n}\n\nexport function MySharesDemoInsight(props: MySharesDemoInsightProps) {\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n const appLink = props.shareType === ShareType.Open ? DEMO_INSIGHTS_OPEN_CLASSROOM_APPLINK : DEMO_INSIGHTS_APPLINK;\n\n function getDemoInteractive() {\n return {\n ...props.demoInteractive,\n id: DEMO_INTERACTIVE_ID\n };\n }\n\n function getObjectActions() {\n return [\n {\n ...DEMO_INSIGHTS_ACTION,\n button: !isMobile,\n appLink\n }\n ];\n }\n\n const demoShareTableData = props.shareType === ShareType.Open\n ? DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE_TABLE_DATA\n : DEMO_INSIGHTS_SHARE_TABLE_DATA;\n\n const shareData: MySharesTableData = {\n ...demoShareTableData,\n sharedObject: getDemoInteractive()\n };\n\n return (\n <div className={props.className}>\n <MySharesTableHeading heading={props.heading ?? getPhrase('demoHeading')} isFirst={true} />\n\n <div className={`${styles.background} rounded-3 mb-4`}>\n <MySharesTableRow\n shareData={shareData}\n getObjectActions={getObjectActions}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n breakpoints={props.breakpoints}\n className='bg-light-orange'\n appLink={(() => appLink)}\n />\n </div>\n </div>\n );\n}","export const DEMO_INTERACTIVE_ID = 'GRWx6w';","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst DEMO_INSIGHT_DAYS_AGO = 7;\n\nexport const DEMO_INSIGHTS_SHARE: Share = {\n type: ShareType.Link,\n privacy: SharePrivacy.JustMySchool,\n objectId: '0',\n objectTypeId: MasterType.Interactive,\n viewCount: 28,\n accessCount: 15,\n dateCreated: new Date().toISOString(),\n dateShared: new Date().toISOString(),\n expireDate: null,\n link: {\n shortenedEmbedUrl: '',\n shortenedUrl: ''\n },\n shareId: '0',\n ownerCustomerId: 0,\n ownerId: 0,\n recipients: [],\n options: {\n preventScrubbing: false,\n immediateFeedback: false\n }\n};\n\nexport const DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE: Share = {\n ...DEMO_INSIGHTS_SHARE,\n type: ShareType.Open,\n expireDate: DateHelper.add(new Date(DEMO_INSIGHTS_SHARE.dateCreated), 30, 'days').toISOString(),\n privacy: SharePrivacy.PinCode\n};\n\nexport const DEMO_INSIGHTS_SHARE_TABLE_DATA: MySharesTableData = {\n share: DEMO_INSIGHTS_SHARE,\n sharedObject: null,\n shareRecipients: null,\n dateShared: DateHelper.subtract(new Date(), DEMO_INSIGHT_DAYS_AGO, 'days').toISOString()\n};\n\nexport const DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE_TABLE_DATA: MySharesTableData = {\n ...DEMO_INSIGHTS_SHARE_TABLE_DATA,\n share: DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE\n};\n\nexport const DEMO_INSIGHTS_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO\n};\n\nexport const DEMO_INSIGHTS_OPEN_CLASSROOM_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_OPEN_CLASSROOM_DEMO\n};\n\nexport const DEMO_INSIGHTS_ACTION: ActionOptions = {\n svgName: cvSvgLibrary.Analytics,\n label: getPhrase('demoInsights'),\n appLink: DEMO_INSIGHTS_APPLINK,\n group: 'insights',\n className: 'btn btn-outline-dark'\n};\n"],"names":["SharePrivacy","InsightsDemoRequests","interactive","url","key","normalize","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","OpenClassroomsTable","props","hasInsightsPermission","hasShareFlowV2","hasPermissions","sharesParams","LoadingComponent","loadingState","EmptyStateComponent","emptyState","loading","shareData","showPartialLoading","sentShares","length","className","sharedObjects","items","shareRecipients","interactivesPendingReview","itemsArr","getObjectActions","row","share","sharedObject","audienceParams","audienceAppLinkParams","hasInsights","isPlugin","breakpoints","groupByDateShared","imageCdnUrl","yearGroups","hasDemoInsights","hasDemoInsight","hasMore","isFetching","fetchNext","nextCursor","getPhrase","LanguageService","TypePhraseMap","TypeVariantMap","ClassroomLabel","IconCircle","svgName","svgSize","SvgContainer","S","variant","type","textVariant","svgWrapperClassName","text","EmptyPinnedClassroomsTiles","Text","namespace","phrase","PartialPinnedClassroomsTile","PartialPinnedClassroomsTiles","Array","from","size","map","_","index","PinnedClassroomsTile","studentsCount","classroom","enrolments","data","filter","e","role","bgColorClassName","name","AppLink","appLink","application","action","args","id","options","smartCount","PinnedClassroomsTiles","EmptyState","emptyStateComponent","LoadingState","loadingStateComponent","classrooms","ClassroomSectionHeading","hideSeeAll","ClassroomsOverviewView","useSetPageMetadata","title","useBreakpoints","usePluginHelper","usePermissions","useSettings","currentUser","UserRequests","config","ConfigRequests","demoInteractive","isAuthenticated","CustomerRequests","customerId","rostering","RosteringRequests","hasRostering","status","useSharesTable","interactiveInsights","shouldFetch","params","ShareType","favouriteClassrooms","ClassroomRequests","withStudents","limit","loaded","ClassroomsHeader","activeTab","actions","label","disabled","tooltip","analyticsOptions","actionType","entity","workflowPhase","location","button","xs","MySharesDemoInsight","heading","shareType","productIntegrationsPath","MinimalClassroomsExperienceView","hideTabs","ExternalLink","href","UrlHelper","marketingSiteUrl","newTab","analyticsData","descriptor","ClassroomsView","useClassroomExperience","experience","NotFoundError","FullClassroomsExperienceView","query","isMobile","sm","demoShareTableData","isFirst","MySharesTableRow","DEMO_INTERACTIVE_ID","DEMO_INSIGHTS_SHARE","privacy","objectId","objectTypeId","viewCount","accessCount","dateCreated","Date","toISOString","dateShared","expireDate","link","shortenedEmbedUrl","shortenedUrl","shareId","ownerCustomerId","ownerId","recipients","preventScrubbing","immediateFeedback","DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE","DEMO_INSIGHTS_SHARE_TABLE_DATA","DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE_TABLE_DATA","DEMO_INSIGHTS_APPLINK","DEMO_INSIGHTS_OPEN_CLASSROOM_APPLINK","DEMO_INSIGHTS_ACTION","group"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8077],{76153:(e,t,n)=>{n.d(t,{F:()=>s});var r=n(33003),i=n.n(r);function o(e){return o="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},o(e)}function a(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 r,i,o,a,l=[],c=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return l}}(e,t)||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,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 l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var c={secondary:{label:"Secondary",isTertiary:!1},"primary & secondary":{label:"Primary & Secondary",isTertiary:!1},k12:{label:"Primary & Secondary",isTertiary:!1},primary:{label:"Primary",isTertiary:!1},special:{label:"Special",isTertiary:!1},university:{label:"University",isTertiary:!0},middle:{label:"Middle",isTertiary:!1},"fe college":{label:"FE College",isTertiary:!0},"high school":{label:"Secondary",isTertiary:!1},elementary:{label:"Primary",isTertiary:!1},"middle school":{label:"Middle",isTertiary:!1},tafe:{label:"TAFE",isTertiary:!0},college:{label:"FE College",isTertiary:!0},"sixth form college":{label:"Sixth Form College",isTertiary:!0}},u={england:"ENG",scotland:"SCT",wales:"WLS","northern ireland":"NIR"},s={hashedEmail:function(e){var t=e.trim().toLowerCase();return i().hash(t)},removeEmptyKeys:function(e){if(Array.isArray(e))return e;var t=Object.assign({},e);return Object.entries(t).filter(function(e){var t=a(e,2)[1];return null!=t&&!("string"==typeof t&&!t.length)}).reduce(function(e,t){var n,r,i,l=a(t,2),c=l[0],u=l[1];return Object.assign(Object.assign({},e),(n={},r=c,i=u===Object(u)?s.removeEmptyKeys(u):u,(r=function(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}(r))in n?Object.defineProperty(n,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[r]=i,n))},{})},EVENT_TOPIC:"Free Trial Request",BDM_EVENT_TOPIC:"Requested free trial (Streamable Customer)",SOURCE:"cv_product_trial_requested",BDM_SOURCE:"cv_product_bdm_trial_requested",TRIAL_UPGRADE_SOURCE:"cv_product_trial_upgrade_requested",getSchoolType:function(e){var t;if(e){var n=e.toLowerCase();if(!["unknown","other"].includes(n))return(null===(t=c[n])||void 0===t?void 0:t.label)||e}},isTertiarySchool:function(e){var t;return(null===(t=c[null==e?void 0:e.toLowerCase()])||void 0===t?void 0:t.isTertiary)||!1},parseProvince:function(e){return e.length?u[e.toLowerCase()]||e:""}}},68077:(e,t,n)=>{n.r(t),n.d(t,{AmplitudeAnalyticsClient:()=>E});var r=n(25150),i=n(23794),o=n(74058),a=n(76991),l=n(41268),c=n(65858),u=n(76153),s=n(19808),p=n(97291),v=n(91996);function y(e){return y="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},y(e)}function d(e,t,n){return(t=S(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,S(r.key),r)}}function S(e){var t=function(e){if("object"!=y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==y(t)?t:t+""}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function b(e,t){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},b(e,t)}var E=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t,n){return t=m(t),function(e,t){if(t&&("object"==y(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,n||[],m(e).constructor):t.apply(e,n))}(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(t,e),n=t,S=[{key:"eventWhitelist",get:function(){return d(d(d(d(d(d(d(d(d({},c.Vw.SendEmail,v.S.isInviteEvent),c.Vw.Download,v.S.isResourceDownloadEvent),c.Vw.Share,v.S.isShareEvent),c.Vw.Stream,v.S.isStreamEvent),c.Vw.Click,v.S.isSupportedClickEvent),c.Vw.PageView,v.S.isPageViewEvent),c.Vw.Search,v.S.isSearch),c.Vw.Filter,v.S.isSearch),c.Vw.Submit,v.S.isUpgradeFormEvent)}}],(l=[{key:"name",get:function(){return"AmplitudeAnalyticsClient"}},{key:"initialize",value:function(e){var t=(0,a.k)();r.IH(t);var n=u.F.hashedEmail(e.currentUser.email);r.S1(e.apiKey,n,{serverZone:e.instanceRegion===s.b.UK?"EU":"US",logLevel:i.i.Warn,identityStorage:"localStorage",autocapture:{networkTracking:!1,pageViews:!1}});var l=new o.h2;l.set("userId",e.currentUser.id),r.yV(l)}},{key:"shouldLog",value:function(e){if(!e)return!1;var n=t.eventWhitelist[e.type];return"function"==typeof n&&n(e)}},{key:"logEvent",value:function(e){r.j(e)}},{key:"log",value:function(e){var t,n,r,i=e.data;if(v.S.isPageViewEvent(e))return this.logEvent({event_type:"page_view",event_properties:{is_addressable:i.isAddressable,action_context:null===(t=i.appLink)||void 0===t?void 0:t.action,application_context:null===(n=i.appLink)||void 0===n?void 0:n.application,url:i.url,title:document.title}}),void(v.S.isPostSearchPageViewEvent(e)&&this.logSearchEvent(e));v.S.isStreamEvent(e)?this.logEvent({event_type:"product_stream",event_properties:{id:null==i?void 0:i.id,entity:e.actionContext.entity,name:null==i?void 0:i.name}}):v.S.isExploreTopicsEvent(e)?this.logEvent({event_type:"product_explore_topics",event_properties:{id:null==i?void 0:i.id,name:null==i?void 0:i.name,presentation_id:null==i?void 0:i.presentationId,presentation_name:null==i?void 0:i.presentationName}}):v.S.isSearch(e)?this.logSearchEvent(e):v.S.isSearchClickThrough(e)?this.logEvent({event_type:"product_search_clickthrough",event_properties:{query:null===(r=null==i?void 0:i.search)||void 0===r?void 0:r.query}}):v.S.isBookACallEvent(e)?this.logEvent({event_type:"product_click_book_a_call"}):v.S.isShareEvent(e)?this.logEvent({event_type:"product_share",event_properties:{id:null==i?void 0:i.id,entity:e.actionContext.entity,name:null==i?void 0:i.name}}):v.S.isResourceDownloadEvent(e)?this.logEvent({event_type:"product_download_resource",event_properties:{id:null==i?void 0:i.id,name:null==i?void 0:i.name,video_name:null==i?void 0:i.videoName}}):v.S.isInviteEvent(e)?this.logEvent({event_type:"product_invite",event_properties:{user_count:null==i?void 0:i.emailCount}}):v.S.isPlayerDevicesCtaEvent(e)?this.logEvent({event_type:"product_player_device_cta",event_properties:{descriptor:e.actionContext.descriptor,can_user_manage_integrations:null==i?void 0:i.canUserManageIntegrations,context:null==i?void 0:i.context}}):v.S.isIntegrationsEvent(e)?this.logEvent({event_type:"product_settings_integrations",event_properties:{descriptor:e.actionContext.descriptor,id:null==i?void 0:i.id,status:null==i?void 0:i.status}}):v.S.isUpgradeFormEvent(e)&&this.logEvent({event_type:"product_request_upgrade_form",event_properties:{job_title:null==i?void 0:i.jobTitle,is_kdm:null==i?void 0:i.isKdm}})}},{key:"isType",value:function(e){return e===t.type}},{key:"logSearchEvent",value:function(e){var t=e.data,n={};"query"in t&&(n.query=t.query),this.logEvent({event_type:"product_search",event_properties:Object.assign(Object.assign({},n),{action_type:this.getSearchActionType(e)})})}},{key:"getSearchActionType",value:function(e){if(e.type===c.Vw.Filter)return"filter";var t=e.data;if(e.type===c.Vw.PageView){var n=null==t?void 0:t.appLink;return(null==n?void 0:n.application)===p.O.SEARCH?null:v.S.isSearchResultClickthrough(n)?"clickthrough":"abandon"}return t.consecutiveSearchCount>1?"multi_search":"search"}}])&&f(n.prototype,l),S&&f(n,S),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,l,S}(l.z);E.type="AmplitudeAnalyticsClient"},91996:(e,t,n)=>{n.d(t,{S:()=>u});var r=n(49985),i=n(65858),o=n(75795),a=n(14070),l=n(97291),c=[{application:l.O.VIDEOS,action:a.e.Videos.PLAY_VIDEO},{application:l.O.INTERACTIVES,action:a.e.Interactives.VIEW_INTERACTIVE},{application:l.O.CLIPS,action:a.e.Clips.PLAY_CLIP},{application:l.O.SERIES,action:a.e.Series.SERIES},{application:l.O.PLAYLISTS,action:a.e.Playlists.PLAYLIST},{application:l.O.LIBRARIES,action:a.e.Libraries.FOLDER},{application:l.O.SUBJECT,action:a.e.Subjects.CLASSIFICATION},{application:l.O.MOVIES_AND_TV,action:a.e.MoviesAndTv.COMPANY_DASHBOARD}],u={isSearchResultClickthrough:function(e){return!(!(null==e?void 0:e.application)||!(null==e?void 0:e.action))&&c.some(function(t){return t.application===e.application&&t.action===e.action})},isPageViewEvent:function(e){if(e.type!==i.Vw.PageView)return!1;var t=e.data;return!(null==t?void 0:t.isError)},isPostSearchPageViewEvent:function(e){var t,n=e.data,r=null==n?void 0:n.appLink;if((null==r?void 0:r.application)===l.O.SEARCH)return!1;var i=null===(t=o.O.getPreviousRoute())||void 0===t?void 0:t.appLink;return(null==i?void 0:i.application)===l.O.SEARCH},isExploreTopicsEvent:function(e){return e.type===i.Vw.Click&&e.actionContext.entity===i.py.Classification},isSearch:function(e){return e.type===i.Vw.Search?e.actionContext.location===i.LZ.SearchBar:e.type===i.Vw.Filter&&e.actionContext.productArea===(0,r.c)(l.O.SEARCH)},isSearchClickThrough:function(e){var t;return e.type===i.Vw.Click&&e.actionContext.productArea===(0,r.c)(l.O.SEARCH)&&!Array.isArray(e.data)&&!!(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.search)},isBookACallEvent:function(e){return e.type===i.Vw.Click&&e.actionContext.entity===i.py.Url&&e.actionContext.descriptor===i.HS.BookACall},isStreamEvent:function(e){return e.type===i.Vw.Stream},isShareEvent:function(e){return e.type===i.Vw.Share&&e.actionContext.workflowPhase!==i.eu.Start},isResourceDownloadEvent:function(e){return e.type===i.Vw.Download&&e.actionContext.entity===i.py.Resource},isInviteEvent:function(e){return e.type===i.Vw.SendEmail&&e.actionContext.descriptor===i.Yu.InviteColleague},isPlayerDevicesCtaEvent:function(e){return e.type===i.Vw.Click&&e.actionContext.entity===i.py.DevicesCta},isIntegrationsEvent:function(e){return e.type===i.Vw.Click&&e.actionContext.entity===i.py.Integration},isSupportedClickEvent:function(e){return!!(u.isExploreTopicsEvent(e)||u.isSearchClickThrough(e)||u.isBookACallEvent(e)||u.isPlayerDevicesCtaEvent(e)||u.isIntegrationsEvent(e))},isUpgradeFormEvent:function(e){return e.type===i.Vw.Submit&&e.actionContext.descriptor===i.HS.RequestBdmTrial}}}}]);
|
|
2
|
-
//# sourceMappingURL=8077-dfd239131d-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8077-dfd239131d-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/helpers/BrazeHelper.ts","file:///app/packages/projects/lite/src/shared/analytics-clients/AmplitudeAnalyticsClient.ts","file:///app/packages/projects/lite/src/shared/analytics-clients/AnalyticsEventHelper.ts"],"sourcesContent":["import SparkMD5 from 'spark-md5';\n\nimport type { HashObject } from 'libs/analytics/interfaces';\n\ninterface SchoolTypeInfo {\n label: string;\n isTertiary: boolean;\n}\n\nconst SCHOOL_TYPE_MAP: Record<string, SchoolTypeInfo> = {\n 'secondary': {\n label: 'Secondary',\n isTertiary: false\n },\n 'primary & secondary': {\n label: 'Primary & Secondary',\n isTertiary: false\n },\n 'k12': {\n label: 'Primary & Secondary',\n isTertiary: false\n },\n 'primary': {\n label: 'Primary',\n isTertiary: false\n },\n 'special': {\n label: 'Special',\n isTertiary: false\n },\n 'university': {\n label: 'University',\n isTertiary: true\n },\n 'middle': {\n label: 'Middle',\n isTertiary: false\n },\n 'fe college': {\n label: 'FE College',\n isTertiary: true\n },\n 'high school': {\n label: 'Secondary',\n isTertiary: false\n },\n 'elementary': {\n label: 'Primary',\n isTertiary: false\n },\n 'middle school': {\n label: 'Middle',\n isTertiary: false\n },\n 'tafe': {\n label: 'TAFE',\n isTertiary: true\n },\n 'college': {\n label: 'FE College',\n isTertiary: true\n },\n 'sixth form college': {\n label: 'Sixth Form College',\n isTertiary: true\n }\n};\n\nconst PROVINCE_ISO_MAP: HashObject<string> = {\n 'england': 'ENG',\n 'scotland': 'SCT',\n 'wales': 'WLS',\n 'northern ireland': 'NIR'\n};\n\nexport interface BrazeCheckEmailResponse {\n invalidUserIds: string[];\n message: string;\n users: HashObject[];\n}\n\nexport const BrazeHelper = {\n\n hashedEmail(email: string) {\n const normalizedEmail = email.trim().toLowerCase();\n return SparkMD5.hash(normalizedEmail);\n },\n\n removeEmptyKeys(object: HashObject<any>): HashObject<any> {\n if (Array.isArray(object))\n return object;\n\n const payload = { ...object };\n return Object.entries(payload)\n .filter(([ , v ]) => {\n if (v === undefined || v === null) {\n return false;\n }\n if (typeof v === 'string' && !v.length) {\n return false;\n }\n return true;\n })\n .reduce(\n (acc, [ k, v ]) => ({ ...acc, [k]: v === Object(v) ? BrazeHelper.removeEmptyKeys(v) : v }),\n {}\n );\n },\n\n EVENT_TOPIC: 'Free Trial Request',\n\n BDM_EVENT_TOPIC: 'Requested free trial (Streamable Customer)',\n\n SOURCE: 'cv_product_trial_requested',\n\n BDM_SOURCE: 'cv_product_bdm_trial_requested',\n\n TRIAL_UPGRADE_SOURCE: 'cv_product_trial_upgrade_requested',\n\n getSchoolType(schoolType: string): string {\n if (!schoolType) return;\n\n const prospectType = schoolType.toLowerCase();\n\n if ([ 'unknown', 'other' ].includes(prospectType)) return;\n \n const mappedSchoolType = SCHOOL_TYPE_MAP[prospectType]?.label;\n if (mappedSchoolType)\n return mappedSchoolType;\n \n return schoolType;\n },\n\n isTertiarySchool(schoolType: string): boolean {\n return SCHOOL_TYPE_MAP[schoolType?.toLowerCase()]?.isTertiary || false;\n },\n\n parseProvince(province?: string): string {\n if (!province.length) return '';\n\n const mappedProvince = PROVINCE_ISO_MAP[province.toLowerCase()];\n return mappedProvince || province;\n }\n};","import * as amplitude from '@amplitude/analytics-browser';\nimport { sessionReplayPlugin } from '@amplitude/plugin-session-replay-browser';\n\nimport { AnalyticsClientOptions, BaseAnalyticsClient } from 'libs/analytics/clients/BaseAnalyticsClient';\nimport { HashObject, UserAction } from 'libs/analytics/interfaces';\nimport type { CoreAnalyticsType, DataObjectPayload } from 'libs/analytics/models/AnalyticsEvent';\n\nimport { BrazeHelper } from 'libs/shared/apps/sign-up/helpers/BrazeHelper';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AnalyticsEventHelper } from './AnalyticsEventHelper';\n\ninterface EventWhitelist {\n [eventName: string]: (...args: any) => any | boolean;\n}\n\ninterface AmplituideAnalyticsClientOptions extends AnalyticsClientOptions {\n currentUser: CurrentUser;\n apiKey: string;\n instanceRegion: InstanceRegion;\n}\n\nexport class AmplitudeAnalyticsClient extends BaseAnalyticsClient {\n public static readonly type: string = 'AmplitudeAnalyticsClient';\n // @ts-ignore\n public get name(): string {\n return 'AmplitudeAnalyticsClient';\n }\n\n constructor(options: AmplituideAnalyticsClientOptions) {\n super(options);\n }\n\n public initialize(options: AmplituideAnalyticsClientOptions): void {\n const sessionReplayTracking = sessionReplayPlugin();\n amplitude.add(sessionReplayTracking);\n\n const id = BrazeHelper.hashedEmail(options.currentUser.email);\n amplitude.init(options.apiKey, id, {\n serverZone: options.instanceRegion === InstanceRegion.UK ? 'EU' : 'US',\n logLevel: amplitude.Types.LogLevel.Warn,\n identityStorage: 'localStorage',\n autocapture: {\n // We're not interested in tracking network requests and we don't\n // want amplitude to collect any data within them\n networkTracking: false,\n // We disable the default page view tracking as we're tracking it manually\n // because our page titles update based on feched data\n pageViews: false\n }\n });\n\n const identify = new amplitude.Identify();\n identify.set('userId', options.currentUser.id);\n\n amplitude.identify(identify);\n }\n\n public shouldLog(event?: CoreAnalyticsType): boolean {\n if (!event)\n return false;\n \n const predicate = AmplitudeAnalyticsClient.eventWhitelist[event.type];\n if (typeof predicate === 'function')\n return predicate(event);\n\n return false;\n }\n\n private logEvent(event: amplitude.Types.BaseEvent): void {\n amplitude.track(event);\n }\n\n public log(event: CoreAnalyticsType): void {\n const eventData = event.data as HashObject;\n\n if (AnalyticsEventHelper.isPageViewEvent(event)) {\n this.logEvent({\n event_type: 'page_view',\n event_properties: {\n is_addressable: eventData.isAddressable,\n action_context: eventData.appLink?.action,\n application_context: eventData.appLink?.application,\n url: eventData.url,\n title: document.title\n }\n });\n\n if (AnalyticsEventHelper.isPostSearchPageViewEvent(event))\n this.logSearchEvent(event);\n\n return;\n }\n\n if (AnalyticsEventHelper.isStreamEvent(event)) {\n this.logEvent({\n event_type: 'product_stream',\n event_properties: {\n id: eventData?.id,\n entity: event.actionContext.entity,\n name: eventData?.name\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isExploreTopicsEvent(event)) {\n this.logEvent({\n event_type: 'product_explore_topics',\n event_properties: {\n id: eventData?.id,\n name: eventData?.name,\n presentation_id: eventData?.presentationId,\n presentation_name: eventData?.presentationName\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isSearch(event)) {\n this.logSearchEvent(event);\n return;\n }\n\n if (AnalyticsEventHelper.isSearchClickThrough(event)) {\n this.logEvent({\n event_type: 'product_search_clickthrough',\n event_properties: {\n query: eventData?.search?.query\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isBookACallEvent(event)) {\n this.logEvent({\n event_type: 'product_click_book_a_call'\n });\n return;\n }\n\n if (AnalyticsEventHelper.isShareEvent(event)) {\n this.logEvent({\n event_type: 'product_share',\n event_properties: {\n id: eventData?.id,\n entity: event.actionContext.entity,\n name: eventData?.name\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isResourceDownloadEvent(event)) {\n this.logEvent({\n event_type: 'product_download_resource',\n event_properties: {\n id: eventData?.id,\n name: eventData?.name,\n video_name: eventData?.videoName\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isInviteEvent(event)) {\n this.logEvent({\n event_type: 'product_invite',\n event_properties: {\n user_count: eventData?.emailCount\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isPlayerDevicesCtaEvent(event)) {\n this.logEvent({\n event_type: 'product_player_device_cta',\n event_properties: {\n descriptor: event.actionContext.descriptor,\n can_user_manage_integrations: eventData?.canUserManageIntegrations,\n context: eventData?.context\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isIntegrationsEvent(event)) {\n this.logEvent({\n event_type: 'product_settings_integrations',\n event_properties: {\n descriptor: event.actionContext.descriptor,\n id: eventData?.id,\n status: eventData?.status\n }\n });\n return;\n }\n\n if (AnalyticsEventHelper.isUpgradeFormEvent(event)) {\n this.logEvent({\n event_type: 'product_request_upgrade_form',\n event_properties: {\n job_title: eventData?.jobTitle,\n is_kdm: eventData?.isKdm\n }\n });\n return;\n }\n }\n\n public isType(type: string): this is AmplitudeAnalyticsClient {\n return type === AmplitudeAnalyticsClient.type;\n }\n\n private logSearchEvent(event: CoreAnalyticsType): void {\n const eventData = event.data as HashObject;\n\n const additionalData: HashObject = {};\n if ('query' in eventData)\n additionalData.query = eventData.query;\n\n this.logEvent({\n event_type: 'product_search',\n event_properties: {\n ...additionalData,\n action_type: this.getSearchActionType(event)\n }\n });\n }\n\n private getSearchActionType(event: CoreAnalyticsType): string {\n if (event.type === UserAction.Filter)\n return 'filter';\n\n const eventData = event.data as DataObjectPayload;\n if (event.type === UserAction.PageView) {\n const appLink = eventData?.appLink;\n\n if (appLink?.application === AppChannels.SEARCH)\n return null;\n\n if (AnalyticsEventHelper.isSearchResultClickthrough(appLink))\n return 'clickthrough';\n\n return 'abandon';\n }\n\n if (eventData.consecutiveSearchCount > 1)\n return 'multi_search';\n\n return 'search';\n }\n\n private static get eventWhitelist(): EventWhitelist {\n return {\n [UserAction.SendEmail]: AnalyticsEventHelper.isInviteEvent,\n [UserAction.Download]: AnalyticsEventHelper.isResourceDownloadEvent,\n [UserAction.Share]: AnalyticsEventHelper.isShareEvent,\n [UserAction.Stream]: AnalyticsEventHelper.isStreamEvent,\n [UserAction.Click]: AnalyticsEventHelper.isSupportedClickEvent,\n [UserAction.PageView]: AnalyticsEventHelper.isPageViewEvent,\n [UserAction.Search]: AnalyticsEventHelper.isSearch,\n [UserAction.Filter]: AnalyticsEventHelper.isSearch,\n [UserAction.Submit]: AnalyticsEventHelper.isUpgradeFormEvent\n };\n }\n}","import { Core } from 'libs/common/backbone/index';\n\nimport { colonCaseToKebabCase } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, HashObject, LocationContext, SignUpDescriptors, UpgradeBannerDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\nimport type { CoreAnalyticsType, DataObjectPayload } from 'libs/analytics/models/AnalyticsEvent';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\n/**\n * List of app links that represent successful search result clickthroughs\n */\nconst resultAppLinks = [\n { application: AppChannels.VIDEOS, action: Actions.Videos.PLAY_VIDEO },\n { application: AppChannels.INTERACTIVES, action: Actions.Interactives.VIEW_INTERACTIVE },\n { application: AppChannels.CLIPS, action: Actions.Clips.PLAY_CLIP },\n { application: AppChannels.SERIES, action: Actions.Series.SERIES },\n { application: AppChannels.PLAYLISTS, action: Actions.Playlists.PLAYLIST },\n { application: AppChannels.LIBRARIES, action: Actions.Libraries.FOLDER },\n { application: AppChannels.SUBJECT, action: Actions.Subjects.CLASSIFICATION },\n { application: AppChannels.MOVIES_AND_TV, action: Actions.MoviesAndTv.COMPANY_DASHBOARD }\n];\n\nexport const AnalyticsEventHelper = {\n /**\n * Checks if an app link represents a valid search result clickthrough\n */\n isSearchResultClickthrough(appLink: Core.AppLink): boolean {\n if (!appLink?.application || !appLink?.action) {\n return false;\n }\n\n return resultAppLinks.some((link: { application: string; action: string }) =>\n link.application === appLink.application && link.action === appLink.action);\n },\n isPageViewEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.PageView)\n return false;\n\n /**\n * We only want to collect the page view where the user has navigated\n * . We'll ignore error pages.\n */\n const eventData = event.data as DataObjectPayload;\n if (eventData?.isError)\n return false;\n\n return true;\n },\n\n /**\n * We want to log search events to Braze and Amplitude when the user has navigated away from the /search route.\n * Hence the name \"post-search event\".\n * To do this, we listen for page_view events where the user is going from /search to any other route.\n */\n isPostSearchPageViewEvent(event: CoreAnalyticsType): boolean {\n const eventData = event.data as HashObject;\n const currentAppLink = eventData?.appLink;\n\n // If the user is navigating to search, ignore\n if (currentAppLink?.application === AppChannels.SEARCH)\n return false;\n\n const previousAppLink = ContextService.getPreviousRoute()?.appLink;\n\n // If the user is coming from a route that isn't /search, ignore\n if (previousAppLink?.application !== AppChannels.SEARCH)\n return false;\n\n return true;\n },\n\n isExploreTopicsEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Click)\n return false;\n\n if (event.actionContext.entity !== EntityType.Classification)\n return false;\n\n return true;\n },\n\n isSearch(event: CoreAnalyticsType): boolean {\n if (event.type === UserAction.Search)\n return event.actionContext.location === LocationContext.SearchBar;\n\n if (event.type === UserAction.Filter)\n return event.actionContext.productArea === colonCaseToKebabCase(AppChannels.SEARCH);\n\n return false;\n },\n\n isSearchClickThrough(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Click)\n return false;\n\n if (event.actionContext.productArea !== colonCaseToKebabCase(AppChannels.SEARCH))\n return false;\n\n /**\n * The search clickthrough events are never logged as an array\n */\n if (Array.isArray(event.data))\n return false;\n\n /**\n * We're relying on the fact that search click through events have\n * the search property of the entity populated with a node containing the score\n */\n if (!event?.data?.search)\n return false;\n\n return true;\n },\n\n isBookACallEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Click)\n return false;\n\n if (event.actionContext.entity !== EntityType.Url)\n return false;\n\n if (event.actionContext.descriptor !== UpgradeBannerDescriptors.BookACall)\n return false;\n\n return true;\n },\n\n isStreamEvent(event: CoreAnalyticsType): boolean {\n return event.type === UserAction.Stream;\n },\n\n isShareEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Share)\n return false;\n\n return event.actionContext.workflowPhase !== WorkflowPhase.Start;\n },\n\n isResourceDownloadEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Download)\n return false;\n\n return event.actionContext.entity === EntityType.Resource;\n },\n\n isInviteEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.SendEmail)\n return false;\n\n return event.actionContext.descriptor === SignUpDescriptors.InviteColleague;\n },\n\n isPlayerDevicesCtaEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Click)\n return false;\n \n if (event.actionContext.entity !== EntityType.DevicesCta)\n return false;\n\n return true;\n },\n\n isIntegrationsEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Click)\n return false;\n\n if (event.actionContext.entity !== EntityType.Integration)\n return false;\n\n return true;\n },\n\n isSupportedClickEvent(event: CoreAnalyticsType): boolean {\n if (AnalyticsEventHelper.isExploreTopicsEvent(event))\n return true;\n\n if (AnalyticsEventHelper.isSearchClickThrough(event))\n return true;\n\n if (AnalyticsEventHelper.isBookACallEvent(event))\n return true;\n\n if (AnalyticsEventHelper.isPlayerDevicesCtaEvent(event))\n return true;\n\n if (AnalyticsEventHelper.isIntegrationsEvent(event))\n return true;\n \n return false;\n },\n\n isUpgradeFormEvent(event: CoreAnalyticsType): boolean {\n if (event.type !== UserAction.Submit)\n return false;\n\n if (event.actionContext.descriptor !== UpgradeBannerDescriptors.RequestBdmTrial)\n return false;\n\n return true;\n }\n};\n"],"names":["SCHOOL_TYPE_MAP","label","isTertiary","PROVINCE_ISO_MAP","BrazeHelper","hashedEmail","email","normalizedEmail","trim","toLowerCase","removeEmptyKeys","object","Array","isArray","payload","Object","entries","filter","v","length","reduce","acc","k","EVENT_TOPIC","BDM_EVENT_TOPIC","SOURCE","BDM_SOURCE","TRIAL_UPGRADE_SOURCE","getSchoolType","schoolType","prospectType","includes","isTertiarySchool","parseProvince","province","AmplitudeAnalyticsClient","options","sessionReplayTracking","id","currentUser","apiKey","serverZone","instanceRegion","logLevel","identityStorage","autocapture","networkTracking","pageViews","identify","set","event","predicate","eventWhitelist","type","eventData","data","this","logEvent","event_type","event_properties","is_addressable","isAddressable","action_context","appLink","action","application_context","application","url","title","document","logSearchEvent","entity","actionContext","name","presentation_id","presentationId","presentation_name","presentationName","query","search","video_name","videoName","user_count","emailCount","descriptor","can_user_manage_integrations","canUserManageIntegrations","context","status","job_title","jobTitle","is_kdm","isKdm","additionalData","action_type","getSearchActionType","consecutiveSearchCount","resultAppLinks","AnalyticsEventHelper","isSearchResultClickthrough","some","link","isPageViewEvent","isError","isPostSearchPageViewEvent","currentAppLink","previousAppLink","isExploreTopicsEvent","isSearch","location","productArea","c","isSearchClickThrough","isBookACallEvent","isStreamEvent","isShareEvent","workflowPhase","isResourceDownloadEvent","isInviteEvent","isPlayerDevicesCtaEvent","isIntegrationsEvent","isSupportedClickEvent","isUpgradeFormEvent"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 843-4dbc5df109-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[843],{86974:(e,t,n)=>{"use strict";n.d(t,{w:()=>i});var r=n(32735);function a(){return r.createElement("svg",{viewBox:"0 0 24 24"},r.createElement("path",{d:"M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z"}))}var i=r.forwardRef(function(e,t){var n=e.onClickClear,i=e.showClearButton,o=e.clearClassName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["onClickClear","showClearButton","clearClassName"]);return r.createElement("div",{className:"position-relative"},r.createElement("input",Object.assign({},l,{ref:t,className:"".concat(e.className," ").concat("aYpO7")})),(!!e.value||i)&&r.createElement("span",{className:"".concat("ygMgF"," position-absolute cursor-pointer text-secondary ").concat(o||""),role:"button",onClick:n,onKeyDown:function(e){return"Enter"===e.key&&n()},tabIndex:0},r.createElement("div",{className:"d-inline-block svg-container md"},r.createElement(a,null))))})},66257:(e,t,n)=>{"use strict";n.d(t,{k:()=>p});var r=n(32735),a=n(80130),i=n(59087),o=n(23481),l=n(31453),c=n(35223),s=n(91693);const u={normal:"Q1UGv",copyBtn:"J3fBx",embedHtmlInput:"RcwAD"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=o.T.encloseNamespace("shared.copyInput");function p(e){var t,n,o=(t=r.useState(e.showCopiedText||!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(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.")}()),p=o[0],d=o[1];function v(){setTimeout(function(){return d(!1)},2e3)}function y(){e.onCopy&&e.onCopy(),p||(d(!0),v())}r.useEffect(function(){e.showCopiedText&&v()},[e.showCopiedText]);var b=r.createElement("div",{className:"normal-v2"===e.styling?"d-flex flex-row gap-2 position-relative w-100":"input-group"},e.textarea?r.createElement("textarea",{className:(0,l.A)("form-control rounded w-100 h-100",!e.hasInputBg&&u.embedHtmlInput),spellCheck:!1,value:e.value,rows:7,readOnly:!0}):r.createElement("input",{type:"text",autoComplete:"off",className:(0,l.A)("form-control","normal"===e.styling&&e.styling),spellCheck:!1,value:e.value,readOnly:!0}),r.createElement(function(){return"normal-v2"===e.styling?r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement(s.h,{role:p?"status":"",svgName:p?c.vn.Check:c.vn.Copy,className:(0,l.A)(u.copyBtn,"btn py-0 text-nowrap",p?"btn-success text-white":"btn-outline-dark border-secondary",e.extraButtonClassNames)},p?e.copiedText||f("copiedLink"):e.copyText||f("copy"))):r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement("button",{role:p?"status":"",className:(0,l.A)("btn btn-outline-dark border border-secondary py-0 text-nowrap",e.extraButtonClassNames)},p?e.copiedText||f("copied"):e.copyText||f("copy")))},null));return e.label?r.createElement(a.Z.Group,{className:"form-group"},r.createElement(a.Z.Label,null,e.label),b):b}p.defaultProps={styling:"normal"}},38502:(e,t,n)=>{"use strict";n.d(t,{r:()=>m});var r=n(32735),a=n(49985),i=n(15611),o=n(18559),l=n(11607),c=n(83914),s=n(22771);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function m(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))})))}m.defaultProps={borderRadius:"lg"}},10843:(e,t,n)=>{"use strict";n.r(t),n.d(t,{InviteColleagueView:()=>Se});var r=n(32735),a=n(23481),i=n(20354),o=n(49985),l=n(65858),c=n(9111),s=n(13876),u=n(39151),m=n(31949),f=n(69883),p=n(59934),d=n(23923),v=n(99940),y={invite:function(e){return{url:"{gateway}/v1/users/invites",key:"invites:colleague",normalize:!1,type:v.k.POST,data:e,invalidationKeys:["invites"]}},inviteByType:function(){return{key:"invites",url:"{gateway}/v1/users/invites?type=link&type=direct",normalize:!1}},deleteInvite:function(e){return{key:"invites:delete",url:"{gateway}/v1/users/invites/".concat(e),type:v.k.DELETE,normalize:!1,invalidationKeys:["invites"]}},resendInvite:function(e){return{key:"invites:".concat(e,":resend"),url:"{gateway}/v1/users/invites/email?id=".concat(e),type:v.k.POST,normalize:!1}},createInviteLink:function(){return{key:"invites:create",url:"{gateway}/v1/users/invites/links",type:v.k.POST,normalize:!1,invalidationKeys:["invites"]}}};function b(e){return function(e){if(Array.isArray(e))return g(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 g(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)?g(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 g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var h={"email-in-use":"emailInUse","invalid-email":"invalidEmail"},E=a.T.encloseNamespace("signUp.helpers"),x={recalculateFields:function(e,t,n,r){var a=this.cleanFields(t);if(!a.length)return this.removeField(e,t,n);var i=a[a.length-1],o=!(e!==a.length-1||!a[e].data.firstName.length&&!a[e].data.email.length),l=!!(a.length<r&&(i.data.firstName.length||i.data.email.length));return o||l?this.addField(a,r):void 0},getValidFieldsData:function(e){return e.reduce(function(e,t){return t.data.email.length?[].concat(b(e),[t.data]):e},[])},getInputWithErrors:function(e,t){var n,r=b(e),a=null===(n=t.responseJSON)||void 0===n?void 0:n.problems;return r.forEach(function(e,t){var n=a.find(function(t){return t.email===e.data.email});n&&(r[t]=Object.assign(Object.assign({},e),{error:{email:E(h[n.errorCode])}}))}),r},cleanFields:function(e){return e.filter(function(e){return e.data.firstName.length||e.data.email.length})},removeField:function(e,t,n){return t.length!==n&&t[e]?t.filter(function(t,n){return n!==e}):t},addField:function(e,t){return e.length>=t?e:[].concat(b(e),[this.getNewEmptyField()])},getNewEmptyField:function(){return{data:{firstName:"",email:""}}}};function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var N=a.T.encloseNamespace("signUp.helpers"),C=new RegExp(/^[^\s@]+@[^\s@]+\.[^\s@]+$/),k=/^[\w0-9'\-,.():;&][^_!¡?÷¿/\\+=@#$%ˆ*{}|~<>[\]]{0,}$/,S={validate:function(e){var t,n=this,r=function(e){if(Array.isArray(e))return w(e)}(t=e)||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 w(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)?w(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.")}(),a=!1;return r.forEach(function(e,t){if(t!==r.length-1||0===t||e.data.email.length||e.data.firstName.length){var i={firstName:n.validateFirstName(e.data.firstName),email:n.validateEmail(e.data.email)};(i.firstName||i.email)&&(e.error=i,a||(a=!0))}}),{fieldsWithErrors:r,hasErrors:a}},validateEmail:function(e){return e.length?C.test(e)?void 0:N("validSchoolEmail"):N("enterValidEmail")},validateFirstName:function(e){if(e.length)return k.test(e)?void 0:N("invalidFirstname")}},O=n(97958),I=n(2102),T=n(83345),j=n(99742),A=n(86974);function F(e){return F="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},F(e)}var P=a.T.encloseNamespace("signUp.invite.inviteFormInputGroup");function U(e){var t=e.input,n=t.data,a=t.error;function i(t,r){var a,i,o,l=Object.assign(Object.assign({},n),(a={},o=r,(i=function(e){var t=function(e){if("object"!=F(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=F(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==F(t)?t:t+""}(i=t))in a?Object.defineProperty(a,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[i]=o,a));e.onChange(t,l)}return r.createElement("div",{className:"row mb-2"},r.createElement("div",{className:"col-4"},r.createElement("input",{type:"text",name:"firstName".concat(e.index),className:"form-control form-control-lg",placeholder:P("firstName"),value:n.firstName,onChange:function(e){e.preventDefault(),i("firstName",e.target.value)},autoComplete:"off"}),a&&(null==a?void 0:a.firstName)&&r.createElement("p",{className:"mb-0 text-danger"},a.firstName)),r.createElement("div",{className:"col-8 ps-0"},r.createElement(A.w,{type:"text",name:"electronicMail".concat(e.index),className:"form-control form-control-lg",placeholder:P("emailAddress",{count:e.index+1}),value:n.email,onChange:function(e){e.preventDefault(),i("email",e.target.value)},onClickClear:e.clearInputs,autoComplete:"off",showClearButton:!(!n.firstName&&!n.email)}),a&&(null==a?void 0:a.email)&&r.createElement("p",{className:"mb-0 text-danger",dangerouslySetInnerHTML:{__html:a.email}})))}function D(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,r=Array(t);n<t;n++)r[n]=e[n];return r}var M="signUp.invite.inviteFormInputGroup";function _(e){var t=e.fields,n=e.setFields,a=e.minFields,i=e.maxFields,o=e.isTertiary,l=r.useMemo(function(){return t.filter(function(e){return!!e.data.email}).length},[t]);return r.createElement("div",{className:"px-3"},r.createElement(O.u.Image,{src:j.W.SignUp.INVITE_COLLEAGUE,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 text-center"},r.createElement(T.x,{namespace:M,phrase:o?"inviteHeadingTertiary":"inviteHeading"})),r.createElement("p",{className:"text-center"},r.createElement(T.x,{namespace:M,phrase:"inviteSubheading"})),r.createElement("div",{className:"row fw-bold mb-2"},r.createElement("div",{className:"col-4"},r.createElement(T.x,{namespace:M,phrase:"firstName"})),r.createElement("div",{className:"col-8 ps-0"},r.createElement(T.x,{namespace:M,phrase:"workEmailAddress"}),r.createElement("span",{className:"text-danger"},"*"))),t.map(function(e,o){return r.createElement(U,{input:e,key:o,index:o,onChange:function(e,r){return function(e,r,o){e>t.length||n(function(t){var n,l,c=D(t);return c[e].data=o,(null===(n=c[e])||void 0===n?void 0:n.error)&&(null===(l=c[e])||void 0===l?void 0:l.error[r])&&delete c[e].error[r],x.recalculateFields(e,c,a,i)||c})}(o,e,r)},clearInputs:function(){return function(e){e>t.length||n(function(t){var n=D(t);return n[e].data.firstName="",n[e].data.email="",x.recalculateFields(e,n,a,i)||n})}(o)}})}),r.createElement("div",{className:"pt-2 pb-3"},r.createElement(I.m,{showSpinner:e.showSpinner,variant:"dark",className:"btn-lg w-100",onClick:e.onSubmit},r.createElement(T.x,{namespace:M,phrase:"btnInvite",options:{smartCount:l||1}}))))}var R="signUp.invite.inviteFormSuccess";function B(e){var t;if(null===(t=e.fields)||void 0===t?void 0:t.length)return r.createElement("div",{className:"text-center px-3"},r.createElement(O.u.Image,{src:j.W.SignUp.INVITE_COLLEAGUE_SUCCESS,className:"d-block mx-auto"}),r.createElement("h2",{className:"h4"},r.createElement(T.x,{namespace:R,phrase:"inviteSent"})),r.createElement("p",{className:"mb-0"},r.createElement(T.x,{namespace:R,phrase:"emailSentTo"})),r.createElement("div",{className:"mb-3"},e.fields.map(function(e,t){var n=e.data,a=n.firstName,i=n.email;if(i)return r.createElement("p",{className:"mb-0",key:t},!!a.length&&r.createElement("strong",null,a)," (",i,")")})),r.createElement("p",null,r.createElement(T.x,{namespace:R,phrase:"moreInvite"})," ",r.createElement("a",{onClick:e.onInviteMore,className:"info-link p-0"},r.createElement(T.x,{namespace:R,phrase:"inviteMore"}))))}function G(e){var t=e.fields,n=e.setFields,a=e.showSpinner,i=e.onSubmit;return t.length?e.completed?r.createElement(B,{fields:t,onInviteMore:function(t){t.preventDefault(),e.onInviteMore()}}):r.createElement(_,{fields:t,setFields:n,showSpinner:a,onSubmit:i,maxFields:e.maxFields,minFields:e.minFields,isTertiary:e.isTertiary}):r.createElement(r.Fragment,null)}var Z=n(38502),z=a.T.encloseNamespace("signUp.invite.inviteTabs");function H(e){var t=[{name:z("invite"),onSelect:function(){return e.onChangeTab("inviteForm")},active:"inviteForm"===e.activeTab,analyticsData:{name:z("invite")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}},{name:z("pending"),onSelect:function(){return e.onChangeTab("pendingInvites")},active:"pendingInvites"===e.activeTab,analyticsData:{name:z("pending")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}}];return r.createElement(Z.r,{className:"d-flex justify-content-center mb-3",tabs:t})}var V=n(42648),W="signUp.invite.pendingInvites";function $(e){return r.createElement("div",{className:"text-center py-4 px-3"},r.createElement(O.u.Image,{src:j.W.SignUp.EMPTY_PENDING_INVITES,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 mb-0"},r.createElement(T.x,{namespace:W,phrase:"emptyTitle"})),r.createElement("p",null,r.createElement(T.x,{namespace:W,phrase:"emptyDescription"})," ",r.createElement("a",{onClick:function(t){t.preventDefault(),e.onInviteMore()},className:"info-link"},r.createElement(T.x,{namespace:W,phrase:"emptyAction"}))))}const J={avatar:"cin_G",oneLine:"FrlTw",twoLine:"rBQWR",minPendingHeight:"LMnOk"};function K(){return r.createElement("div",{className:"d-flex mb-2 justify-content-between"},r.createElement("div",{className:"col-8 d-flex align-items-center"},r.createElement("div",{className:"partial-loading-background rounded-circle ".concat(J.avatar)}),r.createElement("div",{className:"ms-2 w-100"},r.createElement("div",{className:"partial-loading-background mb-1 w-50 ".concat(J.oneLine)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(J.oneLine)}))),r.createElement("div",{className:"col d-flex align-items-center justify-content-end"},r.createElement("div",{className:"partial-loading-background w-100 ".concat(J.twoLine)})))}function Y(){return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"partial-loading-background w-25 m-2 ".concat(J.oneLine)}),Array(6).fill(null).map(function(e,t){return r.createElement(K,{key:t})}))}var Q,q=n(76306),X=n(97408),ee=n(83914),te=n(35223);!function(e){e.Active="Active",e.Accepted="Accepted",e.Expired="Expired"}(Q||(Q={}));var ne=a.T.encloseNamespace("signUp.helpers"),re={getItemActions:function(e){var t=e.status,n=e.resendInvite,r=e.removeInvite;return t===Q.Accepted?[]:[{label:ne("resendInvite"),onClick:n},{label:ne("removeInvite"),onClick:r,className:"text-danger"}]}},ae=a.T.encloseNamespace("signUp.invite.inviteStatusInfo");function ie(e){return e.status===Q.Accepted?r.createElement(oe,{extraContainerClass:"text-success",renderSvg:function(){return r.createElement(ee.x,{size:ee.S.Small,svgName:te.vn.Check})},text:ae("accepted")}):e.status===Q.Active?r.createElement(oe,{renderSvg:function(){return r.createElement(ee.x,{size:ee.S.Small,svgName:te.vn.PendingCircle,className:"d-inline-block svg-container text-info"})},extraTextClass:"text-secondary",text:ae("active")}):e.status===Q.Expired?r.createElement(oe,{extraContainerClass:"text-danger",renderSvg:function(){return r.createElement(ee.x,{size:ee.S.Small,svgName:te.vn.Close,className:"d-inline-block svg-container"})},text:ae("expired")}):r.createElement(r.Fragment,null)}function oe(e){function t(e,t){return t?"".concat(e," ").concat(t):e}var n=t("d-flex align-items-center",e.extraContainerClass),a=t("ps-1",e.extraTextClass);return r.createElement("div",{className:n},e.renderSvg&&e.renderSvg(),r.createElement("small",{className:a},e.text))}const le={avatar:"VsdKR",email:"L65Cs"};function ce(e){return e.initial?r.createElement(X.q,{imageCdnUrl:e.imageCdnUrl,initials:e.initial}):r.createElement("div",{className:"d-flex align-items-center justify-content-center rounded-circle bg-dark text-white w-100 h-100"},r.createElement(ee.x,{svgName:te.vn.Email,size:ee.S.Large}))}function se(e){var t,n,a=e.invite,i=a.invitee,o=a.status,l=null!==(t=null==i?void 0:i.email)&&void 0!==t?t:e.invite.metadata.email,c=re.getItemActions({status:o,resendInvite:function(){return e.resendInvite(e.invite.id)},removeInvite:function(){return e.removeInvite(e.invite.id)}}),s=null===(n=e.invite.metadata)||void 0===n?void 0:n.firstName,u=null==s?void 0:s.substr(0,1);return r.createElement("div",{className:"d-flex mb-2 justify-content-between px-3"},r.createElement("div",{className:"d-flex align-items-center ps-0"},r.createElement("div",{className:le.avatar},r.createElement(ce,{initial:u,userId:null==i?void 0:i.userId,imageCdnUrl:e.imageCdnUrl})),r.createElement("div",{className:"ms-2"},!!s&&r.createElement("h3",{className:"h6 mb-0"},s),r.createElement("p",{className:"mb-0 text-secondary w-100 text-truncate ".concat(le.email),title:l},l))),r.createElement("div",{className:"d-flex align-items-center justify-content-between pe-0"},r.createElement(ie,{status:o}),!!c.length&&r.createElement(q.m,{dropdownToggleClassName:"btn btn-link ms-1",actions:c})))}var ue="signUp.invite.pendingInvites";function me(e){var t;return e.isLoading?r.createElement(Y,null):(null===(t=null==e?void 0:e.invites)||void 0===t?void 0:t.length)?r.createElement("div",{className:"px-1"},r.createElement("h3",{className:"h6 px-3"},r.createElement(T.x,{namespace:ue,phrase:"heading"})),r.createElement(V.$B,{className:"".concat(J.minPendingHeight)},e.invites.map(function(t,n){return r.createElement(se,{key:n,invite:t,imageCdnUrl:e.imageCdnUrl,removeInvite:e.removeInvite,resendInvite:e.resendInvite})}))):r.createElement($,{onInviteMore:e.onInviteMore})}var fe,pe=n(80247),de=n(66257),ve="signUp.invite.shareInviteLink";function ye(e){return e.showSpinner?r.createElement("div",{className:"text-center w-100"},r.createElement(pe.Z,{as:"div",animation:"border",role:"status"})):r.createElement("div",{className:"w-100"},r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("h2",{className:"h6"},r.createElement(T.x,{namespace:ve,phrase:"title"})),e.link&&r.createElement("button",{className:"btn btn-link info-link p-0 mb-2",onClick:e.onClickDelete},r.createElement(T.x,{namespace:ve,phrase:"delete"}))),e.link?r.createElement(de.k,{value:e.link}):r.createElement("div",{className:"d-flex w-100 justify-content-between"},r.createElement("div",null,r.createElement(ee.x,{svgName:te.vn.Link,className:"me-2 d-inline-block svg-container"}),r.createElement(T.x,{namespace:ve,phrase:"generate"})),r.createElement("button",{className:"btn info-link p-0",onClick:e.onClickCreate},r.createElement(T.x,{namespace:ve,phrase:"create"}))))}!function(e){e.Link="link",e.Direct="direct"}(fe||(fe={}));const be={minHeight:"tWSzO"};function ge(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return he(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],m=!1,f={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,l=0,c=e,f.n=n,o}};function p(n,r){for(l=n,c=r,t=0;!m&&s&&!a&&t<u.length;t++){var a,i=u[t],p=f.p,d=i[2];n>3?(a=d===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=p&&((a=n<2&&p<i[1])?(l=0,f.v=r,f.n=i[1]):p<d&&(a=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,f.n=d,l=0))}if(a||n>1)return o;throw m=!0,r}return function(a,u,d){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&p(u,d),l=u,c=d;(t=l<2?e:c)||!m;){i||(l?l<3?(l>1&&(f.n=-1),p(l,c)):f.n=c:f.v=c);try{if(s=2,i){if(l||(a="next"),t=i[a]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,l<2&&(l=0)}else 1===l&&(t=i.return)&&t.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);i=e}else if((t=(m=f.n<0)?c:n.call(r,f))!==o)break}catch(t){i=e,l=1,c=t}finally{s=1}}return{value:t,done:m}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(he(t={},r,function(){return this}),t),m=s.prototype=l.prototype=Object.create(u);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,he(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e}return c.prototype=s,he(m,"constructor",s),he(s,"constructor",c),c.displayName="GeneratorFunction",he(s,a,"GeneratorFunction"),he(m),he(m,a,"Generator"),he(m,r,function(){return this}),he(m,"toString",function(){return"[object Generator]"}),(ge=function(){return{w:i,m:f}})()}function he(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}he=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){he(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},he(e,t,n,r)}function Ee(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 r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return xe(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)?xe(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 xe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var we=function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,l)}c((r=r.apply(e,t||[])).next())})},Ne=a.T.encloseNamespace("signUp.inviteColleage"),Ce=1,ke=5;function Se(e){var t=Ee(r.useState(e.tab),2),n=t[0],a=t[1],v=Ee(r.useState(!1),2),b=v[0],g=v[1],h=Ee(r.useState(!1),2),E=h[0],w=h[1],N=Ee(r.useState(!1),2),C=N[0],k=N[1],O=Ee(r.useState(function(){return[x.getNewEmptyField()]}),2),I=O[0],T=O[1],j=i.a.useGetFetchAsync(),A=(0,f.Z)(),F=(0,d.B)(),P=i.a.useBasicFetch(m.N.currentUser()),U=i.a.useBasicFetch(u.L.config()),D=i.a.useBasicFetch(y.inviteByType()),L=function(e){return r.useMemo(function(){return e?e.reduce(function(e,t){return t.type===fe.Direct?(e.directInvites.push(t),e):(e.links.push(t),e)},{directInvites:[],links:[]}):{directInvites:null,links:null}},[e])}(D.data),M=L.directInvites,_=L.links,R=null==_?void 0:_[0];function B(e){o.k.logUserAction({emailCount:e},{actionType:l.Vw.SendEmail,location:l.LZ.TrialBanner,entity:l.py.User,descriptor:l.Yu.InviteColleague,workflowPhase:l.eu.Complete})}function Z(){w(!1),T([x.getNewEmptyField()]),"inviteForm"!==n&&(a("inviteForm"),k(!1))}var z=P.hasCompleted&&U.hasCompleted&&D.hasCompleted;return r.createElement(c.G,{title:Ne("title"),closePopup:e.closePopup,bodyClassName:"modal-body px-0",showLoadingSpinner:!z},z&&r.createElement(r.Fragment,null,r.createElement("div",{className:be.minHeight},!E&&r.createElement(H,{activeTab:n,onChangeTab:function(e){return a(e)}}),"pendingInvites"===n?r.createElement(me,{imageCdnUrl:U.data.imageCdnUrl,invites:M,onInviteMore:Z,removeInvite:function(e){return we(this,void 0,void 0,ge().m(function t(){var n;return ge().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,j(y.deleteInvite(e));case 1:A.success(Ne("removeSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,A.error(p.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},resendInvite:function(e){return we(this,void 0,void 0,ge().m(function t(){var n;return ge().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,j(y.resendInvite(e));case 1:A.success(Ne("resendSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,A.error(p.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},isLoading:!D.hasCompleted}):r.createElement(G,{fields:I,setFields:T,showSpinner:C,completed:E,onSubmit:function(){var e;return we(this,void 0,void 0,ge().m(function t(){var n,r,a,i,o,l;return ge().w(function(t){for(;;)switch(t.n){case 0:if(!C){t.n=1;break}return t.a(2);case 1:if(n=S.validate(I),r=n.fieldsWithErrors,!n.hasErrors){t.n=2;break}return T(r),t.a(2);case 2:return t.p=2,k(!0),a=x.getValidFieldsData(I),t.n=3,j(y.invite(a));case 3:return w(!0),B(a.length),t.a(2);case 4:if(t.p=4,l=t.v,"create-invitation-failed"===(null===(e=(i=l).responseJSON)||void 0===e?void 0:e.type)){t.n=5;break}return A.error(p.M.inviteColleagueError(i)),t.a(2);case 5:o=x.getInputWithErrors(I,i),T(o);case 6:return t.p=6,k(!1),t.f(6);case 7:return t.a(2)}},t,null,[[2,4,6,7]])}))},onInviteMore:Z,maxFields:ke,minFields:Ce,isTertiary:F})),!E&&r.createElement("div",{className:"px-3"},r.createElement(s.u,null,r.createElement(ye,{onClickCreate:function(){return we(this,void 0,void 0,ge().m(function e(){return ge().w(function(e){for(;;)switch(e.n){case 0:return g(!0),e.p=1,e.n=2,j(y.createInviteLink());case 2:e.n=4;break;case 3:e.p=3,e.v,A.error(Ne("error"));case 4:return e.p=4,g(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))},onClickDelete:function(){return we(this,void 0,void 0,ge().m(function e(){var t;return ge().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,j(y.deleteInvite(R.id));case 1:A.success(Ne("deleteLinkSuccess")),e.n=3;break;case 2:e.p=2,t=e.v,A.error(p.M.inviteColleagueError(t));case 3:return e.a(2)}},e,null,[[0,2]])}))},link:null==R?void 0:R.inviteUrl,showSpinner:b})))))}},91969:(e,t,n)=>{"use strict";var r=n(47033),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,o,l,c,s,u=!1;t||(t={}),n=t.debug||!1;try{if(o=r(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=a[t.format]||a.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))}),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},22771:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},44818:(e,t,n)=>{"use strict";function r(e){return r="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},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var a=l(n(32735)),i=l(n(91969)),o=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){d(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}(y,e);var t,n,l,c,v=(l=y,c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,t=p(l);if(c){var n=p(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return f(e)}(this,e)});function y(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,y);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return d(f(e=v.call.apply(v,[this].concat(n))),"onClick",function(t){var n=e.props,r=n.text,o=n.onCopy,l=n.children,c=n.options,s=a.default.Children.only(l),u=(0,i.default)(r,c);o&&o(r,u),s&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t)}),e}return t=y,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,o),r=a.default.Children.only(t);return a.default.cloneElement(r,s(s({},n),{},{onClick:this.onClick}))}}])&&u(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),y}(a.default.PureComponent);t.CopyToClipboard=v,d(v,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,n)=>{"use strict";var r=n(44818).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach(function(t){e.addRange(t)}),t&&t.focus()}}}}]);
|
|
3
|
-
//# sourceMappingURL=843-4dbc5df109-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/843-4dbc5df109-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/images/components/CloseIcon.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/clear-input/ClearableInput.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/clear-input/clearable-input.scss","file:///app/packages/libs/shared/src/components/copy-input/copy-input.scss","file:///app/packages/libs/shared/src/components/copy-input/CopyInput.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/projects/lite/src/apps/sign-up/flight-requests/InviteColleagueRequests.ts","file:///app/packages/projects/lite/src/apps/sign-up/helpers/InputGroupHelper.ts","file:///app/packages/projects/lite/src/apps/sign-up/helpers/InviteValidationHelper.ts","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputGroup.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form-success/InviteFormSuccess.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form/InviteForm.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-tabs/InviteTabs.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/EmptyPendingInvites.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/pending-invites.scss","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/PartialPendingInvites.tsx","file:///app/packages/projects/lite/src/apps/sign-up/enums/InviteStatus.ts","file:///app/packages/projects/lite/src/apps/sign-up/helpers/PendingInvitesHelper.ts","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-status-info/InviteStatusInfo.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites-item/pending-invites-item.scss","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites-item/PendingInvitesItem.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/PendingInvites.tsx","file:///app/packages/projects/lite/src/apps/sign-up/enums/InviteType.ts","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/share-invite-link/ShareInviteLink.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/invite-colleague.scss","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/InviteColleagueView.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/useSplitInvites.ts","file:///app/node_modules/copy-to-clipboard/index.js","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/react-copy-to-clipboard/lib/Component.js","file:///app/node_modules/react-copy-to-clipboard/lib/index.js","file:///app/node_modules/toggle-selection/index.js"],"sourcesContent":["import React from 'react';\n\nexport function CloseIcon(): JSX.Element {\n return (\n <svg viewBox='0 0 24 24'>\n <path d='M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z'/>\n </svg>\n );\n}","import React from 'react';\n\nimport { CloseIcon } from 'libs/shared/images/components/CloseIcon';\n\nimport styles from './clearable-input.scss';\n\ninterface ClearInputProps extends React.HTMLProps<HTMLInputElement> {\n showClearButton?: boolean;\n onClickClear: () => void;\n clearClassName?: string;\n}\n\nexport const ClearableInput = React.forwardRef((\n props: ClearInputProps,\n ref: React.ForwardedRef<HTMLInputElement>\n) => {\n const { onClickClear, showClearButton, clearClassName, ...inputProps } = props;\n\n return (\n <div className='position-relative'>\n <input\n {...inputProps}\n ref={ref}\n className={`${props.className} ${styles.clearableInput}`}\n />\n {(!!props.value || showClearButton) &&\n <span\n className={`${styles.clearInput} position-absolute cursor-pointer text-secondary ${clearClassName || ''}`}\n role='button'\n onClick={onClickClear}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClickClear()}\n tabIndex={0}\n >\n <div className='d-inline-block svg-container md'>\n <CloseIcon />\n </div>\n </span>\n }\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"clearInput\":\"ygMgF\",\"clearableInput\":\"aYpO7\"};","// extracted by mini-css-extract-plugin\nexport default {\"normal\":\"Q1UGv\",\"copyBtn\":\"J3fBx\",\"embedHtmlInput\":\"RcwAD\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { IconButton } from '../icon-button/IconButton';\n\nimport styles from './copy-input.scss';\n\nconst namespace = 'shared.copyInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyInputProps {\n value: string;\n label?: string;\n // Greyed means the input will be greyed out. Normal means it will appear like a normal input\n styling?: 'greyed' | 'normal' | 'normal-v2';\n onCopy?: () => void;\n copyText?: string;\n copiedText?: string;\n showCopiedText?: boolean;\n extraButtonClassNames?: string;\n textarea?: boolean;\n hasInputBg?: boolean;\n}\n\nCopyInput.defaultProps = {\n styling: 'normal'\n};\n\nexport function CopyInput(props: CopyInputProps): JSX.Element {\n const [ localShowCopiedText, setLocalShowCopiedText ] = React.useState(props.showCopiedText || false);\n\n function revertLocalShowCopiedText() {\n setTimeout(() => setLocalShowCopiedText(false), 2000);\n }\n\n function onCopy(): void {\n if (props.onCopy)\n props.onCopy();\n\n if (localShowCopiedText)\n return;\n\n setLocalShowCopiedText(true);\n revertLocalShowCopiedText();\n }\n\n React.useEffect(() => {\n if (!props.showCopiedText)\n return;\n \n revertLocalShowCopiedText();\n }, [props.showCopiedText]);\n\n function Button() {\n if (props.styling === 'normal-v2') {\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <IconButton\n role={localShowCopiedText ? 'status' : ''}\n svgName={localShowCopiedText ? cvSvgLibrary.Check : cvSvgLibrary.Copy}\n className={classNames(\n styles.copyBtn,\n 'btn py-0 text-nowrap',\n localShowCopiedText ? 'btn-success text-white' : 'btn-outline-dark border-secondary',\n props.extraButtonClassNames\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copiedLink') :\n props.copyText || getPhrase('copy')\n }\n </IconButton>\n </CopyToClipboard>\n );\n }\n\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <button\n role={localShowCopiedText ? 'status' : ''}\n className={classNames(\n 'btn btn-outline-dark border border-secondary py-0 text-nowrap',\n props.extraButtonClassNames\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copied') :\n props.copyText || getPhrase('copy')\n }\n </button>\n </CopyToClipboard>\n );\n }\n\n const input = (\n <div className={props.styling === 'normal-v2' ? 'd-flex flex-row gap-2 position-relative w-100' : 'input-group'}>\n {props.textarea\n ? <textarea\n className={classNames('form-control rounded w-100 h-100', !props.hasInputBg && styles.embedHtmlInput)}\n spellCheck={false}\n value={props.value}\n rows={7}\n readOnly\n />\n : <input\n type='text'\n autoComplete='off'\n className={classNames(\n 'form-control',\n props.styling === 'normal' && props.styling\n )}\n spellCheck={false}\n value={props.value}\n readOnly\n />\n }\n \n <Button />\n </div>\n );\n\n if (props.label) {\n return (\n <Form.Group className='form-group'>\n <Form.Label>{props.label}</Form.Label>\n {input}\n </Form.Group>\n );\n }\n\n return input;\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nimport { InviteFormInputData } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nexport const InviteColleagueRequests = {\n invite(\n data: InviteFormInputData[]\n ): Flight.Request {\n return {\n url: '{gateway}/v1/users/invites',\n key: 'invites:colleague',\n normalize: false,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: ['invites']\n };\n },\n\n inviteByType(): Flight.Request {\n return {\n key: `invites`,\n url: `{gateway}/v1/users/invites?type=link&type=direct`,\n normalize: false\n };\n },\n\n deleteInvite(id: string): Flight.Request {\n return {\n key: `invites:delete`,\n url: `{gateway}/v1/users/invites/${id}`,\n type: HttpVerbs.DELETE,\n normalize: false,\n invalidationKeys: ['invites']\n };\n },\n\n resendInvite(id: string): Flight.Request {\n return {\n key: `invites:${id}:resend`,\n url: `{gateway}/v1/users/invites/email?id=${id}`,\n type: HttpVerbs.POST,\n normalize: false\n };\n },\n\n createInviteLink(): Flight.Request {\n return {\n key: `invites:create`,\n url: `{gateway}/v1/users/invites/links`,\n type: HttpVerbs.POST,\n normalize: false,\n invalidationKeys: ['invites']\n };\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InviteColleagueProblems, InviteColleagueXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\n\nimport { InviteFormInput, InviteFormInputData } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\n\nconst ErrorPhraseMap: {[key in InviteColleagueProblems]: string} = {\n 'email-in-use': 'emailInUse',\n 'invalid-email': 'invalidEmail'\n};\n\nconst namespace = 'signUp.helpers';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const InputGroupHelper = {\n recalculateFields(\n index: number,\n inputFields: InviteFormInput[],\n minFields: number,\n maxFields: number\n ): InviteFormInput[] {\n // Remove any fields that have empty inputs\n const cleanFields = this.cleanFields(inputFields);\n\n // If all the fields are empty then just remove the current field\n if (!cleanFields.length)\n return this.removeField(index, inputFields, minFields);\n\n const lastInviteData = cleanFields[cleanFields.length - 1];\n\n // Add new empty field if we are entering data in any of the inputs on the last field\n const enteredDataOnLastField = !!(\n index === cleanFields.length - 1 &&\n (cleanFields[index].data.firstName.length || cleanFields[index].data.email.length)\n );\n\n // Add new empty field if the last field currently has data in any of the inputs but is less than max allowed field size\n const shouldAddField = !!(\n cleanFields.length < maxFields &&\n (lastInviteData.data.firstName.length || lastInviteData.data.email.length)\n );\n\n \n if (enteredDataOnLastField || shouldAddField)\n return this.addField(cleanFields, maxFields);\n\n return;\n },\n\n getValidFieldsData(fields: InviteFormInput[]) {\n return fields.reduce((previous, current) => {\n if (current.data.email.length) {\n return [ ...previous, current.data ];\n }\n return previous;\n }, [] as InviteFormInputData[]);\n },\n\n getInputWithErrors(fields: InviteFormInput[], error: InviteColleagueXhr) {\n const inputsWithErrors = [...fields];\n\n const problems = error.responseJSON?.problems;\n\n inputsWithErrors.forEach((input, index) => {\n const error = problems.find(item => item.email === input.data.email);\n if (!error) return;\n inputsWithErrors[index] = {\n ...input,\n error: {\n email: getPhrase(ErrorPhraseMap[error.errorCode])\n }\n };\n });\n\n return inputsWithErrors;\n },\n\n cleanFields(inputFields: InviteFormInput[]): InviteFormInput[] {\n return inputFields.filter(\n item => ((item.data.firstName.length || item.data.email.length))\n );\n },\n\n removeField(index: number, inputFields: InviteFormInput[], minFields: number): InviteFormInput[] {\n if (inputFields.length === minFields || !inputFields[index])\n return inputFields;\n\n return inputFields.filter((_, idx) => idx !== index);\n },\n\n addField(inputFields: InviteFormInput[], maxFields: number): InviteFormInput[] {\n if (inputFields.length >= maxFields)\n return inputFields;\n\n return [ ...inputFields, this.getNewEmptyField() ];\n },\n\n getNewEmptyField(): InviteFormInput {\n return {\n data: {\n firstName: '',\n email: ''\n }\n };\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InviteFormInput, InviteFormInputError } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nconst namespace = 'signUp.helpers';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst emailRegex = new RegExp(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/);\nconst firstNameRegex = /^[\\w0-9'\\-,.():;&][^_!¡?÷¿/\\\\+=@#$%ˆ*{}|~<>[\\]]{0,}$/;\n\nexport const InviteValidationHelper = {\n validate(fields: InviteFormInput[]): { fieldsWithErrors: InviteFormInput[], hasErrors: boolean } {\n const fieldsWithErrors = [...fields];\n let hasErrors = false;\n \n fieldsWithErrors.forEach((item, index) => {\n const shouldNotValidate = (\n index === fieldsWithErrors.length - 1 &&\n index !== 0 &&\n (!item.data.email.length && !item.data.firstName.length)\n );\n\n if (shouldNotValidate)\n return;\n \n const currentItemError: InviteFormInputError = {\n firstName: this.validateFirstName(item.data.firstName),\n email: this.validateEmail(item.data.email)\n };\n \n if (currentItemError.firstName || currentItemError.email) {\n item.error = currentItemError;\n\n if (!hasErrors) hasErrors = true;\n }\n });\n\n return { fieldsWithErrors, hasErrors };\n },\n\n validateEmail(email: string): string {\n if (!email.length) {\n return getPhrase('enterValidEmail');\n }\n\n if (!emailRegex.test(email)) {\n return getPhrase('validSchoolEmail');\n }\n },\n \n validateFirstName(firstName: string): string {\n if (!firstName.length) {\n return;\n }\n\n if (!firstNameRegex.test(firstName)) {\n return getPhrase('invalidFirstname');\n }\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClearableInput } from 'libs/shared/apps/sign-up/components/general/clear-input/ClearableInput';\n\nconst namespace = 'signUp.invite.inviteFormInputGroup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface InviteFormInputData {\n firstName: string;\n email: string;\n}\n\nexport interface InviteFormInputError extends Partial<InviteFormInputData> {}\n\nexport interface InviteFormInput {\n data: InviteFormInputData,\n error?: InviteFormInputError\n}\n\ninterface InviteFormInputItemProps {\n index: number;\n input: InviteFormInput;\n onChange: (field: keyof InviteFormInputData, data: InviteFormInputData) => void;\n clearInputs: () => void;\n}\n\nexport function InviteFormInputItem(props: InviteFormInputItemProps): JSX.Element {\n const { data, error } = props.input;\n\n function onChange<T extends keyof InviteFormInputData>(field: T, value: InviteFormInputData[T]) {\n const newData: InviteFormInputData = {\n ...data,\n [field]: value\n };\n props.onChange(field, newData);\n }\n\n function onChangeFirstName(event: React.ChangeEvent<HTMLInputElement>): void {\n event.preventDefault();\n onChange('firstName', event.target.value);\n }\n\n function onChangeWorkEmail(event: React.ChangeEvent<HTMLInputElement>): void {\n event.preventDefault();\n onChange('email', event.target.value);\n }\n \n return (\n <div className='row mb-2'>\n <div className='col-4'>\n <input\n type='text'\n name={`firstName${props.index}`}\n className='form-control form-control-lg'\n placeholder={getPhrase('firstName')}\n value={data.firstName}\n onChange={onChangeFirstName}\n autoComplete='off'\n />\n {error && error?.firstName &&\n <p className='mb-0 text-danger'>{error.firstName}</p>\n }\n </div>\n <div className='col-8 ps-0'>\n <ClearableInput\n type='text'\n name={`electronicMail${props.index}`}\n className='form-control form-control-lg'\n placeholder={getPhrase('emailAddress', { count: props.index + 1 })}\n value={data.email}\n onChange={onChangeWorkEmail}\n onClickClear={props.clearInputs}\n autoComplete='off'\n showClearButton={!!(data.firstName || data.email)}\n />\n {error && error?.email &&\n <p className='mb-0 text-danger' dangerouslySetInnerHTML={{ __html: error.email }}></p>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { InputGroupHelper } from 'apps/sign-up/helpers/InputGroupHelper';\nimport { InviteFormInput, InviteFormInputData, InviteFormInputItem } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nconst namespace = 'signUp.invite.inviteFormInputGroup';\n\n\ninterface InviteFormInputGroupProps {\n fields: InviteFormInput[];\n setFields: React.Dispatch<React.SetStateAction<InviteFormInput[]>>\n showSpinner: boolean;\n onSubmit: () => void;\n \n minFields: number;\n maxFields: number;\n isTertiary: boolean;\n}\n\nexport function InviteFormInputGroup(props: InviteFormInputGroupProps): JSX.Element {\n const { fields, setFields, minFields, maxFields, isTertiary } = props;\n\n const fieldCount = React.useMemo(() => fields.filter(f => !!f.data.email).length, [fields]);\n\n function onChangeFieldData(index: number, field: keyof InviteFormInputData, data: InviteFormInputData): void {\n if (index > fields.length)\n return;\n\n setFields(fields => {\n const newData = [...fields];\n newData[index].data = data;\n\n // remove any errors for the field\n if (newData[index]?.error && newData[index]?.error[field]) {\n delete newData[index].error[field];\n }\n\n const recalculatedFields = InputGroupHelper.recalculateFields(index, newData, minFields, maxFields);\n\n return recalculatedFields || newData;\n });\n }\n\n function clearInputs(index: number): void {\n if (index > fields.length)\n return;\n\n setFields(fields => {\n const newData = [...fields];\n newData[index].data.firstName = '';\n newData[index].data.email = '';\n\n // remove any errors for the field\n const recalculatedFields = InputGroupHelper.recalculateFields(index, newData, minFields, maxFields);\n\n return recalculatedFields || newData;\n });\n }\n\n return (\n <div className='px-3'>\n <EmptyState.Image\n src={ImageUrls.SignUp.INVITE_COLLEAGUE}\n className='d-block mx-auto'\n />\n <h2 className='h5 text-center'>\n <Text namespace={namespace} phrase={isTertiary ? 'inviteHeadingTertiary' : 'inviteHeading'} />\n </h2>\n <p className='text-center'>\n <Text namespace={namespace} phrase='inviteSubheading' />\n </p>\n <div className='row fw-bold mb-2'>\n <div className='col-4'>\n <Text namespace={namespace} phrase='firstName' />\n </div>\n <div className='col-8 ps-0'>\n <Text namespace={namespace} phrase='workEmailAddress' />\n <span className='text-danger'>*</span>\n </div>\n </div>\n {fields.map((item, index) => (\n <InviteFormInputItem\n input={item}\n key={index}\n index={index}\n onChange={(field, newData) => onChangeFieldData(index, field, newData)}\n clearInputs={() => clearInputs(index)}\n />\n ))}\n <div className='pt-2 pb-3'>\n <SpinnerButton showSpinner={props.showSpinner} variant='dark' className='btn-lg w-100' onClick={props.onSubmit}>\n <Text namespace={namespace} phrase='btnInvite' options={{ smartCount: fieldCount || 1 }} />\n </SpinnerButton>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { InviteFormInput } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nconst namespace = 'signUp.invite.inviteFormSuccess';\n\ninterface InviteFormSuccessProps {\n fields: InviteFormInput[];\n onInviteMore: (event: React.MouseEvent) => void;\n}\n\nexport function InviteFormSuccess(props: InviteFormSuccessProps): JSX.Element {\n if (!props.fields?.length)\n return;\n\n return (\n <div className='text-center px-3'>\n <EmptyState.Image\n src={ImageUrls.SignUp.INVITE_COLLEAGUE_SUCCESS}\n className='d-block mx-auto'\n />\n <h2 className='h4'><Text namespace={namespace} phrase='inviteSent' /></h2>\n <p className='mb-0'><Text namespace={namespace} phrase='emailSentTo' /></p>\n <div className='mb-3'>\n {props.fields.map((item, index) => {\n const { firstName, email } = item.data;\n\n if (!email)\n return;\n\n return (\n <p className='mb-0' key={index}>\n {!!firstName.length &&\n <strong>{firstName}</strong>\n }\n \n ({email})\n </p>\n );\n })}\n </div>\n <p>\n <Text namespace={namespace} phrase='moreInvite' /> \n <a\n onClick={props.onInviteMore}\n className='info-link p-0'\n >\n <Text namespace={namespace} phrase='inviteMore' />\n </a>\n </p>\n </div>\n );\n}","import React from 'react';\n\nimport { InviteFormInputGroup } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputGroup';\nimport { InviteFormInput } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\nimport { InviteFormSuccess } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-success/InviteFormSuccess';\n\ninterface InviteFormProps {\n maxFields: number;\n minFields: number;\n fields: InviteFormInput[];\n setFields: React.Dispatch<React.SetStateAction<InviteFormInput[]>>\n showSpinner: boolean;\n completed: boolean;\n onSubmit: () => Promise<void>;\n onInviteMore: () => void;\n isTertiary: boolean;\n}\n\nexport function InviteForm(props: InviteFormProps): JSX.Element {\n const { fields, setFields, showSpinner, onSubmit } = props;\n\n function onInviteMore(event: React.MouseEvent) {\n event.preventDefault();\n props.onInviteMore();\n }\n \n if (!fields.length)\n return <></>;\n\n if (props.completed) {\n return <InviteFormSuccess fields={fields} onInviteMore={onInviteMore} />;\n }\n \n return (\n <InviteFormInputGroup\n fields={fields}\n setFields={setFields}\n showSpinner={showSpinner}\n onSubmit={onSubmit}\n maxFields={props.maxFields}\n minFields={props.minFields}\n isTertiary={props.isTertiary}\n />\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nconst namespace = 'signUp.invite.inviteTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type InviteTabs = 'inviteForm' | 'pendingInvites';\n\ninterface InviteTabsProps {\n activeTab: InviteTabs;\n onChangeTab: (tab: InviteTabs) => void;\n}\n\nexport function InviteTabs(props: InviteTabsProps): JSX.Element {\n const tabs: PillTab[] = [{\n name: getPhrase('invite'),\n onSelect: () => props.onChangeTab('inviteForm'),\n active: props.activeTab === 'inviteForm',\n analyticsData: {\n name: getPhrase('invite')\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('pending'),\n onSelect: () => props.onChangeTab('pendingInvites'),\n active: props.activeTab === 'pendingInvites',\n analyticsData: {\n name: getPhrase('pending')\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n \n return (\n <PillTabSelector\n className='d-flex justify-content-center mb-3'\n tabs={tabs}\n />\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'signUp.invite.pendingInvites';\n\ninterface EmptyPendingInvitesProps {\n onInviteMore: () => void;\n}\n\nexport function EmptyPendingInvites(props: EmptyPendingInvitesProps): JSX.Element {\n function onInviteMore(event: React.MouseEvent): void {\n event.preventDefault();\n props.onInviteMore();\n }\n \n return (\n <div className='text-center py-4 px-3'>\n <EmptyState.Image\n src={ImageUrls.SignUp.EMPTY_PENDING_INVITES}\n className='d-block mx-auto'\n />\n <h2 className='h5 mb-0'>\n <Text namespace={namespace} phrase='emptyTitle' />\n </h2>\n <p>\n <Text namespace={namespace} phrase='emptyDescription' />\n \n <a onClick={onInviteMore} className='info-link'>\n <Text namespace={namespace} phrase='emptyAction' />\n </a>\n </p>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"cin_G\",\"oneLine\":\"FrlTw\",\"twoLine\":\"rBQWR\",\"minPendingHeight\":\"LMnOk\"};","import React from 'react';\n\nimport styles from './pending-invites.scss';\n\nfunction PartialPendingInvitesItem() {\n return (\n <div className='d-flex mb-2 justify-content-between'>\n <div className='col-8 d-flex align-items-center'>\n <div className={`partial-loading-background rounded-circle ${styles.avatar}`}></div>\n <div className='ms-2 w-100'>\n <div className={`partial-loading-background mb-1 w-50 ${styles.oneLine}`}></div>\n <div className={`partial-loading-background w-100 ${styles.oneLine}`}></div>\n </div>\n </div>\n <div className='col d-flex align-items-center justify-content-end'>\n <div className={`partial-loading-background w-100 ${styles.twoLine}`}></div>\n </div>\n </div>\n );\n}\n\nexport function PartialPendingInvites() {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background w-25 m-2 ${styles.oneLine}`}></div>\n {Array(6).fill(null).map((item, index) => <PartialPendingInvitesItem key={index} />)}\n </div>\n );\n}","export enum InviteStatus {\n Active = 'Active',\n Accepted = 'Accepted',\n Expired = 'Expired'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DropdownActionOptions } from 'libs/shared/components/actions/ActionsDropdown';\n\nimport { InviteStatus } from 'apps/sign-up/enums/InviteStatus';\n\nconst namesapce = 'signUp.helpers';\nconst getPhrase = LanguageService.encloseNamespace(namesapce);\n\ninterface ItemActionsOptions {\n status: InviteStatus,\n resendInvite: () => void,\n removeInvite: () => void\n}\n\nexport const PendingInvitesHelper = {\n getItemActions(options: ItemActionsOptions): DropdownActionOptions[] {\n const { status, resendInvite, removeInvite } = options;\n\n if (status === InviteStatus.Accepted) return [];\n \n const actions: DropdownActionOptions[] = [\n {\n label: getPhrase('resendInvite'),\n onClick: resendInvite\n },\n {\n label: getPhrase('removeInvite'),\n onClick: removeInvite,\n className: 'text-danger'\n }\n ];\n \n return actions;\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { InviteStatus } from 'apps/sign-up/enums/InviteStatus';\n\nconst namespace = 'signUp.invite.inviteStatusInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InviteStatusInfoProps {\n status: InviteStatus;\n}\n\nexport function InviteStatusInfo(props: InviteStatusInfoProps): JSX.Element {\n if (props.status === InviteStatus.Accepted) {\n return (\n <InviteStatusInfoFrame\n extraContainerClass='text-success'\n renderSvg={() => (\n <SvgContainer\n size={SvgContainerSize.Small}\n svgName={cvSvgLibrary.Check}\n />\n )}\n text={getPhrase('accepted')}\n />\n );\n }\n\n if (props.status === InviteStatus.Active) {\n return (\n <InviteStatusInfoFrame\n renderSvg={() => (\n <SvgContainer\n size={SvgContainerSize.Small}\n svgName={cvSvgLibrary.PendingCircle}\n className='d-inline-block svg-container text-info'\n />\n )}\n extraTextClass='text-secondary'\n text={getPhrase('active')}\n />\n );\n }\n\n if (props.status === InviteStatus.Expired) {\n return (\n <InviteStatusInfoFrame\n extraContainerClass='text-danger'\n renderSvg={() => (\n <SvgContainer\n size={SvgContainerSize.Small}\n svgName={cvSvgLibrary.Close}\n className='d-inline-block svg-container'\n />\n )}\n text={getPhrase('expired')}\n />\n );\n }\n\n return <></>;\n}\n\ninterface InviteStatusInfoFrameProps {\n text: string;\n\n renderSvg?: () => React.ReactElement;\n extraContainerClass?: string;\n extraTextClass?: string;\n}\n\nfunction InviteStatusInfoFrame(props: InviteStatusInfoFrameProps): JSX.Element {\n function mergeClassNames(baseClass: string, extraClass: string): string {\n if (extraClass)\n return `${baseClass} ${extraClass}`;\n\n return baseClass;\n }\n\n const containerClass = mergeClassNames('d-flex align-items-center', props.extraContainerClass);\n const textClass = mergeClassNames('ps-1', props.extraTextClass);\n \n return (\n <div className={containerClass}>\n {props.renderSvg && props.renderSvg()}\n <small className={textClass}>\n {props.text}\n </small>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"VsdKR\",\"email\":\"L65Cs\"};","import React from 'react';\n\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { PendingInvitesHelper } from 'apps/sign-up/helpers/PendingInvitesHelper';\nimport { Invitation } from 'apps/sign-up/models/Invitation';\nimport { InviteStatusInfo } from 'apps/sign-up/views/invite-colleague/components/invite/invite-status-info/InviteStatusInfo';\n\nimport styles from './pending-invites-item.scss';\n\ninterface PendingInvitesItemProps {\n imageCdnUrl: string;\n invite: Invitation;\n removeInvite: (id: string) => void;\n resendInvite: (id: string) => void;\n}\n\ninterface InviteAvatarProps {\n imageCdnUrl: string;\n initial: string;\n userId: string;\n}\n\nfunction InviteAvatar(props: InviteAvatarProps): JSX.Element {\n if (props.initial) {\n return (\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.initial}\n />\n );\n }\n\n return (\n <div className='d-flex align-items-center justify-content-center rounded-circle bg-dark text-white w-100 h-100'>\n <SvgContainer svgName={cvSvgLibrary.Email} size={SvgContainerSize.Large} />\n </div>\n );\n}\n\nexport function PendingInvitesItem(props: PendingInvitesItemProps): JSX.Element {\n const { invitee, status } = props.invite;\n const email = invitee?.email ?? props.invite.metadata.email;\n const actions = PendingInvitesHelper.getItemActions({\n status,\n resendInvite: () => props.resendInvite(props.invite.id),\n removeInvite: () => props.removeInvite(props.invite.id)\n });\n const firstName = props.invite.metadata?.firstName;\n const initial = firstName?.substr(0, 1);\n \n return (\n <div className='d-flex mb-2 justify-content-between px-3'>\n <div className='d-flex align-items-center ps-0'>\n <div className={styles.avatar}>\n <InviteAvatar\n initial={initial}\n userId={invitee?.userId}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n <div className='ms-2'>\n {!!firstName &&\n <h3 className='h6 mb-0'>{firstName}</h3>\n }\n <p\n className={`mb-0 text-secondary w-100 text-truncate ${styles.email}`}\n title={email}\n >\n {email}\n </p>\n </div>\n </div>\n <div className='d-flex align-items-center justify-content-between pe-0'>\n <InviteStatusInfo status={status} />\n {!!actions.length &&\n <ActionsDropdown\n dropdownToggleClassName='btn btn-link ms-1'\n actions={actions}\n />\n }\n </div>\n </div>\n );\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Invitation } from 'apps/sign-up/models/Invitation';\nimport { EmptyPendingInvites } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites/EmptyPendingInvites';\nimport { PartialPendingInvites } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites/PartialPendingInvites';\nimport { PendingInvitesItem } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites-item/PendingInvitesItem';\n\nimport styles from './pending-invites.scss';\n\nconst namespace = 'signUp.invite.pendingInvites';\n\ninterface PendingInvitesProps {\n imageCdnUrl: string;\n invites: Invitation[];\n isLoading: boolean;\n removeInvite: (id: string) => void;\n resendInvite: (id: string) => void;\n onInviteMore: () => void;\n}\n\nexport function PendingInvites(props: PendingInvitesProps): JSX.Element {\n if (props.isLoading) {\n return <PartialPendingInvites />;\n }\n \n if (!props?.invites?.length) {\n return <EmptyPendingInvites onInviteMore={props.onInviteMore} />;\n }\n\n return (\n <div className='px-1'>\n <h3 className='h6 px-3'>\n <Text namespace={namespace} phrase='heading' />\n </h3>\n <Scrollbars\n className={`${styles.minPendingHeight}`}\n >\n {props.invites.map((item, index) => (\n <PendingInvitesItem\n key={index}\n invite={item}\n imageCdnUrl={props.imageCdnUrl}\n removeInvite={props.removeInvite}\n resendInvite={props.resendInvite}\n />\n ))}\n </Scrollbars>\n </div>\n );\n}","/**\n * Differe ways we can invite prospects.\n * @readonly\n * @enum {string}\n */\nexport enum InviteType {\n Link = 'link',\n Direct = 'direct'\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'signUp.invite.shareInviteLink';\n\ninterface ShareInviteLinkProps {\n link: string;\n showSpinner: boolean;\n onClickCreate: () => void;\n onClickDelete: () => void;\n}\n\nexport function ShareInviteLink(props: ShareInviteLinkProps): JSX.Element {\n if (props.showSpinner) {\n return (\n <div className='text-center w-100'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n }\n \n return (\n <div className='w-100'>\n <div className='d-flex justify-content-between'>\n <h2 className='h6'><Text namespace={namespace} phrase='title' /></h2>\n {props.link &&\n <button className='btn btn-link info-link p-0 mb-2' onClick={props.onClickDelete}>\n <Text namespace={namespace} phrase='delete' />\n </button>\n }\n </div>\n \n {props.link\n ? <CopyInput value={props.link} />\n : <div className='d-flex w-100 justify-content-between'>\n <div>\n <SvgContainer svgName={cvSvgLibrary.Link} className='me-2 d-inline-block svg-container' />\n <Text namespace={namespace} phrase='generate' />\n </div>\n <button className='btn info-link p-0' onClick={props.onClickCreate}>\n <Text namespace={namespace} phrase='create' />\n </button>\n </div>\n }\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"minHeight\":\"tWSzO\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Config, CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\nimport { InviteColleagueXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\nimport { ErrorMessageHelper } from 'libs/shared/utils/error-message-helper/ErrorMessageHelper';\n\nimport { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { InviteColleagueRequests } from 'apps/sign-up/flight-requests/InviteColleagueRequests';\nimport { InputGroupHelper } from 'apps/sign-up/helpers/InputGroupHelper';\nimport { InviteValidationHelper } from 'apps/sign-up/helpers/InviteValidationHelper';\nimport { Invitation } from 'apps/sign-up/models/Invitation';\nimport { InviteForm } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form/InviteForm';\nimport { InviteFormInput, InviteFormInputData } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\nimport { InviteTabs } from 'apps/sign-up/views/invite-colleague/components/invite/invite-tabs/InviteTabs';\nimport { PendingInvites } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites/PendingInvites';\nimport { ShareInviteLink } from 'apps/sign-up/views/invite-colleague/components/invite/share-invite-link/ShareInviteLink';\nimport { useSplitInvites } from 'apps/sign-up/views/invite-colleague/useSplitInvites';\n\nimport styles from './invite-colleague.scss';\n\nconst namespace = 'signUp.inviteColleage';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MIN_FIELDS = 1;\nconst MAX_FIELDS = 5;\n\ninterface InviteColleagueViewProps extends PopupViewProps {\n tab: InviteTabs;\n}\n\nexport interface FormSubmitResponse {\n data: InviteFormInput[];\n hasErrors: boolean;\n}\n\nexport function InviteColleagueView(props: InviteColleagueViewProps): JSX.Element {\n const [ tab, setTab ] = React.useState<InviteTabs>(props.tab);\n const [ showShareLinkSpinner, setShowShareLinkSpinner ] = React.useState<boolean>(false);\n const [ formCompleted, setFormCompleted ] = React.useState(false);\n\n const [ showFormSpinner, setShowFormSpinner ] = React.useState(false);\n const [ fields, setFields ] = React.useState<InviteFormInput[]>(() => [InputGroupHelper.getNewEmptyField()]);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const invites = Flight.useBasicFetch<Invitation[]>(InviteColleagueRequests.inviteByType());\n\n const { directInvites, links } = useSplitInvites(invites.data);\n const link = links?.[0];\n\n async function onClickCreateLink(): Promise<void> {\n setShowShareLinkSpinner(true);\n\n try {\n await fetchAsync(InviteColleagueRequests.createInviteLink());\n } catch {\n alerts.error(getPhrase('error'));\n } finally {\n setShowShareLinkSpinner(false);\n }\n }\n\n async function onClickDeleteLink(): Promise<void> {\n try {\n await fetchAsync(InviteColleagueRequests.deleteInvite(link.id));\n alerts.success(getPhrase('deleteLinkSuccess'));\n } catch (err) {\n alerts.error(ErrorMessageHelper.inviteColleagueError(err));\n }\n }\n\n async function onFormSubmit() {\n if (showFormSpinner) return;\n \n const { fieldsWithErrors, hasErrors } = InviteValidationHelper.validate(fields);\n if (hasErrors) {\n setFields(fieldsWithErrors);\n return;\n }\n \n try {\n setShowFormSpinner(true);\n const validFieldsData: InviteFormInputData[] = InputGroupHelper.getValidFieldsData(fields);\n await fetchAsync(InviteColleagueRequests.invite(validFieldsData));\n setFormCompleted(true);\n logSuccess(validFieldsData.length);\n return;\n } catch (err) {\n const error = err as InviteColleagueXhr;\n\n if (error.responseJSON?.type !== 'create-invitation-failed') {\n alerts.error(ErrorMessageHelper.inviteColleagueError(error));\n return;\n }\n\n const inputsWithErrors = InputGroupHelper.getInputWithErrors(fields, error);\n\n setFields(inputsWithErrors);\n } finally {\n setShowFormSpinner(false);\n }\n }\n\n function logSuccess(emailCount: number) {\n AnalyticsHelper.logUserAction({ emailCount }, {\n actionType: UserAction.SendEmail,\n location: LocationContext.TrialBanner,\n entity: EntityType.User,\n descriptor: SignUpDescriptors.InviteColleague,\n workflowPhase: WorkflowPhase.Complete\n });\n }\n\n function handleInviteMore() {\n setFormCompleted(false);\n setFields([InputGroupHelper.getNewEmptyField()]);\n if (tab !== 'inviteForm') {\n setTab('inviteForm');\n setShowFormSpinner(false);\n }\n }\n\n async function handleRemoveInvite(id: string): Promise<void> {\n try {\n await fetchAsync(InviteColleagueRequests.deleteInvite(id));\n alerts.success(getPhrase('removeSuccess'));\n } catch (err) {\n alerts.error(ErrorMessageHelper.inviteColleagueError(err));\n }\n }\n\n async function handleResendInvite(id: string): Promise<void> {\n try {\n await fetchAsync(InviteColleagueRequests.resendInvite(id));\n alerts.success(getPhrase('resendSuccess'));\n } catch (err) {\n alerts.error(ErrorMessageHelper.inviteColleagueError(err));\n }\n }\n\n const hasLoaded = (currentUser.hasCompleted && config.hasCompleted && invites.hasCompleted);\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n bodyClassName='modal-body px-0'\n showLoadingSpinner={!hasLoaded}\n >\n {hasLoaded &&\n <>\n <div className={styles.minHeight}>\n\n {!formCompleted &&\n <InviteTabs activeTab={tab} onChangeTab={tab => setTab(tab)} />\n }\n\n {(() => {\n if (tab === 'pendingInvites')\n return (\n <PendingInvites\n imageCdnUrl={config.data.imageCdnUrl}\n invites={directInvites}\n onInviteMore={handleInviteMore}\n removeInvite={handleRemoveInvite}\n resendInvite={handleResendInvite}\n isLoading={!invites.hasCompleted}\n />\n );\n\n return (\n <InviteForm\n fields={fields}\n setFields={setFields}\n showSpinner={showFormSpinner}\n completed={formCompleted}\n onSubmit={onFormSubmit}\n onInviteMore={handleInviteMore}\n maxFields={MAX_FIELDS}\n minFields={MIN_FIELDS}\n isTertiary={isTertiary}\n />\n );\n })()}\n\n </div>\n\n {!formCompleted &&\n <div className='px-3'>\n <PopupButtons>\n <ShareInviteLink\n onClickCreate={onClickCreateLink}\n onClickDelete={onClickDeleteLink}\n link={link?.inviteUrl}\n showSpinner={showShareLinkSpinner}\n />\n </PopupButtons>\n </div>\n }\n </>\n }\n </Popup>\n );\n}","import React from 'react';\n\nimport { InviteType } from 'apps/sign-up/enums/InviteType';\nimport { Invitation } from 'apps/sign-up/models/Invitation';\n\nexport function useSplitInvites(invites: Invitation[]) {\n return React.useMemo(() => {\n if (!invites) {\n return { directInvites: null, links: null };\n }\n\n return invites.reduce((prev, curr) => {\n if (curr.type === InviteType.Direct) {\n prev.directInvites.push(curr);\n return prev;\n }\n\n prev.links.push(curr);\n return prev;\n }, {\n directInvites: [] as Invitation[],\n links: [] as Invitation[]\n });\n }, [invites]);\n}","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["CloseIcon","viewBox","d","ClearableInput","props","ref","onClickClear","showClearButton","clearClassName","inputProps","className","value","role","onClick","onKeyDown","e","key","tabIndex","getPhrase","LanguageService","CopyInput","showCopiedText","localShowCopiedText","setLocalShowCopiedText","revertLocalShowCopiedText","setTimeout","onCopy","input","styling","textarea","hasInputBg","spellCheck","rows","readOnly","type","autoComplete","CopyToClipboard","text","IconButton","svgName","extraButtonClassNames","copiedText","copyText","label","Form","defaultProps","TabContents","tab","name","count","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","appLink","analyticsData","analyticsOptions","onSelect","onSelectTab","InviteColleagueRequests","invite","url","normalize","HttpVerbs","invalidationKeys","inviteByType","deleteInvite","id","resendInvite","createInviteLink","ErrorPhraseMap","InputGroupHelper","recalculateFields","inputFields","minFields","maxFields","cleanFields","this","length","removeField","lastInviteData","enteredDataOnLastField","firstName","email","shouldAddField","addField","getValidFieldsData","fields","reduce","previous","current","getInputWithErrors","error","inputsWithErrors","problems","responseJSON","forEach","find","item","errorCode","filter","_","idx","getNewEmptyField","emailRegex","RegExp","firstNameRegex","InviteValidationHelper","validate","fieldsWithErrors","hasErrors","currentItemError","validateFirstName","validateEmail","test","InviteFormInputItem","onChange","field","newData","placeholder","event","preventDefault","target","clearInputs","dangerouslySetInnerHTML","__html","InviteFormInputGroup","setFields","isTertiary","fieldCount","f","EmptyState","src","ImageUrls","Text","namespace","phrase","onChangeFieldData","SpinnerButton","showSpinner","variant","onSubmit","options","smartCount","InviteFormSuccess","onInviteMore","InviteForm","completed","InviteTabs","onChangeTab","activeTab","actionType","entity","location","EmptyPendingInvites","PartialPendingInvitesItem","PartialPendingInvites","Array","fill","InviteStatus","PendingInvitesHelper","getItemActions","status","removeInvite","Accepted","InviteStatusInfo","InviteStatusInfoFrame","extraContainerClass","renderSvg","SvgContainer","size","S","Active","extraTextClass","Expired","mergeClassNames","baseClass","extraClass","containerClass","textClass","InviteAvatar","initial","Avatar","imageCdnUrl","initials","PendingInvitesItem","invitee","metadata","actions","substr","userId","title","ActionsDropdown","dropdownToggleClassName","PendingInvites","isLoading","invites","InviteType","ShareInviteLink","Spinner","as","animation","link","onClickDelete","onClickCreate","MIN_FIELDS","MAX_FIELDS","InviteColleagueView","setTab","showShareLinkSpinner","setShowShareLinkSpinner","formCompleted","setFormCompleted","showFormSpinner","setShowFormSpinner","fetchAsync","alerts","useIsTertiary","currentUser","UserRequests","config","ConfigRequests","prev","curr","Direct","directInvites","push","links","useSplitInvites","logSuccess","emailCount","AnalyticsHelper","descriptor","workflowPhase","handleInviteMore","hasLoaded","hasCompleted","Popup","closePopup","bodyClassName","showLoadingSpinner","success","ErrorMessageHelper","validFieldsData","PopupButtons","inviteUrl","deselectCurrent","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","document","createRange","getSelection","createElement","textContent","ariaHidden","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","window","clearData","setData","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","copyKey","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","i","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","_React$PureComponent","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","call","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","_this","instance","_classCallCheck","_len","args","_key","concat","_this$props","children","elem","Children","only","_this$props2","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","cloneElement","PureComponent","undefined","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""}
|