@cuemath/leap 2.8.34-beta-0.2 → 2.8.34-beta-0.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/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +17 -16
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/ui/inputs/searchable-input/searchable-input.js +54 -53
- package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +1 -1
- package/package.json +1 -1
@@ -26,7 +26,7 @@ const fe = Z((k) => {
|
|
26
26
|
onViewResource: E,
|
27
27
|
userMilestoneId: d,
|
28
28
|
programId: m
|
29
|
-
} = k, { onEvent:
|
29
|
+
} = k, { onEvent: C } = te(), [u, F] = a(1), [p, V] = a(""), [o, P] = a({
|
30
30
|
stream: N,
|
31
31
|
page: u,
|
32
32
|
per_page: 50,
|
@@ -40,14 +40,14 @@ const fe = Z((k) => {
|
|
40
40
|
), {
|
41
41
|
get: f,
|
42
42
|
data: s,
|
43
|
-
isProcessing:
|
43
|
+
isProcessing: O,
|
44
44
|
isProcessingFailed: j
|
45
|
-
} = ae(), { post:
|
45
|
+
} = ae(), { post: T, isProcessing: G } = le({
|
46
46
|
onComplete: x
|
47
47
|
}), { post: L, isProcessing: D } = de({
|
48
48
|
onComplete: x
|
49
49
|
}), H = (e) => {
|
50
|
-
|
50
|
+
P((n) => ({ ...n, ...e }));
|
51
51
|
}, b = l(
|
52
52
|
(e, n) => {
|
53
53
|
if (e === "select") {
|
@@ -64,19 +64,19 @@ const fe = Z((k) => {
|
|
64
64
|
...o,
|
65
65
|
page: e
|
66
66
|
}), F(e);
|
67
|
-
}, W = (
|
68
|
-
|
69
|
-
}, X = l(() => {
|
70
|
-
P(me.RESOURCE_SEARCH_INPUT_VALUE, {
|
67
|
+
}, W = l(() => {
|
68
|
+
C(me.RESOURCE_SEARCH_INPUT_VALUE, {
|
71
69
|
search_term: p
|
72
|
-
}),
|
70
|
+
}), P((e) => ({
|
73
71
|
...e,
|
74
72
|
search_term: p || ""
|
75
73
|
}));
|
76
|
-
}, [p,
|
74
|
+
}, [p, C]), X = (e) => {
|
75
|
+
V(e);
|
76
|
+
}, R = l(() => {
|
77
77
|
(U(o) || o.stream) && (f("ep-dummy-id", o), y([]));
|
78
78
|
}, [o, f]), z = l(() => {
|
79
|
-
d ?
|
79
|
+
d ? T(
|
80
80
|
{
|
81
81
|
node_ids: i.map((e) => e.node_id)
|
82
82
|
},
|
@@ -92,7 +92,7 @@ const fe = Z((k) => {
|
|
92
92
|
{ studentId: _ }
|
93
93
|
);
|
94
94
|
}, [
|
95
|
-
|
95
|
+
T,
|
96
96
|
d,
|
97
97
|
i,
|
98
98
|
L,
|
@@ -122,11 +122,11 @@ const fe = Z((k) => {
|
|
122
122
|
}
|
123
123
|
)
|
124
124
|
] }) });
|
125
|
-
if (
|
125
|
+
if (O && !s && g.length === 0)
|
126
126
|
return /* @__PURE__ */ r(ne, { height: "100vh" });
|
127
127
|
const { filters: B, total_pages: M = 0 } = s || {}, { boards: Y = [], grades: q = [], node_types: J = [] } = B || {}, K = U(o);
|
128
128
|
return /* @__PURE__ */ A(h, { $flexDirection: "row", $height: "100vh", children: [
|
129
|
-
|
129
|
+
O && /* @__PURE__ */ r(pe, { children: /* @__PURE__ */ r("img", { src: ee.LOADER_1, alt: "resource_loading" }) }),
|
130
130
|
/* @__PURE__ */ A(ge, { $width: "60%", children: [
|
131
131
|
/* @__PURE__ */ r(
|
132
132
|
he,
|
@@ -139,12 +139,13 @@ const fe = Z((k) => {
|
|
139
139
|
oe,
|
140
140
|
{
|
141
141
|
value: p,
|
142
|
-
onSearchTextChange:
|
142
|
+
onSearchTextChange: X,
|
143
143
|
renderAs: "primary",
|
144
144
|
width: "99%",
|
145
145
|
size: "regular",
|
146
146
|
label: "Type topic name...",
|
147
|
-
onEnter:
|
147
|
+
onEnter: W,
|
148
|
+
searchOnClear: !0,
|
148
149
|
onPrefixElementClick: v,
|
149
150
|
prefixElement: /* @__PURE__ */ r(re, {})
|
150
151
|
}
|
package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map
CHANGED
@@ -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 AppLoader from '../../../ui/loader/app-loader/app-loader';\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_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 trackEvent(RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE, {\n search_term: searchValue,\n });\n\n setSearchQuery(prev => ({\n ...prev,\n search_term: searchValue || '',\n }));\n }, [searchValue, trackEvent]);\n\n const fetchResource = useCallback(() => {\n if (checkIfFiltersAreAdded(searchQuery) || searchQuery.stream) {\n getSearchResource('ep-dummy-id', searchQuery);\n setResourceItems([]);\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?.results.length) {\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?.results, 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 if (isProcessing && !resourceSearchData && resourceItems.length === 0) {\n return <AppLoader height=\"100vh\" />;\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 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","RESOURCE_ASSIGN_ANALYTICS_EVENTS","fetchResource","checkIfFiltersAreAdded","handleOnResourceAssign","nodeId","useEffect","updatedData","item","jsx","FlexView","jsxs","Text","Button","AppLoader","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 { 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 AppLoader from '../../../ui/loader/app-loader/app-loader';\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_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 handleSearch = useCallback(() => {\n trackEvent(RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE, {\n search_term: searchValue,\n });\n\n setSearchQuery(prev => ({\n ...prev,\n search_term: searchValue || '',\n }));\n }, [searchValue, trackEvent]);\n\n const handleSearchTextChange = (value: string) => {\n setSearchValue(value);\n };\n\n const fetchResource = useCallback(() => {\n if (checkIfFiltersAreAdded(searchQuery) || searchQuery.stream) {\n getSearchResource('ep-dummy-id', searchQuery);\n setResourceItems([]);\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?.results.length) {\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?.results, 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 if (isProcessing && !resourceSearchData && resourceItems.length === 0) {\n return <AppLoader height=\"100vh\" />;\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","handleSearch","RESOURCE_ASSIGN_ANALYTICS_EVENTS","handleSearchTextChange","value","fetchResource","checkIfFiltersAreAdded","handleOnResourceAssign","nodeId","useEffect","updatedData","item","jsx","FlexView","jsxs","Text","Button","AppLoader","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,59 +1,60 @@
|
|
1
|
-
import { jsx as r, jsxs as
|
2
|
-
import { useRef as
|
1
|
+
import { jsx as r, jsxs as I } from "react/jsx-runtime";
|
2
|
+
import { useRef as O, useCallback as i } from "react";
|
3
3
|
import v from "../../buttons/clickable/clickable.js";
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import { Input as
|
7
|
-
import { StyledPrefixElementWrapper as
|
8
|
-
const
|
4
|
+
import S from "../../layout/flex-view.js";
|
5
|
+
import z from "../base-input/base-input.js";
|
6
|
+
import { Input as A } from "../text-input/text-input-styled.js";
|
7
|
+
import { StyledPrefixElementWrapper as D, StyledCrossIcon as R } from "./searchable-input-styled.js";
|
8
|
+
const G = (m) => {
|
9
9
|
const {
|
10
|
-
renderAs:
|
10
|
+
renderAs: s,
|
11
11
|
value: d,
|
12
|
-
disabled:
|
13
|
-
label:
|
12
|
+
disabled: t,
|
13
|
+
label: o,
|
14
14
|
width: u,
|
15
15
|
widthX: f,
|
16
16
|
shape: $ = "curved",
|
17
17
|
size: c = "regular",
|
18
|
-
onSearchTextChange:
|
19
|
-
onPrefixElementClick:
|
20
|
-
onEnter:
|
21
|
-
|
18
|
+
onSearchTextChange: a,
|
19
|
+
onPrefixElementClick: l,
|
20
|
+
onEnter: e,
|
21
|
+
searchOnClear: b,
|
22
|
+
analyticsLabel: C,
|
22
23
|
analyticsProps: x,
|
23
|
-
prefixElement:
|
24
|
-
} = m,
|
25
|
-
(
|
26
|
-
|
27
|
-
},
|
28
|
-
[t]
|
29
|
-
), g = i(
|
30
|
-
(e) => {
|
31
|
-
e.key === "Enter" && (a == null || a());
|
24
|
+
prefixElement: h
|
25
|
+
} = m, p = O(null), g = i(
|
26
|
+
(n) => {
|
27
|
+
a(n.target.value);
|
32
28
|
},
|
33
29
|
[a]
|
34
|
-
), w = i(
|
35
|
-
n
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
30
|
+
), w = i(
|
31
|
+
(n) => {
|
32
|
+
n.key === "Enter" && (e == null || e());
|
33
|
+
},
|
34
|
+
[e]
|
35
|
+
), y = i(() => {
|
36
|
+
l == null || l();
|
37
|
+
}, [l]), k = i(() => {
|
38
|
+
var n;
|
39
|
+
a(""), b && (e == null || e()), (n = p.current) == null || n.focus();
|
40
|
+
}, [a, e]);
|
40
41
|
return /* @__PURE__ */ r(
|
41
42
|
v,
|
42
43
|
{
|
43
|
-
label:
|
44
|
-
analyticsLabel:
|
44
|
+
label: o ?? "searchable_input",
|
45
|
+
analyticsLabel: C,
|
45
46
|
analyticsProps: x,
|
46
|
-
disabled:
|
47
|
+
disabled: t,
|
47
48
|
children: /* @__PURE__ */ r(
|
48
|
-
|
49
|
+
z,
|
49
50
|
{
|
50
|
-
renderAs:
|
51
|
+
renderAs: s,
|
51
52
|
size: c,
|
52
53
|
shape: $,
|
53
|
-
disabled:
|
54
|
-
label:
|
55
|
-
inputElement: /* @__PURE__ */
|
56
|
-
|
54
|
+
disabled: t,
|
55
|
+
label: o,
|
56
|
+
inputElement: /* @__PURE__ */ I(
|
57
|
+
S,
|
57
58
|
{
|
58
59
|
$flexDirection: "row",
|
59
60
|
$alignItems: "center",
|
@@ -62,39 +63,39 @@ const F = (m) => {
|
|
62
63
|
$width: u,
|
63
64
|
$widthX: f,
|
64
65
|
children: [
|
65
|
-
|
66
|
-
|
66
|
+
l && h && /* @__PURE__ */ r(
|
67
|
+
D,
|
67
68
|
{
|
68
|
-
$inputRenderAs:
|
69
|
-
$disabled:
|
69
|
+
$inputRenderAs: s,
|
70
|
+
$disabled: t,
|
70
71
|
$size: c,
|
71
|
-
onClick:
|
72
|
-
children:
|
72
|
+
onClick: y,
|
73
|
+
children: h
|
73
74
|
}
|
74
75
|
),
|
75
76
|
/* @__PURE__ */ r(
|
76
|
-
|
77
|
+
A,
|
77
78
|
{
|
78
|
-
$renderAs:
|
79
|
-
placeholder:
|
80
|
-
ref:
|
79
|
+
$renderAs: s,
|
80
|
+
placeholder: o,
|
81
|
+
ref: p,
|
81
82
|
$size: c,
|
82
83
|
value: d ?? "",
|
83
|
-
disabled:
|
84
|
-
onChange:
|
85
|
-
onKeyDown:
|
84
|
+
disabled: t,
|
85
|
+
onChange: g,
|
86
|
+
onKeyDown: w
|
86
87
|
}
|
87
88
|
)
|
88
89
|
]
|
89
90
|
}
|
90
91
|
),
|
91
|
-
siblingElement: d && /* @__PURE__ */ r(
|
92
|
+
siblingElement: d && /* @__PURE__ */ r(R, { onClick: k })
|
92
93
|
}
|
93
94
|
)
|
94
95
|
}
|
95
96
|
);
|
96
97
|
};
|
97
98
|
export {
|
98
|
-
|
99
|
+
G as default
|
99
100
|
};
|
100
101
|
//# sourceMappingURL=searchable-input.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"searchable-input.js","sources":["../../../../../src/features/ui/inputs/searchable-input/searchable-input.tsx"],"sourcesContent":["import type { ISearchableInputProps } from './searchable-input-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef } from 'react';\n\nimport Clickable from '../../buttons/clickable/clickable';\nimport FlexView from '../../layout/flex-view';\nimport BaseInput from '../base-input/base-input';\nimport { Input } from '../text-input/text-input-styled';\nimport * as Styled from './searchable-input-styled';\n\nconst SearchableInput = <IDType extends string>(props: ISearchableInputProps<IDType>) => {\n const {\n renderAs,\n value,\n disabled,\n label,\n width,\n widthX,\n shape = 'curved',\n size = 'regular',\n onSearchTextChange,\n onPrefixElementClick,\n onEnter,\n analyticsLabel,\n analyticsProps,\n prefixElement,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleOnChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onSearchTextChange(e.target.value);\n },\n [onSearchTextChange],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onEnter?.();\n }\n },\n [onEnter],\n );\n\n const handleOnPrefixElementClick = useCallback(() => {\n onPrefixElementClick?.();\n }, [onPrefixElementClick]);\n\n const handleOnClear = useCallback(() => {\n onSearchTextChange('');\n inputRef.current?.focus();\n }, [onSearchTextChange]);\n\n return (\n <Clickable\n label={label ?? 'searchable_input'}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n disabled={disabled}\n >\n <BaseInput\n renderAs={renderAs}\n size={size}\n shape={shape}\n disabled={disabled}\n label={label}\n inputElement={\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $height=\"100%\"\n $flexGap={12}\n $width={width}\n $widthX={widthX}\n >\n {onPrefixElementClick && prefixElement && (\n <Styled.StyledPrefixElementWrapper\n $inputRenderAs={renderAs}\n $disabled={disabled}\n $size={size}\n onClick={handleOnPrefixElementClick}\n >\n {prefixElement}\n </Styled.StyledPrefixElementWrapper>\n )}\n <Input\n $renderAs={renderAs}\n placeholder={label}\n ref={inputRef}\n $size={size}\n value={value ?? ''}\n disabled={disabled}\n onChange={handleOnChange}\n onKeyDown={handleOnKeyDown}\n />\n </FlexView>\n }\n siblingElement={value && <Styled.StyledCrossIcon onClick={handleOnClear} />}\n />\n </Clickable>\n );\n};\n\nexport default SearchableInput;\n"],"names":["SearchableInput","props","renderAs","value","disabled","label","width","widthX","shape","size","onSearchTextChange","onPrefixElementClick","onEnter","analyticsLabel","analyticsProps","prefixElement","inputRef","useRef","handleOnChange","useCallback","handleOnKeyDown","handleOnPrefixElementClick","handleOnClear","_a","jsx","Clickable","BaseInput","jsxs","FlexView","Styled.StyledPrefixElementWrapper","Input","Styled.StyledCrossIcon"],"mappings":";;;;;;;AAWM,MAAAA,IAAkB,CAAwBC,MAAyC;AACjF,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,EACE,
|
1
|
+
{"version":3,"file":"searchable-input.js","sources":["../../../../../src/features/ui/inputs/searchable-input/searchable-input.tsx"],"sourcesContent":["import type { ISearchableInputProps } from './searchable-input-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef } from 'react';\n\nimport Clickable from '../../buttons/clickable/clickable';\nimport FlexView from '../../layout/flex-view';\nimport BaseInput from '../base-input/base-input';\nimport { Input } from '../text-input/text-input-styled';\nimport * as Styled from './searchable-input-styled';\n\nconst SearchableInput = <IDType extends string>(props: ISearchableInputProps<IDType>) => {\n const {\n renderAs,\n value,\n disabled,\n label,\n width,\n widthX,\n shape = 'curved',\n size = 'regular',\n onSearchTextChange,\n onPrefixElementClick,\n onEnter,\n searchOnClear,\n analyticsLabel,\n analyticsProps,\n prefixElement,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleOnChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onSearchTextChange(e.target.value);\n },\n [onSearchTextChange],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onEnter?.();\n }\n },\n [onEnter],\n );\n\n const handleOnPrefixElementClick = useCallback(() => {\n onPrefixElementClick?.();\n }, [onPrefixElementClick]);\n\n const handleOnClear = useCallback(() => {\n onSearchTextChange('');\n\n if (searchOnClear) {\n onEnter?.();\n }\n\n inputRef.current?.focus();\n }, [onSearchTextChange, onEnter]);\n\n return (\n <Clickable\n label={label ?? 'searchable_input'}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n disabled={disabled}\n >\n <BaseInput\n renderAs={renderAs}\n size={size}\n shape={shape}\n disabled={disabled}\n label={label}\n inputElement={\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $height=\"100%\"\n $flexGap={12}\n $width={width}\n $widthX={widthX}\n >\n {onPrefixElementClick && prefixElement && (\n <Styled.StyledPrefixElementWrapper\n $inputRenderAs={renderAs}\n $disabled={disabled}\n $size={size}\n onClick={handleOnPrefixElementClick}\n >\n {prefixElement}\n </Styled.StyledPrefixElementWrapper>\n )}\n <Input\n $renderAs={renderAs}\n placeholder={label}\n ref={inputRef}\n $size={size}\n value={value ?? ''}\n disabled={disabled}\n onChange={handleOnChange}\n onKeyDown={handleOnKeyDown}\n />\n </FlexView>\n }\n siblingElement={value && <Styled.StyledCrossIcon onClick={handleOnClear} />}\n />\n </Clickable>\n );\n};\n\nexport default SearchableInput;\n"],"names":["SearchableInput","props","renderAs","value","disabled","label","width","widthX","shape","size","onSearchTextChange","onPrefixElementClick","onEnter","searchOnClear","analyticsLabel","analyticsProps","prefixElement","inputRef","useRef","handleOnChange","useCallback","e","handleOnKeyDown","handleOnPrefixElementClick","handleOnClear","_a","jsx","Clickable","BaseInput","jsxs","FlexView","Styled.StyledPrefixElementWrapper","Input","Styled.StyledCrossIcon"],"mappings":";;;;;;;AAWM,MAAAA,IAAkB,CAAwBC,MAAyC;AACjF,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,EACE,IAAAf,GAEEgB,IAAWC,EAAyB,IAAI,GAExCC,IAAiBC;AAAA,IACrB,CAACC,MAAqC;AACjB,MAAAX,EAAAW,EAAE,OAAO,KAAK;AAAA,IACnC;AAAA,IACA,CAACX,CAAkB;AAAA,EAAA,GAGfY,IAAkBF;AAAA,IACtB,CAACC,MAA6C;AACxC,MAAAA,EAAE,QAAQ,YACFT,KAAA,QAAAA;AAAA,IAEd;AAAA,IACA,CAACA,CAAO;AAAA,EAAA,GAGJW,IAA6BH,EAAY,MAAM;AAC5B,IAAAT,KAAA,QAAAA;AAAA,EAAA,GACtB,CAACA,CAAoB,CAAC,GAEnBa,IAAgBJ,EAAY,MAAM;;AACtC,IAAAV,EAAmB,EAAE,GAEjBG,MACQD,KAAA,QAAAA,OAGZa,IAAAR,EAAS,YAAT,QAAAQ,EAAkB;AAAA,EAAM,GACvB,CAACf,GAAoBE,CAAO,CAAC;AAG9B,SAAA,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAOtB,KAAS;AAAA,MAChB,gBAAAS;AAAA,MACA,gBAAAC;AAAA,MACA,UAAAX;AAAA,MAEA,UAAA,gBAAAsB;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,UAAA1B;AAAA,UACA,MAAAO;AAAA,UACA,OAAAD;AAAA,UACA,UAAAJ;AAAA,UACA,OAAAC;AAAA,UACA,cACE,gBAAAwB;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,gBAAe;AAAA,cACf,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,UAAU;AAAA,cACV,QAAQxB;AAAA,cACR,SAASC;AAAA,cAER,UAAA;AAAA,gBAAAI,KAAwBK,KACvB,gBAAAU;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,gBAAgB7B;AAAA,oBAChB,WAAWE;AAAA,oBACX,OAAOK;AAAA,oBACP,SAASc;AAAA,oBAER,UAAAP;AAAA,kBAAA;AAAA,gBACH;AAAA,gBAEF,gBAAAU;AAAA,kBAACM;AAAA,kBAAA;AAAA,oBACC,WAAW9B;AAAA,oBACX,aAAaG;AAAA,oBACb,KAAKY;AAAA,oBACL,OAAOR;AAAA,oBACP,OAAON,KAAS;AAAA,oBAChB,UAAAC;AAAA,oBACA,UAAUe;AAAA,oBACV,WAAWG;AAAA,kBAAA;AAAA,gBACb;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAEF,gBAAgBnB,KAAS,gBAAAuB,EAACO,GAAA,EAAuB,SAAST,GAAe;AAAA,QAAA;AAAA,MAC3E;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|