@cuemath/leap 2.8.35-beta.0 → 2.8.36-beta-0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/features/communication/pub-sub/constants.js +2 -1
  2. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  3. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  4. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +63 -54
  5. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  6. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +130 -117
  7. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  8. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +71 -77
  9. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  10. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +5 -4
  11. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -1
  12. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +8 -9
  13. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +1 -1
  14. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +10 -10
  15. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  16. package/dist/features/milestone/milestone-resources/resources-assign/constant.js +6 -0
  17. package/dist/features/milestone/milestone-resources/resources-assign/constant.js.map +1 -0
  18. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +27 -17
  19. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +1 -1
  20. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +13 -11
  21. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +1 -1
  22. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +40 -50
  23. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
  24. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +13 -12
  25. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +1 -1
  26. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +186 -143
  27. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  28. package/dist/features/milestone/milestone-resources/resources-assign/utils.js +8 -4
  29. package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +1 -1
  30. package/dist/features/ui/theme/tab.js +2 -2
  31. package/dist/features/ui/theme/tab.js.map +1 -1
  32. package/dist/index.d.ts +10 -2
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resources-assign.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/resources-assign.tsx"],"sourcesContent":["import type { IExtraPracticeQuery } from './api/get-resource';\nimport type { IResourceItemStep } from './comps/resource-item/resource-item-types';\nimport type { IEPResourceAssign, IResourceData } from './resources-assign-type';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport Button from '../../../ui/buttons/button/button';\nimport { useUIContext } from '../../../ui/context/context';\nimport SearchableInput from '../../../ui/inputs/searchable-input/searchable-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport AddedResourceAndFilters from './added-resource-and-filters';\nimport { useGetSearchResource } from './api/get-resource';\nimport { usePostMilestoneResource } from './api/goal-resource-assign';\nimport { usePostLPARResource } from './api/lpar-resource-assign';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from './resource-assign-analytics-events';\nimport ResourceItems from './resource-items/resource-items';\nimport * as Styled from './resources-assign-styled';\nimport { checkIfFiltersAreAdded } from './utils';\n\nconst EPResourceAssign: FC<IEPResourceAssign> = memo(props => {\n const {\n studentId,\n stream,\n onResourceAssign,\n onError,\n onExitResourceAssign,\n onViewResource,\n userMilestoneId,\n programId,\n } = props;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const [pageNumber, setPageNumber] = useState(1);\n const [searchValue, setSearchValue] = useState('');\n const [searchQuery, setSearchQuery] = useState<IExtraPracticeQuery>({\n stream: stream,\n page: pageNumber,\n per_page: 50,\n user_id: studentId,\n user_milestone_id: userMilestoneId,\n program_id: programId,\n });\n const [resourceItems, setResourceItems] = useState<IResourceData['results']>([]);\n const [selectedResourceItems, setSelectedResource] = useState<IResourceData['results']>([]);\n\n const handleOnResourceAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onResourceAssign();\n }\n },\n [onError, onResourceAssign],\n );\n\n const {\n get: getSearchResource,\n data: resourceSearchData,\n isProcessing,\n isProcessingFailed,\n } = useGetSearchResource();\n\n const { post: postAssignGoalResource, isProcessing: goalResourceAssignInProgress } =\n usePostMilestoneResource({\n onComplete: handleOnResourceAssignComplete,\n });\n const { post: postAssignLPARResource, isProcessing: lparResourceAssignInProgress } =\n usePostLPARResource({\n onComplete: handleOnResourceAssignComplete,\n });\n\n const handleOnSearchQueryChange = (updatedQuery: Omit<IExtraPracticeQuery, 'stream'>) => {\n setSearchQuery(prev => ({ ...prev, ...updatedQuery }));\n };\n\n const handleOnResourceAdditionOrDeletion = useCallback(\n (step: IResourceItemStep, resourceNodeId: string) => {\n if (step === 'select') {\n const resourceItem = resourceItems.find(resource => resource.node_id === resourceNodeId);\n\n if (resourceItem) {\n setSelectedResource(prev => {\n return [...prev, resourceItem];\n });\n }\n } else {\n setSelectedResource(prev =>\n prev.filter(prevResource => prevResource.node_id !== resourceNodeId),\n );\n }\n },\n [resourceItems],\n );\n\n const handleScrollPagination = (newPageNumber: number) => {\n getSearchResource('ep-dummy-id', {\n ...searchQuery,\n page: newPageNumber,\n });\n setPageNumber(newPageNumber);\n };\n\n const handleSearchTextChange = (value: string) => {\n setSearchValue(value);\n };\n\n const handleSearch = useCallback(\n (searchOnClear?: boolean) => {\n trackEvent(RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE, {\n search_term: searchValue,\n });\n\n setSearchQuery(prev => ({\n ...prev,\n search_term: searchOnClear ? '' : searchValue,\n }));\n },\n [searchValue, trackEvent],\n );\n\n const fetchResource = useCallback(() => {\n if (checkIfFiltersAreAdded(searchQuery) || searchQuery.stream) {\n getSearchResource('ep-dummy-id', searchQuery);\n }\n }, [searchQuery, getSearchResource]);\n\n const handleOnResourceAssign = useCallback(() => {\n if (userMilestoneId) {\n postAssignGoalResource(\n {\n node_ids: selectedResourceItems.map(resource => resource.node_id),\n },\n { userMilestoneId },\n );\n } else if (programId) {\n postAssignLPARResource(\n {\n nodes: selectedResourceItems.map(({ node_id: nodeId }) => ({\n id: nodeId,\n attempt_location: 'ANY',\n })),\n program_id: programId,\n },\n { studentId },\n );\n }\n }, [\n postAssignGoalResource,\n userMilestoneId,\n selectedResourceItems,\n postAssignLPARResource,\n programId,\n studentId,\n ]);\n\n useEffect(() => {\n fetchResource();\n }, [fetchResource]);\n\n useEffect(() => {\n if (resourceSearchData) {\n setResourceItems(prev => {\n const updatedData =\n pageNumber !== 1 ? [...prev, ...resourceSearchData.results] : resourceSearchData.results;\n\n return Array.from(new Map(updatedData.map(item => [item.id, item])).values());\n });\n }\n }, [resourceSearchData, pageNumber]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <FlexView $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n analyticsLabel=\"resource_get_api_failed\"\n onClick={fetchResource}\n />\n </FlexView>\n </FlexView>\n );\n }\n\n const { filters, total_pages: totalPages = 0 } = resourceSearchData || {};\n const { boards = [], grades = [], node_types: nodeTypes = [] } = filters || {};\n const isFilterAdded = checkIfFiltersAreAdded(searchQuery);\n\n return (\n <FlexView $flexDirection=\"row\" $height=\"100vh\">\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"resource_loading\" />\n </Styled.LoaderWrapper>\n )}\n\n <Styled.SearchContainer $width=\"60%\">\n <Styled.HeaderWrapper\n $heightX={4}\n $background=\"WHITE_3\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <SearchableInput\n value={searchValue}\n onSearchTextChange={handleSearchTextChange}\n renderAs=\"primary\"\n width=\"99%\"\n size=\"regular\"\n label=\"Type topic name...\"\n onEnter={handleSearch}\n searchOnClear\n onPrefixElementClick={onExitResourceAssign}\n prefixElement={<Back2Icon />}\n />\n </Styled.HeaderWrapper>\n\n <ResourceItems\n resourceItems={resourceItems}\n selectedResource={selectedResourceItems}\n pageNumber={pageNumber}\n totalPages={totalPages}\n assigningInProgress={goalResourceAssignInProgress || lparResourceAssignInProgress}\n isFilterAdded={isFilterAdded}\n onResourceAdditionOrDeletion={handleOnResourceAdditionOrDeletion}\n onResourceAssign={handleOnResourceAssign}\n onViewResource={onViewResource}\n onPageNumberUpdate={handleScrollPagination}\n />\n </Styled.SearchContainer>\n\n <FlexView $width=\"40%\">\n <AddedResourceAndFilters\n boards={boards}\n grades={grades}\n nodeTypes={nodeTypes}\n selectedResources={selectedResourceItems}\n onResourceDeSelection={handleOnResourceAdditionOrDeletion}\n onFilterUpdate={handleOnSearchQueryChange}\n onViewResource={onViewResource}\n />\n </FlexView>\n </FlexView>\n );\n});\n\nexport default EPResourceAssign;\n"],"names":["EPResourceAssign","memo","props","studentId","stream","onResourceAssign","onError","onExitResourceAssign","onViewResource","userMilestoneId","programId","trackEvent","useUIContext","pageNumber","setPageNumber","useState","searchValue","setSearchValue","searchQuery","setSearchQuery","resourceItems","setResourceItems","selectedResourceItems","setSelectedResource","handleOnResourceAssignComplete","useCallback","errorMessage","getSearchResource","resourceSearchData","isProcessing","isProcessingFailed","useGetSearchResource","postAssignGoalResource","goalResourceAssignInProgress","usePostMilestoneResource","postAssignLPARResource","lparResourceAssignInProgress","usePostLPARResource","handleOnSearchQueryChange","updatedQuery","prev","handleOnResourceAdditionOrDeletion","step","resourceNodeId","resourceItem","resource","prevResource","handleScrollPagination","newPageNumber","handleSearchTextChange","value","handleSearch","searchOnClear","RESOURCE_ASSIGN_ANALYTICS_EVENTS","fetchResource","checkIfFiltersAreAdded","handleOnResourceAssign","nodeId","useEffect","updatedData","item","jsx","FlexView","jsxs","Text","Button","filters","totalPages","boards","grades","nodeTypes","isFilterAdded","Styled.LoaderWrapper","ILLUSTRATIONS","Styled.SearchContainer","Styled.HeaderWrapper","SearchableInput","Back2Icon","ResourceItems","AddedResourceAndFilters","EPResourceAssign$1"],"mappings":"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"}
1
+ {"version":3,"file":"resources-assign.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/resources-assign.tsx"],"sourcesContent":["import type { IExtendedResourceModel, IExtraPracticeQuery } from './api/get-resource';\nimport type { IResourceItemStep } from './comps/resource-item/resource-item-types';\nimport type { IEPResourceAssign, IResourceData } from './resources-assign-type';\nimport type { FC } from 'react';\n\nimport { pluralize } from 'humanize-plus';\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport Button from '../../../ui/buttons/button/button';\nimport { useUIContext } from '../../../ui/context/context';\nimport SearchableInput from '../../../ui/inputs/searchable-input/searchable-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport AddedResourceAndFilters from './added-resource-and-filters';\nimport { getResourceSearchAPI } from './api/get-resource';\nimport { usePostMilestoneResource } from './api/goal-resource-assign';\nimport { usePostLPARResource } from './api/lpar-resource-assign';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from './resource-assign-analytics-events';\nimport ResourceItems from './resource-items/resource-items';\nimport * as Styled from './resources-assign-styled';\nimport { checkIfFiltersAreAdded, getCanShowDefaultLoadingScreen } from './utils';\n\nconst EPResourceAssign: FC<IEPResourceAssign> = memo(props => {\n const {\n studentId,\n stream,\n onResourceAssign,\n onError,\n onExitResourceAssign,\n onViewResource,\n userMilestoneId,\n programId,\n } = props;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const [pageNumber, setPageNumber] = useState(1);\n const [searchValue, setSearchValue] = useState('');\n const [error, setError] = useState('');\n const [searchQuery, setSearchQuery] = useState<IExtraPracticeQuery>({\n stream: stream,\n page: pageNumber,\n per_page: 50,\n user_id: studentId,\n user_milestone_id: userMilestoneId,\n program_id: programId,\n });\n const [resourceItems, setResourceItems] = useState<IResourceData['results']>([]);\n const [selectedResourceItems, setSelectedResource] = useState<IResourceData['results']>([]);\n\n const [resourceSearchData, setResourceSearchData] = useState<IResourceData | undefined>();\n const [isResourceSearchProcessing, setIsResourceSearchProcessing] = useState(false);\n const [isResourceSearchFailed, setIsResourceSearchFailed] = useState(false);\n const [resourceFilters, setResourceFilters] = useState<IResourceData['filters']>({\n boards: [],\n grades: [],\n node_types: [],\n });\n\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const handleOnResourceAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n const toastMessage = `${pluralize(selectedResourceItems.length, 'Resource')} ${\n selectedResourceItems.length > 1 ? 'have' : 'has'\n } been assigned`;\n\n onResourceAssign(toastMessage);\n }\n },\n [onError, onResourceAssign, selectedResourceItems],\n );\n\n const { post: postAssignGoalResource, isProcessing: goalResourceAssignInProgress } =\n usePostMilestoneResource({\n onComplete: handleOnResourceAssignComplete,\n });\n const { post: postAssignLPARResource, isProcessing: lparResourceAssignInProgress } =\n usePostLPARResource({\n onComplete: handleOnResourceAssignComplete,\n });\n\n const handleOnSearchQueryChange = (updatedQuery: Omit<IExtraPracticeQuery, 'stream'>) => {\n setSearchQuery(prev => ({ ...prev, ...updatedQuery }));\n };\n\n const handleOnResourceAdditionOrDeletion = useCallback(\n (step: IResourceItemStep, resourceNodeId: string) => {\n if (step === 'select') {\n const resourceItem = resourceItems.find(resource => resource.node_id === resourceNodeId);\n\n if (resourceItem) {\n setSelectedResource(prev => {\n return [...prev, resourceItem];\n });\n }\n } else {\n setSelectedResource(prev =>\n prev.filter(prevResource => prevResource.node_id !== resourceNodeId),\n );\n }\n },\n [resourceItems],\n );\n\n const handleSearchTextChange = (value: string) => {\n setSearchValue(value);\n };\n\n const handleSearch = useCallback(\n (searchOnClear?: boolean) => {\n trackEvent(RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE, {\n search_term: searchValue,\n });\n\n setSearchQuery(prev => ({\n ...prev,\n search_term: searchOnClear ? '' : searchValue,\n }));\n },\n [searchValue, trackEvent],\n );\n\n const fetchResource = useCallback(\n async (updatedPageNumber?: number) => {\n //* Reset page number only when filter is updated not on scroll\n if (!updatedPageNumber) {\n setPageNumber(1);\n }\n setIsResourceSearchProcessing(true);\n\n if (checkIfFiltersAreAdded(searchQuery) || searchQuery.stream) {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n const controller = new AbortController();\n\n abortControllerRef.current = controller;\n\n await getResourceSearchAPI({\n id: studentId,\n query: updatedPageNumber ? { ...searchQuery, page: updatedPageNumber } : searchQuery,\n meta: null,\n abortSignal: abortControllerRef.current.signal,\n })\n .then(res => {\n if (res) {\n const { __CODE__, __ERROR__, isProcessingFailed } = res as IExtendedResourceModel;\n\n if (__CODE__ >= 400 && __CODE__ < 500) {\n onError(__ERROR__?.message ?? 'Error while fetching the resource');\n } else if (__CODE__ === 500) {\n setIsResourceSearchFailed(isProcessingFailed);\n setError('Internal server error, Please try again');\n } else {\n const { data } = res || {};\n\n if (data) {\n setResourceFilters({\n boards: data.filters.boards,\n grades: data.filters.grades,\n node_types: data.filters.node_types,\n });\n setResourceSearchData(data);\n setIsResourceSearchProcessing(false);\n }\n }\n }\n })\n .catch(() => {\n setIsResourceSearchProcessing(false);\n setIsResourceSearchFailed(true);\n });\n }\n },\n [studentId, searchQuery, abortControllerRef, onError],\n );\n\n const handleScrollPagination = (newPageNumber: number) => {\n fetchResource(newPageNumber);\n setPageNumber(newPageNumber);\n };\n\n const handleFailureReset = () => {\n setIsResourceSearchFailed(false);\n setError('');\n setSearchValue('');\n setSearchQuery({\n stream: stream,\n page: pageNumber,\n per_page: 50,\n user_id: studentId,\n user_milestone_id: userMilestoneId,\n program_id: programId,\n });\n };\n\n const handleOnResourceAssign = useCallback(() => {\n if (userMilestoneId) {\n postAssignGoalResource(\n {\n node_ids: selectedResourceItems.map(resource => resource.node_id),\n },\n { userMilestoneId },\n );\n } else if (programId) {\n postAssignLPARResource(\n {\n nodes: selectedResourceItems.map(({ node_id: nodeId }) => ({\n id: nodeId,\n attempt_location: 'ANY',\n })),\n program_id: programId,\n },\n { studentId },\n );\n }\n }, [\n postAssignGoalResource,\n userMilestoneId,\n selectedResourceItems,\n postAssignLPARResource,\n programId,\n studentId,\n ]);\n\n useEffect(() => {\n fetchResource();\n\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n };\n }, [fetchResource]);\n\n useEffect(() => {\n if (resourceSearchData) {\n setResourceItems(prev => {\n const updatedData =\n pageNumber !== 1 ? [...prev, ...resourceSearchData.results] : resourceSearchData.results;\n\n return Array.from(new Map(updatedData.map(item => [item.id, item])).values());\n });\n }\n }, [resourceSearchData, pageNumber]);\n\n const { total_pages: totalPages = 0 } = resourceSearchData || {};\n const isFilterAdded = useMemo(() => checkIfFiltersAreAdded(searchQuery), [searchQuery]);\n const canShowDefaultLoader = useMemo(\n () => getCanShowDefaultLoadingScreen(isResourceSearchProcessing, resourceFilters),\n [isResourceSearchProcessing, resourceFilters],\n );\n\n if (canShowDefaultLoader) return <AppLoader height=\"100vh\" />;\n\n if (isResourceSearchFailed) {\n return (\n <FlexView $height=\"100vh\" $alignItems=\"center\" $justifyContent=\"center\">\n <FlexView $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">\n {error || 'Oops! Something went wrong. Please try again later.'}\n </Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n analyticsLabel=\"resource_get_api_failed\"\n onClick={handleFailureReset}\n />\n </FlexView>\n </FlexView>\n );\n }\n\n return (\n <FlexView $flexDirection=\"row\" $height=\"100vh\">\n <Styled.SearchContainer $width=\"60%\">\n <Styled.HeaderWrapper\n $heightX={4}\n $background=\"WHITE_3\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <SearchableInput\n value={searchValue}\n onSearchTextChange={handleSearchTextChange}\n renderAs=\"primary\"\n width=\"99%\"\n size=\"regular\"\n label=\"Type topic name...\"\n onEnter={handleSearch}\n searchOnClear\n onPrefixElementClick={onExitResourceAssign}\n prefixElement={<Back2Icon />}\n />\n </Styled.HeaderWrapper>\n\n <FlexView $height=\"calc(100vh - 64px)\" $position=\"relative\">\n {isResourceSearchProcessing && <Styled.LoaderWrapper />}\n\n <ResourceItems\n resourceItems={resourceItems}\n selectedResource={selectedResourceItems}\n pageNumber={pageNumber}\n totalPages={totalPages}\n assigningInProgress={goalResourceAssignInProgress || lparResourceAssignInProgress}\n isFilterAdded={isFilterAdded}\n onResourceAdditionOrDeletion={handleOnResourceAdditionOrDeletion}\n onResourceAssign={handleOnResourceAssign}\n onViewResource={onViewResource}\n onPageNumberUpdate={handleScrollPagination}\n />\n </FlexView>\n </Styled.SearchContainer>\n\n <FlexView $width=\"40%\">\n <AddedResourceAndFilters\n resourceFilters={resourceFilters}\n selectedResources={selectedResourceItems}\n onResourceDeSelection={handleOnResourceAdditionOrDeletion}\n onFilterUpdate={handleOnSearchQueryChange}\n onViewResource={onViewResource}\n />\n </FlexView>\n </FlexView>\n );\n});\n\nexport default EPResourceAssign;\n"],"names":["EPResourceAssign","memo","props","studentId","stream","onResourceAssign","onError","onExitResourceAssign","onViewResource","userMilestoneId","programId","trackEvent","useUIContext","pageNumber","setPageNumber","useState","searchValue","setSearchValue","error","setError","searchQuery","setSearchQuery","resourceItems","setResourceItems","selectedResourceItems","setSelectedResource","resourceSearchData","setResourceSearchData","isResourceSearchProcessing","setIsResourceSearchProcessing","isResourceSearchFailed","setIsResourceSearchFailed","resourceFilters","setResourceFilters","abortControllerRef","useRef","handleOnResourceAssignComplete","useCallback","errorMessage","toastMessage","pluralize","postAssignGoalResource","goalResourceAssignInProgress","usePostMilestoneResource","postAssignLPARResource","lparResourceAssignInProgress","usePostLPARResource","handleOnSearchQueryChange","updatedQuery","prev","handleOnResourceAdditionOrDeletion","step","resourceNodeId","resourceItem","resource","prevResource","handleSearchTextChange","value","handleSearch","searchOnClear","RESOURCE_ASSIGN_ANALYTICS_EVENTS","fetchResource","updatedPageNumber","checkIfFiltersAreAdded","controller","getResourceSearchAPI","res","__CODE__","__ERROR__","isProcessingFailed","data","handleScrollPagination","newPageNumber","handleFailureReset","handleOnResourceAssign","nodeId","useEffect","updatedData","item","totalPages","isFilterAdded","useMemo","getCanShowDefaultLoadingScreen","jsx","AppLoader","FlexView","jsxs","Text","Button","Styled.SearchContainer","Styled.HeaderWrapper","SearchableInput","Back2Icon","Styled.LoaderWrapper","ResourceItems","AddedResourceAndFilters","EPResourceAssign$1"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- const c = (e) => {
2
- const { node_type: r, grade: o, board: d, search_term: t } = e;
3
- return !!(t || r || o || d);
1
+ const d = (e) => {
2
+ const { node_type: n, grade: r, board: t, search_term: o } = e;
3
+ return !!(o || n || r || t);
4
+ }, s = (e, n) => {
5
+ const { boards: r, grades: t, node_types: o } = n;
6
+ return e && r.length === 0 && t.length === 0 && o.length === 0;
4
7
  };
5
8
  export {
6
- c as checkIfFiltersAreAdded
9
+ d as checkIfFiltersAreAdded,
10
+ s as getCanShowDefaultLoadingScreen
7
11
  };
8
12
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/utils.ts"],"sourcesContent":["import type { IExtraPracticeQuery } from './api/get-resource';\n\nconst checkIfFiltersAreAdded = (searchQuery: IExtraPracticeQuery) => {\n const { node_type: nodeType, grade, board, search_term: searchTerm } = searchQuery;\n\n return Boolean(searchTerm || nodeType || grade || board);\n};\n\nexport { checkIfFiltersAreAdded };\n"],"names":["checkIfFiltersAreAdded","searchQuery","nodeType","grade","board","searchTerm"],"mappings":"AAEM,MAAAA,IAAyB,CAACC,MAAqC;AACnE,QAAM,EAAE,WAAWC,GAAU,OAAAC,GAAO,OAAAC,GAAO,aAAaC,EAAe,IAAAJ;AAEvE,SAAO,GAAQI,KAAcH,KAAYC,KAASC;AACpD;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/utils.ts"],"sourcesContent":["import type { IExtraPracticeQuery } from './api/get-resource';\nimport type { IResourceData } from './resources-assign-type';\n\nconst checkIfFiltersAreAdded = (searchQuery: IExtraPracticeQuery) => {\n const { node_type: nodeType, grade, board, search_term: searchTerm } = searchQuery;\n\n return Boolean(searchTerm || nodeType || grade || board);\n};\n\nconst getCanShowDefaultLoadingScreen = (\n isProcessing: boolean,\n filters: IResourceData['filters'],\n) => {\n const { boards, grades, node_types: nodeTypes } = filters;\n\n return isProcessing && boards.length === 0 && grades.length === 0 && nodeTypes.length === 0;\n};\n\nexport { checkIfFiltersAreAdded, getCanShowDefaultLoadingScreen };\n"],"names":["checkIfFiltersAreAdded","searchQuery","nodeType","grade","board","searchTerm","getCanShowDefaultLoadingScreen","isProcessing","filters","boards","grades","nodeTypes"],"mappings":"AAGM,MAAAA,IAAyB,CAACC,MAAqC;AACnE,QAAM,EAAE,WAAWC,GAAU,OAAAC,GAAO,OAAAC,GAAO,aAAaC,EAAe,IAAAJ;AAEvE,SAAO,GAAQI,KAAcH,KAAYC,KAASC;AACpD,GAEME,IAAiC,CACrCC,GACAC,MACG;AACH,QAAM,EAAE,QAAAC,GAAQ,QAAAC,GAAQ,YAAYC,MAAcH;AAE3C,SAAAD,KAAgBE,EAAO,WAAW,KAAKC,EAAO,WAAW,KAAKC,EAAU,WAAW;AAC5F;"}
@@ -24,13 +24,13 @@ const o = (a) => ({ sizes: {
24
24
  backgroundColorName: {
25
25
  inactive: "WHITE",
26
26
  active: "BLACK",
27
- hover: "WHITE",
27
+ hover: "BLACK",
28
28
  disabled: "GREY_1"
29
29
  },
30
30
  colorName: {
31
31
  inactive: "BLACK",
32
32
  active: "WHITE",
33
- hover: "BLACK",
33
+ hover: "WHITE",
34
34
  disabled: "BLACK_50"
35
35
  },
36
36
  borderColorName: {
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../../../../src/features/ui/theme/tab.ts"],"sourcesContent":["import type { ITabSizeConfig, ITabVariantConfig, TTabSizes, TTabVariants } from '../types';\n\ninterface IGetTabConfig {\n (gutter: number): {\n sizes: Record<TTabSizes, ITabSizeConfig>;\n variants: Record<TTabVariants, ITabVariantConfig>;\n };\n}\n\nconst getTabConfig: IGetTabConfig = (gutter: number) => {\n const sizes: Record<TTabSizes, ITabSizeConfig> = {\n xsmall: {\n height: gutter * 1.625,\n paddingHorizontal: gutter * 0.5,\n textVariant: 'body3',\n },\n small: {\n height: gutter * 2,\n paddingHorizontal: gutter * 0.75,\n textVariant: 'body2',\n },\n regular: {\n height: gutter * 2.5,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n medium: {\n height: gutter * 3,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n };\n\n const variants: Record<TTabVariants, ITabVariantConfig> = {\n primary: {\n backgroundColorName: {\n inactive: 'WHITE',\n active: 'BLACK',\n hover: 'WHITE',\n disabled: 'GREY_1',\n },\n colorName: {\n inactive: 'BLACK',\n active: 'WHITE',\n hover: 'BLACK',\n disabled: 'BLACK_50',\n },\n borderColorName: {\n inactive: 'GREY_3',\n active: 'BLACK',\n hover: 'BLACK',\n disabled: 'GREY_1',\n },\n fontWeight: {\n inactive: 400,\n active: 500,\n hover: 500,\n disabled: 400,\n },\n },\n };\n\n return { sizes, variants };\n};\n\nexport default getTabConfig;\n"],"names":["getTabConfig","gutter"],"mappings":"AASM,MAAAA,IAA8B,CAACC,OAqD5B,EAAE,OApDwC;AAAA,EAC/C,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,GAgCc,UA7B0C;AAAA,EACxD,SAAS;AAAA,IACP,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;"}
1
+ {"version":3,"file":"tab.js","sources":["../../../../src/features/ui/theme/tab.ts"],"sourcesContent":["import type { ITabSizeConfig, ITabVariantConfig, TTabSizes, TTabVariants } from '../types';\n\ninterface IGetTabConfig {\n (gutter: number): {\n sizes: Record<TTabSizes, ITabSizeConfig>;\n variants: Record<TTabVariants, ITabVariantConfig>;\n };\n}\n\nconst getTabConfig: IGetTabConfig = (gutter: number) => {\n const sizes: Record<TTabSizes, ITabSizeConfig> = {\n xsmall: {\n height: gutter * 1.625,\n paddingHorizontal: gutter * 0.5,\n textVariant: 'body3',\n },\n small: {\n height: gutter * 2,\n paddingHorizontal: gutter * 0.75,\n textVariant: 'body2',\n },\n regular: {\n height: gutter * 2.5,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n medium: {\n height: gutter * 3,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n };\n\n const variants: Record<TTabVariants, ITabVariantConfig> = {\n primary: {\n backgroundColorName: {\n inactive: 'WHITE',\n active: 'BLACK',\n hover: 'BLACK',\n disabled: 'GREY_1',\n },\n colorName: {\n inactive: 'BLACK',\n active: 'WHITE',\n hover: 'WHITE',\n disabled: 'BLACK_50',\n },\n borderColorName: {\n inactive: 'GREY_3',\n active: 'BLACK',\n hover: 'BLACK',\n disabled: 'GREY_1',\n },\n fontWeight: {\n inactive: 400,\n active: 500,\n hover: 500,\n disabled: 400,\n },\n },\n };\n\n return { sizes, variants };\n};\n\nexport default getTabConfig;\n"],"names":["getTabConfig","gutter"],"mappings":"AASM,MAAAA,IAA8B,CAACC,OAqD5B,EAAE,OApDwC;AAAA,EAC/C,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,GAgCc,UA7B0C;AAAA,EACxD,SAAS;AAAA,IACP,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ import type { Dispatch } from 'react';
9
9
  import { FC } from 'react';
10
10
  import { ForwardRefExoticComponent } from 'react';
11
11
  import { HTMLAttributes } from 'react';
12
+ import { IChannelMessage } from '@cuemath/cue-message-broker';
12
13
  import type { IframeHTMLAttributes } from 'react';
13
14
  import type { InputHTMLAttributes } from 'react';
14
15
  import { IProvidedProps } from 'google-maps-react';
@@ -329,6 +330,7 @@ export declare const EVENTS: {
329
330
  MILESTONE_RESOURCE_UNASSIGNED: "MILESTONE_RESOURCE_UNASSIGNED";
330
331
  MILESTONE_RESOURCE_RESET: "MILESTONE_RESOURCE_RESET";
331
332
  PAST_MILESTONE_OUTCOME_ADDED: "PAST_MILESTONE_OUTCOME_ADDED";
333
+ MILESTONE_TEST_ASSIGNED: "MILESTONE_TEST_ASSIGNED";
332
334
  CHAPTER_UPDATED: "CHAPTER_UPDATED";
333
335
  LESSONS_MARKED_AS_FAMILIAR: "LESSONS_MARKED_AS_FAMILIAR";
334
336
  LESSONS_MARKED_AS_IRRELEVANT: "LESSONS_MARKED_AS_IRRELEVANT";
@@ -1041,7 +1043,7 @@ declare interface IEPResourceAssign {
1041
1043
  programId?: string;
1042
1044
  userMilestoneId?: string;
1043
1045
  onError: (errorMessage: string) => void;
1044
- onResourceAssign: () => void;
1046
+ onResourceAssign: (toastMessage: string) => void;
1045
1047
  onExitResourceAssign: () => void;
1046
1048
  onViewResource: (resource: IResourceItemData) => void;
1047
1049
  }
@@ -3026,6 +3028,7 @@ export declare interface IWorksheetAttemptModel {
3026
3028
  desmos_calculator_enabled: boolean;
3027
3029
  due_date: number | null;
3028
3030
  state: TLPARSheetAttemptState;
3031
+ canvas_data?: Array<IChannelMessage>;
3029
3032
  }
3030
3033
 
3031
3034
  export declare interface IWorksheetBehavior {
@@ -4262,6 +4265,11 @@ export declare type TInclassMessage = {
4262
4265
  eventPayload: {
4263
4266
  milestoneId: string;
4264
4267
  };
4268
+ } | {
4269
+ eventName: typeof EVENTS.MILESTONE_TEST_ASSIGNED;
4270
+ eventPayload: {
4271
+ milestoneId: string;
4272
+ };
4265
4273
  } | {
4266
4274
  eventName: typeof EVENTS.MILESTONE_RESOURCE_RESET;
4267
4275
  eventPayload: {
@@ -4828,7 +4836,7 @@ export declare const UpIcon: React.FC<React.SVGProps<SVGSVGElement>>;
4828
4836
 
4829
4837
  export declare const useAutoPlayPermission: () => IAutoPlayPermissionContextType;
4830
4838
 
4831
- export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void) => {
4839
+ export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>) => {
4832
4840
  publishStrokes: ((message: unknown) => boolean) | undefined;
4833
4841
  channelStatus: ChannelStatus | undefined;
4834
4842
  closeChannel: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.35-beta.0",
3
+ "version": "2.8.36-beta-0.1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"