Current Path : /home/ncdcgo/admin.ncdc.go.ug/static/js/ |
Current File : /home/ncdcgo/admin.ncdc.go.ug/static/js/10.650f683d.chunk.js.map |
{"version":3,"sources":["utils/format.js","../node_modules/dayjs/dayjs.min.js","features/resources/api/getResource.js","features/resources/routes/Resource.jsx","features/resources/api/createResource.js","features/resources/components/CreateResource.jsx","features/resources/api/getResources.js","features/resources/api/deleteResource.js","features/resources/components/DeleteResource.jsx","features/resources/components/ResourcesList.jsx","features/resources/routes/Resources.jsx","features/resources/routes/index.jsx"],"names":["formatDate","date","dayjs","format","propTypes","PropTypes","string","isRequired","module","exports","t","e","n","r","i","s","u","a","o","f","h","c","d","$","l","y","M","name","weekdays","split","months","m","String","length","Array","join","g","z","utcOffset","Math","abs","floor","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","v","_","S","args","arguments","O","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","invalidDate","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","b","forEach","extend","$i","isDayjs","en","Ls","useResource","resourceId","config","useQuery","queryKey","queryFn","axios","getResource","Resource","useParams","resourceQuery","isLoading","className","size","data","Head","title","createdAt","value","desc","curriculum","price","createResource","post","shape","schema","CreateResource","useState","resource","setResource","cover","setCover","curriculumsQuery","label","createResourceMutation","addNotification","useNotificationStore","useMutation","onMutate","newResource","queryClient","cancelQueries","previousResources","getQueryData","setQueryData","onError","__","context","onSuccess","invalidateQueries","type","mutationFn","useCreateResource","allowedRoles","ROLES","ADMIN","Form","isDone","isSuccess","triggerButton","startIcon","submitButton","form","id","encType","onSubmit","values","bodyFormData","FormData","append","mutateAsync","register","formState","watch","setValue","error","errors","registration","editorContent","accept","onChange","target","files","options","map","getResources","deleteResource","delete","DeleteResource","deleteResourceMutation","deletedResource","filter","useDeleteResource","icon","body","variant","confirmButton","onClick","ResourcesList","resourcesQuery","useResources","columns","field","Cell","entry","_id","to","Resources","button","ResourcesRoutes","path","element"],"mappings":"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","file":"static/js/10.650f683d.chunk.js","sourcesContent":["import { default as dayjs } from 'dayjs';\nimport PropTypes from 'prop-types';\n\nexport const formatDate = (date) => dayjs(date).format('MMMM D, YYYY h:mm A');\n\nformatDate.propTypes = {\n date: PropTypes.string.isRequired,\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},D=\"en\",v={};v[D]=M;var p=function(t){return t instanceof _},S=function(t,e,n){var r;if(!t)return D;if(\"string\"==typeof t)v[t]&&(r=t),e&&(v[t]=e,r=t);else{var i=t.name;v[i]=t,r=i}return!n&&r&&(D=r),r||!n&&D},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),$=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},l=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,g=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return r?$(1,0):$(31,11);case f:return r?$(1,M):$(0,M+1);case o:var D=this.$locale().weekStart||0,v=(y<D?y+7:y)-D;return $(r?m-v:m+(6-v),M);case a:case d:return l(g+\"Hours\",0);case u:return l(g+\"Minutes\",1);case s:return l(g+\"Seconds\",2);case i:return l(g+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h=\"set\"+(this.$u?\"UTC\":\"\"),$=(n={},n[a]=h+\"Date\",n[d]=h+\"Date\",n[f]=h+\"Month\",n[c]=h+\"FullYear\",n[u]=h+\"Hours\",n[s]=h+\"Minutes\",n[i]=h+\"Seconds\",n[r]=h+\"Milliseconds\",n)[o],l=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[$](l),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else $&&this.$d[$](l);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,$=this;r=Number(r);var l=O.p(h),y=function(t){var e=w($);return O.w(e.date(e.date()+Math.round(t*r)),$)};if(l===f)return this.set(f,this.$M+r);if(l===c)return this.set(c,this.$y+r);if(l===a)return y(1);if(l===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[l]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||$;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].substr(0,s)},c=function(t){return O.s(s%12||12,t,\"0\")},d=n.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,\"0\"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,\"0\"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,\"0\"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,\"0\"),s:String(this.$s),ss:O.s(this.$s,2,\"0\"),SSS:O.s(this.$ms,3,\"0\"),Z:i};return r.replace(y,(function(t,e){return e||l[t]||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,$){var l,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,g=this-M,D=O.m(this,M);return D=(l={},l[c]=D/12,l[f]=D,l[h]=D/3,l[o]=(g-m)/6048e5,l[a]=(g-m)/864e5,l[u]=g/n,l[s]=g/e,l[i]=g/t,l)[y]||g,$?D:O.a(D)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return v[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),b=_.prototype;return w.prototype=b,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",f],[\"$y\",c],[\"$D\",d]].forEach((function(t){b[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=v[D],w.Ls=v,w.p={},w}));","import { axios } from '@/lib/axios';\nimport { useQuery } from 'react-query';\n\nexport const getResource = ({ resourceId }) => {\n return axios.get(`/resources/${resourceId}`);\n};\n\nexport const useResource = ({ resourceId, config }) => {\n return useQuery({\n ...config,\n queryKey: ['resource', resourceId],\n queryFn: () => getResource({ resourceId }),\n });\n};\n","import { Spinner, MDPreview } from '@/components/Elements';\nimport { Head } from '@/components/Head';\nimport { ContentLayout } from '@/components/Layout';\nimport { formatDate } from '@/utils/format';\nimport { useParams } from 'react-router-dom';\n\nimport { useResource } from '../api/getResource';\n\nexport const Resource = () => {\n const { resourceId } = useParams();\n const resourceQuery = useResource({ resourceId });\n\n if (resourceQuery.isLoading) {\n return (\n <div className=\"w-full h-48 flex justify-center items-center\">\n <Spinner size=\"lg\" />\n </div>\n );\n }\n\n if (!resourceQuery.data) return null;\n\n return (\n <>\n <Head title={resourceQuery.data.title} />\n <ContentLayout title={resourceQuery.data.title}>\n <span className=\"text-xs font-bold\">{formatDate(resourceQuery.data.createdAt)}</span>\n <div className=\"mt-6 flex flex-col space-y-16\">\n <div>\n <div className=\"bg-white shadow overflow-hidden sm:rounded-lg\">\n <div className=\"px-4 py-5 sm:px-6\">\n <div className=\"mt-1 max-w-2xl text-sm text-gray-500\">\n {/* preview pdf */}\n\n <span className=\"font-bold text-lg\">{resourceQuery.data.title}</span>\n <div className=\"bg-gray-100 p-4 my-4\">\n <span className=\"text-xs text-gray-500\">Description</span>\n <MDPreview value={resourceQuery.data.desc} />\n </div>\n <span>Curriculum: {resourceQuery.data.curriculum}</span>\n <br />\n <span>\n Price: {resourceQuery.data.price === 0 ? `Free` : resourceQuery.data.price}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ContentLayout>\n </>\n );\n};\n","import { axios } from '@/lib/axios';\nimport { queryClient } from '@/lib/react-query';\nimport { useNotificationStore } from '@/stores/notifications';\nimport PropTypes from 'prop-types';\nimport { useMutation } from 'react-query';\n\nexport const createResource = ({ data }) => {\n return axios.post(`/resources`, data);\n};\n\ncreateResource.propTypes = {\n data: PropTypes.shape({\n title: PropTypes.string.isRequired,\n price: PropTypes.string,\n desc: PropTypes.string,\n curriculum: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport const useCreateResource = ({ config } = {}) => {\n const { addNotification } = useNotificationStore();\n return useMutation({\n onMutate: async (newResource) => {\n await queryClient.cancelQueries('resources');\n\n const previousResources = queryClient.getQueryData('resources');\n\n queryClient.setQueryData('resources', [...(previousResources || []), newResource.data]);\n\n return { previousResources };\n },\n onError: (_, __, context) => {\n if (context?.previousResources) {\n queryClient.setQueryData('resources', context.previousResources);\n }\n },\n onSuccess: () => {\n queryClient.invalidateQueries('resources');\n addNotification({\n type: 'success',\n title: 'Resource Created',\n });\n },\n ...config,\n mutationFn: createResource,\n });\n};\n","import { Button } from '@/components/Elements';\nimport {\n DocumentUploadField,\n Form,\n FormDrawer,\n InputField,\n SelectField,\n TextAreaField,\n} from '@/components/Form';\nimport { Authorization, ROLES } from '@/lib/authorization';\nimport { PlusIcon } from '@heroicons/react/outline';\nimport { useState } from 'react';\nimport * as z from 'zod';\n\nimport { useCreateResource } from '../api/createResource';\n\nconst schema = z.object({\n title: z.string().min(1, 'Required'),\n curriculum: z.string().min(1, 'Required'),\n price: z.string(),\n desc: z.string(),\n});\n\nexport const CreateResource = () => {\n const [resource, setResource] = useState(null);\n const [cover, setCover] = useState(null);\n\n const curriculumsQuery = [\n { label: 'A Level Curriculum', value: 'A Level Curriculum' },\n { label: 'Primary Curriculum', value: 'Primary Curriculum' },\n { label: 'Secondary Curriculum', value: 'Secondary Curriculum' },\n ];\n\n const createResourceMutation = useCreateResource();\n\n return (\n <Authorization allowedRoles={[ROLES.ADMIN]}>\n <FormDrawer\n size=\"sm\"\n isDone={createResourceMutation.isSuccess}\n triggerButton={\n <Button size=\"sm\" startIcon={<PlusIcon className=\"h-4 w-4\" />}>\n Create Resource\n </Button>\n }\n title=\"Create Resource\"\n submitButton={\n <Button\n form=\"create-resource\"\n type=\"submit\"\n size=\"sm\"\n isLoading={createResourceMutation.isLoading}\n >\n Submit\n </Button>\n }\n >\n <Form\n id=\"create-resource\"\n encType=\"multipart/form-data\"\n onSubmit={async (values) => {\n const { title, price, desc, curriculum } = values;\n const bodyFormData = new FormData();\n bodyFormData.append('title', title);\n bodyFormData.append('price', price);\n bodyFormData.append('desc', desc);\n bodyFormData.append('curriculum', curriculum);\n bodyFormData.append('cover', cover);\n bodyFormData.append('resource', resource);\n await createResourceMutation.mutateAsync({ data: bodyFormData });\n }}\n schema={schema}\n >\n {({ register, formState, watch, setValue }) => (\n <>\n <InputField\n label=\"Title\"\n error={formState.errors['title']}\n registration={register('title')}\n />\n <TextAreaField\n label=\"Description\"\n error={formState.errors['desc']}\n editorContent={watch('desc')}\n setValue={setValue}\n value=\"desc\"\n />\n <InputField\n label=\"Price\"\n error={formState.errors['price']}\n registration={register('price')}\n />\n <DocumentUploadField\n label=\"Upload Resource Cover Photo\"\n accept=\"image/*\"\n error={formState.errors['cover']}\n onChange={(e) => {\n setCover(e.target.files[0]);\n }}\n />\n <DocumentUploadField\n label=\"Upload Resource File\"\n accept=\"application/pdf\"\n error={formState.errors['resource']}\n onChange={(e) => {\n setResource(e.target.files[0]);\n }}\n />\n <SelectField\n label=\"Select Curriculum\"\n error={formState.errors['curriculum']}\n registration={register('curriculum')}\n options={curriculumsQuery?.map((curriculum) => ({\n label: curriculum.label,\n value: curriculum.value,\n }))}\n />\n </>\n )}\n </Form>\n </FormDrawer>\n </Authorization>\n );\n};\n","import { axios } from '@/lib/axios';\nimport { useQuery } from 'react-query';\n\nexport const getResources = () => {\n return axios.get('/resources');\n};\n\nexport const useResources = ({ config } = {}) => {\n return useQuery({\n ...config,\n queryKey: ['resources'],\n queryFn: () => getResources(),\n });\n};\n","import { axios } from '@/lib/axios';\nimport { queryClient } from '@/lib/react-query';\nimport { useNotificationStore } from '@/stores/notifications';\nimport PropTypes from 'prop-types';\nimport { useMutation } from 'react-query';\n\nexport const deleteResource = ({ resourceId }) => {\n return axios.delete(`/resources/${resourceId}`);\n};\n\ndeleteResource.propTypes = {\n resourceId: PropTypes.string.isRequired,\n};\n\nexport const useDeleteResource = ({ config } = {}) => {\n const { addNotification } = useNotificationStore();\n\n return useMutation({\n onMutate: async (deletedResource) => {\n await queryClient.cancelQueries('resources');\n\n const previousResources = queryClient.getQueryData('resources');\n\n queryClient.setQueryData(\n 'resources',\n previousResources?.filter((resource) => resource.id !== deletedResource.resourceId)\n );\n\n return { previousResources };\n },\n onError: (_, __, context) => {\n if (context?.previousResources) {\n queryClient.setQueryData('resources', context.previousResources);\n }\n },\n onSuccess: () => {\n queryClient.invalidateQueries('resources');\n addNotification({\n type: 'success',\n title: 'Resources Deleted',\n });\n },\n ...config,\n mutationFn: deleteResource,\n });\n};\n","import { Button, ConfirmationDialog } from '@/components/Elements';\nimport { Authorization, ROLES } from '@/lib/authorization';\nimport { TrashIcon } from '@heroicons/react/outline';\nimport PropTypes from 'prop-types';\n\nimport { useDeleteResource } from '../api/deleteResource';\n\nexport const DeleteResource = ({ id }) => {\n const deleteResourceMutation = useDeleteResource();\n\n return (\n <Authorization allowedRoles={[ROLES.ADMIN]}>\n <ConfirmationDialog\n icon=\"danger\"\n title=\"Delete Resource\"\n body=\"Are you sure you want to delete this Resource?\"\n triggerButton={\n <Button variant=\"danger\" startIcon={<TrashIcon className=\"h-4 w-4\" />}>\n Delete Resource\n </Button>\n }\n confirmButton={\n <Button\n isLoading={deleteResourceMutation.isLoading}\n type=\"button\"\n className=\"bg-red-600\"\n onClick={async () => await deleteResourceMutation.mutateAsync({ resourceId: id })}\n >\n Delete Resource\n </Button>\n }\n />\n </Authorization>\n );\n};\n\nDeleteResource.propTypes = {\n id: PropTypes.string.isRequired,\n};\n","import { Table, Spinner, Link } from '@/components/Elements';\nimport { formatDate } from '@/utils/format';\n\nimport { useResources } from '../api/getResources';\n\nimport { DeleteResource } from './DeleteResource';\n\nexport const ResourcesList = () => {\n const resourcesQuery = useResources();\n\n if (resourcesQuery.isLoading) {\n return (\n <div className=\"w-full h-48 flex justify-center items-center\">\n <Spinner size=\"lg\" />\n </div>\n );\n }\n\n if (!resourcesQuery.data) return null;\n\n return (\n <Table\n data={resourcesQuery.data}\n columns={[\n {\n title: 'Title',\n field: 'title',\n Cell({ entry: { title } }) {\n return (\n <div className=\"w-[30vw] overflow-hidden\">\n <p className=\"break-words\">{title}</p>\n </div>\n );\n },\n },\n {\n title: 'Created At',\n field: 'createdAt',\n Cell({ entry: { createdAt } }) {\n return <span>{formatDate(createdAt)}</span>;\n },\n },\n {\n title: '',\n field: 'id',\n Cell({ entry: { _id } }) {\n return <Link to={`./${_id}`}>View</Link>;\n },\n },\n {\n title: '',\n field: 'id',\n Cell({ entry: { _id } }) {\n return <DeleteResource id={_id} />;\n },\n },\n ]}\n />\n );\n};\n","import { ContentLayout } from '@/components/Layout';\n\nimport { CreateResource } from '../components/CreateResource';\nimport { ResourcesList } from '../components/ResourcesList';\n\nexport const Resources = () => {\n return (\n <ContentLayout title=\"Resources\" button={<CreateResource />}>\n <div className=\"mt-4\">\n <ResourcesList />\n </div>\n </ContentLayout>\n );\n};\n","import { Navigate, Route, Routes } from 'react-router-dom';\n\nimport { Resource } from './Resource';\nimport { Resources } from './Resources';\n\nexport const ResourcesRoutes = () => {\n return (\n <Routes>\n <Route path=\"\" element={<Resources />} />\n <Route path=\":resourceId\" element={<Resource />} />\n <Route path=\"*\" element={<Navigate to=\".\" />} />\n </Routes>\n );\n};\n"],"sourceRoot":""}