@clickview/lite 0.81.1 → 0.81.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/lite",
3
- "version": "0.81.1",
3
+ "version": "0.81.3",
4
4
  "description": "ClickView Lite",
5
5
  "main": "dist/scripts/bundle.js",
6
6
  "types": "dist/projects/lite/src/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1969-800b184fc1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/components/steps/add-to-braze-step-item/JobTitleInput.tsx","file:///app/packages/libs/shared/src/apps/sign-up/enums/ProspectLookup.ts","file:///app/packages/libs/shared/src/apps/sign-up/utils/getJobTitles.ts","file:///app/packages/libs/shared/src/components/forms/form-feedback/FormFeedback.tsx","file:///app/packages/projects/lite/src/apps/onboarding/views/select-role/select-role.scss","file:///app/packages/projects/lite/src/apps/onboarding/views/select-role/OnboardingSelectRoleView.tsx","file:///app/packages/projects/lite/src/apps/sign-up/helpers/UpgradeHelper.ts"],"sourcesContent":["import React from 'react';\n\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { getJobTitles } from 'libs/shared/apps/sign-up/utils/getJobTitles';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\n\nconst OTHER_VALUE = 'OTHER';\n\nfunction getInitialSelection(initialValue: JobTitles | string, jobTitles: JobTitles[]): JobTitles | '' | typeof OTHER_VALUE {\n if (jobTitles.includes(initialValue as JobTitles))\n return initialValue as JobTitles;\n\n if (initialValue)\n return OTHER_VALUE;\n\n return '';\n}\n\ninterface JobTitleInputProps {\n id: string;\n error: string;\n onChange: (jobTitle: JobTitles | '') => void;\n countryCode: CountryCode;\n placeholder?: string;\n initialValue?: JobTitles | string;\n size?: 'lg'\n labelClassName?: string;\n required?: boolean;\n isTertiary: boolean;\n}\n\nexport function JobTitleInput(props: JobTitleInputProps): JSX.Element {\n const {\n error,\n onChange,\n countryCode,\n isTertiary\n } = props;\n\n const jobTitles = getJobTitles({ countryCode, isTertiary });\n\n const initialSelection = getInitialSelection(props.initialValue, jobTitles);\n\n const [ selection, setSelection ] = React.useState<JobTitles | '' | typeof OTHER_VALUE>(initialSelection);\n const [ other, setOther ] = React.useState(initialSelection === OTHER_VALUE ? props.initialValue : '');\n\n React.useEffect(() => {\n setSelection(getInitialSelection(props.initialValue, jobTitles));\n }, [props.initialValue]);\n\n function onChangeSelection(event: React.ChangeEvent<HTMLSelectElement>): void {\n setSelection(event.target.value as JobTitles);\n setOther('');\n onChange(event.target.value === OTHER_VALUE ? '' : event.target.value as JobTitles);\n }\n\n function onChangeOther(event: React.ChangeEvent<HTMLInputElement>): void {\n setOther(event.target.value);\n onChange(event.target.value as JobTitles);\n }\n\n const showOther = selection === OTHER_VALUE;\n\n return (\n <div className='form-group'>\n <label htmlFor={props.id} className={props.labelClassName}>\n Job title\n {props.required && <span className='text-danger'>*</span>}\n </label>\n <div className='mb-2'>\n <select\n id={props.id}\n name={props.id}\n className={`form-select ${props.size === 'lg' ? 'form-select-lg' : ''} ${selection.length ? 'text-dark' : 'text-secondary'} ${!!error && 'is-invalid'}`}\n value={selection}\n placeholder='Role'\n onChange={onChangeSelection}\n >\n <option value='' disabled className='text-secondary'>\n {props.placeholder ? props.placeholder : <>What do you do?</>}\n </option>\n {jobTitles.map((title, key) => <option value={title} className='text-dark' key={key}>{title}</option>)}\n <option value={OTHER_VALUE} className='text-dark'>Other</option>\n </select>\n {!!error && !showOther && <FormFeedback name={props.id}>{error}</FormFeedback>}\n </div>\n {showOther &&\n <div className='mb-3'>\n <input\n className={`form-control ${props.size === 'lg' ? 'form-select-lg' : ''} ${!!error && 'is-invalid'}`}\n type='text'\n value={other}\n placeholder='What do you do?'\n autoFocus\n onChange={onChangeOther}\n />\n {!!error && <FormFeedback name={props.id}>{error}</FormFeedback>}\n </div>\n }\n </div>\n );\n}","/**\n * There are more lookup types than this, but these are the only\n * ones the product should really care about - Sha\n */\nexport enum ProspectLookupType {\n MasterId = 'master_id',\n CrmId = 'crm_id',\n SalesforceId = 'salesforce_id'\n}\n\nexport interface ProspectLookup {\n prospectId: string;\n externalId: string;\n type: ProspectLookupType;\n}","import { AuK12JobTitles, AuTertiaryJobTitles, CaK12JobTitles, JobTitles, NzK12JobTitles, UkK12JobTitles, UkTertiaryJobTitles, UsK12JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\n\nconst AU_K12_JOB_TITLES: AuK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Curriculum Coordinator',\n 'Digital Technology Coordinator',\n 'SSO / SLSO',\n 'IT',\n 'Head of Department',\n 'Head of Subject',\n 'Assistant Principal',\n 'Deputy Principal',\n 'Principal',\n 'Business Manager'\n];\n\nconst UK_K12_JOB_TITLES: UkK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'IT/LRC',\n 'e-Learning/ICT Coordinator',\n 'Head of Key Stage',\n 'Head of Department',\n 'Subject Lead',\n 'Assistant Head Teacher',\n 'Deputy Head Teacher',\n 'Head Teacher'\n];\n\nconst US_K12_JOB_TITLES: UsK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Head of Department',\n 'Instructional Technology Specialist',\n 'Curriculum Coordinator',\n 'School Leadership',\n 'District Leadership',\n 'Academic Coach',\n 'Principal',\n 'IT / IT Specialist'\n];\n\nconst NZ_K12_JOB_TITLES: NzK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Curriculum Leader',\n 'e-Learning Coordinator',\n 'IT',\n 'Head of Department',\n 'Head of Faculty',\n 'Learning Support',\n 'Learning Assistant',\n 'Deputy Principal',\n 'Assistant Principal',\n 'Principal'\n];\n\nconst CA_K12_JOB_TITLES: CaK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Educational Assistant (EA)',\n 'Learning Support Teacher / Resource Teacher',\n 'Department Head / Manager',\n 'Curriculum Coordinator / Consultant',\n 'School Counsellor / Guidance Counsellor',\n 'Vice-Principal',\n 'Principal',\n 'Superintendent',\n 'Director of Education'\n];\n\nconst AU_TERTIARY_JOB_TITLES: AuTertiaryJobTitles[] = [\n 'Professor',\n 'Lecturer',\n 'Course Coordinator / Administrator',\n 'Digital Learning Manager',\n 'Tutor',\n 'Teaching Fellow',\n 'Librarian',\n 'Learning Technologist',\n 'Teaching Assistant',\n 'Researcher',\n 'IT'\n];\n\nconst UK_TERTIARY_JOB_TITLES: UkTertiaryJobTitles[] = [\n 'Professor',\n 'Lecturer',\n 'Course Coordinator / Administrator',\n 'Digital Learning Manager',\n 'Tutor',\n 'Teaching Fellow',\n 'Librarian',\n 'Learning Technologist',\n 'Teacher',\n 'Teaching Assistant',\n 'Researcher',\n 'IT'\n];\n\nconst K12_JOB_TITLES: Record<string, JobTitles[]> = {\n [CountryCode.AU]: AU_K12_JOB_TITLES,\n [CountryCode.NZ]: NZ_K12_JOB_TITLES,\n [CountryCode.UK]: UK_K12_JOB_TITLES,\n [CountryCode.US]: US_K12_JOB_TITLES,\n [CountryCode.CA]: CA_K12_JOB_TITLES\n};\n\nconst TERTIARY_JOB_TITLES: Record<string, JobTitles[]> = {\n [CountryCode.AU]: AU_TERTIARY_JOB_TITLES,\n [CountryCode.UK]: UK_TERTIARY_JOB_TITLES\n};\n\ntype Options = {\n countryCode: CountryCode;\n isTertiary: boolean;\n};\n\nexport function getJobTitles(options: Options): JobTitles[] {\n const key = options.countryCode?.toLowerCase();\n\n if (options.isTertiary)\n return TERTIARY_JOB_TITLES[key] || AU_TERTIARY_JOB_TITLES; // Default to AU Tertiary if not found\n\n return K12_JOB_TITLES[key] || US_K12_JOB_TITLES; // Default to US K12 if not found\n}\n\nexport function isLearnerJobTitle(jobTitle: string): boolean {\n return jobTitle?.toLowerCase().includes('student') ||\n jobTitle?.toLowerCase().includes('parent');\n}","import React from 'react';\n\ninterface FormFeedbackProps extends React.PropsWithChildren {\n name: string;\n className?: string;\n}\n\nexport function FormFeedback(props: FormFeedbackProps) {\n return (\n <span id={`${props.name}Error`} className={`${props.className} invalid-feedback d-block`} role='status'>{props.children}</span>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"customerLogo\":\"O0Fk5\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { OnboardingDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { OnboardingScreenConfigs } from 'libs/shared/apps/onboarding/constants/OnboardingScreenConfigs';\nimport { OnboardingPathwayHelper } from 'libs/shared/apps/onboarding/utils/OnboardingPathwayHelper';\nimport { OnboardingStorageHelper } from 'libs/shared/apps/onboarding/utils/OnboardingStorageHelper';\nimport { JobTitleInput } from 'libs/shared/apps/sign-up/components/steps/add-to-braze-step-item/JobTitleInput';\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, User } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { OnboardingScreenHeading } from 'apps/onboarding/components/heading/OnboardingScreenHeading';\nimport { OnboardingScreenInfo } from 'apps/onboarding/components/info/OnboardingScreenInfo';\nimport { OnboardingLayout } from 'apps/onboarding/components/layout/OnboardingLayout';\nimport { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { useOnboardingCallbacks } from 'apps/onboarding/hooks/useOnboardingCallbacks';\nimport { useOnboardingEventLogger } from 'apps/onboarding/hooks/useOnboardingEventLogger';\nimport { OnboardingViewProps } from 'apps/onboarding/interfaces/OnboardingViewProps';\nimport { UpgradeHelper } from 'apps/sign-up/helpers/UpgradeHelper';\n\nimport styles from './select-role.scss';\n\nconst namespace = 'onboarding.selectRole';\n\nexport function OnboardingSelectRoleView(props: OnboardingViewProps): JSX.Element {\n const { onClickBack, exitOnboarding, completeStepAsync, onSaveError } = useOnboardingCallbacks(props.redirectUrl);\n const { logEvent } = useOnboardingEventLogger();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const masterUser = Flight.useBasicFetch<User>(currentUser.data && UserRequests.user(currentUser.data.id));\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const { hasPermissions } = usePermissions();\n useSetPageMetadata({ title: OnboardingScreenConfigs['select-role'].getPageTitle() });\n const isTertiary = useIsTertiary();\n\n const [ jobTitle, setJobTitle ] = React.useState<JobTitles | ''>('');\n const [ errorMessage, setErrorMessage ] = React.useState<string>('');\n\n function onChangeJobTitle(value: JobTitles | ''): void {\n setJobTitle(value);\n\n logEvent(UserAction.Select, OnboardingDescriptor.SelectJobTitle, {\n jobTitle\n });\n\n const { isValid, errorMessage } = UpgradeHelper.validateJobTitle(value);\n\n if (!isValid) {\n setErrorMessage(errorMessage);\n return;\n }\n\n if (errorMessage)\n setErrorMessage('');\n }\n\n function canComeBackLater(): boolean {\n if (masterUser.data?.userProfile?.metadata?.jobTitle)\n return true;\n\n if (!OnboardingPathwayHelper.hasNonBdmTrial(hasPermissions))\n return true;\n\n // Trial users with no job title can't come back later. They must set their job title.\n return false;\n }\n\n async function onClickNext(): Promise<void> {\n if (!jobTitle)\n return;\n\n logEvent(UserAction.Click, OnboardingDescriptor.Next, {\n jobTitle\n }, {\n jobTitleOverride: jobTitle\n });\n\n OnboardingStorageHelper.removeUsageIntention(currentUser.data?.id);\n\n try {\n await fetchAsync(UserRequests.updateJobTitle(currentUser.data.id, currentUser.data.customerId, jobTitle));\n await completeStepAsync({ jobTitleOverride: jobTitle });\n } catch {\n onSaveError();\n return Promise.reject();\n }\n }\n\n return (\n <OnboardingLayout namespace={namespace}>\n <OnboardingLayout.Left className='bg-ultramarine d-flex align-items-center'>\n <div className='px-5 pt-4'>\n <img className='img-fluid' src={ImageUrls.OnboardingV2.SelectRole.BACKGROUND} />\n </div>\n </OnboardingLayout.Left>\n\n <OnboardingLayout.Right\n hasCustomButtons={false}\n onClickNext={onClickNext}\n onClickBack={onClickBack}\n onClickComeBackLater={canComeBackLater() ? exitOnboarding : null}\n disableNext={!!errorMessage || !jobTitle}\n >\n <div className='position-relative'>\n {!!currentUser.data?.customerLogo && (\n <div className={`${styles.customerLogo} mx-auto mb-3`}>\n <IconCircle\n imageUrl={ImageHelper.createUrl(currentUser.data.customerLogo, { size: ImageSize.Small })}\n svgName={cvSvgLibrary.GraduationCap}\n variant='green'\n svgSize={SvgContainerSize.ExtraLarge}\n />\n </div>\n )}\n\n <OnboardingScreenHeading>\n <Text phrase='heading' />\n </OnboardingScreenHeading>\n </div>\n\n <OnboardingScreenInfo className='mb-3 mt-2'>\n <Text phrase='info' options={{ schoolName: currentUser.data.customerName }} />\n </OnboardingScreenInfo>\n\n <label>\n <Text phrase='roleLabel' />\n </label>\n <JobTitleInput\n id='onboarding-job-title'\n onChange={onChangeJobTitle}\n countryCode={currentUser.data.countryCode}\n placeholder={LanguageService.getPhrase(namespace, 'rolePlaceholder')}\n initialValue={jobTitle}\n error={errorMessage}\n size='lg'\n labelClassName='d-none'\n isTertiary={isTertiary}\n />\n </OnboardingLayout.Right>\n </OnboardingLayout>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { ProspectLookup, ProspectLookupType } from 'libs/shared/apps/sign-up/enums/ProspectLookup';\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nconst BASE_DEMO_PATH = '/book-a-demo/';\nconst BASE_UPGRADE_PATH = '/contact-us/trial-upgrade/';\n\nconst INVALID_JOB_TITLE_REGEX = /\\$+[\\w\\s]?/;\n/**\n * TODO: Should we phone numbers to the config?\n */\nconst CONTACT_NUMBERS = {\n [InstanceRegion.AU]: '02 9509 2600',\n [InstanceRegion.UK]: '+44 (0)333 207 6595',\n [InstanceRegion.NZ]: '09 916 1156',\n [InstanceRegion.US]: null as string\n};\n\nexport const UpgradeHelper = {\n getSalesforceId(lookup: ProspectLookup[]) {\n if (!lookup || !lookup.length) return;\n \n const sfAccountLookup = lookup.find(item => item.type === ProspectLookupType.SalesforceId);\n \n if (!sfAccountLookup) return;\n \n return sfAccountLookup.externalId;\n },\n\n buildQueryData(salesforceId: string, currentUser: CurrentUser) {\n const queryData = {\n id: salesforceId,\n fname: currentUser?.givenName,\n sname: currentUser?.familyName,\n email: currentUser?.email\n };\n return Object.entries(queryData)\n .filter(([ , v ]) => !!v)\n .reduce((acc, [ k, v ]) => ({ ...acc, [k]: v }), {});\n },\n\n getBookDemoUrl(marketingSiteUrl: string, currentUser: CurrentUser, lookups: ProspectLookup[]) {\n const salesforceId = UpgradeHelper.getSalesforceId(lookups);\n \n const demoPath = UrlHelper.safeUrlConcat(marketingSiteUrl, BASE_DEMO_PATH);\n return UrlHelper.urlBuilder(demoPath, UpgradeHelper.buildQueryData(salesforceId, currentUser));\n },\n\n getUpgradePageUrl(marketingSiteUrl: string, currentUser: CurrentUser, lookups: ProspectLookup[]) {\n const salesforceId = UpgradeHelper.getSalesforceId(lookups);\n \n const upgradePath = UrlHelper.safeUrlConcat(marketingSiteUrl, BASE_UPGRADE_PATH);\n return UrlHelper.urlBuilder(upgradePath, UpgradeHelper.buildQueryData(salesforceId, currentUser));\n },\n\n getContactNumber(instanceRegion: InstanceRegion) {\n return CONTACT_NUMBERS[instanceRegion];\n },\n\n validateJobTitle(jobTitle: JobTitles | '') {\n if (INVALID_JOB_TITLE_REGEX.test(jobTitle)) {\n return {\n isValid: false,\n errorMessage: 'Please enter a valid job title.'\n };\n }\n\n if (jobTitle.length > 255) {\n return {\n isValid: false,\n errorMessage: 'Job title cannot exceed max length of 255 characters.'\n };\n }\n\n return {\n isValid: true\n };\n }\n};"],"names":["OTHER_VALUE","getInitialSelection","initialValue","jobTitles","includes","JobTitleInput","props","error","onChange","countryCode","isTertiary","initialSelection","selection","setSelection","other","setOther","showOther","className","htmlFor","id","labelClassName","required","name","size","length","value","placeholder","event","target","disabled","map","title","key","type","autoFocus","ProspectLookupType","US_K12_JOB_TITLES","AU_TERTIARY_JOB_TITLES","K12_JOB_TITLES","C","TERTIARY_JOB_TITLES","getJobTitles","options","toLowerCase","isLearnerJobTitle","jobTitle","FormFeedback","role","children","namespace","OnboardingSelectRoleView","useOnboardingCallbacks","redirectUrl","onClickBack","exitOnboarding","completeStepAsync","onSaveError","logEvent","useOnboardingEventLogger","currentUser","UserRequests","masterUser","data","fetchAsync","hasPermissions","usePermissions","useSetPageMetadata","OnboardingScreenConfigs","useIsTertiary","setJobTitle","errorMessage","setErrorMessage","OnboardingLayout","src","ImageUrls","hasCustomButtons","onClickNext","jobTitleOverride","OnboardingStorageHelper","customerId","Promise","reject","onClickComeBackLater","userProfile","metadata","OnboardingPathwayHelper","canComeBackLater","disableNext","customerLogo","IconCircle","imageUrl","ImageHelper","svgName","variant","svgSize","SvgContainer","S","OnboardingScreenHeading","Text","phrase","OnboardingScreenInfo","schoolName","customerName","UpgradeHelper","isValid","LanguageService","INVALID_JOB_TITLE_REGEX","CONTACT_NUMBERS","getSalesforceId","lookup","sfAccountLookup","find","item","externalId","buildQueryData","salesforceId","queryData","fname","givenName","sname","familyName","email","Object","entries","filter","reduce","acc","k","v","getBookDemoUrl","marketingSiteUrl","lookups","demoPath","getUpgradePageUrl","upgradePath","getContactNumber","instanceRegion","validateJobTitle","test"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7288],{70197:(e,r,t)=>{var s;t.d(r,{q:()=>s}),function(e){e.YearGroupValues="yearGroups.value",e.UserProfilesStatus="userProfiles.status"}(s||(s={}))},47288:(e,r,t)=>{t.d(r,{N:()=>k});var s,a,n=t(99940),o=t(97395),u=t(1048),c=t(39739),i=t(62803),l=t(70197);!function(e){e.yearGroups="yearGroups",e.userProfiles="userProfiles"}(s||(s={})),function(e){e.TermsGroupBy="terms-group-by",e.NestedTermsGroupBy="nested-terms-group-by"}(a||(a={}));var d,y=t(5960),v=t(54610),g=t(78417);function m(e){return m="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},m(e)}function p(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(e){if("string"==typeof e)return f(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?f(e,r):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 f(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,s=Array(r);t<r;t++)s[t]=e[t];return s}function h(e,r,t){return(r=function(e){var r=function(e){if("object"!=m(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=m(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}!function(e){e.Content="content",e.OnlineContent="online_content",e.User="user",e.Customer="customer",e.Tag="tag",e.Organisation="organisation",e.Channel="channel"}(d||(d={}));var k={getUsers:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,n=arguments.length>5?arguments[5]:void 0,u={query:c.P.buildGetUsersQuery(r,t)};s&&(u.cursor=s);var i="school:users:".concat(e,":").concat(r);return i+=Object.keys(u).map(function(e){return u[e]}).join(":"),{url:o._.urlBuilder("{gateway}/v1/customers/".concat(e,"/users"),u),key:i,success:a,error:n}},getUser:function(e){return{url:"{gateway}/v1/users/".concat(e,"?query=avatar"),key:"school:users:".concat(e)}},getStudentVideos:function(e,r){var t=i.v.VIDEO_COLLECTION,s=i.v.CLIP_COLLECTION,a=i.v.INTERACTIVE,n=["videos[".concat(t,"]{status:[").concat(y.X.Published,",").concat(y.X.Draft,"]}"),"clips[".concat(s,"]{status:[").concat(y.X.Published,",").concat(y.X.Draft,"]}"),"interactives[".concat(a,"]{status:[").concat(y.X.Published,",").concat(y.X.Draft,"]}")],u={query:"(".concat(n.join("|"),"){orderbydesc:timestamp}"),permissionFilterOption:g.r.StripMetadata};return r&&(u.cursor=r),{url:o._.urlBuilder("{gateway}/v1/objects/".concat(e,"/members"),u),key:"school:users:videos:".concat(e,":").concat(r)}},bulkRemoveUsers:function(e,r,t,s){var a,o=["school:users","search:users","search:aggregation"];return(null===(a=e.userIds)||void 0===a?void 0:a.length)&&e.userIds.forEach(function(e){return o.push("school:users:".concat(e))}),{url:"{gateway}/v1/users/delete",key:"delete:school:users",invalidationKeys:o,type:n.k.POST,data:e,success:r,error:t,always:s}},removeUsersFromSchool:function(e){return{url:"{gateway}/v1/users/remove",key:"remove:school:users",invalidationKeys:["school:users","search:users","search:aggregation"],type:n.k.POST,data:e}},createUsers:function(e){var r=e.users,t=e.success,s=e.error,a=e.always;return{url:"{gateway}/v1/users",key:"create:users",data:r,type:n.k.POST,invalidationKeys:["school:users","user:count","search:users"],success:t,error:s,always:a}},updateUser:function(e,r,t,s,a,o){var u=["school:users:".concat(e.userId)];return r.toString()===e.userId.toString()&&u.push("currentuser"),{url:"{gateway}/v1/users",key:"edit:user",type:n.k.PUT,data:e,invalidationKeys:["search:aggregation"],success:t,error:s,always:a,updateState:{keys:"search:user:count",updateData:function(e){if(!o)return e;var r=Object.keys(e),t=Object.assign({},e);return r.forEach(function(r){r.includes("filters.yearGroup.value:0")&&(t[r].count=e[r].count-1)}),t}}}},updateCurrentUser:function(e,r,t,s){return{url:"{gateway}/v1/users/me/profile",key:"edit:current:user",type:n.k.PUT,data:e,invalidationKeys:["search:aggregation","currentuser"],success:r,error:t,always:s}},searchUsers:function(e,r,t){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,u=arguments.length>6?arguments[6]:void 0,i=c.P.buildSearchDataAndKey({customerId:e,userId:r,userType:t,queryParams:s,cursor:a}),l=i.data,d=i.key;return{url:"{gateway}/v3/search",data:l,type:n.k.POST,key:d,success:o,error:u}},getSearchUserIds:function(e,r,t){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,i=c.P.buildSearchData({customerId:e,userId:r,userType:t,queryParams:s}),l="search:user:ids";return{url:"{gateway}/v3/search/ids",key:l+=u.t.flattenObjectToString(i),data:i,type:n.k.POST,normalize:!1,success:a,error:o}},getSearchAggregation:function(e){var r=e.userId,t=e.customerId,o=e.userType,u=e.queryParams,i=void 0===u?{}:u,y=e.userIds,v=e.field,g=v===l.q.UserProfilesStatus?s.userProfiles:s.yearGroups,m=c.P.buildSearchFiltersObject(t,o,i),p="search:aggregation:".concat(r,":").concat(t,":").concat(v,":");p+=Object.keys(m).sort().map(function(e){return m[e]}).join(":"),p+=":"+y.join(":");var f={indices:["user"],searchType:d.User,isLearner:!1,type:a.NestedTermsGroupBy,userId:r.toString(),customerId:t.toString(),data:{field:v,nestedPath:g,termsFilters:h({},"".concat(g,".customerId"),[t])},idFilters:y,filters:m};return{url:"{gateway}/v1/search/aggregation",type:n.k.POST,key:p,data:f,normalize:!1,formatData:function(e){var r=e.termCount;return v!==l.q.UserProfilesStatus?r:Object.keys(r).reduce(function(e,t){return e[t.charAt(0).toUpperCase()+t.slice(1)]=r[t],e},{})}}},bulkToggleActivation:function(e,r,t,s,a){return{url:"{gateway}/v1/users/status",key:"update:users:status",type:n.k.PUT,data:e,success:t,error:s,always:a,invalidationKeys:["school:users:".concat(e.customerId,":").concat(r)].concat(p(e.users.map(function(e){return"school:users:".concat(e.userId)})),["search:aggregation"])}},bulkValidate:function(e,r,t,s,a){return{url:"{gateway}/v1/users/validate",type:n.k.POST,key:"validate:users",data:e,success:t,error:s,always:a,normalize:!1,formatData:function(e){return e.failedResults.map(function(e){return{errorCodes:e.errorCodes,users:[e.user]}})}}},bulkCheckEmail:function(e,r,t,s,a){return{url:"{gateway}/v1/customers/".concat(r,"/users/email-statuses"),type:n.k.POST,key:"validate:".concat(r,":email:").concat(e.userEmails.map(function(e){return e.email}).join(",")),data:e,success:t,error:s,always:a}},bulkUsersValidate:function(e,r,t,s,a,o){return{url:"{gateway}/v2/users/validate?allowEmailInUse=".concat(r),type:n.k.POST,key:"validate:email:in:use:users:".concat(r),data:e.users,success:s,error:a,always:o,formatData:function(e){var r,t,s=(null===(r=e.failedResults)||void 0===r?void 0:r.map(function(e){return{errorCodes:e.errorCodes,users:[e.user]}}))||[],a=(null===(t=e.successfulResults)||void 0===t?void 0:t.map(function(e){return{errorCodes:e.errorCodes,users:[e.user]}}))||[];return[].concat(p(s),p(a))}}},yearGroups:function(e){return{url:"{gateway}/v1/customers/".concat(e,"/year-groups?query={orderby:value}"),key:"yeargroups:".concat(e)}},updateAvatar:function(e,r,t,s){return{url:"{gateway}/v1/users/me/avatar",key:"update:avatar",type:n.k.PUT,invalidationKeys:["currentuser","school:users:".concat(r)],data:{fileId:e,fileIdType:v.z9.ImageAPIv2},success:t,error:s}},deleteAvatar:function(e,r,t,s){return{url:"{gateway}/v1/users/me/avatar/".concat(e),key:"delete:avatar",type:n.k.DELETE,updateState:{keys:["school:users:".concat(r),"currentuser"],updateData:function(e){var t=e["school:users:".concat(r)],s=e.currentuser;return t.avatar=null,s.avatar=null,h(h({},"school:users:".concat(r),t),"currentuser",s)}},success:t,error:s}},changeEmail:function(e,r,t,s){return{url:"{gateway}/v1/users/me/email",key:"change:email",type:n.k.PUT,data:{email:e},success:r,error:t,always:s}},changePassword:function(e,r,t,s){return{url:"{gateway}/v1/users/me/password",key:"change:password",type:n.k.PUT,data:{currentPassword:e.currentPassword,newPassword:e.newPassword},success:r,error:t,always:s}},changeUserPassword:function(e,r,t,s,a,o,u){return{url:"{gateway}/v1/users/admin/change-password",key:"change:password:".concat(r,":").concat(e),type:n.k.PUT,data:{userId:e,newPassword:t,changeOnNextLogin:s},success:a,error:o,always:u}},resendActivationEmail:function(e,r,t){return{url:"{gateway}/v1/users/admin/activation",key:"send:activation:email",type:n.k.POST,data:{userId:e},success:r,error:t}},sendPasswordResetEmail:function(e,r,t,s){return{url:"{gateway}/v1/users/admin/account-reminder",key:"send:password:reset:email",type:n.k.POST,data:{userIds:[e],customerId:r},success:t,error:s}},resendVerificationEmail:function(e,r,t,s){return{url:"{gateway}/v1/users/admin/email-verification",key:"send:verification:email",type:n.k.POST,data:{userId:e,customerId:r},success:t,error:s}},userCount:function(e,r,t){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=c.P.buildSearchData({customerId:e,userId:r,userType:t,queryParams:s}),o="search:user:count";return o+=u.t.flattenObjectToString(a),{url:"{gateway}/v3/search/count",data:a,type:n.k.POST,key:o,normalize:!1}},authenticationMethods:function(e){return{url:o._.urlBuilder("{gateway}/v1/users/authentication-methods",{id:e}),key:"login:methods:".concat(e.sort().join(":")),normalizeOptions:{idAttribute:"userId"}}},getIdentityProviders:function(e){return{url:"{gateway}/v1/customers/".concat(e,"/identity-providers"),key:"identity:providers:".concat(e),normalize:!1}},getSsoMappings:function(e){return{url:"{gateway}/v1/customers/".concat(e,"/sso-year-group-mappings"),key:"sso:year:group:mappings:".concat(e),normalize:!1}},updateSsoMappings:function(e,r){return{url:"{gateway}/v1/customers/".concat(e,"/sso-year-group-mappings"),key:"sso:year:group:mappings:".concat(e,":update"),type:n.k.POST,invalidationKeys:"sso:year:group:mappings:".concat(e),data:r}},joinRequests:function(){return{url:"{gateway}/v1/customers/join-requests?status=pending",key:"join:requests",normalize:!1}},resolveJoinRequest:function(e,r){return{url:"{gateway}/v1/customers/join-requests/".concat(e),key:"resolve:join:request",type:n.k.PUT,data:{status:r},normalize:!1,invalidationKeys:["join:requests"]}},inviteUserToCustomer:function(e,r,t,s){return{url:"{gateway}/v1/customers/".concat(e,"/users/invitation"),key:"invite:user:customer:".concat(e),type:n.k.PUT,data:r,invalidationKeys:["school:users","search:users"],success:t,error:s}}}}}]);
2
- //# sourceMappingURL=7288-0749315a12-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/7288-0749315a12-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/enums/AggregateSearchField.ts","file:///app/packages/libs/shared/src/enums/AggregateSearchNestedPath.ts","file:///app/packages/libs/shared/src/enums/AggregateSearchType.ts","file:///app/packages/libs/shared/src/enums/SearchType.ts","file:///app/packages/projects/lite/src/apps/user-manager/flight-requests/UserManagerRequests.ts"],"sourcesContent":["export enum AggregateSearchField {\n YearGroupValues = 'yearGroups.value',\n UserProfilesStatus = 'userProfiles.status'\n}","export enum AggregateSearchNestedPath {\n yearGroups = 'yearGroups',\n userProfiles = 'userProfiles'\n}","export enum AggregateSearchType {\n TermsGroupBy = 'terms-group-by',\n NestedTermsGroupBy = 'nested-terms-group-by',\n}","export enum SearchType {\n Content = 'content',\n OnlineContent = 'online_content',\n User = 'user',\n Customer = 'customer',\n Tag = 'tag',\n Organisation = 'organisation',\n Channel = 'channel'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { BulkCreateOrValidateUserRequest, BulkCreateUsersResponse, BulkDeleteUsersRequest, BulkInviteUsersRequest, BulkInviteUsersResponse, BulkUpdateUserStatusRequest, BulkUserEmailCheckRequest, BulkUserEmailCheckResponse, BulkUsersCreationOrAddValidateResponse, BulkValidateUsersResponse, ChangePasswordRequest, EditCurrentUserDetails, EditUserRequest, ErroredUsers } from 'libs/shared/apps/user-manager/interfaces';\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { AggregateSearchNestedPath } from 'libs/shared/enums/AggregateSearchNestedPath';\nimport { AggregateSearchType } from 'libs/shared/enums/AggregateSearchType';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { FileIdType } from 'libs/shared/enums/Images';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { SearchType } from 'libs/shared/enums/SearchType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { User, UserCollection } from 'libs/shared/interfaces';\nimport { AggregateSearchRequest } from 'libs/shared/interfaces/requests/AggregateSearchRequest';\n\nimport { JoinRequestStatus } from 'apps/user-manager/enums/JoinRequestStatus';\n\nimport { UpdateSsoYearGroupMappings } from '../interfaces/UpdateSsoYearGroupMappings';\n\n\nexport const UserManagerRequests = {\n getUsers(\n customerId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams = {},\n cursor?: string,\n success?: (users: UserCollection) => void,\n error?: () => void\n ): Flight.Request {\n const backendParams: HashObject = { query: UserManagerHelper.buildGetUsersQuery(userType, queryParams) };\n\n if (cursor)\n backendParams.cursor = cursor;\n\n let key = `school:users:${customerId}:${userType}`;\n key += Object.keys(backendParams).map(key => backendParams[key]).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/customers/${customerId}/users`, backendParams),\n key,\n success,\n error\n };\n },\n\n getUser(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/users/${id}?query=avatar`,\n key: `school:users:${id}`\n };\n },\n\n getStudentVideos(id: string, cursor?: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const query = [\n `videos[${VIDEO_COLLECTION}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`,\n `clips[${CLIP_COLLECTION}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`,\n `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`\n ];\n\n const params: HashObject = {\n query: `(${query.join('|')}){orderbydesc:timestamp}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}/members`, params),\n key: `school:users:videos:${id}:${cursor}`\n };\n },\n\n bulkRemoveUsers(\n data: BulkDeleteUsersRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const invalidationKeys = [ 'school:users', 'search:users', 'search:aggregation' ];\n\n if (data.userIds?.length)\n data.userIds.forEach(id => invalidationKeys.push(`school:users:${id}`));\n\n return {\n url: '{gateway}/v1/users/delete',\n key: 'delete:school:users',\n invalidationKeys,\n type: HttpVerbs.POST,\n data,\n success,\n error,\n always\n };\n },\n\n removeUsersFromSchool(data: BulkDeleteUsersRequest): Flight.Request {\n const invalidationKeys = [ 'school:users', 'search:users', 'search:aggregation' ];\n\n return {\n url: '{gateway}/v1/users/remove',\n key: `remove:school:users`,\n invalidationKeys,\n type: HttpVerbs.POST,\n data\n };\n },\n\n createUsers({\n users,\n success,\n error,\n always\n }: {\n users: BulkCreateOrValidateUserRequest,\n success?: (res: BulkCreateUsersResponse) => void,\n error?: () => void,\n always?: () => void,\n }): Flight.Request {\n return {\n url: '{gateway}/v1/users',\n key: 'create:users',\n data: users,\n type: HttpVerbs.POST,\n invalidationKeys: [ 'school:users', 'user:count', 'search:users' ],\n success,\n error,\n always\n };\n },\n\n updateUser(\n user: EditUserRequest,\n currentUserId: string,\n success?: (updatedUser?: User) => void,\n error?: () => void,\n always?: () => void,\n shouldUpdateCount?: boolean\n ): Flight.Request {\n const updateStateKeys = [`school:users:${user.userId}`];\n\n if (currentUserId.toString() === user.userId.toString())\n updateStateKeys.push('currentuser');\n\n return {\n url: '{gateway}/v1/users',\n key: 'edit:user',\n type: HttpVerbs.PUT,\n data: user,\n invalidationKeys: ['search:aggregation'],\n success,\n error,\n always,\n updateState: {\n keys: `search:user:count`,\n updateData: (state: any) => {\n if (!shouldUpdateCount)\n return state;\n\n const keys = Object.keys(state);\n const newState: HashObject = { ...state };\n keys.forEach(k => {\n // since there is a delay between the user being updated and the user count being updated from search api\n // we manually update the unknown year group user count in the state\n // so we can get the up-to-date count for the unknown year group warning banner\n if (k.includes('filters.yearGroup.value:0')) {\n newState[k].count = state[k].count - 1;\n }\n });\n return newState;\n }\n\n }\n };\n },\n\n updateCurrentUser(\n details: EditCurrentUserDetails,\n success?: (updatedUser?: User) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/profile',\n key: 'edit:current:user',\n type: HttpVerbs.PUT,\n data: details,\n invalidationKeys: [ 'search:aggregation', 'currentuser' ],\n success,\n error,\n always\n };\n },\n\n searchUsers(\n customerId: string,\n userId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams = {},\n cursor?: string,\n success?: (results: SearchResults<SearchResultsObject<User>>) => void,\n error?: () => void\n ): Flight.Request {\n const { data, key } = UserManagerHelper.buildSearchDataAndKey({\n customerId,\n userId,\n userType,\n queryParams,\n cursor\n });\n\n return {\n url: `{gateway}/v3/search`,\n data: data,\n type: HttpVerbs.POST,\n key,\n success,\n error\n };\n },\n\n getSearchUserIds(\n customerId: string,\n userId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams = {},\n success?: (userIds: string[]) => void,\n error?: () => void\n ): Flight.Request {\n const data = UserManagerHelper.buildSearchData({ customerId, userId, userType, queryParams });\n\n let key = `search:user:ids`;\n key += ObjectHelper.flattenObjectToString(data);\n\n return {\n url: '{gateway}/v3/search/ids',\n key,\n data,\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error\n };\n },\n\n getSearchAggregation(options: {\n userId: string,\n customerId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams,\n userIds: string[],\n field: AggregateSearchField\n }): Flight.Request {\n const { userId, customerId, userType, queryParams = {}, userIds, field } = options;\n\n const nestedPath = field === AggregateSearchField.UserProfilesStatus\n ? AggregateSearchNestedPath.userProfiles\n : AggregateSearchNestedPath.yearGroups;\n\n const filters = UserManagerHelper.buildSearchFiltersObject(customerId, userType, queryParams);\n\n let key = `search:aggregation:${userId}:${customerId}:${field}:`;\n key += Object.keys(filters).sort().map(key => filters[key]).join(':');\n key += ':' + userIds.join(':');\n \n const data: AggregateSearchRequest = {\n // Fixed\n indices: ['user'],\n searchType: SearchType.User,\n isLearner: false,\n type: AggregateSearchType.NestedTermsGroupBy,\n\n // Dynamic\n userId: userId.toString(),\n customerId: customerId.toString(),\n data: {\n field,\n nestedPath,\n termsFilters: {\n [`${nestedPath}.customerId`]: [customerId]\n }\n },\n idFilters: userIds,\n filters\n };\n\n const formatData = (data: any) => {\n const response = data.termCount;\n if (field !== AggregateSearchField.UserProfilesStatus)\n return response;\n\n return Object.keys(response).reduce((prev: HashObject, key: string) => {\n // Our ObjectStatus enum is capitalised, but it's lower case in the search index\n prev[key.charAt(0).toUpperCase() + key.slice(1)] = response[key];\n return prev;\n }, {});\n };\n\n return {\n url: '{gateway}/v1/search/aggregation',\n type: HttpVerbs.POST,\n key,\n data,\n normalize: false,\n formatData\n };\n },\n\n bulkToggleActivation(\n data: BulkUpdateUserStatusRequest,\n userType: UserGroup,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/users/status`,\n key: 'update:users:status',\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always,\n invalidationKeys: [ `school:users:${data.customerId}:${userType}`, ...data.users.map(u => `school:users:${u.userId}`), 'search:aggregation' ]\n };\n },\n\n bulkValidate(\n data: BulkCreateOrValidateUserRequest,\n customerId?: string,\n success?: (res: ErroredUsers) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/users/validate',\n type: HttpVerbs.POST,\n key: 'validate:users',\n data,\n success,\n error,\n always,\n normalize: false,\n formatData: (data: BulkValidateUsersResponse) => {\n return data.failedResults.map(result => ({\n errorCodes: result.errorCodes,\n users: [result.user]\n }));\n }\n };\n },\n\n bulkCheckEmail(\n data: BulkUserEmailCheckRequest,\n customerId: string,\n success?: (res: BulkUserEmailCheckResponse) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/users/email-statuses`,\n type: HttpVerbs.POST,\n key: `validate:${customerId}:email:${data.userEmails.map(({ email }) => email).join(',')}`,\n data,\n success,\n error,\n always\n };\n },\n\n bulkUsersValidate(\n data: BulkCreateOrValidateUserRequest,\n canInviteExistingUsers: boolean,\n customerId?: string,\n success?: (res: BulkUserEmailCheckResponse) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v2/users/validate?allowEmailInUse=${canInviteExistingUsers}`,\n type: HttpVerbs.POST,\n key: `validate:email:in:use:users:${canInviteExistingUsers}`,\n data: data.users,\n success,\n error,\n always,\n formatData: (data: BulkUsersCreationOrAddValidateResponse) => {\n const failed = data.failedResults?.map(result => ({\n errorCodes: result.errorCodes,\n users: [result.user]\n })) || [];\n\n const succeed = data.successfulResults?.map(res => ({\n errorCodes: res.errorCodes,\n users: [res.user]\n })) || [];\n\n return [ ...failed, ...succeed ];\n }\n };\n },\n\n yearGroups(customerId: string): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/year-groups?query={orderby:value}`,\n key: `yeargroups:${customerId}`\n };\n },\n\n /**\n * Avatar requests\n */\n updateAvatar(imageId: string, userId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/avatar',\n key: 'update:avatar',\n type: HttpVerbs.PUT,\n invalidationKeys: [ 'currentuser', `school:users:${userId}` ],\n data: {\n fileId: imageId,\n fileIdType: FileIdType.ImageAPIv2\n },\n success,\n error\n };\n },\n\n deleteAvatar(avatarId: string, userId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/avatar/${avatarId}`,\n key: 'delete:avatar',\n type: HttpVerbs.DELETE,\n updateState: {\n keys: [ `school:users:${userId}`, 'currentuser' ],\n updateData: (data: HashObject) => {\n const userObj = data[`school:users:${userId}`];\n const currentUserObj = data.currentuser;\n\n userObj.avatar = null;\n currentUserObj.avatar = null;\n\n return {\n [`school:users:${userId}`]: userObj,\n ['currentuser']: currentUserObj\n };\n }\n },\n success,\n error\n };\n },\n\n /**\n * Account settings\n */\n changeEmail(\n email: string,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/email`,\n key: 'change:email',\n type: HttpVerbs.PUT,\n data: {\n email\n },\n success,\n error,\n always\n };\n },\n\n changePassword(\n passwordModel: ChangePasswordRequest,\n success?: () => void,\n error?: (jqXHR: JQuery.jqXHR) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/password`,\n key: 'change:password',\n type: HttpVerbs.PUT,\n data: {\n currentPassword: passwordModel.currentPassword,\n newPassword: passwordModel.newPassword\n },\n success,\n error,\n always\n };\n },\n\n changeUserPassword(\n userId: string,\n userType: UserGroup,\n newPassword: string,\n changeOnNextLogin: boolean,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/users/admin/change-password`,\n key: `change:password:${userType}:${userId}`,\n type: HttpVerbs.PUT,\n data: {\n userId,\n newPassword,\n changeOnNextLogin\n },\n success,\n error,\n always\n };\n },\n\n resendActivationEmail(userId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: '{gateway}/v1/users/admin/activation',\n key: 'send:activation:email',\n type: HttpVerbs.POST,\n data: { userId },\n success,\n error\n };\n },\n\n sendPasswordResetEmail(userId: string, customerId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: '{gateway}/v1/users/admin/account-reminder',\n key: 'send:password:reset:email',\n type: HttpVerbs.POST,\n data: { userIds: [userId], customerId },\n success,\n error\n };\n },\n\n resendVerificationEmail(\n userId: string,\n customerId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/users/admin/email-verification',\n key: 'send:verification:email',\n type: HttpVerbs.POST,\n data: { userId, customerId },\n success,\n error\n };\n },\n \n /**\n * Other\n */\n userCount(\n customerId: string,\n userId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams = {}\n ): Flight.Request {\n const data = UserManagerHelper.buildSearchData({ customerId, userId, userType, queryParams });\n\n let key = `search:user:count`;\n key += ObjectHelper.flattenObjectToString(data);\n\n return {\n url: `{gateway}/v3/search/count`,\n data,\n type: HttpVerbs.POST,\n key,\n normalize: false\n };\n },\n\n authenticationMethods(ids: string[]): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/users/authentication-methods`, { id: ids }),\n key: `login:methods:${ids.sort().join(':')}`,\n normalizeOptions: {\n idAttribute: 'userId'\n }\n };\n },\n\n getIdentityProviders(customerId: string): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/identity-providers`,\n key: `identity:providers:${customerId}`,\n normalize: false\n };\n },\n\n getSsoMappings(customerId: string): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/sso-year-group-mappings`,\n key: `sso:year:group:mappings:${customerId}`,\n normalize: false\n };\n },\n\n updateSsoMappings(customerId: string, mappings: UpdateSsoYearGroupMappings): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/sso-year-group-mappings`,\n key: `sso:year:group:mappings:${customerId}:update`,\n type: HttpVerbs.POST,\n invalidationKeys: `sso:year:group:mappings:${customerId}`,\n data: mappings\n };\n },\n\n joinRequests(): Flight.Request {\n return {\n url: '{gateway}/v1/customers/join-requests?status=pending',\n key: 'join:requests',\n normalize: false\n };\n },\n\n resolveJoinRequest(\n requestId: string,\n status: JoinRequestStatus\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/join-requests/${requestId}`,\n key: 'resolve:join:request',\n type: HttpVerbs.PUT,\n data: { status },\n normalize: false,\n invalidationKeys: ['join:requests']\n };\n },\n // to invite or add a existing user to a customer\n inviteUserToCustomer(\n customerId: string,\n data: BulkInviteUsersRequest,\n success?: (res: BulkInviteUsersResponse) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/users/invitation`,\n key: `invite:user:customer:${customerId}`,\n type: HttpVerbs.PUT,\n data,\n invalidationKeys: [ 'school:users', 'search:users' ],\n success,\n error\n };\n }\n};\n\n"],"names":["AggregateSearchField","AggregateSearchNestedPath","AggregateSearchType","SearchType","UserManagerRequests","getUsers","customerId","userType","queryParams","cursor","success","error","backendParams","query","UserManagerHelper","key","Object","keys","map","join","url","UrlHelper","getUser","id","getStudentVideos","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","CurationStatus","params","permissionFilterOption","PermissionFilterOption","bulkRemoveUsers","data","always","invalidationKeys","userIds","length","forEach","push","type","HttpVerbs","removeUsersFromSchool","createUsers","users","updateUser","user","currentUserId","shouldUpdateCount","updateStateKeys","userId","toString","updateState","updateData","state","newState","k","includes","count","updateCurrentUser","details","searchUsers","getSearchUserIds","ObjectHelper","normalize","getSearchAggregation","options","field","nestedPath","userProfiles","yearGroups","filters","sort","indices","searchType","User","isLearner","NestedTermsGroupBy","termsFilters","idFilters","formatData","response","termCount","reduce","prev","charAt","toUpperCase","slice","bulkToggleActivation","u","bulkValidate","failedResults","result","errorCodes","bulkCheckEmail","userEmails","email","bulkUsersValidate","canInviteExistingUsers","failed","succeed","successfulResults","res","updateAvatar","imageId","fileId","fileIdType","deleteAvatar","avatarId","userObj","currentUserObj","currentuser","avatar","changeEmail","changePassword","passwordModel","currentPassword","newPassword","changeUserPassword","changeOnNextLogin","resendActivationEmail","sendPasswordResetEmail","resendVerificationEmail","userCount","authenticationMethods","ids","normalizeOptions","idAttribute","getIdentityProviders","getSsoMappings","updateSsoMappings","mappings","joinRequests","resolveJoinRequest","requestId","status","inviteUserToCustomer"],"sourceRoot":""}