{"version":3,"sources":["configuration/actions.ts","redux/themeReducer.ts","layout/AppBar.tsx","common/listActions.tsx","common/form/SectionTitle.tsx","common/form/Seperator.tsx","common/form/IDField.tsx","common/form/validate.ts","resources/products/BrandField.tsx","resources/products/CategoryField.tsx","resources/products/MakeProductOutOfStockButton.tsx","resources/products/rowStyle.tsx","resources/products/MakeProductInStockButton.tsx","resources/products/ProductList.tsx","resources/products/ProductImageField.tsx","resources/products/VariationImageInput.tsx","common/form/SeoKeywordInput.tsx","resources/products/ProductCreate.tsx","resources/products/TagReferenceInput.tsx","resources/products/ProductEdit.tsx","resources/products/index.ts","layout/SubMenu.tsx","resources/orderItems/OrderItemEdit.tsx","resources/orderItems/OrderItemList.tsx","resources/orderItems/index.ts","resources/sales/SaleEdit.tsx","dashboard/MakePaymentRequest.tsx","resources/sales/SaleList.tsx","resources/sales/index.tsx","layout/Menu.tsx","layout/themes.ts","layout/Layout.tsx","layout/Login.tsx","i18n/en.ts","components/ForgetPassword.tsx","configuration/Configuration.tsx","routes/index.tsx","authProvider.tsx","dashboard/CardWithIcon.tsx","dashboard/cartoucheDark.png","dashboard/cartouche.png","dashboard/MiniCard.tsx","dashboard/SaleChart.tsx","dashboard/Dashboard.tsx","dashboard/index.ts","App.tsx","reportWebVitals.ts","dataProvider/index.ts","addUploadFeature.ts","index.tsx"],"names":["CHANGE_THEME","changeTheme","theme","type","payload","themeReducer","previousState","action","useStyles","makeStyles","title","flex","textOverflow","whiteSpace","overflow","spacer","ConfigurationMenu","forwardRef","props","ref","translate","useTranslate","MenuItemLink","to","primaryText","leftIcon","onClick","sidebarIsOpen","CustomUserMenu","UserMenu","CustomAppBar","classes","AppBar","elevation","userMenu","Typography","variant","color","className","id","button","backgroundColor","ListActions","filters","exporter","maxResults","deletefilter","updatedeletefilter","rest","useListContext","currentSort","resource","displayedFilters","filterValues","basePath","hasCreate","showFilter","selectedIds","total","styles","TopToolbar","sanitizeListRestProps","cloneElement","context","CreateButton","ExportButton","disabled","sort","Button","label","SectionTitle","gutterBottom","Separator","Box","pt","IDField","record","recordId","toString","slice","length","required","BrandField","Chip","avatar","image","Avatar","src","process","charAt","clickable","memo","CategoryField","MakeProductOutOfStockButton","useState","open","setOpen","refresh","useRefresh","notify","useNotify","unselectAll","useUnselectAll","useUpdateMany","outOfStock","onSuccess","onFailure","error","updateMany","loading","style","red","Confirm","isOpen","content","onConfirm","onClose","rowStyle","borderLeftColor","green","borderLeftWidth","borderLeftStyle","MakeProductInStockButton","ProductFilter","Filter","SearchInput","source","alwaysOn","BooleanInput","MyImageField","media","height","width","ProductStockUpdateActionButtons","BulkDeleteButton","ProductList","console","log","setdeletefilter","List","bulkActionButtons","filter","field","order","actions","Datagrid","sortable","TextField","ReferenceField","reference","ReferenceArrayField","SingleFieldList","NumberField","BooleanField","TrueIcon","VisibilityIcon","FalseIcon","VisibilityOffIcon","DateField","EditButton","DeleteButton","margin","ProductImageField","undefined","dialog","padding","VariationImageInput","name","combinationIndex","values","useFormState","mediaIndexes","variation","combination","showDialog","setShowDialog","choices","map","index","push","value","handleCloseClick","Dialog","fullWidth","maxWidth","DialogTitle","DialogContent","data","indexOrMedia","CreateKeyword","setChoices","useCreateSuggestionContext","onCancel","onCreate","React","setValue","onSubmit","event","preventDefault","onChange","target","autoFocus","DialogActions","SeoKeywordInput","seo","meta_keywords","keyword","AutocompleteArrayInput","create","firstName","lastName","slug","sku","shortDescription","description","boolean","display","brand","productType","marginLeft","categories","tags","productBy","weight","dimension","quantity","minOrder","shippingClass","shippingValue","attributeSelect","relatedProducts","metaTitle","metaDescription","ProductCreateToolbar","Toolbar","SaveButton","redirect","submitOnEnter","condition","val","trim","RenderPricingInput","state","setState","version","useVersion","useDataProvider","useGetIdentity","identity","useEffect","vendorProps","globalMargin","hasVariation","priceIndex","price","isSp","NRS","sp","marginType","cp","priceFieldGenerator","fields","marginBottom","alignItems","mr","NumberInput","replace","l","toUpperCase","validate","IconButton","remove","from","USD","RenderPricingNoVariationInput","mb","RenderAttributeSelect","useGetOne","_id","SelectInput","CombinationInput","border","borderColor","borderRadius","pl","flexGrow","mt","levelName","indexer","pr","TextInput","stock","VariationInput","attributeIds","attributeData","formclassName","combIndex","conf","handleClick","VariationInfo","ProductCreate","redirectTo","useRedirect","useGetList","page","perPage","ids","useCreateController","useMutation","mutate","save","useCallback","a","returnPromise","mutant","err","body","errors","e","message","Create","TabbedForm","initialValues","meta","isApproved","toolbar","FormTab","formClassName","header","indent","list","script","size","font","align","ReferenceInput","filterToQuery","allowEmpty","AutocompleteInput","optionText","optionValue","ReferenceArrayInput","entry","defaultValue","minValue","helperText","ImageInput","accept","placeholder","multiple","position","input","flexDirection","justifyContent","CreateTag","useCreate","TagReferenceInput","useForm","change","ProductTitle","edit","Edit","icon","CollectionsIcon","minWidth","spacing","paddingLeft","transition","sidebarIsClosed","SubMenu","handleToggle","children","dense","MenuItem","ListItemIcon","Tooltip","placement","Collapse","in","timeout","unmountOnExit","component","disablePadding","OrderItemTitle","tabs","LinkField","FunctionField","render","Link","TabbedDataGrid","listContext","setFilters","pending","setPending","setConfirmed","approve","setApprove","pickup","setPickup","delivering","setDelivering","delivered","setDelivered","cancelled","setCancelled","defect","setDefect","refund","setRefund","totals","totalPending","status","totalApprove","confirmed","useGetTotals","handleChange","Tabs","centered","indicatorColor","choice","Tab","Divider","ListContextProvider","optimized","showTime","SimpleForm","ShoppingCartIcon","SaleTitle","MakePaymentRequestButton","paymentRequest","SaleFilter","SalePaymentUpdateActionButtons","MakePaymentRequest","lable","CheckCircleIcon","CancelIcon","vendorPayable","fontWeight","toLocaleString","minimumFractionDigits","maximumFractionDigits","multiline","MonetizationOnIcon","Menu","onMenuClick","logout","menuUsers","menuProducts","menuOrders","isXSmall","useMediaQuery","breakpoints","down","useSelector","admin","ui","sidebarOpen","menu","permissions","usePermissions","roles","includes","DashboardMenuItem","smart_count","products","orderItems","darkTheme","palette","primary","main","secondary","overrides","MuiAppBar","colorSecondary","MuiButtonBase","root","top","right","opacity","disableRipple","lightTheme","light","dark","contrastText","background","default","shape","RaMenuItemLink","borderLeft","active","MuiPaper","elevation1","boxShadow","backgroundClip","MuiButton","contained","MuiLinearProgress","colorPrimary","barColorPrimary","MuiFilledInput","MuiSnackbarContent","RaSidebar","drawerPaper","CustomSidebar","Sidebar","Layout","appBar","sidebar","minHeight","backgroundRepeat","backgroundSize","card","marginTop","hint","grey","form","renderInput","touched","inputProps","Form","withTypes","Login","setLoading","login","useLogin","location","useLocation","auth","nextPathname","catch","_","phone","password","handleSubmit","noValidate","Card","CardActions","CircularProgress","thickness","Notification","LoginWithTheme","ThemeProvider","createMuiTheme","messages","simple","close","resetViews","englishMessages","pos","shippings","users","orders","cms","configuration","language","dashboard","welcome","subtitle","ra_button","newOrders","vendors","sales","monthHistory","ordersThisMonth","salesAmountThisMonth","adminFees","resources","posts","average_note","comments","commentable","commentable_short","created_at","notifications","nb_view","pictures","published_at","teaser","views","authors","post_id","author","fieldGroups","information","demographics","options","attributes","brands","dimensions","variations","shipping","countries","states","districts","areas","areaCluster","shippingMethods","parameter","delivery","cost","brandCMS","categoryCMS","productCMS","sliderCMS","option","menuCMS","pageCMS","post","search","summary","miscellaneous","save_and_edit","save_and_add","save_and_show","save_with_average_note","comment","about","user","security","product","asyncPost","url","request","Request","method","JSON","stringify","headers","Headers","fetch","res","ok","json","ForgetPassword","step","setStep","setPhone","code","setCode","history","useHistory","then","formProps","submitting","pristine","PasswordInput","Configuration","locale","useLocale","setLocale","useSetLocale","dispatch","useDispatch","Title","CardContent","exact","path","Promise","resolve","reject","checkError","checkAuth","currentUser","getPermissions","response","getIdentity","fullName","textDecoration","CardWithIcon","createElement","fontSize","textAlign","MiniCard","lastDay","Date","lastMonthDays","Array","i","subDays","aMonthAgo","dateFormatter","date","toLocaleDateString","getRevenuePerDay","daysWithRevenue","reduce","acc","curr","d","createdAt","day","getFullYear","getMonth","getDate","join","aggregateSalesByDay","getTime","SaleChart","CardHeader","ResponsiveContainer","AreaChart","x1","y1","x2","y2","offset","stopColor","stopOpacity","XAxis","dataKey","scale","domain","addDays","tickFormatter","YAxis","unit","CartesianGrid","strokeDasharray","cursor","formatter","Intl","NumberFormat","currency","format","labelFormatter","Area","stroke","strokeWidth","fill","flexColumn","leftCol","marginRight","rightCol","singleCol","statsNumber","Spacer","Empty","m","paragraph","SalePaymentRequestUpdateActionButtons","TopSaleListAction","Dashboard","dataProvider","fetchStats","getList","pagination","dateGte","toISOString","totalOrdersThisMonth","totalProducts","recentSales","totalSales","pre","totalSaleAmount","ShoppingBasketIcon","empty","htmlColor","paymentStatus","priceMin","priceMax","ListItem","orange","i18nProvider","polyglotI18nProvider","App","Admin","authProvider","customReducers","loginPage","layout","customRoutes","disableTelemetry","Resource","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","dataProviderFactory","provider","simpleRestProvider","apiUrl","httpClient","fetchUtils","fetchJson","buildFormData","formData","parentKey","File","append","Object","keys","forEach","key","addUploadCapabilities","params","FormData","pic","rawFile","update","newPictures","p","formerPictures","addUploadFeature","prepareDataProvider","ReactDOM","document","getElementById"],"mappings":"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","file":"static/js/main.b7e00c3a.chunk.js","sourcesContent":["import { ThemeName } from \"../ts/types\"\n\nexport const CHANGE_THEME = \"CHANGE_THEME\"\n\nexport const changeTheme = (theme: ThemeName) => ({\n type: CHANGE_THEME,\n payload: theme,\n})\n","import { Reducer } from \"redux\"\nimport { CHANGE_THEME, changeTheme } from \"../configuration/actions\"\nimport { ThemeName } from \"../ts/types\"\n\ntype State = ThemeName\ntype Action =\n | ReturnType\n | { type: \"OTHER_ACTION\"; payload?: any }\n\nconst themeReducer: Reducer = (\n previousState = \"light\",\n action\n) => {\n if (action.type === CHANGE_THEME) {\n return action.payload\n }\n return previousState\n}\n\nexport default themeReducer\n","import * as React from \"react\"\nimport { forwardRef } from \"react\"\nimport { AppBar, UserMenu, MenuItemLink, useTranslate } from \"react-admin\"\nimport Typography from \"@material-ui/core/Typography\"\nimport SettingsIcon from \"@material-ui/icons/Settings\"\nimport { makeStyles } from \"@material-ui/core/styles\"\n\nconst useStyles = makeStyles({\n title: {\n flex: 1,\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n },\n spacer: {\n flex: 1,\n },\n})\n\nconst ConfigurationMenu = forwardRef((props, ref) => {\n const translate = useTranslate()\n return (\n }\n onClick={props.onClick}\n sidebarIsOpen\n />\n )\n})\n\nconst CustomUserMenu = (props: any) => (\n \n \n \n)\n\nconst CustomAppBar = (props: any) => {\n const classes = useStyles()\n return (\n }>\n \n {/* TODO: LOGO here */}\n \n \n )\n}\n\nexport default CustomAppBar\n","import * as React from \"react\"\nimport { FC, cloneElement } from \"react\"\nimport {\n useListContext,\n TopToolbar,\n ExportButton,\n CreateButton,\n Button,\n sanitizeListRestProps,\n ListActionsProps,\n} from \"react-admin\"\nimport { makeStyles } from \"@material-ui/core/styles\"\nimport DeleteSweepOutlinedIcon from \"@material-ui/icons/DeleteSweepOutlined\"\n\nconst useStyles = makeStyles({\n button: {\n backgroundColor: \"#DFE7FD\",\n },\n})\n\ninterface ListActions extends ListActionsProps {\n maxResults?: number\n deletefilter: boolean\n updatedeletefilter: any\n}\n\nconst ListActions: FC = (props) => {\n const {\n className,\n exporter,\n filters,\n maxResults,\n deletefilter,\n updatedeletefilter,\n ...rest\n } = props\n const {\n currentSort,\n resource,\n displayedFilters,\n filterValues,\n hasCreate,\n basePath,\n selectedIds,\n showFilter,\n total,\n } = useListContext()\n\n const styles = useStyles()\n\n return (\n \n {filters &&\n cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: \"button\",\n })}\n \n \n {/* Add your custom actions */}\n \n \n \n \n )\n}\n\nexport default ListActions\n","import * as React from \"react\"\nimport { useTranslate } from \"react-admin\"\nimport Typography from \"@material-ui/core/Typography\"\n\nconst SectionTitle = ({ label }: { label: string }) => {\n const translate = useTranslate()\n\n return (\n \n {translate(label)}\n \n )\n}\n\nexport default SectionTitle\n","import * as React from \"react\"\nimport Box from \"@material-ui/core/Box\"\n\nconst Separator = () => \n\nexport default Separator\n","import * as React from \"react\"\nimport { FC } from \"react\"\nimport { FieldProps } from \"react-admin\"\n\nimport { AreaCluster } from \"../../ts/types\"\n\nconst IDField: FC> = ({ record }) => {\n const recordId = record?.id.toString().slice(record.id.toString().length - 5)\n\n return {recordId}\n}\n\nexport default IDField\n","import { required } from \"react-admin\"\n\nexport const requiredValidate = [required()]\n","import * as React from \"react\"\nimport { FC, memo } from \"react\"\nimport { Avatar, Chip } from \"@material-ui/core\"\nimport { FieldProps } from \"react-admin\"\n\nconst BrandField: FC = ({ record }) => {\n return record && record?.title ? (\n \n ) : (\n {record.title.charAt(0)}\n )\n }\n clickable\n // color=\"primary\"\n // variant=\"outlined\"\n />\n ) : null\n}\n\nexport default memo(BrandField)\n","import * as React from \"react\"\nimport { FC, memo } from \"react\"\nimport { Avatar, Box, Chip } from \"@material-ui/core\"\nimport { FieldProps } from \"react-admin\"\n\nconst CategoryField: FC = ({ record }) => {\n return record && record?.title ? (\n
\n \n ) : (\n {record.title.charAt(0)}\n )\n }\n clickable\n // color=\"primary\"\n // variant=\"outlined\"\n />\n \n
\n ) : null\n}\n\nexport default memo(CategoryField)\n","import * as React from \"react\"\nimport { Fragment, useState } from \"react\"\nimport {\n Button,\n Confirm,\n useUpdateMany,\n useRefresh,\n useNotify,\n useUnselectAll,\n} from \"react-admin\"\nimport { red } from \"@material-ui/core/colors\"\nimport RemoveCircleOutlineIcon from \"@material-ui/icons/RemoveCircleOutline\"\n\nconst MakeProductOutOfStockButton = ({ selectedIds }) => {\n const [open, setOpen] = useState(false)\n const refresh = useRefresh()\n const notify = useNotify()\n const unselectAll = useUnselectAll()\n const [updateMany, { loading }] = useUpdateMany(\n \"products/products\",\n selectedIds,\n { outOfStock: true },\n {\n onSuccess: () => {\n refresh()\n notify(\"Product updated\")\n unselectAll(\"products/products\")\n },\n onFailure: (error) => notify(\"Error: products not updated\", \"warning\"),\n }\n )\n const handleClick = () => setOpen(true)\n const handleDialogClose = () => setOpen(false)\n\n const handleConfirm = () => {\n updateMany()\n setOpen(false)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default MakeProductOutOfStockButton\n","import green from \"@material-ui/core/colors/green\"\nimport red from \"@material-ui/core/colors/red\"\n\nconst rowStyle = (record: any) => {\n let style = {}\n if (!record) {\n return style\n }\n if (record.outOfStock === false)\n return {\n ...style,\n borderLeftColor: green[500],\n borderLeftWidth: 5,\n borderLeftStyle: \"solid\",\n }\n if (record.outOfStock === true)\n return {\n ...style,\n borderLeftColor: red[500],\n borderLeftWidth: 5,\n borderLeftStyle: \"solid\",\n }\n return style\n}\n\nexport default rowStyle\n","import * as React from \"react\"\nimport { Fragment, useState } from \"react\"\nimport {\n Button,\n Confirm,\n useUpdateMany,\n useRefresh,\n useNotify,\n useUnselectAll,\n} from \"react-admin\"\nimport { green } from \"@material-ui/core/colors\"\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\"\n\nconst MakeProductInStockButton = ({ selectedIds }) => {\n const [open, setOpen] = useState(false)\n const refresh = useRefresh()\n const notify = useNotify()\n const unselectAll = useUnselectAll()\n const [updateMany, { loading }] = useUpdateMany(\n \"products/products\",\n selectedIds,\n { outOfStock: false },\n {\n onSuccess: () => {\n refresh()\n notify(\"Product updated\")\n unselectAll(\"products/products\")\n },\n onFailure: (error) => notify(\"Error: products not updated\", \"warning\"),\n }\n )\n const handleClick = () => setOpen(true)\n const handleDialogClose = () => setOpen(false)\n\n const handleConfirm = () => {\n updateMany()\n setOpen(false)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default MakeProductInStockButton\n","import * as React from \"react\"\nimport { FC, useState } from \"react\"\nimport {\n List,\n Datagrid,\n BooleanField,\n SingleFieldList,\n TextField,\n EditButton,\n BooleanInput,\n Filter,\n SearchInput,\n DateField,\n DeleteButton,\n NumberField,\n ReferenceArrayField,\n ReferenceField,\n useRecordContext,\n FilterProps,\n BulkDeleteButton,\n} from \"react-admin\"\nimport VisibilityIcon from \"@material-ui/icons/Visibility\"\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\"\n\nimport ListActions from \"../../common/listActions\"\nimport { IDField, Separator } from \"../../common/form\"\nimport BrandField from \"./BrandField\"\nimport CategoryField from \"./CategoryField\"\nimport { ListProps } from \"@material-ui/core\"\nimport MakeProductOutOfStockButton from \"./MakeProductOutOfStockButton\"\nimport rowStyle from \"./rowStyle\"\nimport MakeProductInStockButton from \"./MakeProductInStockButton\"\n\nconst ProductFilter: FC> = (props) => (\n \n \n \n \n)\n\nconst MyImageField = ({ record }: any) => {\n return (\n
\n 0\n ? `${process.env.REACT_APP_AWS_BUCKET_URL}${record.media[0]}`\n : \"\"\n }\n height={75}\n width=\"auto\"\n />\n
\n )\n}\n\nconst ProductStockUpdateActionButtons = (props) => (\n <>\n \n \n \n \n)\n\nconst ProductList: FC = (props) => {\n console.log(props)\n const [deletefilter, setdeletefilter] = useState(false)\n\n const updateDeleteFilter = () => {\n setdeletefilter(!deletefilter)\n }\n return (\n }\n filter={{ \"meta.isDeleted\": deletefilter }}\n filters={}\n sort={{ field: \"updatedAt\", order: \"DESC\" }}\n // perPage={20}\n actions={\n \n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!deletefilter ? : <>}\n \n \n )\n}\n\nexport default ProductList\n","import * as React from \"react\"\nimport { FC, memo } from \"react\"\nimport { makeStyles } from \"@material-ui/core\"\nimport { FieldProps } from \"react-admin\"\n\nconst styles = {\n image: { height: 160, margin: 10 },\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ProductImageField: FC = ({ record, className }: any) => {\n const classes = useStyles()\n return (\n \n )\n}\n\nexport default memo(ProductImageField)\n","import * as React from \"react\"\nimport { Fragment, useState, FC } from \"react\"\nimport { Button, useRefresh } from \"react-admin\"\nimport { green } from \"@material-ui/core/colors\"\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\"\nimport { useFormState } from \"react-final-form\"\nimport Dialog from \"@material-ui/core/Dialog\"\nimport DialogTitle from \"@material-ui/core/DialogTitle\"\nimport DialogContent from \"@material-ui/core/DialogContent\"\nimport DialogActions from \"@material-ui/core/DialogActions\"\nimport { Checkboxes, CheckboxData } from \"mui-rff\"\nimport { makeStyles } from \"@material-ui/core\"\n\nconst styles = {\n dialog: { padding: 10 },\n image: { height: 160, margin: 10 },\n}\n\nconst useStyles = makeStyles(styles)\n\ninterface VariationImageInputProps {\n name: string\n combinationIndex: number\n}\n\nconst VariationImageInput: FC = ({\n name,\n combinationIndex,\n}) => {\n const classes = useStyles()\n const { values } = useFormState()\n\n const mediaIndexes = values.variation.combination[combinationIndex].media\n\n const [showDialog, setShowDialog] = useState(false)\n const handleClick = () => setShowDialog(true)\n\n const choices: any = []\n\n if (values.media) {\n values.media.map((media, index) => {\n choices.push({\n label: (\n \n ),\n value: media.undefined ? index : media,\n })\n })\n }\n\n const handleCloseClick = () => {\n setShowDialog(false)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default SeoKeywordInput\n","import * as React from \"react\"\nimport { FC, useCallback, useEffect, useState } from \"react\"\nimport {\n Create,\n CreateProps,\n useMutation,\n TabbedForm,\n FormTab,\n TextInput,\n ImageInput,\n required,\n ReferenceInput,\n ReferenceArrayInput,\n AutocompleteInput,\n SelectInput,\n AutocompleteArrayInput,\n NumberInput,\n minValue,\n BooleanInput,\n useGetOne,\n useGetList,\n Toolbar,\n SaveButton,\n ToolbarProps,\n useRedirect,\n useNotify,\n useCreateController,\n useRefresh,\n useDataProvider,\n useVersion,\n useGetIdentity,\n} from \"react-admin\"\nimport { useFormState } from \"react-final-form\"\nimport RichTextInput from \"ra-input-rich-text\"\nimport { FieldArray } from \"react-final-form-arrays\"\nimport { Box, makeStyles, Button, IconButton } from \"@material-ui/core\"\nimport AddIcon from \"@material-ui/icons/Add\"\nimport RemoveIcon from \"@material-ui/icons/Remove\"\nimport Typography from \"@material-ui/core/Typography\"\nimport DeleteIcon from \"@material-ui/icons/Delete\"\nimport { SectionTitle, Separator } from \"../../common/form\"\nimport ProductImageField from \"./ProductImageField\"\nimport VariationImageInput from \"./VariationImageInput\"\nimport SeoKeywordInput from \"../../common/form/SeoKeywordInput\"\n\nconst styles = {\n firstName: { width: 544 },\n lastName: { width: 544 },\n title: { width: 544 },\n slug: { width: 544 },\n sku: { width: 544 },\n shortDescription: { width: 544 },\n description: { width: 544 },\n image: { width: 544 },\n boolean: { display: \"inline-block\" },\n brand: { display: \"inline-block\", width: 252 },\n productType: { display: \"inline-block\", marginLeft: 32, width: 262 },\n categories: { width: 544 },\n tags: { width: 544 },\n productBy: { width: 544 },\n weight: { display: \"inline-block\" },\n dimension: { display: \"inline-block\", marginLeft: 32 },\n quantity: { display: \"block\" },\n media: { width: 544 },\n minOrder: { width: 262 },\n shippingClass: { display: \"inline-block\" },\n shippingValue: { display: \"inline-block\", marginLeft: 32 },\n attributeSelect: { width: 100 },\n relatedProducts: { width: 544 },\n metaTitle: { width: 544 },\n metaDescription: { width: 544 },\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ProductCreateToolbar: FC = (props) => (\n \n \n \n \n)\n\nconst condition = (val: string) => !!val && val.trim().length > 6\n\ninterface RenderMarginInputProps {\n name: string\n}\n\ninterface State {\n margin?: number\n}\n\nconst RenderMarginInput: FC = ({ name }: any) => {\n const [state, setState] = useState({})\n const version = useVersion()\n const { values } = useFormState()\n const dataProvider = useDataProvider()\n const fetchMargin = useCallback(\n async (id) => {\n const { data } = await dataProvider.getOne(\"users/users\", { id })\n const margin = data?.vendorProps?.globalMargin\n setState((state) => ({\n ...state,\n margin,\n }))\n },\n [useDataProvider]\n )\n\n useEffect(() => {\n fetchMargin(values.productBy)\n }, [version, values.productBy])\n\n const { margin } = state\n\n if (values.marginType === \"global\")\n return margin ? (\n \n Vendor has global margin: {margin} %\n \n ) : values.productBy ? (\n \n Please set global margin for vendor {values.productBy}{\" \"}\n \n ) : (\n \n Please, select vendor first.\n \n )\n\n return (\n \n {({ fields }) => (\n \n {fields.map((name, index) => (\n
\n \n {`Margin #${index + 1}`}\n \n \n \n \n \n \n \n \n \n \n l.toUpperCase()\n )\n : \"Percentage/Rupees\"\n }\n validate={required()}\n fullWidth\n />\n \n\n fields.remove(index)}>\n \n \n \n
\n ))}\n \n fields.push({\n from: \"\",\n to: \"\",\n value: \"\",\n })\n }\n >\n Add Margin\n \n
\n )}\n
\n )\n}\n\ninterface RenderPricingInputProps {\n name: string\n combinationIndex: number\n}\n\nconst RenderPricingInput: FC = ({\n name,\n combinationIndex,\n}) => {\n const [state, setState] = useState({})\n const version = useVersion()\n const { values } = useFormState()\n const dataProvider = useDataProvider()\n\n const { identity, loading: identityLoading } = useGetIdentity()\n\n useEffect(() => {\n if (identity)\n setState((state) => ({\n ...state,\n margin: identity?.vendorProps?.globalMargin,\n }))\n }, [identity])\n\n const priceFieldGenerator = () => {\n if (!values.hasVariation) {\n for (const priceIndex in values.price) {\n if (!values.isSp) {\n if (values.marginType === \"percentage\")\n values.price[priceIndex].price.NRS =\n values.price[priceIndex].margin *\n 0.01 *\n values.price[priceIndex].cp +\n values.price[priceIndex].cp\n if (values.marginType === \"rupees\")\n values.price[priceIndex].price.NRS =\n values.price[priceIndex].cp + values.price[priceIndex].margin\n if (values.marginType === \"global\" && margin)\n values.price[priceIndex].price.NRS =\n margin * 0.01 * values.price[priceIndex].cp +\n values.price[priceIndex].cp\n } else {\n values.price[priceIndex].price.NRS = values.price[priceIndex].sp\n }\n }\n } else {\n for (const priceIndex in values.variation.combination[combinationIndex]\n .price) {\n if (!values.isSp) {\n if (values.marginType === \"percentage\")\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n values.variation.combination[combinationIndex].price[priceIndex]\n .margin *\n 0.01 *\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp +\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp\n if (values.marginType === \"rupees\")\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp +\n values.variation.combination[combinationIndex].price[priceIndex]\n .margin\n if (values.marginType === \"global\" && margin)\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n margin *\n 0.01 *\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp +\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp\n } else {\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n values.variation.combination[combinationIndex].price[priceIndex].sp\n }\n }\n }\n }\n\n useEffect(() => {\n priceFieldGenerator()\n }, [version, values.price, values.variation])\n\n const { margin } = state\n\n return (\n
\n {values.marginType === \"global\" ? (\n margin ? (\n \n Vendor has global margin: {margin} %\n \n ) : (\n \n Please contact Bhotahiti Admin to set global margin for you.{\" \"}\n {values.productBy}{\" \"}\n \n )\n ) : null}\n \n {({ fields }) => (\n \n {fields.map((name, index) => (\n
\n \n {`Pricing #${index + 1}`}\n \n \n \n \n \n \n \n \n {!values.isSp && (\n \n \n \n )}\n {values.isSp && (\n \n \n \n )}\n {values.marginType !== \"global\" && (\n \n \"Margin\" + \" \" + l.toUpperCase()\n )\n : \"Percentage/Rupees\"\n }\n validate={required()}\n fullWidth\n />\n \n )}\n\n fields.remove(index)}\n >\n \n \n \n \n {!values.hasVariation ? (\n
\n Showing Price ={\" \"}\n \n Rs. {}\n {!values.isSp\n ? values.price[index].cp\n ? values.marginType === \"percentage\"\n ? values.price[index].margin *\n 0.01 *\n values.price[index].cp +\n values.price[index].cp\n : values.marginType === \"rupees\"\n ? values.price[index].cp +\n values.price[index].margin\n : values.marginType === \"global\" && margin\n ? margin * 0.01 * values.price[index].cp +\n values.price[index].cp\n : \"Set vendor flat margin\"\n : null\n : values.price[index].sp}\n \n
\n ) : (\n
\n Showing Price ={\" \"}\n \n Rs.{\" \"}\n {!values.isSp\n ? values.variation.combination[combinationIndex]\n .price[index].cp\n ? values.marginType === \"percentage\"\n ? values.variation.combination[combinationIndex]\n .price[index].margin *\n 0.01 *\n values.variation.combination[combinationIndex]\n .price[index].cp +\n values.variation.combination[combinationIndex]\n .price[index].cp\n : values.marginType === \"rupees\"\n ? values.variation.combination[combinationIndex]\n .price[index].cp +\n values.variation.combination[combinationIndex]\n .price[index].margin\n : values.marginType === \"global\" && margin\n ? margin *\n 0.01 *\n values.variation.combination[combinationIndex]\n .price[index].cp +\n values.variation.combination[combinationIndex]\n .price[index].cp\n : \"Set vendor flat margin\"\n : null\n : values.variation.combination[combinationIndex]\n .price[index].sp}\n \n
\n )}\n
\n
\n ))}\n \n fields.push({\n quantity: { from: \"\", to: \"\" },\n price: { NRS: \"\", USD: \"\" },\n })\n }\n >\n Add Price\n \n
\n )}\n
\n
\n )\n}\n\ninterface RenderPricingNoVariationInputProps {\n name: string\n}\n\nconst RenderPricingNoVariationInput: FC = ({\n name,\n}) => {\n const state = useFormState()\n return !state.values.hasVariation ? (\n <>\n \n \n \n \n \n ) : null\n}\n\ninterface RenderAttributeSelectProps {\n id: string\n name: string\n index: number\n}\n\nconst RenderAttributeSelect: FC = ({\n id,\n name,\n index,\n}) => {\n const { data, loading, error } = useGetOne(\"products/attributes\", id)\n if (loading) {\n return
Loading ...
\n }\n if (error) {\n return
Erroring...
\n }\n\n const choices = data?.values.map((value: any) => ({\n id: value._id,\n name: value.title,\n }))\n\n return data ? (\n \n ) : null\n}\n\nconst CombinationInput = (props: any) => {\n const { values } = useFormState()\n\n return (\n \n {({ fields }) => (\n \n \n Variations\n \n {fields.map((name, index) => (\n \n \n \n \n {`Variation #${index + 1}`}\n \n \n \n fields.remove(index)}\n style={{ color: \"#f44336\" }}\n >\n \n \n \n \n {values && values.variation && values.variation.levelName && (\n \n {values.variation.levelName.map(\n (id: string, indexer: number) => (\n \n \n \n )\n )}\n \n )}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n ))}\n fields.push({ stock: \"\", title: \"\", sku: \"\" })}\n >\n variation\n \n \n )}\n \n )\n}\n\ninterface VariationInputProps {\n attributeIds: any\n attributeData: any\n}\n\nconst VariationInput: FC = ({\n attributeIds,\n attributeData,\n}) => {\n const classes = useStyles()\n const { values } = useFormState()\n const choices = attributeIds?.map((id: any) => ({\n id,\n name: attributeData[id].title,\n }))\n\n const handleClick = (fields, index) => {\n for (const combIndex in values.variation.combination) {\n delete values.variation.combination[combIndex].conf[`level${index + 1}`]\n }\n fields.remove(index)\n }\n return values.hasVariation ? (\n <>\n \n\n \n Add and Select Attributes\n \n\n \n {({ fields }) => (\n \n {fields.map((name, index) => (\n
\n \n \n \n\n handleClick(fields, index)}>\n \n \n
\n ))}\n \n
\n )}\n
\n \n \n ) : null\n}\n\nconst ProductCreate: FC = (props) => {\n const classes = useStyles()\n const refresh = useRefresh()\n const notify = useNotify()\n const redirectTo = useRedirect()\n\n const {\n data: attributeData,\n ids: attributeIds,\n loading: attributeLoading,\n error: attributeError,\n } = useGetList(\n \"products/attributes\",\n { page: 1, perPage: 100 },\n { field: \"title\", order: \"ASC\" }\n )\n\n const { basePath } = useCreateController(props)\n\n const [mutate] = useMutation()\n const save = useCallback(\n async (values, redirect) => {\n try {\n const mutant = await mutate(\n {\n type: \"create\",\n resource: \"products/products\",\n payload: { data: values },\n },\n { returnPromise: true }\n )\n notify(\"Product created successfully.\")\n if (!redirect) {\n redirectTo(\"create\", props.basePath)\n refresh()\n }\n redirectTo(\"edit\", basePath, mutant.data.id, mutant.data)\n refresh()\n } catch (error: any) {\n let err: any = {}\n for (let e of error.body.errors) {\n e.map((e: any) => {\n err[e.field] = e.message\n })\n }\n return err\n }\n },\n [mutate]\n )\n const productDefaultValue = () => ({\n margin: [{ from: 1, to: \"\", value: \"\" }],\n meta: {\n isApproved: false,\n },\n })\n return (\n \n }\n save={save}\n >\n \n \n \n \n \n \n \n \n condition(val) ? { title: val.trim() } : {}\n }\n fullWidth\n allowEmpty\n formClassName={classes.brand}\n >\n \n \n \n \n condition(val) ? { title: val.trim() } : {}\n }\n fullWidth\n allowEmpty\n formClassName={classes.categories}\n >\n \n \n \n condition(val) ? { title: val.trim() } : {}\n }\n fullWidth\n allowEmpty\n formClassName={classes.tags}\n >\n \n \n \n {/* \n \n condition(val) ? { title: val.trim() } : {}\n }\n fullWidth\n formClassName={classes.relatedProducts}\n >\n \n */}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n\n \n \n {/* */}\n\n \n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n Drop your image here

}\n multiple\n >\n \n \n
\n \n \n \n \n \n
\n )\n}\n\nconst VariationInfo = (props) => {\n const { values } = useFormState()\n\n return !values?.hasVariation ? (\n \n This product doesn't have variation.\n \n ) : null\n}\n\nexport default ProductCreate\n","import * as React from \"react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-final-form\"\nimport {\n AutocompleteArrayInput,\n ReferenceArrayInput,\n useCreate,\n useCreateSuggestionContext,\n} from \"react-admin\"\nimport {\n Button,\n Dialog,\n DialogContent,\n DialogActions,\n TextField as MuiTextField,\n} from \"@material-ui/core\"\nimport { makeStyles } from \"@material-ui/core/styles\"\n\nconst useStyles = makeStyles({\n button: {\n margin: \"0 24px\",\n position: \"relative\",\n },\n input: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n width: \"50%\",\n },\n})\n\nconst TagReferenceInput = ({\n ...props\n}: {\n reference: string\n source: string\n label?: string\n perPage?: number\n allowEmpty?: boolean\n}) => {\n const classes = useStyles()\n const { change } = useForm()\n const [filter, setFilter] = useState(true)\n\n const handleAddFilter = () => {\n setFilter(!filter)\n change(\"tags\", [])\n }\n\n return (\n
\n \n }\n optionText=\"title\"\n optionValue=\"title\"\n />\n \n
\n )\n}\n\nconst CreateTag = () => {\n const { filter, onCancel, onCreate } = useCreateSuggestionContext()\n const [value, setValue] = React.useState(filter || \"\")\n const [create] = useCreate(\"products/tags\")\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault()\n create(\n {\n payload: {\n data: {\n title: value,\n },\n },\n },\n {\n onSuccess: ({ data }) => {\n setValue(\"\")\n const choice = data\n onCreate(choice)\n },\n }\n )\n return false\n }\n return (\n \n
\n \n setValue(event.target.value)}\n autoFocus\n />\n \n \n \n \n \n
\n
\n )\n}\n\nexport default TagReferenceInput\n","import * as React from \"react\"\nimport { FC, useCallback, useState, useEffect } from \"react\"\nimport {\n Edit,\n EditProps,\n useMutation,\n TabbedForm,\n FormTab,\n TextInput,\n ImageInput,\n required,\n ReferenceInput,\n ReferenceArrayInput,\n AutocompleteInput,\n SelectInput,\n AutocompleteArrayInput,\n NumberInput,\n minValue,\n BooleanInput,\n useGetOne,\n useGetList,\n useNotify,\n useRefresh,\n useDataProvider,\n useVersion,\n useGetIdentity,\n} from \"react-admin\"\nimport { useFormState } from \"react-final-form\"\nimport RichTextInput from \"ra-input-rich-text\"\nimport { FieldArray } from \"react-final-form-arrays\"\nimport { Box, makeStyles, Button, IconButton } from \"@material-ui/core\"\nimport AddIcon from \"@material-ui/icons/Add\"\nimport RemoveIcon from \"@material-ui/icons/Remove\"\nimport Typography from \"@material-ui/core/Typography\"\nimport DeleteIcon from \"@material-ui/icons/Delete\"\nimport { SectionTitle, Separator } from \"../../common/form\"\n\nimport ProductImageField from \"./ProductImageField\"\nimport VariationImageInput from \"./VariationImageInput\"\nimport TagReferenceInput from \"./TagReferenceInput\"\nimport SeoKeywordInput from \"../../common/form/SeoKeywordInput\"\n\nconst Aside = ({ record }: any) => (\n
\n Product details\n {record && (\n Creation date: {record.createdAt}\n )}\n
\n)\n\nconst styles = {\n firstName: { width: 544 },\n lastName: { width: 544 },\n title: { width: 544 },\n slug: { width: 544 },\n sku: { width: 544 },\n shortDescription: { width: 544 },\n description: { width: 544 },\n image: { width: 544 },\n boolean: { display: \"inline-block\" },\n brand: { display: \"inline-block\", width: 252 },\n productType: { display: \"inline-block\", marginLeft: 32, width: 262 },\n categories: { width: 544 },\n tags: { width: 544 },\n productBy: { width: 544 },\n weight: { display: \"inline-block\" },\n dimension: { display: \"inline-block\", marginLeft: 32 },\n quantity: { display: \"block\" },\n media: { width: 544 },\n minOrder: { width: 262 },\n shippingClass: { display: \"inline-block\" },\n shippingValue: { display: \"inline-block\", marginLeft: 32 },\n attributeSelect: { width: 100 },\n relatedProducts: { width: 544 },\n metaTitle: { width: 544 },\n metaDescription: { width: 544 },\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ProductTitle = ({ record }: any) => (\n Product {record ? `\"${record.title}\"` : `#${record.id}`}\n)\n\nconst condition = (val: string) => !!val && val.trim().length > 6\n\ninterface RenderMarginInputProps {\n name: string\n}\n\ninterface State {\n margin?: number\n}\n\nconst RenderMarginInput: FC = ({ name }: any) => {\n const [state, setState] = useState({})\n const version = useVersion()\n const { values } = useFormState()\n const { identity, loading: identityLoading } = useGetIdentity()\n\n useEffect(() => {\n if (identity)\n setState((state) => ({\n ...state,\n margin: identity.vendorProps.globalMargin,\n }))\n }, [identity])\n const { margin } = state\n\n if (values.marginType === \"global\")\n return margin ? (\n \n Vendor has global margin: {margin} %\n \n ) : (\n \n Please set global margin for vendor {values.productBy}{\" \"}\n \n )\n\n return (\n \n {({ fields }) => (\n \n {fields.map((name, index) => (\n
\n \n {`Margin #${index + 1}`}\n \n \n \n \n \n \n \n \n \n \n l.toUpperCase()\n )\n : \"Percentage/Rupees\"\n }\n validate={required()}\n fullWidth\n />\n \n\n fields.remove(index)}>\n \n \n \n
\n ))}\n \n fields.push({\n from: \"\",\n to: \"\",\n value: \"\",\n })\n }\n >\n Add Margin\n \n
\n )}\n
\n )\n}\n\ninterface RenderPricingInputProps {\n name: string\n combinationIndex: number\n}\n\nconst RenderPricingInput: FC = ({\n name,\n combinationIndex,\n}) => {\n const [state, setState] = useState({})\n const version = useVersion()\n const { values } = useFormState()\n const dataProvider = useDataProvider()\n const { identity, loading: identityLoading } = useGetIdentity()\n\n useEffect(() => {\n if (identity)\n setState((state) => ({\n ...state,\n margin: identity?.vendorProps?.globalMargin,\n }))\n }, [identity])\n\n const priceFieldGenerator = () => {\n if (!values.hasVariation) {\n for (const priceIndex in values.price) {\n if (!values.isSp) {\n if (values.marginType === \"percentage\")\n values.price[priceIndex].price.NRS =\n values.price[priceIndex].margin *\n 0.01 *\n values.price[priceIndex].cp +\n values.price[priceIndex].cp\n if (values.marginType === \"rupees\")\n values.price[priceIndex].price.NRS =\n values.price[priceIndex].cp + values.price[priceIndex].margin\n if (values.marginType === \"global\" && margin)\n values.price[priceIndex].price.NRS =\n margin * 0.01 * values.price[priceIndex].cp +\n values.price[priceIndex].cp\n } else {\n values.price[priceIndex].price.NRS = values.price[priceIndex].sp\n }\n }\n } else {\n for (const priceIndex in values.variation.combination[combinationIndex]\n .price) {\n if (!values.isSp) {\n if (values.marginType === \"percentage\")\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n values.variation.combination[combinationIndex].price[priceIndex]\n .margin *\n 0.01 *\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp +\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp\n if (values.marginType === \"rupees\")\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp +\n values.variation.combination[combinationIndex].price[priceIndex]\n .margin\n if (values.marginType === \"global\" && margin)\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n margin *\n 0.01 *\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp +\n values.variation.combination[combinationIndex].price[priceIndex]\n .cp\n } else {\n values.variation.combination[combinationIndex].price[\n priceIndex\n ].price.NRS =\n values.variation.combination[combinationIndex].price[priceIndex].sp\n }\n }\n }\n }\n\n useEffect(() => {\n priceFieldGenerator()\n }, [version, values.price, values.variation])\n\n const { margin } = state\n\n return (\n
\n {values.marginType === \"global\" ? (\n margin ? (\n \n Vendor has global margin: {margin} %\n \n ) : (\n \n Please set global margin for vendor{\" \"}\n {values.productBy}{\" \"}\n \n )\n ) : null}\n \n {({ fields }) => (\n \n {fields.map((name, index) => (\n
\n \n {`Pricing #${index + 1}`}\n \n \n \n \n \n \n \n \n {!values.isSp && (\n \n \n \n )}\n {values.isSp && (\n \n \n \n )}\n {values.marginType !== \"global\" && (\n \n \"Margin\" + \" \" + l.toUpperCase()\n )\n : \"Percentage/Rupees\"\n }\n validate={required()}\n fullWidth\n />\n \n )}\n\n fields.remove(index)}\n >\n \n \n \n \n {!values.hasVariation ? (\n
\n Showing Price ={\" \"}\n \n Rs. {}\n {!values.isSp\n ? values.price[index].cp\n ? values.marginType === \"percentage\"\n ? values.price[index].margin *\n 0.01 *\n values.price[index].cp +\n values.price[index].cp\n : values.marginType === \"rupees\"\n ? values.price[index].cp +\n values.price[index].margin\n : values.marginType === \"global\" && margin\n ? margin * 0.01 * values.price[index].cp +\n values.price[index].cp\n : \"Set vendor flat margin\"\n : null\n : values.price[index].sp}\n \n
\n ) : (\n
\n Showing Price ={\" \"}\n \n Rs.{\" \"}\n {!values.isSp\n ? values.variation.combination[combinationIndex]\n .price[index].cp\n ? values.marginType === \"percentage\"\n ? values.variation.combination[combinationIndex]\n .price[index].margin *\n 0.01 *\n values.variation.combination[combinationIndex]\n .price[index].cp +\n values.variation.combination[combinationIndex]\n .price[index].cp\n : values.marginType === \"rupees\"\n ? values.variation.combination[combinationIndex]\n .price[index].cp +\n values.variation.combination[combinationIndex]\n .price[index].margin\n : values.marginType === \"global\" && margin\n ? margin *\n 0.01 *\n values.variation.combination[combinationIndex]\n .price[index].cp +\n values.variation.combination[combinationIndex]\n .price[index].cp\n : \"Set vendor flat margin\"\n : null\n : values.variation.combination[combinationIndex]\n .price[index].sp}\n \n
\n )}\n
\n
\n ))}\n \n fields.push({\n quantity: { from: \"\", to: \"\" },\n price: { NRS: \"\", USD: \"\" },\n })\n }\n >\n Add Price\n \n
\n )}\n
\n
\n )\n}\n\ninterface RenderPricingNoVariationInputProps {\n name: string\n}\n\nconst RenderPricingNoVariationInput: FC = ({\n name,\n}) => {\n const state = useFormState()\n return !state.values.hasVariation ? (\n <>\n \n \n \n \n \n ) : null\n}\n\ninterface RenderAttributeSelectProps {\n id: string\n name: string\n index: number\n}\n\nconst RenderAttributeSelect: FC = ({\n id,\n name,\n index,\n}) => {\n const { data, loading, error } = useGetOne(\"products/attributes\", id)\n if (loading) {\n return
Loading ...
\n }\n if (error) {\n return
Erroring...
\n }\n\n const choices = data?.values.map((value: any) => ({\n id: value._id,\n name: value.title,\n }))\n\n return data ? (\n \n ) : null\n}\n\nconst CombinationInput = (props: any) => {\n const { values } = useFormState()\n\n return (\n \n {({ fields }) => (\n \n \n Variations\n \n {fields.map((name, index) => (\n \n \n \n \n {`Variation #${index + 1}`}\n \n \n \n fields.remove(index)}\n style={{ color: \"#f44336\" }}\n >\n \n \n \n \n {values && values.variation && values.variation.levelName && (\n \n {values.variation.levelName.map(\n (id: string, indexer: number) => (\n \n \n \n )\n )}\n \n )}\n\n \n \n \n \n \n \n \n \n \n \n \n ))}\n fields.push({ stock: \"\", title: \"\", sku: \"\" })}\n >\n variation\n \n \n )}\n \n )\n}\n\ninterface VariationInputProps {\n attributeIds: any\n attributeData: any\n}\n\nconst VariationInput: FC = ({\n attributeIds,\n attributeData,\n}) => {\n const classes = useStyles()\n const { values } = useFormState()\n const choices = attributeIds?.map((id: any) => ({\n id,\n name: attributeData[id].title,\n }))\n\n const handleClick = (fields, index) => {\n for (const combIndex in values.variation.combination) {\n delete values.variation.combination[combIndex].conf[`level${index + 1}`]\n }\n fields.remove(index)\n }\n return values.hasVariation ? (\n <>\n \n\n \n Add and Select Attributes\n \n\n \n {({ fields }) => (\n \n {fields.map((name, index) => (\n
\n \n \n \n\n handleClick(fields, index)}>\n \n \n
\n ))}\n \n
\n )}\n
\n \n \n ) : null\n}\n\nconst ProductEdit: FC = (props) => {\n const classes = useStyles()\n const notify = useNotify()\n const refresh = useRefresh()\n\n const {\n data: attributeData,\n ids: attributeIds,\n loading: attributeLoading,\n error: attributeError,\n } = useGetList(\n \"products/attributes\",\n { page: 1, perPage: 100 },\n { field: \"title\", order: \"ASC\" }\n )\n\n const [mutate] = useMutation()\n const save = useCallback(\n async (values) => {\n try {\n await mutate(\n {\n type: \"update\",\n resource: \"products/products\",\n payload: { id: values.id, data: values },\n },\n { returnPromise: true }\n )\n notify(\"Product updated successfully.\")\n refresh()\n } catch (error: any) {\n let err: any = {}\n for (let e of error.body.errors) {\n e.map((e: any) => {\n err[e.field] = e.message\n })\n }\n return err\n }\n },\n [mutate]\n )\n const productDefaultValue = () => ({\n meta: {\n isApproved: false,\n },\n })\n return (\n } {...props}>\n \n \n \n \n \n \n \n \n \n \n condition(val) ? { title: val.trim() } : {}\n }\n fullWidth\n allowEmpty\n formClassName={classes.brand}\n >\n \n \n \n \n condition(val) ? { title: val.trim() } : {}\n }\n fullWidth\n allowEmpty\n formClassName={classes.categories}\n >\n \n \n \n \n {/* */}\n {/* \n condition(val) ? { name: val.trim() } : {}\n }\n fullWidth\n formClassName={classes.relatedProducts}\n >\n \n */}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n\n \n \n {/* */}\n\n \n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n Drop your image here

}\n multiple\n >\n \n \n
\n \n \n \n \n
\n
\n )\n}\n\nconst VariationInfo = (props) => {\n const { values } = useFormState()\n\n return !values?.hasVariation ? (\n \n This product doesn't have variation.\n \n ) : null\n}\n\nexport default ProductEdit\n","import ProductList from \"./ProductList\"\nimport CollectionsIcon from \"@material-ui/icons/Collections\"\nimport ProductCreate from \"./ProductCreate\"\nimport ProductEdit from \"./ProductEdit\"\n\nexport default {\n list: ProductList,\n create: ProductCreate,\n edit: ProductEdit,\n icon: CollectionsIcon,\n}\n","import * as React from \"react\"\nimport { FC, Fragment, ReactElement } from \"react\"\nimport ExpandMore from \"@material-ui/icons/ExpandMore\"\nimport List from \"@material-ui/core/List\"\nimport MenuItem from \"@material-ui/core/MenuItem\"\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\"\nimport Typography from \"@material-ui/core/Typography\"\nimport Collapse from \"@material-ui/core/Collapse\"\nimport Tooltip from \"@material-ui/core/Tooltip\"\nimport { makeStyles } from \"@material-ui/core/styles\"\nimport { useTranslate } from \"react-admin\"\n\nconst useStyles = makeStyles((theme) => ({\n icon: { minWidth: theme.spacing(5) },\n sidebarIsOpen: {\n \"& a\": {\n paddingLeft: theme.spacing(4),\n transition: \"padding-left 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms\",\n },\n },\n sidebarIsClosed: {\n \"& a\": {\n paddingLeft: theme.spacing(2),\n transition: \"padding-left 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms\",\n },\n },\n}))\n\ninterface Props {\n dense: boolean\n handleToggle: () => void\n icon: ReactElement\n isOpen: boolean\n name: string\n sidebarIsOpen: boolean\n}\n\nconst SubMenu: FC = ({\n handleToggle,\n sidebarIsOpen,\n isOpen,\n name,\n icon,\n children,\n dense,\n}) => {\n const translate = useTranslate()\n const classes = useStyles()\n\n const header = (\n \n \n {isOpen ? : icon}\n \n \n {translate(name)}\n \n \n )\n\n return (\n \n {sidebarIsOpen || isOpen ? (\n header\n ) : (\n \n {header}\n \n )}\n \n \n {children}\n \n \n \n )\n}\n\nexport default SubMenu\n","import * as React from \"react\"\nimport { FC } from \"react\"\nimport {\n Edit,\n SimpleForm,\n TextInput,\n EditProps,\n SelectInput,\n} from \"react-admin\"\nimport { makeStyles } from \"@material-ui/core\"\n\nimport { SectionTitle, requiredValidate } from \"../../common/form\"\n\nconst styles = {\n id: { display: \"inline-block\" },\n slug: { display: \"inline-block\", marginLeft: 32 },\n}\n\nconst useStyles = makeStyles(styles)\n\nconst OrderItemTitle = ({ record }: any) => (\n Edit OrderItem {record && `#${record.id}`}\n)\n\nconst condition = (val: string) => !!val && val.trim().length > 5\n\nexport const OrderItemEdit: FC = (props) => {\n const classes = useStyles()\n\n return (\n } {...props}>\n \n \n \n \n \n \n )\n}\n","import * as React from \"react\"\nimport { FC, useState, useCallback, useEffect } from \"react\"\nimport {\n List,\n Datagrid,\n TextField,\n DateField,\n EditButton,\n Filter,\n FilterProps,\n ListProps,\n NumberField,\n ReferenceInput,\n SelectInput,\n ReferenceField,\n useGetList,\n DatagridProps,\n useListContext,\n Identifier,\n ListContextProvider,\n FunctionField,\n Link,\n} from \"react-admin\"\nimport { Divider, Tab, Tabs } from \"@material-ui/core\"\n\nimport { IDField } from \"../../common/form\"\n\nconst tabs = [\n { id: \"pending\", name: \"New Orders\" },\n { id: \"confirmed\", name: \"Confirmed\" },\n { id: \"approve\", name: \"Approve\" },\n { id: \"pickup\", name: \"Pickup\" },\n { id: \"delivering\", name: \"Delivering\" },\n { id: \"delivered\", name: \"Delivered\" },\n { id: \"cancelled\", name: \"Cancelled\" },\n { id: \"defect\", name: \"Defect\" },\n { id: \"refund\", name: \"Refund\" },\n]\n\ninterface TabbedDatagridProps extends DatagridProps {}\n\nconst useGetTotals = (filterValues: any) => {\n const { total: totalPending } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"pending\" }\n )\n const { total: totalApprove } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"approve\" }\n )\n const { total: totalConfirmed } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"confirmed\" }\n )\n const { total: totalPickup } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"pickup\" }\n )\n const { total: totalDelivering } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"delivering\" }\n )\n const { total: totalDelivered } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"delivered\" }\n )\n const { total: totalCancelled } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"cancelled\" }\n )\n const { total: totalDefect } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"defect\" }\n )\n const { total: totalRefund } = useGetList(\n \"orders/items\",\n { perPage: 2, page: 1 },\n { field: \"updatedAt\", order: \"ASC\" },\n { ...filterValues, status: \"refund\" }\n )\n\n return {\n pending: totalPending,\n confirmed: totalConfirmed,\n approve: totalApprove,\n pickup: totalPickup,\n delivering: totalDelivering,\n delivered: totalDelivered,\n cancelled: totalCancelled,\n defect: totalDefect,\n refund: totalRefund,\n }\n}\n\nconst LinkField = ({ source, field, reference, value, label }: any) => (\n \n record &&\n record[field] && (\n // @ts-ignore\n \n {record[field][value]}\n \n )\n }\n />\n)\n\nconst TabbedDataGrid: FC = (props) => {\n const listContext = useListContext()\n const { ids, filterValues, setFilters, displayedFilters } = listContext\n const [pending, setPending] = useState([] as Identifier[])\n const [confirmed, setConfirmed] = useState([] as Identifier[])\n const [approve, setApprove] = useState([] as Identifier[])\n const [pickup, setPickup] = useState([] as Identifier[])\n const [delivering, setDelivering] = useState([] as Identifier[])\n const [delivered, setDelivered] = useState([] as Identifier[])\n const [cancelled, setCancelled] = useState([] as Identifier[])\n const [defect, setDefect] = useState([] as Identifier[])\n const [refund, setRefund] = useState([] as Identifier[])\n\n const totals = useGetTotals(filterValues) as any\n\n console.log(totals[\"pending\"])\n\n useEffect(() => {\n if (ids && ids !== filterValues.status) {\n switch (filterValues.status) {\n case \"pending\":\n setPending(ids)\n break\n case \"confirmed\":\n setConfirmed(ids)\n break\n case \"approve\":\n setApprove(ids)\n break\n case \"pickup\":\n setPickup(ids)\n break\n case \"delivering\":\n setDelivering(ids)\n break\n case \"delivered\":\n setDelivered(ids)\n break\n case \"cancelled\":\n setCancelled(ids)\n break\n case \"defect\":\n setDefect(ids)\n break\n case \"refund\":\n setRefund(ids)\n break\n }\n }\n }, [ids, filterValues.status])\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<{}>, value: any) => {\n setFilters &&\n setFilters({ ...filterValues, status: value }, displayedFilters)\n },\n [displayedFilters, filterValues, setFilters]\n )\n\n // For mobile view\n const selectedIds =\n filterValues.status === \"pending\"\n ? pending\n : filterValues.status === \"approve\"\n ? approve\n : filterValues.status === \"pickup\"\n ? pickup\n : filterValues.status === \"delivering\"\n ? delivering\n : filterValues.status === \"delivered\"\n ? delivered\n : filterValues.status === \"cancelled\"\n ? cancelled\n : filterValues.status === \"defect\"\n ? defect\n : refund\n\n return (\n <>\n \n {tabs.map((choice) => (\n \n ))}\n \n \n
\n {filterValues.status === \"pending\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"confirmed\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"approve\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"pickup\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"delivering\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"delivered\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"cancelled\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"defect\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {filterValues.status === \"refund\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n
\n \n )\n}\n\nexport const OrderItemList: FC = (props) => {\n return (\n \n \n \n )\n}\n","import ShoppingCartIcon from \"@material-ui/icons/ShoppingCart\"\nimport { OrderItemEdit } from \"./OrderItemEdit\"\nimport { OrderItemList } from \"./OrderItemList\"\n\nexport default {\n list: OrderItemList,\n edit: OrderItemEdit,\n icon: ShoppingCartIcon,\n}\n","import * as React from \"react\"\nimport { FC } from \"react\"\nimport { makeStyles } from \"@material-ui/core\"\nimport {\n Edit,\n SimpleForm,\n BooleanInput,\n TextInput,\n EditProps,\n} from \"react-admin\"\n\nimport { SectionTitle, requiredValidate } from \"../../common/form\"\n\nconst styles = {\n id: { width: 544 },\n name: { width: 544 },\n boolean: { display: \"inline-block\" },\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SaleTitle = ({ record }: any) => Edit Sale #{record.id}\n\nexport const SaleEdit: FC = (props) => {\n const classes = useStyles()\n\n return (\n } {...props}>\n \n \n \n \n \n )\n}\n","import * as React from \"react\"\nimport { Fragment, useState } from \"react\"\nimport {\n Button,\n Confirm,\n useUpdateMany,\n useRefresh,\n useNotify,\n useUnselectAll,\n} from \"react-admin\"\nimport { green } from \"@material-ui/core/colors\"\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\"\n\nconst MakePaymentRequestButton = ({ selectedIds }) => {\n const [open, setOpen] = useState(false)\n const refresh = useRefresh()\n const notify = useNotify()\n const unselectAll = useUnselectAll()\n const [updateMany, { loading }] = useUpdateMany(\n \"sales/sales\",\n selectedIds,\n { paymentRequest: { status: true } },\n {\n onSuccess: () => {\n refresh()\n notify(\"Sales updated\")\n unselectAll(\"sales/sales\")\n },\n onFailure: (error) => notify(\"Error: sales not updated\", \"warning\"),\n }\n )\n const handleClick = () => setOpen(true)\n const handleDialogClose = () => setOpen(false)\n\n const handleConfirm = () => {\n updateMany()\n setOpen(false)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default MakePaymentRequestButton\n","import * as React from \"react\"\nimport { FC } from \"react\"\nimport {\n List,\n Datagrid,\n BooleanField,\n TextField,\n DateField,\n Filter,\n BooleanInput,\n ReferenceField,\n FieldProps,\n NumberField,\n FilterProps,\n FunctionField,\n} from \"react-admin\"\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\"\nimport CancelIcon from \"@material-ui/icons/Cancel\"\n\nimport { IDField } from \"../../common/form\"\nimport { ListProps } from \"@material-ui/core\"\nimport MakePaymentRequestButton from \"../../dashboard/MakePaymentRequest\"\n\nconst SaleFilter: FC> = (props) => (\n \n \n \n \n)\n\nconst SalePaymentUpdateActionButtons = (props) => (\n \n)\n\ninterface VariationFieldProps extends FieldProps {\n record?: any\n}\n\nconst VariationField: FC = ({ record }) => {\n return record.hasVariation ? (\n
\n {record.variation.map((variation) => (\n \n
\n \n {variation.title}\n

\n
\n
\n \n Quantity\n \n : {variation.quantity},\n \n price\n \n : {variation.price}\n
\n
\n \n Margin\n \n : {variation.margin},\n
\n
\n \n Vendor payable\n \n : {variation.vendorPayable}\n
\n
\n ))}\n \n ) : (\n \n )\n}\n\ninterface PricingFieldProps extends FieldProps {\n record?: any\n}\n\nconst PricingField: FC = ({ record }) => {\n return (\n record && (\n \n रू{\" \"}\n {(record.margin + record.vendorPayable).toLocaleString(\"en-IN\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}\n \n )\n )\n}\n\nexport const SaleList: FC = (props) => {\n console.log(props)\n return (\n }\n filter={{ \"meta.isDeleted\": false }}\n filters={}\n sort={{ field: \"createdAt\", order: \"DESC\" }}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n record.vendorPayable ? (\n \n रू{\" \"}\n {record.vendorPayable.toLocaleString(\"en-IN\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}\n \n ) : null\n }\n />\n \n \n )\n}\n","import { SaleEdit } from \"./SaleEdit\"\nimport { SaleList } from \"./SaleList\"\nimport MonetizationOnIcon from \"@material-ui/icons/MonetizationOn\"\n\nexport default {\n list: SaleList,\n edit: SaleEdit,\n icon: MonetizationOnIcon,\n}\n","import * as React from \"react\"\nimport { FC, useState } from \"react\"\nimport { useSelector } from \"react-redux\"\nimport SettingsIcon from \"@material-ui/icons/Settings\"\nimport { useMediaQuery, Theme, Box } from \"@material-ui/core\"\nimport {\n useTranslate,\n DashboardMenuItem,\n MenuItemLink,\n MenuProps,\n ReduxState,\n usePermissions,\n} from \"react-admin\"\nimport AddShoppingCartIcon from \"@material-ui/icons/AddShoppingCart\"\nimport ProductIcon from \"@material-ui/icons/Collections\"\n\nimport products from \"../resources/products\"\nimport SubMenu from \"./SubMenu\"\nimport orderItems from \"../resources/orderItems\"\nimport sales from \"../resources/sales\"\n\ntype MenuName = \"menuProducts\" | \"menuOrders\"\n\nconst Menu: FC = ({ onMenuClick, logout, dense = false }) => {\n const [state, setState] = useState({\n menuUsers: true,\n menuProducts: true,\n menuOrders: true,\n })\n const translate = useTranslate()\n const isXSmall = useMediaQuery((theme: Theme) => theme.breakpoints.down(\"xs\"))\n const open = useSelector((state: ReduxState) => state.admin.ui.sidebarOpen)\n // useSelector((state: AppState) => state.theme) // force rerender on theme change\n\n const handleToggle = (menu: MenuName) => {\n setState((state) => ({ ...state, [menu]: !state[menu] }))\n }\n\n const { permissions } = usePermissions()\n console.log(permissions)\n\n return (\n \n {permissions?.roles.includes(\"ADMIN\") ||\n permissions?.roles.includes(\"STAFF\") ||\n permissions?.roles.includes(\"VENDOR\") ? (\n <>\n \n handleToggle(\"menuProducts\")}\n isOpen={state.menuProducts}\n sidebarIsOpen={open}\n name=\"pos.menu.products\"\n icon={}\n dense={dense}\n >\n }\n onClick={onMenuClick}\n sidebarIsOpen={open}\n dense={dense}\n />\n \n handleToggle(\"menuOrders\")}\n isOpen={state.menuOrders}\n sidebarIsOpen={open}\n name=\"pos.menu.orders\"\n icon={}\n dense={dense}\n >\n }\n onClick={onMenuClick}\n sidebarIsOpen={open}\n dense={dense}\n />\n }\n onClick={onMenuClick}\n sidebarIsOpen={open}\n dense={dense}\n />\n \n \n ) : null}\n {isXSmall && (\n }\n onClick={onMenuClick}\n sidebarIsOpen={open}\n dense={dense}\n />\n )}\n {isXSmall && logout}\n \n )\n}\n\nexport default Menu\n","export const darkTheme = {\n palette: {\n primary: {\n main: \"#90caf9\",\n },\n secondary: {\n main: \"#FBBA72\",\n },\n type: \"dark\" as \"dark\", // Switching the dark mode on is a single property value change.\n },\n overrides: {\n MuiAppBar: {\n colorSecondary: {\n color: \"#ffffffb3\",\n backgroundColor: \"#616161e6\",\n },\n },\n MuiButtonBase: {\n root: {\n \"&:hover:active::after\": {\n // recreate a static ripple color\n // use the currentColor to make it work both for outlined and contained buttons\n // but to dim the background without dimming the text,\n // put another element on top with a limited opacity\n content: '\"\"',\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n right: 0,\n backgroundColor: \"currentColor\",\n opacity: 0.3,\n borderRadius: \"inherit\",\n },\n },\n },\n },\n props: {\n MuiButtonBase: {\n // disable ripple for perf reasons\n disableRipple: true,\n },\n },\n}\n\nexport const lightTheme = {\n palette: {\n primary: {\n main: \"#4f3cc9\",\n },\n secondary: {\n light: \"#5f5fc4\",\n main: \"#283593\",\n dark: \"#001064\",\n contrastText: \"#fff\",\n },\n background: {\n default: \"#fcfcfe\",\n },\n type: \"light\" as \"light\",\n },\n shape: {\n borderRadius: 10,\n },\n overrides: {\n RaMenuItemLink: {\n root: {\n borderLeft: \"3px solid #fff\",\n },\n active: {\n borderLeft: \"3px solid #4f3cc9\",\n },\n },\n MuiPaper: {\n elevation1: {\n boxShadow: \"none\",\n },\n root: {\n border: \"1px solid #e0e0e3\",\n backgroundClip: \"padding-box\",\n },\n },\n MuiButton: {\n contained: {\n backgroundColor: \"#fff\",\n color: \"#4f3cc9\",\n boxShadow: \"none\",\n },\n },\n MuiButtonBase: {\n root: {\n \"&:hover:active::after\": {\n // recreate a static ripple color\n // use the currentColor to make it work both for outlined and contained buttons\n // but to dim the background without dimming the text,\n // put another element on top with a limited opacity\n content: '\"\"',\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n right: 0,\n backgroundColor: \"currentColor\",\n opacity: 0.3,\n borderRadius: \"inherit\",\n },\n },\n },\n MuiAppBar: {\n colorSecondary: {\n color: \"#808080\",\n backgroundColor: \"#fff\",\n },\n },\n MuiLinearProgress: {\n colorPrimary: {\n backgroundColor: \"#f5f5f5\",\n },\n barColorPrimary: {\n backgroundColor: \"#d7d7d7\",\n },\n },\n MuiFilledInput: {\n root: {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\n \"&$disabled\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\n },\n },\n },\n MuiSnackbarContent: {\n root: {\n border: \"none\",\n },\n },\n // TODO: Change color theme\n RaSidebar: {\n drawerPaper: {},\n },\n },\n props: {\n MuiButtonBase: {\n // disable ripple for perf reasons\n disableRipple: true,\n },\n },\n}\n","import * as React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport { Layout, LayoutProps, Sidebar } from \"react-admin\"\nimport { AppState } from \"../ts/types\"\nimport AppBar from \"./AppBar\"\nimport Menu from \"./Menu\"\nimport { darkTheme, lightTheme } from \"./themes\"\n\nconst CustomSidebar = (props: any) => \n\nexport default (props: LayoutProps) => {\n const theme = useSelector((state: AppState) =>\n state.theme === \"dark\" ? darkTheme : lightTheme\n )\n return (\n \n )\n}\n","import * as React from \"react\"\nimport { useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Field, withTypes } from \"react-final-form\"\nimport { useLocation } from \"react-router-dom\"\n\nimport {\n Avatar,\n Button,\n Card,\n CardActions,\n CircularProgress,\n TextField,\n} from \"@material-ui/core\"\nimport { createMuiTheme, makeStyles } from \"@material-ui/core/styles\"\nimport { ThemeProvider } from \"@material-ui/styles\"\nimport LockIcon from \"@material-ui/icons/Lock\"\nimport {\n Notification,\n useTranslate,\n useLogin,\n useNotify,\n Link,\n} from \"react-admin\"\n\nimport { lightTheme } from \"./themes\"\n\nconst useStyles = makeStyles((theme) => ({\n main: {\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: \"100vh\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n background: \"url(https://source.unsplash.com/random/1600x900)\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n },\n card: {\n minWidth: 300,\n marginTop: \"6em\",\n },\n avatar: {\n margin: \"1em\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n icon: {\n backgroundColor: theme.palette.secondary.main,\n },\n hint: {\n marginTop: \"1em\",\n display: \"flex\",\n justifyContent: \"center\",\n color: theme.palette.grey[500],\n },\n form: {\n padding: \"0 1em 1em 1em\",\n },\n input: {\n marginTop: \"1em\",\n },\n actions: {\n padding: \"0 1em 1em 1em\",\n },\n}))\n\nconst renderInput = ({\n meta: { touched, error } = { touched: false, error: undefined },\n input: { ...inputProps },\n ...props\n}) => (\n \n)\n\ninterface FormValues {\n phone?: string\n password?: string\n}\n\nconst { Form } = withTypes()\n\nconst Login = () => {\n const [loading, setLoading] = useState(false)\n const translate = useTranslate()\n const classes = useStyles()\n const notify = useNotify()\n const login = useLogin()\n const location = useLocation<{ nextPathname: string } | null>()\n\n const handleSubmit = (auth: FormValues) => {\n setLoading(true)\n login(auth, location.state ? location.state.nextPathname : \"/\").catch(\n (error: Error) => {\n setLoading(false)\n notify(\n typeof error === \"string\"\n ? error\n : typeof error === \"undefined\" || !error.message\n ? \"ra.auth.sign_in_error\"\n : error.message,\n \"warning\",\n {\n _:\n typeof error === \"string\"\n ? error\n : error && error.message\n ? error.message\n : undefined,\n }\n )\n }\n )\n }\n\n const validate = (values: FormValues) => {\n const errors: FormValues = {}\n if (!values.phone) {\n errors.phone = translate(\"ra.validation.required\")\n }\n if (!values.password) {\n errors.password = translate(\"ra.validation.required\")\n }\n return errors\n }\n\n return (\n (\n
\n
\n \n
\n \n \n \n
\n
Bhotahiti Vendor
\n
\n
\n \n
\n
\n \n
\n
\n {/* @ts-ignore */}\n Forget Password?\n
\n \n \n {loading && }\n {translate(\"ra.auth.sign_in\")}\n \n \n
\n \n
\n
\n )}\n />\n )\n}\n\nLogin.propTypes = {\n authProvider: PropTypes.func,\n previousRoute: PropTypes.string,\n}\n\n// We need to put the ThemeProvider decoration in another component\n// Because otherwise the useStyles() hook used in Login won't get\n// the right theme\nconst LoginWithTheme = (props: any) => (\n \n \n \n)\n\nexport default LoginWithTheme\n","import englishMessages from \"ra-language-english\"\n\nexport const messages = {\n simple: {\n action: {\n close: \"Close\",\n resetViews: \"Reset views\",\n },\n \"create-post\": \"New post\",\n },\n ...englishMessages,\n pos: {\n menu: {\n products: \"Products\",\n shippings: \"Shippings\",\n users: \"Users\",\n orders: \"Orders\",\n cms: \"CMS\",\n },\n configuration: \"Configurations\",\n theme: {\n name: \"Theme\",\n light: \"Light\",\n dark: \"Dark\",\n },\n language: \"Language\",\n dashboard: {\n welcome: {\n title: \"Welcome to Bhotahiti admin dashboard\",\n subtitle:\n \"A First and only online wholesale bazaar in Nepal. Business to Business wholesale ecommerce platform.\",\n ra_button: \"Dashboard\",\n },\n newOrders: \"New Orders\",\n users: \"Users\",\n vendors: \"Vendors\",\n products: \"Products\",\n margin: \"Margin\",\n vendorPayable: \"Vendor Payable\",\n sales: \"Sold Product\",\n monthHistory: \"30 Days Sales History\",\n ordersThisMonth: \"Orders (this month)\",\n salesAmountThisMonth: \"Sales (this month)\",\n adminFees: \"Admin Fees (this month)\",\n },\n },\n resources: {\n posts: {\n name: \"Post |||| Posts\",\n fields: {\n average_note: \"Average note\",\n body: \"Body\",\n comments: \"Comments\",\n commentable: \"Commentable\",\n commentable_short: \"Com.\",\n created_at: \"Created at\",\n notifications: \"Notifications recipients\",\n nb_view: \"Nb views\",\n password: \"Password (if protected post)\",\n pictures: \"Related Pictures\",\n published_at: \"Published at\",\n teaser: \"Teaser\",\n tags: \"Tags\",\n title: \"Title\",\n views: \"Views\",\n authors: \"Authors\",\n },\n },\n comments: {\n name: \"Comment |||| Comments\",\n fields: {\n body: \"Body\",\n created_at: \"Created at\",\n post_id: \"Posts\",\n author: {\n name: \"Author\",\n },\n },\n },\n users: {\n name: \"User |||| Users\",\n fieldGroups: {\n information: \"Information\",\n demographics: \"Demographic\",\n roles: \"Roles\",\n options: \"Options\",\n },\n },\n permissions: {\n name: \"Permission |||| Permissions\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n roles: {\n name: \"Role |||| Roles\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n attributes: {\n name: \"Attribute |||| Attributes\",\n fieldGroups: {\n information: \"Information\",\n values: \"Values\",\n options: \"Options\",\n },\n },\n brands: {\n name: \"Brand |||| Brands\",\n fieldGroups: {\n information: \"Information\",\n image: \"Image\",\n options: \"Options\",\n },\n },\n categories: {\n name: \"Category |||| Categories\",\n fieldGroups: {\n information: \"Information\",\n image: \"Image\",\n options: \"Options\",\n },\n },\n tags: {\n name: \"Tag |||| Tags\",\n fieldGroups: {\n information: \"Information\",\n },\n },\n products: {\n name: \"Product |||| Products\",\n fieldGroups: {\n attributes: \"Attributes\",\n main: \"Main\",\n price: \"Price\",\n media: \"Media\",\n information: \"Information\",\n meta: \"Meta\",\n options: \"Options\",\n dimensions: \"Dimensions\",\n variations: \"Variations\",\n margin: \"Margin\",\n seo: \"SEO\",\n shipping: \"Shipping\",\n },\n },\n countries: {\n name: \"Country |||| Countries\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n states: {\n name: \"State |||| States\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n districts: {\n name: \"District |||| Districts\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n areas: {\n name: \"Area |||| Areas\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n areaCluster: {\n name: \"Area Cluster |||| Area Clusters\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n shippingMethods: {\n name: \"Shipping Method |||| shippings Methods\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n shippings: {\n name: \"Shipping |||| Shippings\",\n fieldGroups: {\n information: \"Information\",\n parameter: \"Parameter\",\n delivery: \"Delivery\",\n cost: \"Cost\",\n options: \"Options\",\n },\n },\n orders: {\n name: \"Order |||| Orders\",\n fieldGroups: {\n information: \"Information\",\n options: \"Options\",\n },\n },\n orderItems: {\n name: \"Order Item |||| Order Items\",\n fieldGroups: {\n information: \"Information\",\n },\n },\n brandCMS: {\n name: \"Brand CMS |||| Brand CMS\",\n fieldGroups: {\n information: \"Information\",\n },\n },\n categoryCMS: {\n name: \"Category CMS |||| Category CMS\",\n fieldGroups: {\n information: \"Information\",\n },\n },\n productCMS: {\n name: \"Product CMS |||| Product CMS\",\n fieldGroups: {\n information: \"Information\",\n },\n },\n sliderCMS: {\n name: \"Slider CMS |||| Slider CMS\",\n fieldGroups: {\n information: \"Information\",\n image: \"Image\",\n option: \"Option\",\n },\n },\n menuCMS: {\n name: \"Menu CMS |||| Menu CMS\",\n fieldGroups: {\n information: \"Information\",\n },\n },\n pageCMS: {\n name: \"Page CMS |||| Page CMS\",\n fieldGroups: {\n information: \"Information\",\n seo: \"SEO\",\n },\n },\n sales: {\n name: \"Sales\",\n },\n },\n post: {\n list: {\n search: \"Search\",\n },\n form: {\n summary: \"Summary\",\n body: \"Body\",\n miscellaneous: \"Miscellaneous\",\n comments: \"Comments\",\n },\n edit: {\n title: 'Post \"%{title}\"',\n },\n action: {\n save_and_edit: \"Save and Edit\",\n save_and_add: \"Save and Add\",\n save_and_show: \"Save and Show\",\n save_with_average_note: \"Save with Note\",\n },\n },\n comment: {\n list: {\n about: \"About\",\n },\n },\n user: {\n list: {\n search: \"Search\",\n },\n form: {\n summary: \"Summary\",\n security: \"Security\",\n },\n edit: {\n title: 'User \"%{title}\"',\n },\n action: {\n save_and_add: \"Save and Add\",\n save_and_show: \"Save and Show\",\n },\n },\n product: {\n action: {\n save_and_add: \"Save and Add\",\n save_and_show: \"Save and Show\",\n },\n },\n}\n\nexport default messages\n","import * as React from \"react\"\nimport { Button, NumberInput, PasswordInput, useNotify } from \"react-admin\"\nimport { Form } from \"react-final-form\"\nimport { Box } from \"@material-ui/core\"\nimport { useHistory } from \"react-router-dom\"\n\nconst asyncPost = async (url: string, data: any) => {\n const request = new Request(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n\n headers: new Headers({ \"Content-Type\": \"application/json\" }),\n })\n const res = await fetch(request)\n if (res.ok) {\n return { data: res.json() }\n }\n const { errors } = await res.json()\n return { error: errors[0].message }\n}\n\nconst ForgetPassword = () => {\n const [step, setStep] = React.useState(1)\n const [phone, setPhone] = React.useState(\"\")\n const [code, setCode] = React.useState(\"\")\n const history = useHistory()\n const notify = useNotify()\n\n const handleSubmit = (values: any) => {\n if (step === 1) {\n asyncPost(\"/api/users/send/resetcode\", values).then((res) => {\n if (res.data) {\n setPhone(values.phone)\n setStep(2)\n } else if (res.error) {\n notify(res.error, \"warning\")\n }\n })\n }\n if (step === 2) {\n asyncPost(\"/api/users/verify/resetcode\", { ...values, phone }).then(\n (res) => {\n if (res.data) {\n setCode(values.code)\n setStep(3)\n } else if (res.error) {\n notify(res.error, \"warning\")\n }\n }\n )\n }\n if (step === 3) {\n asyncPost(\"/api/users/reset/password\", { ...values, phone, code }).then(\n (res) => {\n if (res.data) {\n notify(\"Password changed successfully\", \"success\")\n history.push(\"/login\")\n } else if (res.error) {\n notify(res.error, \"warning\")\n }\n }\n )\n }\n }\n\n return (\n
\n {step === 1 && (\n
\n {\n return (\n
\n \n \n \n \n \n \n
\n )\n }}\n />\n
\n )}\n {step === 2 && (\n
\n {\n return (\n
\n \n \n \n \n \n \n
\n )\n }}\n />\n
\n )}\n {step === 3 && (\n
\n {\n return (\n
\n \n \n \n \n \n \n
\n )\n }}\n />\n
\n )}\n
\n )\n}\n\nexport default ForgetPassword\n","import * as React from \"react\"\nimport { useSelector, useDispatch } from \"react-redux\"\nimport Card from \"@material-ui/core/Card\"\nimport CardContent from \"@material-ui/core/CardContent\"\nimport Button from \"@material-ui/core/Button\"\nimport { useTranslate, useLocale, useSetLocale, Title } from \"react-admin\"\nimport { makeStyles } from \"@material-ui/core/styles\"\nimport { changeTheme } from \"./actions\"\nimport { AppState } from \"../ts/types\"\nimport { Typography } from \"@material-ui/core\"\n\nconst useStyles = makeStyles({\n label: { width: \"10em\", display: \"inline-block\" },\n button: { margin: \"1em\" },\n})\n\nconst Configuration = () => {\n const translate = useTranslate()\n const locale = useLocale()\n const setLocale = useSetLocale()\n const classes = useStyles()\n const theme = useSelector((state: AppState) => state.theme)\n const dispatch = useDispatch()\n return (\n \n \n <CardContent>\n <div className={classes.label}>\n <Typography>{translate(\"pos.theme.name\")}</Typography>\n </div>\n <Button\n variant=\"contained\"\n className={classes.button}\n color={theme === \"light\" ? \"primary\" : \"default\"}\n onClick={() => dispatch(changeTheme(\"light\"))}\n >\n {translate(\"pos.theme.light\")}\n </Button>\n <Button\n variant=\"contained\"\n className={classes.button}\n color={theme === \"dark\" ? \"primary\" : \"default\"}\n onClick={() => dispatch(changeTheme(\"dark\"))}\n >\n {translate(\"pos.theme.dark\")}\n </Button>\n </CardContent>\n <CardContent>\n <div className={classes.label}>\n <Typography>{translate(\"pos.language\")}</Typography>\n </div>\n <Button\n variant=\"contained\"\n className={classes.button}\n color={locale === \"en\" ? \"primary\" : \"default\"}\n onClick={() => setLocale(\"en\")}\n >\n en\n </Button>\n <Button\n variant=\"contained\"\n className={classes.button}\n color={locale === \"fr\" ? \"primary\" : \"default\"}\n onClick={() => setLocale(\"fr\")}\n >\n fr\n </Button>\n </CardContent>\n </Card>\n )\n}\n\nexport default Configuration\n","import * as React from \"react\"\nimport { Route } from \"react-router-dom\"\nimport ForgetPassword from \"../components/ForgetPassword\"\nimport Configuration from \"../configuration/Configuration\"\n\nexport default [\n <Route exact path=\"/configuration\" render={() => <Configuration />} />,\n <Route exact path=\"/forget-password\" render={() => <ForgetPassword />} />,\n]\n","// Authenticated by default\nexport default {\n login: async ({ phone, password }) => {\n const request = new Request(\"api/users/signin\", {\n method: \"POST\",\n body: JSON.stringify({ phone, password }),\n headers: new Headers({ \"Content-Type\": \"application/json\" }),\n })\n\n const res = await fetch(request)\n if (res.ok) {\n const { roles } = await res.json()\n for (let role of roles) {\n if (role.name === \"ADMIN\" || \"STAFF\" || \"VENDOR\")\n return Promise.resolve()\n }\n return Promise.reject()\n }\n const { errors } = await res.json()\n return Promise.reject(errors[0].message)\n },\n logout: async () => {\n const request = new Request(\"api/users/signout\", {\n method: \"POST\",\n headers: new Headers({ \"Content-Type\": \"application/json\" }),\n })\n try {\n await fetch(request)\n return Promise.resolve(\"/login\")\n } catch (err) {\n return Promise.reject(err)\n }\n },\n checkError: ({ status }) => {\n return status === 403 ? Promise.reject() : Promise.resolve()\n },\n checkAuth: async () => {\n const request = new Request(\"api/users/currentuser\", {\n method: \"GET\",\n headers: new Headers({ \"Content-Type\": \"application/json\" }),\n })\n const res = await fetch(request)\n if (res.ok) {\n const { currentUser } = await res.json()\n if (!currentUser) return Promise.reject()\n if (\n currentUser.roles.includes(\"ADMIN\") ||\n currentUser.roles.includes(\"VENDOR\") ||\n currentUser.roles.includes(\"STAFF\")\n )\n return Promise.resolve()\n return Promise.reject(\"You aren't admin!\")\n }\n\n const { errors } = await res.json()\n return Promise.reject(errors[0].message)\n },\n getPermissions: async () => {\n const request = new Request(\"api/users/currentuser\", {\n method: \"GET\",\n headers: new Headers({ \"Content-Type\": \"application/json\" }),\n })\n try {\n const response = await fetch(request)\n const { currentUser } = await response.json()\n const { roles, permissions } = await currentUser\n return Promise.resolve({ roles, permissions })\n } catch (err) {\n return Promise.reject(err)\n }\n },\n getIdentity: async () => {\n const request = new Request(\"api/users/getMe\", {\n method: \"GET\",\n headers: new Headers({ \"Content-Type\": \"application/json\" }),\n })\n try {\n const response = await fetch(request)\n const { currentUser } = await response.json()\n const { id, name: fullName, avatar, vendorProps } = await currentUser\n return Promise.resolve({ id, fullName, avatar, vendorProps })\n } catch (err) {\n return Promise.reject(err)\n }\n },\n}\n","import * as React from \"react\"\nimport { FC, createElement } from \"react\"\nimport { Card, Box, Typography, Divider } from \"@material-ui/core\"\nimport { makeStyles } from \"@material-ui/core/styles\"\nimport { Link } from \"react-router-dom\"\n\nimport cartouche from \"./cartouche.png\"\nimport cartoucheDark from \"./cartoucheDark.png\"\n\ninterface Props {\n icon: FC<any>\n to: string\n title?: string\n subtitle?: string | number\n description?: string\n}\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n minHeight: 52,\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"1\",\n \"& a\": {\n textDecoration: \"none\",\n color: \"inherit\",\n },\n },\n main: (props: Props) => ({\n overflow: \"inherit\",\n padding: 16,\n background: `url(${\n theme.palette.type === \"dark\" ? cartoucheDark : cartouche\n }) no-repeat`,\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n \"& .icon\": {\n color: theme.palette.type === \"dark\" ? \"inherit\" : \"#dc2440\",\n },\n }),\n title: {},\n}))\n\nconst CardWithIcon: FC<Props> = (props) => {\n const { icon, title, description, subtitle, to, children } = props\n const classes = useStyles(props)\n return (\n <Card className={classes.card}>\n <Link to={to}>\n <div className={classes.main}>\n <Box width=\"3em\" className=\"icon\">\n {createElement(icon, { fontSize: \"large\" })}\n </Box>\n <Box textAlign=\"right\">\n <Typography className={classes.title} color=\"textSecondary\">\n {title}\n </Typography>\n <Typography color=\"textSecondary\">{}</Typography>\n <Typography variant=\"h5\" component=\"h2\">\n {subtitle || \" \"}\n </Typography>\n </Box>\n </div>\n </Link>\n {children && <Divider />}\n {children}\n </Card>\n )\n}\n\nexport default CardWithIcon\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAABZCAMAAAD//SY8AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAO1QTFRFU1NTU1NTUFBQAAAAUVFRUVFRU1NTT09PU1NTR0dHUlJSTk5OUlJSUVFRUlJSTk5OU1NTT09PS0tLU1NTUVFRUVFRU1NTUVFRUlJSUVFRS0tLUFBQUVFRUVFRUVFRUVFRQEBAUVFRU1NTU1NTU1NTU1NTU1NTU1NTSUlJUFBQU1NTUlJSUVFRTk5OT09PUVFRSkpKUVFRU1NTU1NTTk5OT09PUlJSTU1NUVFRU1NTSEhIU1NTUVFRUVFRUVFROzs7U1NTU1NTUlJSKysrU1NTUlJSRkZGU1NTTU1NU1NTUlJSUVFRUVFRU1NTSUlJap2IRgAAAE90Uk5T/+EzAOw57TfnK9cXvptwO86KPcVl43LiZMk6kuY/hcYIPGmRs+TzJQ6QzIzTSISuLcdNz1xar0nliCepUvtfDdiUTgbRmSFvVqO4ytnwFVkGdGQAAAKuSURBVHic7d3XVhRBGEXhAoExoZjGBKKCcVTMWcxK9P0fxwvvq6u7z79OlezvCeqsvYABOqSkMDd/DO2QNE9pYdE9BOVE0dPSxL0ExVTR0/ET7ikoJYueTp5yb0EhXfR02r0FhYTR07J7DMooo6cz7jUoIo2ezrrnoIQ2+op7Dkpoo6dz7j0oII6ezrsHoZs6+gX3IHRTR08X3YvQSR79knsROsmjp6l7Erroo192T0IXffR0xb0JHQKiX3VvQoeA6OmaexTyIqJfd49CXkT0Vfco5EVET2vuVcgKiX7DvQpZIdHX3auQFRI93XTPQk5M9FvuWciJiX7bPQs5MdE33LOQExN90z0LOTHRuUCyajHR77hnIScm+l33LOTERE/uWcgh+hFE9CMopjk/06sWE51P71WLic7v6VWLic5f5KoWE33DPQs5MdH5L1vVYqLz//SqxUTnypmqhTTnGrm6hUTnati6hUTnuve6RTTnDpfKRUTnXrbKRUTnrtXKBTTn/vTaBUTnSRS10zfnmTPV00fn6VLVkzfnOXL1k0fniZH1Uzfn2bANUEfnKdANEDfnee8t0DbngsgmaKPzDpcmSJvztqY2KJvzXrZGCJvzBsZW6JrzrtVmyJrzVuV2qJrz/vSGiJovLLqHoJym+dy8ewd6kDRfueeegT4UzTfvu1egF0HzB+4N6Gl8c66aaM7Y5A/5CNeekc1n7vNjgFHJHz12Hx9DjGn+xH14DDM8+dZT99kx0NDkz567T47BhiV/8dJ9boww6Kv8lfvUGKV/8tdv3GfGSD2Lv3333n1ijNYr+YeP7uNCoTj4p63tz+7DQqOs+Jev3767TwqZ7uA/fm7/cp8SUrncS+vLv9f4nv7/SZOd6Wx3b/9g9fBf6cPVg/293dl0Z/LHfTYE+Qucis5DBf5HsAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAABZCAMAAAD//SY8AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAO1QTFRF/Ors/Ojs+ubrAAAA/Ojs++np/Ojs9ujo/Onq8+Hh+urr9Onp++rr/Orq+Obr++Xl+urq+enr++bm+uns+ubr/Ors++nr/Ors+ubr+ujs++Xl/Ofs/Orq++fr+ers+ujsv7+/++rq+Ofs+urs++rq/Ors/Onq8d3j7dvb+urs+urr+ufr+ujs+Orq+ers++js9OPj+ujs/Ojo+unq9+ns9+bo++jr/Ofn/Orr+enp8uXl/Orq/Obm/Ors+urq2NjY+urr/Onp/OXo1dXV+ujq/Ojr8Ojo+Obo9uTn/Ojr++ns+urr+urq/Ors8+fnTQPn1wAAAE90Uk5T/+EzAOw57TfnK9cXvptwO86KPcVl43LiZMk6kuY/hcYIPGmRs+TzJQ6QzIzTSISuLcdNz1xar0nliCepUvtfDdiUTgbRmSFvVqO4ytnwFVkGdGQAAAKuSURBVHic7d3XVhRBGEXhAoExoZjGBKKCcVTMWcxK9P0fxwvvq6u7z79OlezvCeqsvYABOqSkMDd/DO2QNE9pYdE9BOVE0dPSxL0ExVTR0/ET7ikoJYueTp5yb0EhXfR02r0FhYTR07J7DMooo6cz7jUoIo2ezrrnoIQ2+op7Dkpoo6dz7j0oII6ezrsHoZs6+gX3IHRTR08X3YvQSR79knsROsmjp6l7Erroo192T0IXffR0xb0JHQKiX3VvQoeA6OmaexTyIqJfd49CXkT0Vfco5EVET2vuVcgKiX7DvQpZIdHX3auQFRI93XTPQk5M9FvuWciJiX7bPQs5MdE33LOQExN90z0LOTHRuUCyajHR77hnIScm+l33LOTERE/uWcgh+hFE9CMopjk/06sWE51P71WLic7v6VWLic5f5KoWE33DPQs5MdH5L1vVYqLz//SqxUTnypmqhTTnGrm6hUTnati6hUTnuve6RTTnDpfKRUTnXrbKRUTnrtXKBTTn/vTaBUTnSRS10zfnmTPV00fn6VLVkzfnOXL1k0fniZH1Uzfn2bANUEfnKdANEDfnee8t0DbngsgmaKPzDpcmSJvztqY2KJvzXrZGCJvzBsZW6JrzrtVmyJrzVuV2qJrz/vSGiJovLLqHoJym+dy8ewd6kDRfueeegT4UzTfvu1egF0HzB+4N6Gl8c66aaM7Y5A/5CNeekc1n7vNjgFHJHz12Hx9DjGn+xH14DDM8+dZT99kx0NDkz567T47BhiV/8dJ9boww6Kv8lfvUGKV/8tdv3GfGSD2Lv3333n1ijNYr+YeP7uNCoTj4p63tz+7DQqOs+Jev3767TwqZ7uA/fm7/cp8SUrncS+vLv9f4nv7/SZOd6Wx3b/9g9fBf6cPVg/293dl0Z/LHfTYE+Qucis5DBf5HsAAAAABJRU5ErkJggg==\"","import * as React from \"react\"\nimport { FC } from \"react\"\n\nimport CardWithIcon from \"./CardWithIcon\"\n\ninterface Props {\n value?: number | string\n icon?: any\n title: string\n to?: string\n description?: string\n}\n\nconst MiniCard: FC<Props> = ({ value, icon, title, description, to }) => {\n return (\n <CardWithIcon\n to={to ? to : \"/\"}\n icon={icon}\n title={title}\n description={description}\n subtitle={value}\n />\n )\n}\n\nexport default MiniCard\n","import * as React from \"react\"\nimport { Card, CardHeader, CardContent } from \"@material-ui/core\"\nimport {\n ResponsiveContainer,\n AreaChart,\n Area,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n} from \"recharts\"\nimport { useTranslate } from \"react-admin\"\nimport { format, subDays, addDays } from \"date-fns\"\n\nconst lastDay = new Date()\nconst lastMonthDays = Array.from({ length: 30 }, (_, i) => subDays(lastDay, i))\nconst aMonthAgo = subDays(new Date(), 30)\n\nconst dateFormatter = (date: number): string =>\n new Date(date).toLocaleDateString()\n\nconst aggregateSalesByDay = (sales: any): { [key: string]: number } => {\n return sales.reduce((acc, curr) => {\n const d = new Date(curr.createdAt)\n const day = [\n d.getFullYear(),\n (\"0\" + (d.getMonth() + 1)).slice(-2),\n (\"0\" + d.getDate()).slice(-2),\n ].join(\"-\")\n\n if (!acc[day]) {\n acc[day] = 0\n }\n acc[day] += curr.vendorPayable + curr.margin\n return acc\n }, {} as { [key: string]: number })\n}\n\nconst getRevenuePerDay = (sales: any[]): TotalByDay[] => {\n const daysWithRevenue = aggregateSalesByDay(sales)\n return lastMonthDays.map((date) => {\n const day = [\n date.getFullYear(),\n (\"0\" + (date.getMonth() + 1)).slice(-2),\n (\"0\" + date.getDate()).slice(-2),\n ].join(\"-\")\n\n return {\n date: date.getTime(),\n total: daysWithRevenue[day] || 0,\n }\n })\n}\n\nconst SaleChart = (props: { sales?: any[]; style?: any }) => {\n const { sales, style } = props\n const translate = useTranslate()\n if (!sales) return null\n\n return (\n <Card style={style}>\n <CardHeader title={translate(\"pos.dashboard.monthHistory\")} />\n <CardContent>\n <div style={{ width: \"100%\", height: 300 }}>\n <ResponsiveContainer>\n <AreaChart data={getRevenuePerDay(sales)}>\n <defs>\n <linearGradient id=\"colorUv\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"5%\" stopColor=\"#8884d8\" stopOpacity={0.8} />\n <stop offset=\"95%\" stopColor=\"#8884d8\" stopOpacity={0} />\n </linearGradient>\n </defs>\n <XAxis\n dataKey=\"date\"\n name=\"Date\"\n type=\"number\"\n scale=\"time\"\n domain={[addDays(aMonthAgo, 1).getTime(), new Date().getTime()]}\n tickFormatter={dateFormatter}\n />\n <YAxis dataKey=\"total\" name=\"Revenue\" unit=\"रू\" />\n <CartesianGrid strokeDasharray=\"3 3\" />\n <Tooltip\n cursor={{ strokeDasharray: \"3 3\" }}\n formatter={(value) =>\n new Intl.NumberFormat(undefined, {\n style: \"currency\",\n currency: \"NPR\",\n }).format(value as any)\n }\n labelFormatter={(label: any) => dateFormatter(label)}\n />\n <Area\n type=\"monotone\"\n dataKey=\"total\"\n stroke=\"#8884d8\"\n strokeWidth={2}\n fill=\"url(#colorUv)\"\n />\n </AreaChart>\n </ResponsiveContainer>\n </div>\n </CardContent>\n </Card>\n )\n}\n\ninterface TotalByDay {\n date: number\n total: number\n}\n\nexport default SaleChart\n","import React, { useState, useEffect, useCallback } from \"react\"\nimport {\n useVersion,\n useDataProvider,\n useTranslate,\n Datagrid,\n List,\n TextField,\n NumberField,\n ReferenceField,\n FunctionField,\n DateField,\n TopToolbar,\n} from \"react-admin\"\nimport { List as MuiList, ListItem, Card, CardContent } from \"@material-ui/core\"\nimport ShoppingCartIcon from \"@material-ui/icons/ShoppingCart\"\nimport PhotoLibraryIcon from \"@material-ui/icons/PhotoLibrary\"\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\"\nimport CancelIcon from \"@material-ui/icons/Cancel\"\nimport ShoppingBasketIcon from \"@material-ui/icons/ShoppingBasket\"\nimport MonetizationOnIcon from \"@material-ui/icons/MonetizationOn\"\nimport green from \"@material-ui/core/colors/green\"\nimport red from \"@material-ui/core/colors/red\"\nimport orange from \"@material-ui/core/colors/orange\"\nimport { subDays } from \"date-fns\"\n\nimport Welcome from \"./Welcome\"\nimport MiniCard from \"./MiniCard\"\nimport { Box, Typography } from \"@material-ui/core\"\nimport { IDField } from \"../common/form\"\nimport MakePaymentRequestButton from \"./MakePaymentRequest\"\nimport SaleChart from \"./SaleChart\"\n\nconst styles = {\n flex: { display: \"flex\" },\n flexColumn: { display: \"flex\", flexDirection: \"column\" },\n leftCol: { flex: 1, marginRight: \"0.5em\" },\n rightCol: { flex: 1, marginLeft: \"0.5em\" },\n singleCol: { marginTop: \"1em\", marginBottom: \"1em\" },\n statsNumber: { marginRight: \"0.4em\", marginLeft: \"0.4em\", fontSize: \"1.8em\" },\n}\n\nconst Spacer = () => <span style={{ width: \"1em\" }} />\nconst VerticalSpacer = () => <span style={{ height: \"1em\" }} />\n\ninterface State {\n users?: number\n newOrders?: number\n vendors?: number\n recentSales?: any\n totalOrdersThisMonth?: number\n totalProducts?: number\n totalSaleAmount?: number\n totalSales?: number\n adminFees?: number\n}\n\nconst Empty = () => {\n return (\n <Box textAlign=\"center\" m={1}>\n <Typography variant=\"h4\" paragraph>\n You don't have any sales yet.\n </Typography>\n <Typography variant=\"body1\">\n You can request payment once your products are sold\n </Typography>\n </Box>\n )\n}\n\nconst SalePaymentRequestUpdateActionButtons = (props) => (\n <MakePaymentRequestButton lable=\"Request payment\" {...props} />\n)\n\nconst ListActions = () => {\n return (\n <TopToolbar>\n <Typography variant=\"h5\">Payments</Typography>\n </TopToolbar>\n )\n}\n\nconst TopSaleListAction = () => {\n return (\n <TopToolbar>\n <Typography variant=\"h5\">Top Selling Products</Typography>\n </TopToolbar>\n )\n}\n\nconst Dashboard = ({ permissions }) => {\n const [state, setState] = useState<State>({})\n const version = useVersion()\n const dataProvider = useDataProvider()\n\n const fetchStats = useCallback(async () => {\n const aMonthAgo = subDays(new Date(), 30)\n const { total: newOrders } = await dataProvider.getList(\"orders/items\", {\n filter: { status: \"pending\" },\n sort: { field: \"updatedAt\", order: \"ASC\" },\n pagination: { perPage: 2, page: 1 },\n })\n const { total: totalOrdersThisMonth } = await dataProvider.getList(\n \"orders/items\",\n {\n filter: { dateGte: aMonthAgo.toISOString() },\n sort: { field: \"createdAt\", order: \"ASC\" },\n pagination: { perPage: 2, page: 1 },\n }\n )\n const { total: totalProducts } = await dataProvider.getList(\n \"products/products\",\n {\n filter: { \"meta.isDeleted\": false },\n sort: { field: \"updatedAt\", order: \"ASC\" },\n pagination: { perPage: 2, page: 1 },\n }\n )\n const { data: recentSales, total: totalSales } = await dataProvider.getList(\n \"sales/sales\",\n {\n filter: { dateGte: aMonthAgo.toISOString() },\n sort: { field: \"createdAt\", order: \"DESC\" },\n pagination: { page: 1, perPage: 10000 },\n }\n )\n\n const adminFees = recentSales.reduce(\n (pre: any, curr: any) => pre + curr.margin,\n 0\n )\n\n const totalSaleAmount = recentSales.reduce(\n (pre: any, curr: any) => pre + curr.vendorPayable,\n 0\n )\n\n setState((state) => ({\n ...state,\n newOrders,\n totalProducts,\n recentSales,\n totalOrdersThisMonth,\n totalSaleAmount,\n totalSales,\n adminFees,\n }))\n }, [dataProvider])\n\n useEffect(() => {\n fetchStats()\n }, [version])\n\n const {\n newOrders,\n totalProducts,\n recentSales,\n totalOrdersThisMonth,\n totalSales,\n totalSaleAmount,\n adminFees,\n } = state\n\n const translate = useTranslate()\n\n return permissions?.roles.includes(\"ADMIN\") ||\n permissions?.roles.includes(\"VENDOR\") ? (\n <div>\n <br />\n <div style={styles.flex}>\n <div style={styles.leftCol}>\n <div style={styles.flex}>\n <MiniCard\n title={translate(\"pos.dashboard.newOrders\")}\n icon={ShoppingCartIcon}\n value={`${newOrders ? newOrders : 0}`}\n to=\"/orders/items\"\n />\n <Spacer />\n <MiniCard\n title={translate(\"pos.dashboard.ordersThisMonth\")}\n icon={ShoppingBasketIcon}\n value={totalOrdersThisMonth}\n description=\"This Month\"\n to=\"\"\n />\n <Spacer />\n <MiniCard\n title={translate(\"pos.dashboard.adminFees\")}\n icon={MonetizationOnIcon}\n value={`$ ${adminFees ? adminFees : 0}`}\n to=\"\"\n />\n <Spacer />\n <MiniCard\n title={translate(\"pos.dashboard.salesAmountThisMonth\")}\n icon={MonetizationOnIcon}\n value={`$ ${totalSaleAmount ? totalSaleAmount : 0}`}\n to=\"sales/sales\"\n />\n </div>\n </div>\n </div>\n\n <br />\n <SaleChart sales={recentSales} style={styles.leftCol} />\n\n <Box display=\"flex\">\n <Box flex={2} marginRight=\"0.5em\">\n <List\n title=\"Dashboard\"\n pagination={false}\n basePath=\"/sales/sales\"\n resource=\"sales/sales\"\n // filter={{ \"paymentRequest.status\": false }}\n exporter={false}\n empty={<Empty />}\n bulkActionButtons={<SalePaymentRequestUpdateActionButtons />}\n actions={<ListActions />}\n perPage={5}\n >\n <Datagrid>\n <IDField source=\"id\" />\n <ReferenceField source=\"productId\" reference=\"products/products\">\n <TextField source=\"title\" />\n </ReferenceField>\n <NumberField source=\"quantity\" />\n <FunctionField\n label=\"Payment receiveable\"\n render={(record) =>\n record.vendorPayable ? (\n <span style={{ fontWeight: \"bold\" }}>\n रू{\" \"}\n {record.vendorPayable.toLocaleString(\"en-IN\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}\n </span>\n ) : null\n }\n />\n <FunctionField\n label=\"Payment Request\"\n source=\"paymentRequest.status\"\n render={(record) =>\n record.paymentRequest && record.paymentRequest.status ? (\n <CheckCircleIcon htmlColor={green[500]} />\n ) : (\n <CancelIcon htmlColor={red[500]} />\n )\n }\n />\n <DateField\n label=\"Requested at\"\n source=\"paymentRequest.requestAt\"\n showTime\n />\n <FunctionField\n label=\"Payment Status\"\n source=\"paymentStatus.status\"\n render={(record) =>\n record.paymentStatus && record.paymentStatus.status ? (\n <CheckCircleIcon htmlColor={green[500]} />\n ) : (\n <CancelIcon htmlColor={red[500]} />\n )\n }\n />\n </Datagrid>\n </List>\n </Box>\n <Box flex={1}>\n <List\n title={<div></div>}\n pagination={false}\n basePath=\"/sales/topSales\"\n resource=\"sales/topSales\"\n // filter={{ \"paymentRequest.status\": false }}\n exporter={false}\n empty={<Empty />}\n actions={<TopSaleListAction />}\n perPage={5}\n >\n <Datagrid>\n <IDField source=\"id\" />\n <ReferenceField source=\"id\" reference=\"products/products\">\n <TextField source=\"title\" />\n </ReferenceField>\n <NumberField source=\"salesCount\" />\n <FunctionField\n label=\"Price\"\n render={(record) =>\n record.priceMin && record.priceMax ? (\n <span style={{ fontWeight: \"bold\" }}>\n रू{\" \"}\n {record.priceMin == record.priceMax\n ? record.priceMin.toLocaleString(\"en-IN\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n : `${record.priceMin} - ${record.priceMax}`}\n </span>\n ) : null\n }\n />\n </Datagrid>\n </List>\n </Box>\n </Box>\n <br />\n <Box display=\"flex\">\n <Box flex={2}>\n <Card style={{ maxWidth: 300 }}>\n <CardContent>\n <Typography variant=\"h5\" component=\"h2\">\n Store Stats\n </Typography>\n <MuiList>\n <ListItem>\n <ShoppingCartIcon htmlColor={green[500]} />\n <Typography style={styles.statsNumber}>\n {newOrders}\n </Typography>\n <Typography>New Orders</Typography>\n </ListItem>\n <ListItem>\n <PhotoLibraryIcon htmlColor={red[500]} />\n <Typography style={styles.statsNumber}>\n {totalProducts}\n </Typography>\n <Typography>Total Products</Typography>\n </ListItem>\n <ListItem>\n <PhotoLibraryIcon htmlColor={orange[500]} />\n <Typography style={styles.statsNumber}>\n {totalSales}\n </Typography>\n <Typography>Sold Products</Typography>\n </ListItem>\n <ListItem>Other info...</ListItem>\n </MuiList>\n </CardContent>\n </Card>\n </Box>\n <Box flex={2}></Box>\n </Box>\n </div>\n ) : null\n}\n\nexport default Dashboard\n","import DashboardComponent from './Dashboard';\n\nexport const Dashboard = DashboardComponent;\n","import * as React from \"react\"\nimport { Admin, Resource, DataProvider } from \"react-admin\"\nimport polyglotI18nProvider from \"ra-i18n-polyglot\"\n\nimport themeReducer from \"./redux/themeReducer\"\nimport { Layout, Login } from \"./layout\"\nimport englishMessages from \"./i18n/en\"\nimport products from \"./resources/products\"\nimport customRoutes from \"./routes\"\nimport authProvider from \"./authProvider\"\nimport { Dashboard } from \"./dashboard\"\nimport orderItems from \"./resources/orderItems\"\nimport sales from \"./resources/sales\"\n\nconst i18nProvider = polyglotI18nProvider((locale) => {\n if (locale === \"fr\") {\n return import(\"./i18n/fr\").then((messages) => messages.default)\n }\n\n // Always fallback on english\n return englishMessages\n}, \"en\")\ninterface AppProps {\n dataProvider: DataProvider\n}\n\nconst App = ({ dataProvider }: AppProps) => {\n return (\n <Admin\n title=\"\"\n // @ts-ignore\n authProvider={authProvider}\n dataProvider={dataProvider}\n dashboard={Dashboard}\n customReducers={{ theme: themeReducer }}\n loginPage={Login}\n layout={Layout}\n i18nProvider={i18nProvider}\n customRoutes={customRoutes}\n disableTelemetry\n >\n <Resource name=\"products/attributes\" />\n <Resource name=\"products/brands\" />\n <Resource name=\"products/categories\" />\n <Resource\n name=\"products/products\"\n options={{ label: \"Products\" }}\n {...products}\n />\n <Resource name=\"products/variations\" />\n <Resource name=\"products/tags\" />\n <Resource name=\"orders/items\" {...orderItems} />\n <Resource name=\"sales/sales\" options={{ label: \"Sales\" }} {...sales} />\n <Resource name=\"sales/topSales\" />\n </Admin>\n )\n}\n\nexport default App\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import simpleRestProvider from \"ra-data-simple-rest\"\n\nconst dataProviderFactory = (provider: string) => simpleRestProvider(provider)\n\nexport default dataProviderFactory\n","import { fetchUtils } from \"react-admin\"\n\nconst apiUrl = \"api/vendors\"\nconst httpClient = fetchUtils.fetchJson\n\nconst buildFormData = (formData, data, parentKey = \"\") => {\n if (\n data &&\n typeof data === \"object\" &&\n !(data instanceof Date) &&\n !(data instanceof File)\n ) {\n Object.keys(data).forEach((key) => {\n buildFormData(\n formData,\n data[key],\n parentKey ? `${parentKey}[${key}]` : key\n )\n })\n } else {\n const value = data == null ? \"\" : data\n\n formData.append(parentKey, value)\n }\n}\n\nconst addUploadCapabilities = (dataProvider) => ({\n ...dataProvider,\n create: (resource, params) => {\n if (\n (resource === \"products/brands\" ||\n resource === \"products/categories\" ||\n resource === \"products/products\") &&\n (params.data.media || params.data.image)\n ) {\n let formData = new FormData()\n\n if (params.data.media) {\n for (let pic of params.data.media) {\n formData.append(\"media\", pic.rawFile)\n }\n\n delete params.data.media\n }\n\n if (params.data.image) {\n formData.append(\"image\", params.data.image.rawFile)\n delete params.data.image\n }\n\n buildFormData(formData, params.data)\n\n return httpClient(`${apiUrl}/${resource}`, {\n method: \"POST\",\n body: formData,\n }).then(({ json }) => ({\n data: { ...params.data, id: json.id },\n }))\n }\n console.log(\"Fallback route\")\n // fallback to the default implementation\n return dataProvider.create(resource, params)\n },\n update: (resource, params) => {\n if (resource === \"products/products\" && params.data.media) {\n const newPictures = params.data.media.filter(\n (p) => p.rawFile instanceof File\n )\n const formerPictures = params.data.media.filter(\n (p) => !(p.rawFile instanceof File)\n )\n\n let formData = new FormData()\n\n newPictures.forEach((pic) => {\n formData.append(\"media\", pic.rawFile)\n })\n\n formerPictures.forEach((pic) => {\n formData.append(\"media\", pic)\n })\n\n delete params.data.media\n\n buildFormData(formData, params.data)\n\n return httpClient(`${apiUrl}/${resource}/${params.id}`, {\n method: \"PUT\",\n body: formData,\n }).then(({ json }) => ({\n data: { ...params.data, id: json.id },\n }))\n } else if (\n (resource === \"products/brands\" || resource === \"products/categories\") &&\n typeof params.data.image.rawFile !== \"undefined\"\n ) {\n let formData = new FormData()\n\n formData.append(\"image\", params.data.image.rawFile)\n delete params.data.image\n\n buildFormData(formData, params.data)\n\n return httpClient(`${apiUrl}/${resource}/${params.id}`, {\n method: \"PUT\",\n body: formData,\n }).then(({ json }) => ({\n data: { ...params.data, id: json.id },\n }))\n }\n\n // fallback to the default implementation\n return dataProvider.update(resource, params)\n },\n})\n\nexport default addUploadCapabilities\n","import \"react-app-polyfill/ie11\"\nimport \"react-app-polyfill/stable\"\nimport \"proxy-polyfill\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\n\nimport App from \"./App\"\nimport reportWebVitals from \"./reportWebVitals\"\nimport dataProviderFactory from \"./dataProvider\"\nimport addUploadFeature from \"./addUploadFeature\"\n\nconst prepareDataProvider = async () => {\n const dataProvider = addUploadFeature(\n dataProviderFactory(\"api/vendors\")\n )\n return { dataProvider }\n}\n\nprepareDataProvider().then(({ dataProvider }) => {\n ReactDOM.render(\n <App dataProvider={dataProvider} />,\n document.getElementById(\"root\")\n )\n})\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"sourceRoot":""}