{"version":3,"sources":["utils/util.js","configs/config.js","utils/storage.js","hooks/common/useGraphQLQuery.js","context/SettingContext/index.jsx","hooks/setting/useActiveSetting.js","context/CategoryContext/index.jsx","hooks/category/useActiveCategories.js","configs/graphqlClient.js","pages/Homepage/Category/index.jsx","components/Card/ProductCard/index.jsx","components/Slider/ProductSlider/index.jsx","components/Loader/SpinnerLoader/index.jsx","hooks/product/useActiveProductsWithPagination.js","hooks/common/useGraphQLLazyQuery.js","pages/Product/List/FilterSidebar/index.jsx","hooks/brand/useActiveBrandsWithProductCountByCategorySlug.js","pages/Product/List/index.jsx","hooks/common/useGraphQLMutation.js","utils/validation.js","components/Input/TextInput/index.jsx","components/Modal/ProductInquiryModal/index.jsx","hooks/inquiry/useInquiryCreate.js","components/Modal/ProductInquiryCallModal/index.jsx","assets/images/ManagingDirector.jpg","Routes/config.js","pages/Homepage/index.jsx","hooks/category/useActiveCategoriesWithFeaturedProducts.js","hooks/banner/useActiveMainBanners.js","hooks/banner/useActiveOfferBanners.js","hooks/banner/useActiveAdvertisementBanners.js","pages/Disclaimer/index.jsx","pages/TermsAndCondition/index.jsx","pages/PrivacyNotice/index.jsx","pages/AboutUs/index.jsx","pages/ContactUs/index.jsx","hooks/contactMessage/useContactMessageCreate.js","pages/Product/Detail/index.jsx","hooks/product/useActiveProductBySlug.js","hooks/product/useActiveSimilarProductsBySlug.js","services/auth.js","Routes/AuthRoute.jsx","Routes/PrivateRoute.jsx","layouts/AppLayout/Header/SearchBox/index.jsx","layouts/AppLayout/Header/index.jsx","layouts/AppLayout/Footer/index.jsx","layouts/AppLayout/index.jsx","Routes/AppRoute.jsx","Routes/index.jsx","App.js","reportWebVitals.js","index.js"],"names":["authHeader","token","context","headers","concat","youtubeVideoIDParser","url","match","length","priceFormatter","price","replace","extractValueFromQueryString","queryString","key","value","queryStringObject","split","reduce","init","fqs","Object","keys","config","hostname","window","location","indexOf","isLocalHost","assetURL","graphURL","subscriptionURL","cookieDomain","STORAGE_KEYS","cookies","Cookies","getValueOf","get","_ref","query","variables","fetchPolicy","defaultValue","onComplete","_useState","useState","_useState2","_slicedToArray","result","setResult","onDataReceive","data","subscriptionData","_useQuery","useQuery","gql","_templateObject","_taggedTemplateLiteral","_objectSpread","onCompleted","errorPolicy","loading","error","useSubscription","_templateObject2","onSubscriptionData","SettingContext","createContext","activeSettingLoading","activeSettingResult","SettingProvider","children","_useActiveSetting","id","_useGraphQLQuery","useGraphQLQuery","activeSettingError","useActiveSetting","_jsx","Provider","initialCategories","CategoryContext","activeCategoriesLoading","activeCategoriesResult","CategoryProvider","categories","setCategories","_useActiveCategories","activeCategoriesError","useActiveCategories","useEffect","cache","InMemoryCache","httpLink","HttpLink","uri","wsLink","WebSocketLink","options","reconnect","authLink","setContext","_","splitLink","_ref2","definition","getMainDefinition","kind","operation","ApolloClient","link","defaultOptions","list","formattedList","listGroup","forEach","l","i","push","className","Row","gutter","map","Col","md","xs","Array","isArray","cl","_jsxs","style","backgroundImage","image","Link","to","routeConfig","productList","path","slug","title","FontAwesomeIcon","icon","faChevronCircleRight","category","name","actualPrice","offerPrice","src","util","paddingTop","productDetail","Button","type","productSliderResponsiveSetting","superLargeDesktop","breakpoint","max","min","items","desktop","tablet","mobile","span","Carousel","responsive","infinite","slidesToScroll","ProductCard","_id","_objectDestructuringEmpty","Spin","indicator","LoadingOutlined","fontSize","spin","_useGraphQLLazyQuery","_useLazyQuery","useLazyQuery","notifyOnNetworkStatusChange","_useLazyQuery2","queryFunction","_useLazyQuery2$","trigger","useGraphQLLazyQuery","activeProductsWithPaginationTrigger","activeProductsWithPaginationResult","activeProductsWithPaginationLoading","activeProductsWithPaginationError","urlCategory","totalProducts","filterParamsObject","applyFilter","clearFilter","filterParams","setFilterParams","_useActiveBrandsWithP","categorySlug","activeBrandsWithProductCountByCategorySlugResult","activeBrandsWithProductCountByCategorySlugLoading","activeBrandsWithProductCountByCategorySlugError","useActiveBrandsWithProductCountByCategorySlug","priceRange","faChevronUp","SpinnerLoader","b","Checkbox","onChange","target","checked","brandFilterArray","brandfilter","includes","_toConsumableArray","filter","updateBrandFilter","productCount","Slider","range","pricefilterstart","pricefilterend","Input","event","parseInt","onClick","history","params","urlSearch","search","page","_useContext","useContext","getActiveCategory","activeCategory","_activeCategoriesResu","ac","selectedCategory","_useActiveProductsWit","useActiveProductsWithPagination","getFilterParamsObject","qso","scrollTo","decodeURI","fpo","limit","padding","FilterSidebar","total","filterParamsArray","fp","join","replaceAll","_Fragment","p","Pagination","current","pageSize","changePage","_useMutation","useMutation","_useMutation2","mutationFunction","_useMutation2$","test","label","_ref$type","placeholder","rules","Form","Item","TextArea","row","product","visible","onClose","_Form$useForm","useForm","form","_useInquiryCreate","_useGraphQLMutation","useGraphQLMutation","inquiryCreateTrigger","inquiryCreateResult","inquiryCreateLoading","inquiryCreateError","useInquiryCreate","resetFields","Modal","onCancel","footer","wrapClassName","layout","initialValues","onFinish","formData","TextInput","required","message","validator","validation","Promise","reject","Error","resolve","Alert","marginBottom","wrapperCol","htmlType","block","primaryPhone","href","faPhoneAlt","marginTop","secondaryPhone","homepage","component","_useActiveCategoriesW","activeCategoriesWithFeaturedProductsResult","activeCategoriesWithFeaturedProductsLoading","activeCategoriesWithFeaturedProductsError","useActiveCategoriesWithFeaturedProducts","_useActiveMainBanners","activeMainBannersResult","activeMainBannersLoading","activeMainBannersError","useActiveMainBanners","_useActiveOfferBanner","activeOfferBannersResult","activeOfferBannersLoading","activeOfferBannersError","useActiveOfferBanners","_useActiveAdvertiseme","activeAdvertisementBannersResult","activeAdvertisementBannersLoading","activeAdvertisementBannersError","useActiveAdvertisementBanners","autoplay","autoplaySpeed","speed","pathname","alt","Category","ao","width","ProductSlider","products","aa","disclaimer","termsAndCondition","privacyNotice","aboutUs","logo","ManagingDirector","contactUs","successMessage","setSuccessMessage","_useContactMessageCre","contactMessageCreateTrigger","contactMessageCreateResult","contactMessageCreateLoading","contactMessageCreateError","useContactMessageCreate","faMapMarkerAlt","address","faEnvelope","infoEmail","officePhone","faClock","officeTime","offset","rows","ProductList","productSearch","urlProduct","showInquiryModal","setShowInquiryModal","_useState3","_useState4","showInquiryCallModal","setShowInquiryCallModal","_useActiveProductBySl","activeProductBySlugResult","activeProductBySlugLoading","activeProductBySlugError","useActiveProductBySlug","_useActiveSimilarProd","activeSimilarProductsBySlugResult","activeSimilarProductsBySlugLoading","activeSimilarProductsBySlugError","useActiveSimilarProductsBySlug","videoPlayerRef","useRef","ProductInquiryModal","ProductInquiryCallModal","ImageGallery","video","images","formattedItems","original","thumbnail","videoId","unshift","originalUrl","formatImageGalleryItems","renderItem","item","height","frameBorder","allowFullScreen","ref","showNav","showFullscreenButton","showPlayButton","autoPlay","onSlide","index","brand","sku","renderHTML","description","deliveryTime","overview","isAuthenticated","accessToken","Component","rest","_objectWithoutProperties","_excluded","Route","render","props","Redirect","dashboard","state","from","login","useRouteMatch","useHistory","setSearch","redirectToSearch","encodeURI","align","e","onKeyPress","code","Select","Option","useParams","drawerVisible","setDrawerVisible","_useContext2","faBars","SearchBox","justify","c","Drawer","placement","closable","facebookLink","faFacebook","size","instagramLink","faInstagram","youtubeLink","faYoutube","Layout","Header","Content","Footer","AppLayout","ROUTE_TYPES","AuthRoute","exact","PrivateRoute","AppRoute","BrowserRouter","Switch","ApolloProvider","client","Routes","MessengerCustomerChat","pageId","appId","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","React","StrictMode","App","document","getElementById"],"mappings":"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","file":"static/js/main.92644785.chunk.js","sourcesContent":["export const isLocalHost = () => {\n const hostname = window.location.hostname;\n return !!(\n hostname.indexOf('localhost') > -1 ||\n hostname === '[::1]' ||\n hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n )\n};\n\nexport const isDev = () => {\n const hostname = window.location.hostname;\n return !!(\n hostname.indexOf('dev') > -1\n )\n};\n\nexport const authHeader = token => {\n return ({\n context: {\n headers: {\n \"Authorization\": `Bearer ${token}`\n }\n }\n });\n};\n\nexport const youtubeVideoIDParser = (url) => {\n var regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*/;\n var match = url.match(regExp);\n return (match && match[7].length == 11) ? match[7] : false;\n}\n\nexport const priceFormatter = (price) => {\n return `${price}`.replace(/.(?=(..)*...$)/g, '$&,')\n}\n\nexport const extractValueFromQueryString = (queryString, key) => {\n let value = null;\n\n if (queryString) {\n const queryStringObject = queryString.replace('?', '').split('&').reduce((init, fqs) => {\n const key = fqs.split('=')[0]\n const value = fqs.split('=')[1]\n\n init[key] = value\n\n return init\n }, {})\n\n if (queryStringObject && Object.keys(queryStringObject).length) {\n if (key) {\n if (queryStringObject[key]) {\n value = queryStringObject[key]\n }\n } else {\n value = queryStringObject\n }\n }\n }\n\n return value\n}","import { isLocalHost, isDev } from \"utils/util\";\n\nlet config;\nif (isLocalHost()) {\n //LOCAL config\n config = {\n assetURL: \"http://localhost:8080/assets\",\n graphURL: \"http://localhost:8080/graphql\",\n subscriptionURL: \"ws://localhost:8080/subscriptions\",\n cookieDomain: \"localhost\",\n // assetURL: 'https://api.dev.nirmangurunepal.com/assets',\n // graphURL: 'https://api.dev.nirmangurunepal.com/graphql',\n // subscriptionURL: 'wss://api.dev.nirmangurunepal.com/subscriptions'\n };\n} else if (isDev()) {\n //DEV config\n config = {\n assetURL: \"https://api.dev.nirmangurunepal.com/assets\",\n graphURL: \"https://api.dev.nirmangurunepal.com/graphql\",\n subscriptionURL: \"wss://api.dev.nirmangurunepal.com/subscriptions\",\n cookieDomain: \"dev.nirmangurunepal.com\",\n };\n} else {\n //PROD Config\n config = {\n assetURL: \"https://api.nirmangurunepal.com/assets\",\n graphURL: \"https://api.nirmangurunepal.com/graphql\",\n subscriptionURL: \"wss://api.nirmangurunepal.com/subscriptions\",\n cookieDomain: \"nirmangurunepal.com\",\n };\n}\n\nexport default config;\n","import Cookies from 'universal-cookie';\n\nimport config from 'configs/config';\n\nexport const STORAGE_KEYS = {\n ACCESS_TOKEN: 'ACCESS_TOKEN'\n};\n\nconst cookies = new Cookies();\n\n/**\n * Uses Cookies.\n *\n * @param {String} key : whose Value to set.\n * @param {*} value : Value to set.\n */\nexport const setValueOf = (key, value, maxAge, cookieDomain) => {\n cookies.set(key, value, {\n path: '/',\n maxAge: maxAge ? maxAge : 60 * 60, // 1 hrs\n domain: cookieDomain ? cookieDomain : config.cookieDomain,\n });\n}\n\n/**\n * Uses Cookies.\n *\n * @param {String} key : whose value to get.\n */\nexport const getValueOf = (key) => {\n return cookies.get(key);\n}\n\n/**\n * Uses Cookies.\n *\n * @param {String} key : whose value to remove.\n */\nexport const removeValueOf = (key, cookieDomain) => {\n return cookies.remove(key, {\n path: '/',\n domain: cookieDomain ? cookieDomain : config.cookieDomain\n });\n}","import { useState } from 'react';\nimport { useQuery, useSubscription, gql } from '@apollo/client';\n\nimport { authHeader } from 'utils/util';\nimport { getValueOf, STORAGE_KEYS } from 'utils/storage';\n\nexport default ({ query, key, variables, fetchPolicy, defaultValue, onComplete }) => {\n const token = getValueOf(STORAGE_KEYS.ACCESS_TOKEN);\n\n const [result, setResult] = useState(defaultValue);\n\n const onDataReceive = data => {\n let result = null;\n\n if (data && data[key]) {\n result = data[key];\n } else if (data && data.subscriptionData && data.subscriptionData.data[key]) {\n result = data.subscriptionData.data[key]\n }\n\n setResult(result);\n\n if (onComplete) {\n onComplete(result);\n }\n }\n\n let { loading, error } = useQuery(gql`query ${query}`, { fetchPolicy, variables, ...authHeader(token), onCompleted: onDataReceive, errorPolicy: 'all' });\n useSubscription(gql`subscription ${query}`, { variables, onSubscriptionData: onDataReceive });\n\n return { result, loading, error };\n}\n","import { createContext } from \"react\";\n\nimport useActiveSetting from \"hooks/setting/useActiveSetting\";\n\nexport const SettingContext = createContext({ activeSettingLoading: true, activeSettingResult: [] });\n\nexport const SettingProvider = ({ children }) => {\n const { activeSettingResult, activeSettingLoading } = useActiveSetting();\n\n return (\n \n {children}\n \n );\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveSetting {\n activeSetting {\n _id\n logo\n address\n primaryPhone\n secondaryPhone\n officePhone\n infoEmail\n officeTime\n facebookLink\n instagramLink\n youtubeLink\n }\n }\n`;\n\nexport default (id) => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeSetting',\n variables: { id },\n fetchPolicy: 'cache-and-network'\n });\n\n return { activeSettingResult: result, activeSettingLoading: loading, activeSettingError: error };\n}","import { createContext, useState, useEffect } from \"react\";\n\nimport useActiveCategories from \"hooks/category/useActiveCategories\";\n\nconst initialCategories = [];\n\nexport const CategoryContext = createContext({ activeCategoriesLoading: true, activeCategoriesResult: initialCategories });\n\nexport const CategoryProvider = ({ children }) => {\n const [categories, setCategories] = useState(initialCategories);\n\n const { activeCategoriesLoading, activeCategoriesResult } = useActiveCategories();\n\n useEffect(() => {\n if (!activeCategoriesLoading && activeCategoriesResult) {\n if (categories.length == 0) {\n setCategories(activeCategoriesResult);\n }\n }\n }, [activeCategoriesLoading, activeCategoriesResult])\n\n return (\n \n {children}\n \n );\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveCategories {\n activeCategories {\n _id\n title\n slug\n image\n }\n }\n`;\n\nexport default () => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeCategories',\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeCategoriesResult: result, activeCategoriesLoading: loading, activeCategoriesError: error };\n}","import { ApolloClient, InMemoryCache, split, HttpLink } from '@apollo/client';\n\nimport { WebSocketLink } from '@apollo/client/link/ws';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { setContext } from '@apollo/client/link/context';\n\nimport config from 'configs/config';\n\nconst cache = new InMemoryCache();\n\n// Create Http link:\nconst httpLink = new HttpLink({\n uri: config.graphURL\n});\n\n// Create a WebSocket link:\nconst wsLink = new WebSocketLink({\n uri: config.subscriptionURL,\n options: {\n reconnect: true\n }\n});\n\n// Adding header to the http link\nconst authLink = setContext((_, { headers }) => {\n // return the headers to the context so httpLink can read them\n return {\n headers: {\n ...headers,\n 'custom-header': 'custom-header-value'\n }\n }\n});\n\n// Combine Http and Websocket link as one and pass all the queries through this link. \n// It uses the required link by checking the the type of the query passed.\nconst splitLink = split(\n ({ query }) => {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n },\n wsLink,\n authLink.concat(httpLink),\n);\n\nconst defaultOptions = {\n query: {\n fetchPolicy: 'cache-first',\n errorPolicy: 'all',\n }\n};\n\nexport default new ApolloClient({\n link: splitLink,\n cache: cache,\n defaultOptions\n});","import { Row, Col, Grid } from 'antd';\nimport { Link } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronCircleRight } from '@fortawesome/free-solid-svg-icons'\n\nimport routeConfig from 'Routes/config';\n\nimport config from 'configs/config';\n\nimport './styles.scss';\n\nexport default ({ list }) => {\n // const { useBreakPoint } = Grid;\n // const screens = useBreakPoint();\n // console.log({ screens })\n\n let formattedList = {\n length: 0,\n list: []\n };\n\n if (list) {\n let listGroup = [];\n list.forEach((l, i) => {\n if (i === 0 || (i + 1 === list.length && listGroup.length === 0)) {\n formattedList.list.push(l);\n } else {\n listGroup.push(l);\n\n if (listGroup.length == 2) {\n formattedList.list.push(listGroup);\n listGroup = [];\n }\n }\n });\n }\n\n formattedList.length = formattedList.list.length;\n\n return (\n
\n \n {formattedList.list.map((l, i) =>\n \n {Array.isArray(l) ?\n \n {l.map((cl, i) =>\n \n
\n
\n \n
\n {cl.title} \n
\n \n
\n \n )}\n \n :\n
\n
\n \n
\n {l.title} \n
\n \n
\n }\n \n )}\n \n
\n );\n}","import { Link } from 'react-router-dom';\nimport { Button } from 'antd';\n\nimport routeConfig from 'Routes/config';\nimport config from 'configs/config';\n\nimport * as util from 'utils/util'\n\nimport './styles.scss';\n\nexport default ({ category, image, name, actualPrice, offerPrice, slug }) => {\n return (\n
\n
\n \n
\n
\n {name}\n
\n
\n {offerPrice ?\n
\n NRs {util.priceFormatter(actualPrice)}\n
\n :\n null}\n
\n NRs {offerPrice ? util.priceFormatter(offerPrice) : util.priceFormatter(actualPrice)}\n
\n
\n
\n \n \n \n
\n
\n );\n}","import { Link } from 'react-router-dom';\nimport Carousel from 'react-multi-carousel';\nimport { Row, Col } from 'antd'\n\nimport routeConfig from 'Routes/config';\n\nimport ProductCard from 'components/Card/ProductCard';\n\nimport './styles.scss';\n\nconst productSliderResponsiveSetting = {\n superLargeDesktop: {\n // the naming can be any, depends on you.\n breakpoint: { max: 4000, min: 3000 },\n items: 4\n },\n desktop: {\n breakpoint: { max: 3000, min: 1024 },\n items: 4\n },\n tablet: {\n breakpoint: { max: 1024, min: 464 },\n items: 4\n },\n mobile: {\n breakpoint: { max: 464, min: 0 },\n items: 1\n }\n};\n\nexport default ({ title, slug, list }) => {\n return (\n
\n
\n \n \n {title}\n \n {slug ?\n \n See All\n \n :\n null\n }\n \n
\n
\n \n {list.map(l =>\n
\n \n
\n )}\n \n
\n
\n );\n}","import { Spin } from 'antd';\nimport { LoadingOutlined } from '@ant-design/icons';\n\nimport './styles.scss';\n\nexport default ({ }) => {\n return (\n
\n } />\n
\n );\n}","import useGraphQLLazyQuery from \"hooks/common/useGraphQLLazyQuery\";\n\nconst query = `\n ActiveProductsWithPagination($page: Int!, $limit: Int!, $categorySlug: String, $brandfilter: [String], $pricefilterstart: Int, $pricefilterend: Int, $search: String) {\n activeProductsWithPagination(page: $page, limit: $limit, categorySlug: $categorySlug, brandfilter: $brandfilter, pricefilterstart: $pricefilterstart, pricefilterend: $pricefilterend, search: $search) {\n page\n limit\n total\n data {\n _id\n category {\n _id\n slug\n }\n title\n slug\n price\n offerPrice\n image\n video\n }\n }\n }\n`;\n\nexport default () => {\n const { trigger, result, loading, error } = useGraphQLLazyQuery({\n query,\n key: 'activeProductsWithPagination',\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeProductsWithPaginationTrigger: trigger, activeProductsWithPaginationResult: result, activeProductsWithPaginationLoading: loading, activeProductsWithPaginationError: error };\n}","import { useState } from 'react';\nimport { useLazyQuery, gql } from '@apollo/client';\n\nimport { authHeader } from 'utils/util';\nimport { getValueOf, STORAGE_KEYS } from 'utils/storage';\n\nexport default ({ query, key, fetchPolicy, onComplete }) => {\n const token = getValueOf(STORAGE_KEYS.ACCESS_TOKEN);\n\n const [result, setResult] = useState(null);\n\n const onDataReceive = data => {\n let result = null;\n\n if (data && data[key]) {\n result = data[key];\n }\n\n setResult(result);\n\n if (onComplete) {\n onComplete(result);\n }\n }\n\n const [queryFunction, { loading, error }] = useLazyQuery(gql`query ${query}`, { fetchPolicy, ...authHeader(token), onCompleted: onDataReceive, errorPolicy: 'all', notifyOnNetworkStatusChange: 'true' });\n\n const trigger = variables => queryFunction({ variables });\n\n return { trigger, result, loading, error }\n}\n","import { useEffect, useState } from 'react';\nimport { Checkbox, Slider, Input, Button } from 'antd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronUp } from '@fortawesome/free-solid-svg-icons'\n\nimport useActiveBrandsWithProductCountByCategorySlug from 'hooks/brand/useActiveBrandsWithProductCountByCategorySlug';\n\nimport SpinnerLoader from 'components/Loader/SpinnerLoader';\n\nimport './styles.scss';\n\nexport default ({ urlCategory, totalProducts, filterParamsObject, applyFilter, clearFilter }) => {\n const [filterParams, setFilterParams] = useState({});\n\n useEffect(() => {\n if (filterParamsObject && Object.keys(filterParamsObject).length) {\n setFilterParams(filterParamsObject)\n } else {\n setFilterParams({})\n }\n }, [filterParamsObject])\n\n //active total product by category\n const { activeBrandsWithProductCountByCategorySlugResult, activeBrandsWithProductCountByCategorySlugLoading } = useActiveBrandsWithProductCountByCategorySlug(urlCategory);\n //active product price range by category\n const priceRange = {\n min: 1,\n max: 500000\n }\n\n const updateBrandFilter = (name, checked) => {\n let brandFilterArray = filterParams.brandfilter || [];\n\n if (checked) {\n if (!brandFilterArray.includes(name)) {\n brandFilterArray = [...brandFilterArray, name];\n }\n } else {\n brandFilterArray = brandFilterArray.filter(b => b !== name);\n }\n\n setFilterParams({ ...filterParams, brandfilter: brandFilterArray })\n };\n\n return (\n
\n
\n
\n Narrow Your Search\n
\n
\n ({totalProducts} items)\n
\n
\n
\n
\n
\n Brands\n
\n
\n \n
\n
\n
\n {activeBrandsWithProductCountByCategorySlugLoading ?\n \n :\n activeBrandsWithProductCountByCategorySlugResult ?\n activeBrandsWithProductCountByCategorySlugResult.map(b =>\n
\n
\n updateBrandFilter(b.slug, target.checked)} checked={filterParams && filterParams.brandfilter && filterParams.brandfilter.includes(b.slug)}>{b.title}\n
\n
\n ({b.productCount})\n
\n
\n )\n :\n null\n }\n
\n
\n
\n
\n Price Range\n
\n
\n
\n Min: NRs {priceRange.min}\n
\n
\n Max: NRs {priceRange.max}\n
\n
\n
\n setFilterParams({ ...filterParams, pricefilterstart: value[0], pricefilterend: value[1] })}\n />\n
\n
\n
\n setFilterParams({ ...filterParams, pricefilterstart: parseInt(event.target.value) })} />\n
\n
\n setFilterParams({ ...filterParams, pricefilterend: parseInt(event.target.value) })} />\n
\n
\n
\n \n \n
\n
\n
\n );\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveBrandsWithProductCountByCategorySlug($categorySlug: String!) {\n activeBrandsWithProductCountByCategorySlug(categorySlug: $categorySlug) {\n _id\n title\n slug\n image\n productCount\n }\n }\n`;\n\nexport default (categorySlug) => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeBrandsWithProductCountByCategorySlug',\n variables: { categorySlug },\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeBrandsWithProductCountByCategorySlugResult: result, activeBrandsWithProductCountByCategorySlugLoading: loading, activeBrandsWithProductCountByCategorySlugError: error };\n}","import { useEffect, useContext } from \"react\";\nimport { Row, Col, Pagination } from \"antd\";\n\nimport { CategoryContext } from \"context/CategoryContext\";\n\nimport useActiveProductsWithPagination from \"hooks/product/useActiveProductsWithPagination\";\n\nimport { extractValueFromQueryString } from \"utils/util\";\n\nimport config from \"configs/config\";\n\nimport FilterSidebar from \"./FilterSidebar\";\nimport ProductCard from \"components/Card/ProductCard\";\nimport SpinnerLoader from \"components/Loader/SpinnerLoader\";\n\nimport \"./styles.scss\";\n\nexport default ({ history, match, location }) => {\n const urlCategory = match.params.category;\n const urlSearch = extractValueFromQueryString(location.search, \"query\");\n\n let page = extractValueFromQueryString(location.search, \"page\");\n if (!page) {\n page = 1;\n }\n const limit = 12;\n\n const { activeCategoriesLoading, activeCategoriesResult } =\n useContext(CategoryContext);\n\n const getActiveCategory = (categorySlug) => {\n let activeCategory = null;\n\n if (\n categorySlug &&\n !activeCategoriesLoading &&\n activeCategoriesResult &&\n activeCategoriesResult.length\n ) {\n const [selectedCategory] = activeCategoriesResult.filter(\n (ac) => ac.slug === categorySlug\n );\n\n if (selectedCategory) {\n activeCategory = selectedCategory;\n }\n }\n\n return activeCategory;\n };\n\n const {\n activeProductsWithPaginationTrigger,\n activeProductsWithPaginationResult,\n activeProductsWithPaginationLoading,\n } = useActiveProductsWithPagination();\n\n const getFilterParamsObject = () => {\n let filterParamsObject = {};\n\n if (location.search) {\n const queryStringObject = extractValueFromQueryString(location.search);\n\n if (queryStringObject) {\n Object.keys(queryStringObject).forEach((qso) => {\n let value = queryStringObject[qso];\n if (qso === \"brandfilter\") {\n value = value.split(\",\");\n }\n if (qso === \"pricefilterstart\" || qso === \"pricefilterend\") {\n value = parseInt(value);\n }\n filterParamsObject[qso] = value;\n });\n }\n }\n\n return filterParamsObject;\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n\n let params = {};\n\n if (urlCategory) {\n params.categorySlug = urlCategory;\n }\n\n if (urlSearch) {\n params.search = decodeURI(urlSearch);\n }\n\n const filterParamsObject = getFilterParamsObject();\n\n if (filterParamsObject && Object.keys(filterParamsObject).length) {\n Object.keys(filterParamsObject).forEach((fpo) => {\n params[fpo] = filterParamsObject[fpo];\n });\n }\n\n //pagination update\n params.page = parseInt(page, 10);\n params.limit = limit;\n\n activeProductsWithPaginationTrigger(params);\n }, [urlCategory, urlSearch, location.search]);\n\n const applyFilter = (filterParams) => {\n const filterParamsArray = Object.keys(filterParams).map(\n (fp) =>\n `${fp}=${\n Array.isArray(filterParams[fp])\n ? filterParams[fp].join(\",\")\n : filterParams[fp]\n }`\n );\n\n if (filterParamsArray.length) {\n history.push(`?${filterParamsArray.join(\"&\")}`);\n }\n };\n\n const clearFilter = () => {\n history.push(urlCategory);\n };\n\n const changePage = (page) => {\n let filterParams = {};\n\n const filterParamsObject = getFilterParamsObject();\n\n if (filterParamsObject && Object.keys(filterParamsObject).length) {\n Object.keys(filterParamsObject).forEach((fpo) => {\n if (fpo !== \"page\" && fpo !== \"limit\") {\n filterParams[fpo] = filterParamsObject[fpo];\n }\n });\n }\n\n const filterParamsArray = Object.keys(filterParams).map(\n (fp) =>\n `${fp}=${\n Array.isArray(filterParams[fp])\n ? filterParams[fp].join(\",\")\n : filterParams[fp]\n }`\n );\n\n if (filterParamsArray.length) {\n history.push(`?${filterParamsArray.join(\"&\")}&page=${page}`);\n } else {\n history.push(`?page=${page}`);\n }\n };\n\n return (\n
\n {activeCategoriesLoading ? (\n \n ) : getActiveCategory(urlCategory) ? (\n \n
\n
\n {getActiveCategory(urlCategory)[\"title\"]}\n
\n
\n ) : urlSearch ? (\n
\n
Search
\n
\n ) : null}\n
\n \n \n
\n \n
\n \n \n
\n
\n Home >{\" \"}\n {urlCategory\n ? `Category > ${urlCategory.replaceAll(\"-\", \"\")}` || null\n : \"Search\"}\n
\n {activeProductsWithPaginationLoading ? (\n \n ) : activeProductsWithPaginationResult ? (\n <>\n
\n \n {activeProductsWithPaginationResult.data.map((p) => (\n \n \n \n ))}\n \n
\n
\n changePage(page)}\n />\n
\n \n ) : null}\n
\n \n
\n
\n
\n );\n};\n","import { useState } from 'react';\nimport { useMutation, gql } from '@apollo/client';\n\nimport { authHeader } from 'utils/util';\nimport { getValueOf, STORAGE_KEYS } from 'utils/storage';\n\nexport default ({ query, key, onComplete }) => {\n const token = getValueOf(STORAGE_KEYS.ACCESS_TOKEN);\n\n const [result, setResult] = useState(null);\n\n const onDataReceive = data => {\n let result = null;\n\n if (data && data[key]) {\n result = data[key];\n }\n\n setResult(result);\n\n if (onComplete) {\n onComplete(result);\n }\n }\n\n const [mutationFunction, { loading, error }] = useMutation(gql`mutation ${query}`, { ...authHeader(token), onCompleted: onDataReceive, errorPolicy: 'all' });\n\n const trigger = variables => mutationFunction({ variables });\n\n return { trigger, result, loading, error }\n}\n","export const email = (email) => {\n if (!email || !email.length) return false;\n return /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/.test(email)\n}\n\nexport const number = (number) => {\n if (!number || !number.length) return false;\n return /^\\d+$/.test(number);\n}\n\nexport const mobile = (mobile) => {\n if (!mobile || !mobile.length) return false;\n return /^\\d{10}$/.test(mobile)\n}\n\nexport const containsSpecialCharacter = (text) => {\n return /[@#%&]/.test(text);\n}","import { Form, Input } from 'antd';\n\nexport default ({ label, type = 'text', name, placeholder, rules }) => {\n return (\n \n {type === 'textarea' ?\n \n :\n \n }\n \n );\n}","import { useEffect } from 'react';\nimport { Modal, Form, Row, Col, Alert, Button } from 'antd';\n\nimport useInquiryCreate from 'hooks/inquiry/useInquiryCreate';\n\nimport * as validation from 'utils/validation';\n\nimport TextInput from 'components/Input/TextInput';\n\nimport './styles.scss';\n\nexport default ({ product, visible, onClose }) => {\n const [form] = Form.useForm();\n\n const { inquiryCreateTrigger, inquiryCreateLoading, inquiryCreateResult, inquiryCreateError } = useInquiryCreate();\n const submitFormData = (formData) => {\n formData.product = product;\n\n inquiryCreateTrigger(formData);\n };\n\n useEffect(() => {\n if (!inquiryCreateLoading) {\n if (inquiryCreateResult && inquiryCreateResult._id) {\n form.resetFields();\n onClose();\n }\n }\n }, [inquiryCreateLoading, inquiryCreateResult]);\n\n return (\n \n
\n Please submit your mobile number and we will get back to you.\n
\n
\n \n \n \n ({\n validator(_, value) {\n if (value && value !== '') {\n if (!validation.mobile(value)) {\n return Promise.reject(new Error('Invalid mobile!'));\n }\n }\n return Promise.resolve();\n },\n })\n ]}\n />\n \n {inquiryCreateError ?\n \n \n \n :\n null}\n \n \n \n \n \n \n \n
\n
\n );\n}","import useGraphQLMutation from \"hooks/common/useGraphQLMutation\";\n\nconst query = `\n InquiryCreate($mobile: String!, $product: String!) {\n inquiryCreate(mobile: $mobile, product: $product) {\n _id\n }\n }\n`;\n\nexport default () => {\n const { trigger, result, loading, error } = useGraphQLMutation({\n query,\n key: 'inquiryCreate'\n });\n\n return { inquiryCreateTrigger: trigger, inquiryCreateResult: result, inquiryCreateLoading: loading, inquiryCreateError: error }\n}","import { useContext } from 'react';\nimport { Modal, Row, Col } from 'antd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhoneAlt } from '@fortawesome/free-solid-svg-icons'\n\nimport { SettingContext } from 'context/SettingContext';\n\nimport SpinnerLoader from 'components/Loader/SpinnerLoader';\n\nimport './styles.scss';\n\nexport default ({ visible, onClose }) => {\n const { activeSettingLoading, activeSettingResult } = useContext(SettingContext);\n\n return (\n \n {activeSettingLoading ?\n \n :\n activeSettingResult ?\n <>\n
\n Contact Phone:\n
\n
\n \n \n {activeSettingResult.primaryPhone}\n \n \n \n \n \n \n \n \n \n {activeSettingResult.secondaryPhone}\n \n \n \n \n \n \n \n
\n \n : null\n }\n
\n );\n}","export default __webpack_public_path__ + \"static/media/ManagingDirector.914e6a4d.jpg\";","import Homepage from \"pages/Homepage\";\nimport ProductList from \"pages/Product/List\";\nimport ProductDetail from \"pages/Product/Detail\";\nimport AboutUs from \"pages/AboutUs\";\nimport PrivacyNotice from \"pages/PrivacyNotice\";\nimport TermsAndCondition from \"pages/TermsAndCondition\";\nimport ContactUs from \"pages/ContactUs\";\nimport Disclaimer from \"pages/Disclaimer\";\n\n// Route types ['auth', 'private', 'app', 'default']\nexport default {\n homepage: {\n type: \"app\",\n path: \"/\",\n component: Homepage,\n },\n disclaimer: {\n type: \"app\",\n path: \"/disclaimer\",\n component: Disclaimer,\n },\n termsAndCondition: {\n type: \"app\",\n path: \"/terms-and-condition\",\n component: TermsAndCondition,\n },\n privacyNotice: {\n type: \"app\",\n path: \"/privacy-notice\",\n component: PrivacyNotice,\n },\n aboutUs: {\n type: \"app\",\n path: \"/about-us\",\n component: AboutUs,\n },\n contactUs: {\n type: \"app\",\n path: \"/contact-us\",\n component: ContactUs,\n },\n productList: {\n type: \"app\",\n path: \"/:category\",\n component: ProductList,\n },\n productSearch: {\n type: \"app\",\n path: \"/search?query=:search\",\n component: ProductList,\n },\n productDetail: {\n type: \"app\",\n path: \"/:category/:product\",\n component: ProductDetail,\n },\n};\n","import { useContext } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Row, Col, Carousel } from \"antd\";\n\nimport { CategoryContext } from \"context/CategoryContext\";\n\nimport useActiveCategoriesWithFeaturedProducts from \"hooks/category/useActiveCategoriesWithFeaturedProducts\";\nimport useActiveMainBanners from \"hooks/banner/useActiveMainBanners\";\nimport useActiveOfferBanners from \"hooks/banner/useActiveOfferBanners\";\nimport useActiveAdvertisementBanners from \"hooks/banner/useActiveAdvertisementBanners\";\n\nimport config from \"configs/config\";\n\nimport Category from \"./Category\";\nimport ProductSlider from \"components/Slider/ProductSlider\";\nimport SpinnerLoader from \"components/Loader/SpinnerLoader\";\n\nimport \"./styles.scss\";\n\nexport default ({}) => {\n const { activeCategoriesLoading, activeCategoriesResult } =\n useContext(CategoryContext);\n\n const {\n activeCategoriesWithFeaturedProductsResult,\n activeCategoriesWithFeaturedProductsLoading,\n } = useActiveCategoriesWithFeaturedProducts();\n const { activeMainBannersResult, activeMainBannersLoading } =\n useActiveMainBanners();\n const { activeOfferBannersResult, activeOfferBannersLoading } =\n useActiveOfferBanners();\n const {\n activeAdvertisementBannersResult,\n activeAdvertisementBannersLoading,\n } = useActiveAdvertisementBanners();\n\n return (\n
\n {activeMainBannersLoading ? (\n \n ) : activeMainBannersResult ? (\n \n {activeMainBannersResult.map((b) =>\n b.link ? (\n \n
\n {b.title}\n
\n \n ) : (\n
\n {b.title}\n
\n )\n )}\n
\n ) : null}\n\n {activeCategoriesLoading ? (\n \n ) : activeCategoriesResult ? (\n
\n \n
\n ) : null}\n\n {activeOfferBannersLoading ? (\n \n ) : activeOfferBannersResult ? (\n
\n \n {activeOfferBannersResult.map((ao) =>\n ao.link ? (\n \n \n
\n \n
\n \n \n ) : (\n \n
\n \n
\n \n )\n )}\n
\n
\n ) : null}\n\n {activeCategoriesWithFeaturedProductsLoading ? (\n \n ) : activeCategoriesWithFeaturedProductsResult ? (\n activeCategoriesWithFeaturedProductsResult.map((ac) => (\n
\n \n
\n ))\n ) : null}\n\n {activeAdvertisementBannersLoading ? (\n \n ) : activeAdvertisementBannersResult ? (\n
\n \n {activeAdvertisementBannersResult.map((aa) =>\n aa.link ? (\n \n \n
\n \n
\n \n \n ) : (\n \n
\n \n
\n \n )\n )}\n
\n
\n ) : null}\n
\n );\n};\n","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveCategoriesWithFeaturedProducts {\n activeCategoriesWithFeaturedProducts {\n _id\n title\n slug\n image\n products {\n _id\n category {\n _id\n slug\n }\n title\n slug\n sku\n price\n offerPrice\n description\n image\n }\n }\n }\n`;\n\nexport default () => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeCategoriesWithFeaturedProducts',\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeCategoriesWithFeaturedProductsResult: result, activeCategoriesWithFeaturedProductsLoading: loading, activeCategoriesWithFeaturedProductsError: error };\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveMainBanners {\n activeMainBanners {\n _id\n title\n link\n image\n }\n }\n`;\n\nexport default () => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeMainBanners',\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeMainBannersResult: result, activeMainBannersLoading: loading, activeMainBannersError: error };\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveOfferBanners {\n activeOfferBanners {\n _id\n title\n link\n image\n }\n }\n`;\n\nexport default () => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeOfferBanners',\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeOfferBannersResult: result, activeOfferBannersLoading: loading, activeOfferBannersError: error };\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveAdvertisementBanners {\n activeAdvertisementBanners {\n _id\n title\n link\n image\n }\n }\n`;\n\nexport default () => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: \"activeAdvertisementBanners\",\n fetchPolicy: \"cache-and-network\",\n defaultValue: [],\n });\n\n return {\n activeAdvertisementBannersResult: result,\n activeAdvertisementBannersLoading: loading,\n activeAdvertisementBannersError: error,\n };\n};\n","import { useEffect } from 'react';\n\nimport './styles.scss';\n\nexport default ({ }) => {\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [])\n\n return (\n
\n
\n Disclaimer\n
\n
\n

\n This video has been taken from related source link.\n

\n

\n We do not intend to achieve any unjust benefit from the use of this\n content, rather we are promoting the brand from our small level to reach\n the petty consumers in an efficient way. We respect the confidentiality of\n the original content creator and have put the content in as it is condition\n without any modification.\n

\n
\n
\n );\n}","import { useEffect } from \"react\";\n\nimport \"./styles.scss\";\n\nexport default ({}) => {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n
\n
Terms and Condition
\n
\n {/*

\n In compliance with the Privacy Policies, the terms governing your purchase\n and use of nirman guru nepal products and services are as follows and\n constitute between you a legally binding agreement and nirman guru nepal.\n

\n

\n For these terms and conditions of service, wherever the term ‘you/user’\n comes in shall mean any natural or legal individual who has downloaded and\n installed this mobile application (‘referred to as app’) and registration\n data provided during application registration in the app or by visiting the\n website by entering the domain name in any web browser. Any services\n provided by the website/app which do not require registration does not\n exclude you from the contractual relationship laid down in this agreement.\n

\n

\n Wherever the situation demands, anybody authorized and related to the\n construction sector shall be referred to as an expert/registered expert who\n will be verified and authenticated by us.\n

\n

\n You are bound by these Service Terms and any other contractual agreement as\n determined by the Company when you download and install this app. Before\n acknowledging this, you are requested to read them carefully and continue\n to use the website/app.\n

\n

\n When you visit, view, connect or otherwise use any of the services or\n information created, collected, compiled, or submitted to\n www.nirmangurunepal.com, all following sale/service terms and conditions\n will be deemed to have been agreed upon. Please read these Terms carefully\n before using this website and app, because you agree to be bound by them.\n Please do not use this website/app if you do not agree with these Terms and\n Conditions.\n

\n

\n 1. PRIVACY POLICY:\n

\n
    \n
  • \n In accordance with our Privacy Policy, your personal identifiable\n information will be used. Refer to our Privacy Policy to understand our\n practice of collecting, utilizing and disclosing your personal\n information, which governs your www.nirmangurunepal.com visit as well.\n
  • \n
  • \n We understand that the privacy of all the information you provide is\n essential. We will do everything we can to make a cautious and\n sensitive use of it. Such information is never exchanged with other\n businesses or third party service providers.\n
  • \n
\n

\n 2. COMMUNICATIONS:\n

\n
    \n
  • \n By using this website/app it is deemed that you have approved the use\n of the telephone number given by the user, according to the Privacy\n Policy, to receive auto-dialed or pre-recorded messages or calls at any\n time from us. This includes interacting with you via information\n received from other parties and contacting other parties with\n information which you provide to us. You also agree to receive SMSs\n from us whenever we deem fit by using this website/app. This consent is\n for reasons which include clarification calls, advertisement and\n promotional calls and are not limited to. If you wish us to stop\n contacting you, you can email us at info@nirmangurunepal.com\n
  • \n
  • \n In furtherance of our rights, responsibilities, and obligations in\n compliance with other arrangements, contracts and procedures adopted by\n us, you may also be approached by service providers with whom we have\n entered into a contract. Such communication will only be made,\n according to the respective contracts, agreements and/or policies.\n
  • \n
  • \n The information exchanged by you shall be subject to the Privacy\n Policy. Your contact information shall not be revealed to third parties\n not connected to the website/app, to the services offered or for any\n reason not related to the company's activities. For additional\n information refer to the 'Privacy Policy'.\n
  • \n
\n

\n 3. SECURITY POLICY:\n

\n

\n All transactions in www.nirmangurunepal.com are safe when ordering online.\n The 256 bit Secure Sockets Layer (SSL) encryption technology is used to\n encrypt your personal information, before it has been transmitted over the\n Internet, which ensures confidentiality and high security levels.\n

\n

\n 4. CUSTOMER MEMBERSHIP/USAGE/ELIGIBILITY:\n

\n
    \n
  • \n The website/app membership/use is limited to those older than 18 years\n old, or for a group that could be called the 'majority' according to\n the law of the respective jurisdictions where this website/app can be\n seen and is open to or independent minors, who has legal consent of\n parent or guardian, or are in a position to enter into the terms,\n conditions, commitments, affirmations, representations and assurances\n set out in the following terms and conditions of service thoroughly and\n competently, and to accept these Terms of Service and to comply with\n them.\n
  • \n
  • \n You agree that the app you download/or the website you use on your\n phone or tablet is our property and the website/app may be updated\n automatically, and these terms also apply in respect to the updates. We\n reserve the right without notice to terminate this agreement and\n without any reason suspend the account.\n
  • \n
\n

\n 5. PRICE AND PAYMENT:\n

\n
    \n
  • \n The website/app can be installed and used at no charge and it includes\n only the use of certain website/ app features. You agree that, at the\n discretion of the company, this no charging policy may be changed at\n any time. Nevertheless, you are required to pay for consultation if you\n use the website/app to choose an expert/registered expert.\n
  • \n
  • \n For this reason, any user who opts for the services offered on our\n website/app would be included as a buyer. Seller means\n Us/Website/App/Company.\n
  • \n
  • \n When using any payment methods accessible through the website/app, we\n shall not assume any obligation or liability whatsoever, in relation to\n any loss or damage, either directly or indirectly to you due to:\n
  • \n
\n
    \n
  • \n Missing of any transaction(s) authorization, or\n
  • \n
  • \n Exceeding the mutually agreed preset cap between you and 'Bank(s)', or\n
  • \n
  • \n Any payment difficulties during transaction, or\n
  • \n
  • \n Denial of transaction for any other reason(s).\n
  • \n
\n
    \n
  • \n You shall be obliged to pay for the services you render in Nepalese\n Rupees on the website/app. The website/app will not entertain\n transactions in any other form of currency with respect to purchases\n made on website/app.\n
  • \n
  • \n The credit limit to be provided to the users shall be governed by\n separate policy or contract.\n
  • \n
  • \n The product prices in the app/website are inclusive of all applicable taxes.\n
  • \n
  • \n We do our utmost to ensure that items prices and availability on our\n website/app are updated. In rare circumstances, however, product prices\n error or a product availability error may occur. We are not liable for\n any typographical errors in these circumstances and reserve the right\n to cancel the transaction.\n
  • \n
  • \n 6.8 We reserve the right to rectify pricing and product\n availability/description inaccuracies or omissions, even after the\n order has been submitted, and at any time without prior notice to\n change or update any other information.\n
  • \n
  • \n Delivery times can vary depending on the place of delivery and the type\n of product you order.\n
  • \n
  • \n The payment can be made by any of the following payment methods as per\n availability:\n
    \n Credit/Debit Card or Cash on Delivery or Online Wallets., POS, QR, IPS,\n cheque\n
  • \n
\n

\n 6. USE OF INFORMATION ON THE WEBSITE/APP:\n

\n

\n No viewpoints or views included in the website or app content is supported\n by www.nirmangurunepal.com, or other information that our services offer.\n Sending any request or query about our products does not create a\n professional relationship between you and www.nirmangurunepal.com.\n

\n

\n 7. THIRD PARTY INFORMATION:\n

\n
    \n
  • \n Our content includes the content of the website/app, which includes all\n text, graphics, UIs, visual interfaces, images, trademarks, logos,\n sounds, music, design documents and artwork (hereinafter referred to as\n ‘Content’). All links connecting to third party content available in\n the website/app might not be associated with us. We are merely an\n intermediary of those content and we do not have any control over\n contents created by a third party. If any of the Third Party Content\n violates another person's intellectual property, any loss caused is the\n sole responsibility of the Third Party and we're not responsible. To\n report any such material, you can send an e-mail to\n info@nirmangurunepal.com.\n
  • \n
  • \n Except if expressly permitted, any use and duplication, republishing,\n downloading, writing, publicly showing, encoding, translating,\n transmitting or distributing of our Content (including \"mirroring\"), to\n any other publication or distribution medium, server, website or other\n platform or any commercial company, is not permissible without our\n express prior written consent.\n
  • \n
\n

\n 8. USER CONTENT:\n

\n
    \n
  • \n Contents uploaded or posted will become our property and grant us\n rights that are universal, permanent and transferable. We have the\n right to, in compliance with the applicable law of our Privacy Policy,\n use the Content or any of its components forever for any kind of using,\n for promotional and advertisement purposes, but not limited to and in\n any media currently known or later conceived, including the production\n of derivatives which may contain any material you provide and no\n payment or fee shall be provided for such use. You also authorize us to\n grant these rights to be sub-licensed and to take action if these\n rights are breached. We reserve the right of modifying or deleting\n material posted on or saved on this website/app or storing or\n publishing it on our servers.\n
  • \n
  • \n Those who add any user content to the website/app have to check that\n the content‘s information are valid and authentic, time, place and\n nature included. Before such material is made available on the\n website/app, we have the right and authority to check the accuracy of\n such data related to the content with the respective sources provided\n by the user, if we think the accuracy needs to be monitored. We have\n the right, after collecting and verifying the information, to upload\n content on behalf of third parties. Nevertheless, for any false or\n misleading material, we cannot in any way be held responsible.\n
  • \n
  • \n If any content in any jurisdiction in which the website/app can be\n viewed and accessed is deemed to be unlawfully or contrary to law, we\n shall initiate the process of required action to delete it, when the\n authorities in the respective competence inform us that this material\n is considered illegal. We cannot accept responsibility or be questioned\n for it.\n
  • \n
\n

\n 9. USER OBLIGATIONS:\n

\n

\n You are a restricted user of this website/app.\n

\n
    \n
  • \n You may not use any information or software from the website/app, copy,\n distribute, alter, reverse engineer, disseminate, upload, publish or\n create derivative work. Limited use may be permitted with our prior\n permission. To resolve any doubt, it has been explained that it is not\n allowed to reproduce unlimited or wholesale material, copy content for\n commercial or non-commercial purposes and to change data and\n information in the sense of the content of the website/app. You are not\n permitted or allowed on behalf of third parties to (i) make copies of\n the website/app and distribute them (ii) try copying, reproducing,\n updating, reverse engineering, dismounting, decompiling or translating\n the website/app; (iii) build derivative works of any kind of the\n website/app.\n
  • \n
  • \n You accept that you will not access (or attempt to access) the\n website/app and/or the materials or resources by any means other than\n through the website/app. Use of deep-link, robot, spider or other\n automated tool, software, algorithm or methodology, or any manual\n process similar or equivalent, to access, gain, copy or track any part\n of the App or Content, or reproduce or circumvent in any way the\n navigational structure or presentation of the website/app, materials or\n any content, to obtain or attempt to obtain materials, records or\n information by any means not specifically made available via the\n website/app. Through accessing or using the website/app or products,\n you accept and consent, you may be exposed to other users' content that\n you may find offensive, inappropriate or otherwise unacceptable. On the\n website/app, we disclaim all liabilities arising from such offensive\n content. However, by sending us an e-mail to our official e-mail\n address you can report such offensive content.\n
  • \n
  • \n By nature, this website/app enables you to upload information; you\n undertake to ensure that the content complies with applicable laws. In\n addition, you agree not to:\n
  • \n
\n

\n o Abuse, harass, threat, slander, disillusion, erode, abrogate, demean or\n otherwise violate other people's legal rights;\n

\n

\n o Engage in any operation that interferes with or disrupts access to the\n website/app or the Services (or the website/app servers and networks);\n

\n

\n o Impersonate another person or entity or state your association with a\n person or falsely or otherwise misrepresent;\n

\n

\n o Post any file that infringes other legal entities' copyright, patent or\n trademark.\n

\n

\n o Upload or distribute files containing viruses, corrupted data, or any\n other similar software or programs that could damage the activity of the\n website/app or the computer of another;\n

\n

\n o Download any file posted by another user of a Service that you know, or\n should fairly know, cannot be distributed lawfully in this way;\n

\n

\n o Investigate, scan or test the website/app vulnerability or any network\n connected to the website/app, or infringe website/app security or\n authentication measures or any network connected to the website/app. You\n may not reverse check, monitor or attempt to find any details of any other\n user, or visitor, or any other customer to the website/app, including any\n account you do not own, at its source, or exploit the website/app or\n service or data made available or offered by or through the website/app,\n whether the intention is to disclose any information or not, including\n personal identification details, but not limited to, as given by the\n website/app, other than your own information;\n

\n

\n o Disrupt or impair with the security of, or else it is harmful to the\n website/app, system resources, accounts, passwords, servers or linked\n networks or accessible via the website/app or any related or associated\n websites;\n

\n

\n o Collect or store other user data relevant to the forbidden behavior and\n behaviors set out in this section.\n

\n

\n o Use the website/app or any material or content for any reason that is\n unlawful or prohibited by these Terms of Service or request that any\n illegal activity or other action that infringes the rights of this\n website/app or other third parties be carried out;\n

\n

\n o Violate any code of conduct or other rules that may refer to or on behalf\n of any particular Service;\n

\n

\n o Violate for the time being any relevant laws or regulations in or outside\n Nepal;\n

\n

\n o Violate the Terms of Service, including but not limited to any other\n relevant website/app terms found herein or anywhere else;\n

\n

\n o Violate any code of conduct or other rules specific to or applicable to\n any Service;\n

\n

\n o Threaten Nepal’s unity, independence, protection, security, or\n sovereignty, friendly relationships with foreign states, or public order,\n or cause incitement to commit any known offense, or prevent investigation\n of any offense, or insult any other country.\n

\n

\n o Publish, post, disseminate false, inaccurate or misleading information;\n violate any laws or regulations in place in or outside Nepal for the time\n being;\n

\n

\n o Directly or indirectly, sell, attempt to offer, trade or attempt to trade\n in any item which, for the time being, is prohibited or limited in any way\n under any applicable law, rule, regulation or guideline.\n

\n

\n o Creating liability for us or causing us to lose (in whole or in part) our\n Internet service provider's services (\"ISPs\") or other providers;\n

\n
    \n
  • \n While we are not liable or accountable for any such actions on your\n part to the Users, violation of this provision would result in possible\n criminal charges against you, either from other website/app users or\n from us.\n
  • \n
  • \n We may (and hereby expressly authorize) disclose any information about\n you to law enforcement officials or other government officials, as we,\n in our sole discretion, consider it necessary or appropriate to\n investigate and/or resolve possible crimes, in particular, those that\n may involve personal injury. You understand that we have the right to\n disclose any information at all times (including identification of the\n individuals’ providing details or content on the website/app) as\n necessary to comply with any applicable law, regulation or government\n request. This may include, but is not limited to, the disclosure of\n information in connection with the investigation of alleged illegal\n activity or request for illegal activity or in response to a lawful\n order of the court.\n
  • \n
  • \n 10.6 We do not have an obligation to monitor the material posted on the\n website/app. We shall have the right to remove or modify any content\n that is in breach of its sole discretion, or it is alleged that it\n infringes any applicable law or the spirit or letter of these Terms of\n Service. Given this right, you just consent to the MATERIAL CONTENT you\n are publishing in the website/app. We shall not presume in any\n situation or be accountable or liable for any posted content or for any\n claims, damages or injuries resulting from content use and/or Content\n presence on the App. You hereby reflect and guarantee that all rights\n in and to all content that you provide and the details it includes and\n that no proprietary or other rights of third parties are breached by\n such Content or contains any information that is defamatory, tortuous,\n or otherwise illegal.\n
  • \n
\n

\n 10. DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY:\n

\n
    \n
  • \n All of the content, products or services that are included in this\n website/app are made available to you by www.nirmangurunepal.com on an\n “as is” and “as available” basis, either expressed or implicated, in\n particular, in the degree permitted by law applicable we preclude\n warranties of any kind. You expressly consent to be solely responsible\n for your use of this website/app.\n
  • \n
  • \n www.nirmangurunepal.com shall not take responsibility for any losses or\n viruses caused by access, use or browsing on this site that may corrupt\n your device or other property.\n
  • \n
  • \n www.nirmangurunepal.com has made reasonable efforts to ensure that\n information published at the time of publishing is correct;\n nevertheless, we shall not be liable for errors in such records. We\n reserve the right in our sole discretion to delete or change any\n information contained on the website/app.\n
  • \n
  • \n The adequacy, currency or comprehensiveness of website/app content\n cannot be guaranteed by www.nirmangurunepal.com. The reliability,\n consistency, or protection of products available on the website/app is\n not assured or endorsed by www.nirmangurunepal.com.\n
  • \n
  • \n We disclaim all liability for any injury to individuals arising from\n the guidance or items specified on the website/app. No supplier of any\n products or service on the website/app is affiliated with\n www.nirmangurunepal.com. We do not guarantee that your requirements\n will be met by the website/app or its content.\n
  • \n
  • \n Please notice that while nirman guru nepal has tried hard to show the\n colors of the products correctly on their website/app, your monitor\n will define on the actual color you see. We cannot ensure that the\n color display of your monitors is identical to that of your delivered\n products.\n
  • \n
  • \n We can allow you to view and interact with us through the services of\n social media such as Facebook and Instagram. nirman guru nepal\n expressly disclaims all liability for the terms and conditions of use\n and the rules regulating the web pages of such third parties which are\n not affiliated in any way with us.\n
  • \n
  • \n www.nirmangurunepal.com does not take any responsibility for damages or\n injuries sustained because you rely on nirman guru nepal users' product\n reviews.\n
  • \n
  • \n www.nirmangurunepal.com reserves the right at any moment, without\n warning, to change or delete any aspect of the website/app or its\n contents.\n
  • \n
\n

\n 11. APP/WEBSITE AVAILABILITY:\n

\n

\n We are careful to ensure www.nirmangurunepal.com website/app is available\n 24 hours a day, 365 days a year. However, because of maintenance, server or\n other technical problems, or for reasons beyond our control, the\n website/app may become temporarily unavailable. www.nirmangurunepal.com\n does not guarantee uninterrupted access to this website/app or any site/app\n linked. However, if we know about the planned maintenance of our\n website/app, we can issue a notice, but are not obliged to do so.\n

\n

\n 12. LINKS TO THIRD-PARTY WEBSITES:\n

\n

\n Our online payment processing providers connect to third-parties websites,\n which manage your Mobile Banking and Credit / Debit Card payments. We are\n not responsible for whether these connected pages or sites are available or\n functioning properly and no liability for loss or disadvantages resulting\n from the use of such website link shall be held to us.\n

\n

\n 13. TERMS OF SALE:\n

\n
    \n
  • \n www.nirmangurunepal.com may, at its absolute discretion, approve or\n reject any order placed by a customer without liability.\n
  • \n
  • \n www.nirmangurunepal.com reserves the right on its website/app to\n discontinue any plan or offer.\n
  • \n
  • \n The order quantity of any product available on www.nirmangurunepal.com\n can be restricted without notice.\n
  • \n
  • \n We acknowledge and agree that you have accurately divulged your\n personal details and information and consent for its use by nirman guru\n nepal and/or its affiliated companies.\n
  • \n
  • \n You approve and nominate nirman guru nepal and/or its employees if you\n are the customer/ parent/authorized on behalf of the customer, to take\n all steps, sign all documents as your lawyer and agent and act on\n behalf of you as if for limited purposes you were personally present\n and acting for yourself. You hereby allow nirman guru nepal and/or our\n associates to deliver the order to your designated place via\n post/courier. This authorization includes but is not limited to the\n processing and use of personal and confidential information as required\n for the execution of your request. “YOU HAVE READ AND UNDERSTOOD THESE\n TERMS AND CONDITIONS AND ACCEPT THAT THEY ARE ASSOCIATED WITH YOURSELF\n AND YOUR ASSIGNS, HEIRS AND PEERS.”\n
  • \n
\n

\n 14. CANCELLATION, RETURN AND REFUND POLICY:\n

\n

\n Return Policy:\n

\n

\n We make every effort to ensure that your goods are delivered to your\n specifications. If you receive an incomplete, damaged, defective or\n incorrect order at the time of delivery, to ensure prompt resolution, you\n can immediately request for return/replacement or file a return/replacement\n request on the app or website or mail us within 7 working days of the date\n of delivery. Please note that if you do not contact us within 7 working\n days of delivery, www.nirmangurunepal.com shall accept no responsibility\n for such delivery problems.\n

\n

\n The product(s) must include the original tags, user manual, warranty cards,\n freebies and accessories. The product(s) must be returned in the original\n and undamaged manufacturer packaging / box. Do not put tape or stickers on\n the manufacturers box.\n

\n

\n Please permit us 7 to 15 working days from the date of receipt of the\n product or products along with return request to entertain your request.\n

\n

\n Shipping cost for returning the product shall be borne and incurred by the\n buyer.\n

\n

\n Return Policy Exceptions:\n

\n

\n Please note that for certain product categories (as determined by the\n company), we cannot provide substitutes or exchanges.\n

\n

\n www.nirmangurunepal.com reserves the right, as indicated on the respective\n product pages, to deny returns (or refunds) for certain products, which is\n marked as \"Note: This item cannot be returned for a refund or exchange.\"\n

\n

\n \n

\n

\n Refund Policy:\n

\n

\n We at www.nirmangurunepal.com make sure you are entirely satisfied with our\n products. We do our best and on the basis of the following conditions, we\n will gladly grant a full refund:\n

\n

\n Possible full refund if:\n

\n
    \n
  • \n you got a faulty item;\n
  • \n
  • \n during transit the item(s) ordered are lost or damaged;\n
  • \n
  • \n the ordered item(s) is past its expiry date.\n
  • \n
\n

\n How to Request a Refund:\n

\n

\n For a refund, simply file a refund request on the app or website or mail us\n within 7 working days of the date of delivery including why you request a\n refund. We take customer feedback seriously and use it for the continuous\n improvement of our service quality. Please note that if you do not contact\n us within 7 working days of delivery, www.nirmangurunepal.com shall accept\n no responsibility for such refund request.\n

\n

\n Please permit us 15 to 30 working days from the date of receipt of the\n product or products along with refund request to entertain your request.\n While we regret any inconvenience caused by this timeframe, the policy of\n the bank is that it affects the refund timetable, and we have no influence\n over it. Credit should be issued once the entire clarities will be removed,\n if the refund mode is by cash on delivery.\n

\n

\n Except for Cash On Delivery transaction, refund, if any, shall be made at\n the same Issuing Bank from where transaction price was received, or through\n refund voucher, cheque or online banking / electronic funds transfer\n approved by Nepal Rastra Bank (NRB), or through any other method available\n on the platform, as chosen by you.\n

\n

\n For Cash On Delivery transactions, refunds, if any, will be made via refund\n voucher, Cheque or online banking/electronic funds transfer as the case may\n be.\n

\n

\n Refund shall be made in Nepalese Rupees only and shall be equivalent to the\n Transaction Price received after deduction of charges, if applicable, in\n Nepalese Rupees.\n

\n

\n Refunds may be supported for select banks. Where a bank is not supported\n for processing refunds, you will be required to share alternate bank\n account details with us for processing the refund.\n

\n

\n The product(s) must include the original tags, user manual, warranty cards,\n freebies and accessories. The product(s) must be returned in the original\n and undamaged manufacturer packaging / box. Do not put tape or stickers on\n the manufacturers box. We may also request you for additional documents for\n verification.\n

\n

\n Shipping cost for returning the product(s) shall be borne and incurred by\n the buyer.\n

\n

\n For questions, please contact our Helpdesk at 01-5919966, email us at\n info@nirmangurunepal.com or chat online with our Customer Service Managers.\n

\n

\n 15. CANCELLATION:\n

\n

\n The website/app is only a link between the customer and the vendor or\n expert for the service that has been booked. Once the order is placed and\n the individual has obtained a confirmation, the company shall inform the\n vendor or expert/registered expert who will render the service at the\n established time, location and mode provided.\n

\n

\n No amount shall be refunded once an order has been made and confirmed at\n our end in the event of cancellation. In some circumstances, however, the\n company shall allow the full or partial refund, at its discretion if the\n item or service is not available. The Company's decision in these cases is\n final.\n

\n

\n 16.\n \n COPYRIGHTS, TRADEMARKS AND OTHER INTELLECTUAL PROPERTY RIGHTS:\n \n

\n
    \n
  • \n The website/app grants users/customers access to view the contents only\n for, visits, orders and communications as required by the Terms and\n Conditions of www.nirmangurunepal.com. The copyright and/or other\n intellectual rights shall be applicable to all materials in this\n website/app, including, but not limited to, images, illustrations,\n texts, logos and page headers included in this website/app. All other\n non-www.nirmangurunepal.com trademarks on this website/app are the\n property of their owners respectively, who may or may not be affiliated\n with, connected with, or sponsored by www.nirmangurunepal.com.\n
  • \n
  • \n You accept hereby that the content of www.nirmangurunepal.com will not\n be replicated, duplicated or copied for any reason, except in a\n separate agreement with this website/app you were specifically allowed\n to do so.\n
  • \n
\n

\n 17. USER INDEMNIFICATION:\n

\n

\n You agree to compensate, defend, and hold www.nirmangurunepal.com harmless\n and its officers, administrators, staff, agents, providers of information,\n partners, licensors, advertisers, suppliers, experts from and against all\n claims, damages, costs, reimbursement and expenditures, including fair\n legal fees and expenses, as a consequence of any violation of this\n agreement, or any activity connected with your account, or any material or\n information that you submitted or are going to submit to us in violation of\n any rule or in violation of any rights of third parties (includes but does\n not restrict, defamation allegations claims, breach of privacy, or any\n other intellectual property rights violation). We reserve the right to\n defend and control exclusively all claims arising from the above and any\n questions of such reimbursement, and hereby you agree to cooperate fully\n with us to uphold any defense necessary.\n

\n

\n 18. APPLICABLE LAW AND JURISDICTION:\n

\n

\n These Terms and Conditions and your use of this website/app and its content\n shall, in accordance with the laws of Nepal governed by Nepal’s courts of\n jurisdiction, be governed and construed in all respects.\n

\n

\n 19. DISPUTE RESOLUTION:\n

\n

\n These terms and conditions of service, without regard for their conflict of\n law clauses, are controlled and read in accordance with Nepalese laws. The\n place and court of dispute settlement, arbitration and court proceedings\n shall be in Nepal. The failure to comply with or exercise the clause of\n this Agreement or similar rights on the website/app/company shall not\n constitute a waiver of such right or provision. The section titles used in\n this Agreement are solely for convenience and shall have no legal or\n contractual effect. Should this Agreement be terminated for any cause, you\n consent to agree as follows: provisions concerning your use of content\n limitations, the website/app/company license(s) you have issued, and any\n other conditions that are equitable or necessary to survive.\n

\n

\n In the event that such conditions clash and the terms of any readable\n declaration or procedure, electronic or machine, these Service Terms shall\n take precedence. Likewise, these Terms of Service shall prevail in the\n event of disagreement between these terms and our Privacy Policy.\n

\n

\n A two-step Alternate Dispute Resolution (\"ADR\") mechanism will resolve all\n disputes that involve but cannot be limited to rights, compensation,\n refunds or other claims. The parties agree further that, even after\n termination or expiry of the Terms and/or Policy, the contents of this\n Section shall continue.\n

\n
    \n
  • \n Mediation: In the event of any dispute between the parties, the parties\n will try to settle amongst themselves peaceful, where both parties are\n equally satisfied. If within thirty (30) days of one party\n communicating dispute to the other party cannot reach a friendly\n solution, as stated herein, the conflict shall be resolved by\n arbitration:\n
  • \n
  • \n Arbitration: If the parties are not in a position to settle a conflict\n through mediation, that dispute shall, by a sole arbitrator to be\n appointed by the Company, be referred to arbitration, and both parties\n shall be valid and binding upon the award given by such single\n arbitrator. For the trials, the parties are responsible for their own\n expenses, while in his sole discretion the sole arbitrator may,\n instruct any one party to bear the full costs of the proceedings. The\n arbitration shall take place in English, and the city of Kathmandu,\n Nepal, will be the site of Arbitration. The parties agree clearly that\n the terms and conditions, Policy and other agreements between them are\n controlled by Nepal’s laws, rules and regulations, and that exclusive\n jurisdiction for any dispute between the parties shall lie with the\n courts at Kathmandu.\n
  • \n
\n

\n 20. SEVERABILITY:\n

\n

\n Where any of these Terms and Conditions is unconstitutional, invalid or\n unenforceable for any cause, that clause is then considered separable from\n these Terms and Conditions, the validity and enforceability of any other\n provisions shall not be affected.\n

\n

\n 21. DISCLAIMER OF WARRANTIES AND LIABILITIES\n

\n

\n You explicitly understand and agree that as far as the applicable law\n allows:\n

\n

\n The website/app, resources and other contents offered are on an “as is”\n basis written, implied, contractual or otherwise, without any guarantee of\n any kind, including the conditional title warranties, for a specific\n purpose, non-infringement, marketability or fitness. We make no guarantee\n that, without limiting the foregoing:\n

\n
    \n
  • \n Your requirements will be fulfilled, or services provided are\n continuous, timely, reliable, or error-free;\n
  • \n
  • \n The materials, data and results obtained will be effective, exact or\n reliable;\n
  • \n
  • \n Any website/app errors, services or other material errors or defects\n shall be rectified\n
  • \n
  • \n As far as the applicable law permits, we shall not be responsible for\n the content of users arising from intellectual property rights,\n defamation, anonymity, advertisement, obscenity or any other laws.\n However, we shall not be held responsible for any misuse, loss,\n alteration or non-availability of any user content.\n
  • \n
\n

\n The user understands and consent to the complete freedom and risks of any\n information or data that is downloaded or otherwise accessed via the\n website/app and are solely liable for any damage to their computer systems\n or loss of data resulting from such material or data download. No\n typographical error that leads to an invalid coupon will be held\n responsible by us. With respect to any information provided to you, whether\n on your own behalf or in the name of a third party, we assume no\n responsibility for any errors or omissions.\n

\n

\n We shall not be responsible for any third party products or services.\n

\n

\n 22. SUBMISSIONS:\n

\n
    \n
  • \n www.nirmangurunepal.com is free to accept, edit or refuse any materials\n you may send us (collectively, \"Submissions\") as part of the\n website/app functionality, not limited to, but including, Ratings &\n Review, Ask Your questions to our Expert and testimonials. Such\n submissions are not to be offensive for moral, religious, racial or\n political reasons or violent, illegal, obscene, defamatory, offensive,\n or otherwise intolerable nature. The transmission of such offensive\n material may contravene relevant legislation, regulations and ethics.\n
  • \n
  • \n All existing rights of any kind and nature in relation to submissions\n shall be considered by www.nirmangurunepal.com as being its own. By\n posting, uploading, entering or sending your submissions, you grant the\n Submission for any purpose, unrestricted use, without you being\n compensated, including a non-terminable, non-exclusive and open license\n for using, copying, uploading, publicly displaying, conducting online,\n reproducing, editing, translating and reformatting the submissions; and\n in connection with your submission to publish your name.\n
  • \n
  • \n You also represent and guarantee that you do not infringe upon your\n submissions, misappropriate or violate a third party's patent,\n copyright, trademark, trade secret, moral rights or other intellectual\n property rights, advertising rights or privacy rights.\n
  • \n
  • \n It is forbidden for the user/customer to send, post or transfer any\n information or applications, which includes a virus, worm or other\n harmful component on the www.nirmangurunepal.com website/app.\n
  • \n
  • \n www.nirmangurunepal.com does not endorse any submissions on its\n Website/app and is not responsible for them. We shall not take any\n liability for loss, harm or dependency on the knowledge caused by the\n submissions; including but not limited to comments, opinions and\n reviews posted by the user/customer, which may be incorrect, insulting,\n obscene, threatening or harassing.\n
  • \n
\n

\n 23. DISCLAIMERS\n

\n

\n You understand that the website/app is a platform that users use to locate\n vendors and experts/ registered experts and make order for service and find\n products. You accept that we are not responsible for any flaws including\n but not limited to the vendors and experts/ registered experts, neglect,\n disability or lack of knowledge from their end and the quality of the goods\n and products provided by the manufacturers. We are not a party to this\n activity, nor do we accept any responsibility resulting from the actions of\n the vendors and expert/registered expert.\n

\n

\n Even though we authenticate and give consent to the expert/registered\n expert, the creditworthiness and authenticity of the skills of the\n expert/registered expert, are to be checked by you. We cannot be held\n responsible for the same.\n

\n

\n We are not responsible for any service failure if anything happens, not\n only due to an expert/registered experts’ unavailability but also due to\n cancelations of the order. We cannot be liable for the general actions of\n the expert/registered expert and for any unlawful acts by an\n expert/registered expert we will not be held liable. It is recommended you\n make sure your assets are safe and secure.\n

\n

\n In general, the contents of the website and of the app are summarized, is\n given for informational purposes only. The website and app content\n including, but not limited to, link, video, text, photos, graphics and\n other visuals; is only for information purposes and shall not constitute\n professional advice or any kind of recommendation.\n

\n

\n For the contents of any materials provided on the app, we assure no\n accountability. Other website/app visitors are at your own risk, depending\n on any information supplied by us. We shall not be liable for any damage or\n injury caused by any use of any product, information, idea or instruction\n contained in the materials provided. We can alter or discontinue all\n aspects or features of this Website at any time without prior notice.\n

\n

\n By this you grant us a non-exclusive, universal, permanent, irrevocable,\n free and non-licensable right to exercise in your knowledge, your\n copyright, publicity, and database rights in any now known or unknown\n media, with regard to your data in order to enable us to use the data for\n the purpose of the service provision.\n

\n

\n You release us and/or its officials and leaders and indemnify them from any\n costs, penalties, liabilities or other effects of any action of the\n website/app Users and specifically waive any claims you may have in\n compliance with any relevant law in particular. Please note that the care\n of minors or persons who act under false pretense can pose risks.\n

\n

\n The parties agree that the platform will not be held responsible neither to\n the expert/registered expert nor the users/vendors for whatever purpose it\n may be for some service /consultation/contact deal between them.\n Furthermore, the platform/company is not responsible for any technological\n malfunctions of any kind, either by the expert/registered expert or the\n users/vendors.\n

\n

\n The platform is only an intermediary and is not liable for disputes,\n claims, etc. between the expert/registered expert or the users/vendors for\n whatsoever reason it may be. Both are hereby compensating the client for\n any such allegations.\n

\n

\n 24. INDEMNIFICATION AND LIMITATION OF LIABILITY\n

\n

\n You consent to pay, protect and keep this website/app harmless but not\n limited to including its partner distributors, agents and staff from and\n against all loses, liabilities, lawsuits, damages, proceedings, costs and\n expenses (INCLUDING LEGAL FEES AND DISBURSEMENTS IN CONNECTION THEREWITH\n AND INTEREST CHARGEABLE THEREON) claimed or incurred by us arising out of,\n outcome, or may be payable on account of, any violation or failure to\n perform any act, contract, arrangement or agreement you have been rendered\n or are expected to do so according to these Terms of Use. Further, you\n agree to hold us harmless from any accusations created by or resulting\n from, or in conjunction with, any third party your use of the website/app,\n any claim that your material has caused third-party damage, any breach of\n the terms of service, or the violation of any other rights, including any\n intellectual property rights.\n

\n

\n We or our owners, managers, staff, partners or suppliers shall not in any\n way be responsible to you or any third party for any special, negative,\n incidental, consequential or punitive damages, including those resulting\n from the lack of use, date or profits, whether it is foreseeable or not or\n if we have been advised or not of the probability of such damages, or on\n the basis of any liability theory, including violation of the contract or\n warranty, Negligence or other torture, or any other argument that occurs,\n or in conjunction with your website/app usage and link, services or\n materials. To the maximum extent allowed by applicable law, the\n restrictions and exclusions in this section apply.\n

\n

\n 25. TERMINATION:\n

\n

\n You accept that www.nirmangurunepal.com, at its sole discretion and for no\n reason whatsoever, including no restriction if you violate these terms and\n conditions, your access and use of the website/app may be terminated at any\n time. You agree that your website/app access can be terminated or your\n account can be suspended without notice, and you accept that you are not\n responsible for any such termination by www.nirmangurunepal.com. Your right\n to use the website/app/service of nirman guru nepal ends immediately upon\n termination of your website/app access/use. \n

\n

\n 26. CHANGES TO THESE TERMS AND CONDITIONS:\n

\n

\n We reserve the right, without further notice to you, to change these terms\n and conditions from time to time. Any such changes we make will be\n effective after publishing on the website /app a revised version of these\n Terms and Conditions. It is your duty to check the terms and conditions of\n www.nirmangurunepal.com on a regular basis. The continued use of the\n website/app after any such updates have been made, will constitute the\n decision to obey the revised terms and conditions and will be automatically\n bound by them.\n

\n

\n 27. MISCELLANEOUS\n

\n

\n We reserve the right to change these Terms of Service in its discretion at\n any time without notice and to notify users of any such changes solely by\n modifying these Terms of Service. Upon publishing any updated Terms of\n Service, your continued use of the website/app would constitute your\n willingness to be bound by any such amendments. Upon publishing this Terms\n of Service, the use of this website/app will be regulated by the Terms of\n Service that applied at the time of use.\n

\n

\n We can alter, cancel, discontinue or limit any portion of the Content at\n any time without notice or liability, including the availability of any\n portion of the Content. For any reason at any time, we can deny access to\n any person or user. Therefore, we can pass rights and obligations under\n this Agreement at any time to any affiliate, subsidiary or business unit,\n or any of its affiliates or divisions, or any entity acquiring us or any of\n its assets.\n

\n

\n We reserve the right to block the use of the website/app if a customer is\n responsible for any violation of the Terms of Service. In no way can this\n be viewed as a waiver of any legal right under Nepalese law to claim any\n damages or to initiate any legal proceedings against the User.\n

*/}\n
\n
\n );\n};\n","import { useEffect } from \"react\";\n\nimport \"./styles.scss\";\n\nexport default ({}) => {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n
\n
Privacy Notice
\n
\n {/*

\n The words \"we,\" \"our\" and \"us\" are referred to as \"www.nirmangurunepal.com\"\n and identify personally identifiable or personal information which can be\n collected, how the data is used and how you choose to use the information\n that we use, which are described in this Policy.\n

\n

\n We intend to protect your privacy in relation to the terms set out in this\n website’s Terms of Use Agreement. Only authorized nirmangurunepal members\n to use any details provided by you or your agent. In order to secure\n personal information, we continuously monitor our systems and records. In\n order to prosecute and/or pursue civil proceedings to recover damages\n against the liable parties, we investigate all allegations and such acts.\n Any user not agree to any of the conditions hereof shall immediately leave\n the website. Nirmangurunepal disclaims all liabilities arising thereof,\n provided you do not agree with the policy, and you still have access to the\n website and provide your personal information.\n

\n

\n Applicability\n :\n

\n

\n This privacy policy extends to all users who visit the website and are\n therefore expected before sending any personally identifiable information\n to read and understand the Privacy Policy. You may access, modify or remove\n any information that you store on your behalf if you have inadvertently\n submitted any such information to Nirmangurunepal before reading the data\n protection information provided herein and you do not agree with the way\n such information is collected, stored or used. Nirmangurunepal retains the\n personally identifiable information of the user, and each user is allowed\n to request that Nirmangurunepal remove and delete these data (but not other\n users).\n

\n

\n Certain users can access the website, position orders and make use of\n services without registering or providing any personal information.\n Nirmangurunepal is not responsible for or validates the information\n provided by the visitor unless required by law, regulation or an order of\n the competent authority. A user has to create an account on our website in\n order to have access to all the features and benefits of our website. A\n user must provide personal information as required in the Request /\n Registration Form in order to create an account. Additional information,\n including the possibility of receiving promotions from nirmangurunepal, is\n optional on the registration page. In addition, nirmangurunepal can include\n more optional user requests to help nirmangurunepal configure the website\n to provide the user with customized data. Nirmangurunepal shall not\n exchange, rent, or sell any personal information to third parties other\n than that which is stated in this Data Protection Policy, without the\n consent of the User. Nirmangurunepal can record received and made telephone\n calls for the purpose of providing services efficiently and effectively for\n inquiries, orders, suggestions or other purposes.\n

\n

\n Personal information refers to details that identify the user, name, email\n address, phone number, location information, Google Map information, last\n login time and webpage or any financial information provided at or after\n the registration to nirmangurunepal.\n

\n

\n This Privacy Policy extends to nirmangurunepal - owned websites and\n services. Nirmangurunepal shall not control sites displayed in its services\n like search results or links. Websites of a third party that place their\n own cookies or any other files in the computer of the user, collect data or\n solicit from users that are not responsible or liable to nirmangurunepal.\n We, therefore, does not reflect, or guarantee, the accuracy, integrity or\n quality of any information, data, text, software, sound, images, graphics,\n videos and any other material available on those sites in any manner in\n relation to the privacy practices or policies of such third persons or to\n any terms and conditions of use of such websites. Nirmangurunepal does not\n include or exclude any approval of the website, the provider of the website\n or the details on the website. Nirmangurunepal requests the user to read\n the website's privacy policies.\n

\n

\n In order to safeguard against unauthorized access, improper use or release,\n change or illegal destruction or unintentional loss of Personal\n information, nirmangurunepal took all reasonable precautions to handle\n personal data as confidentially subject to standards set by the industry.\n

\n

\n Use of your personal data\n :\n

\n

\n You or your designated representative will provide your personal\n information to nirmangurunepal during the use of our services. You can\n request us to modify or delete this information if this information is\n incorrect. Nirmangurunepal shall take all appropriate measures to ensure\n that information is modified and used for the provision of services, in\n accordance with the law, to you. We may ask you to verify your identity\n before we can act on your request when editing or deleting personal\n information.\n

\n

\n Exceptions.\n We can share your personal data with third parties having the need or\n authority to obtain such information if we have a good faith belief that it\n is reasonably necessary to have access, use, protection or communication of\n information in order to comply with (i) in relation to receiving of such\n information under law by any authority (ii) any court order (iii) detect or\n stop fraud, security or technical problems, or otherwise address fraud (iv)\n to protect nirmangurunepal, our users, or the public against harm to the\n rights, properties or health, as required by law or allowed by law.\n

\n

\n If you want to use any of the services provided on the site and use it to\n identify yourself, you agree to provide us with your personal data.\n Nirmangurunepal representatives may request such personal information (e.g.\n full legal name, address, products purchased, etc.) and other information\n that may be required from time to time, via email, telephone or letter.\n When nirmangurunepal is using personal information and performing some\n review or interpretation by a trained officer the patterns in your personal\n information and lifestyle, you allow us to share it with our expert for a\n limited purpose of his understanding and validation, nevertheless,\n nirmangurunepal will own these data and records exclusively, unless you\n choose to purchase the same for a certain amount payable to\n nirmangurunepal.\n

\n

\n Nirmangurunepal makes no unauthorized calls or otherwise markets any goods\n or services except for the reason for which such information is submitted\n or for taking feedbacks or addressing queries. The user shall not reveal\n his or her personal data to any non-approved third party and check the\n identity of those individuals who seek information. Nirmangurunepal can\n communicate with users through e-mail and online updates, or via other\n means, which includes text and other messaging types including Whatsapp,\n Viber, etc. Through signing in to your account, users can always change\n their e-mail and contact preferences or calling customer support.\n

\n

\n If you so wish, nirmangurunepal can send you direct mail at the address you\n have submitted. The links at the bottom of every mailer are to allow you to\n opt-out of this direct mailer. We value your privacy and so far as you do\n not accept these mailers, all steps will be taken to delete you from the\n list. When you see that our terms and conditions are violated, please write\n to us, or call us and report these incidents at our call center. All\n information, including sensitive personal information, given to\n nirmangurunepal either by the user directly or through our designated agent\n is real, precise and voluntary. In accordance with the provisions of this\n Privacy Policy and the terms of use, the user has the right to withdraw\n information at any time by writing to us.\n

\n

\n For research, statistical analysis and business intelligence purposes,\n nirmangurunepal may use personal information without regard to any\n individual or identity and the data, statistics or intelligence data may be\n sold or otherwise transferred to third parties and affiliates in an\n aggregated or non-personally identifiable form. The confidentiality of all\n sensitive personal data and information of each user is to be preserved by\n all nirmangurunepal employees and data processors who have access to or\n related to the processing of, sensitive personal data or data.\n

\n

\n In the case of a reorganization or sale of the assets, nirmangurunepal may\n also report or transfers personal and other information provided by the\n user to another third party. Any third party to which nirmangurunepal\n passes or sells its properties shall be entitled to further use the users'\n personal and other details.\n

\n

\n Nirmangurunepal may supply its personal information to third parties\n contractors working on behalf of or with nirmangurunepal to the extent\n necessary for the provision of services on this website to users, to\n support nirmangurunepal in connecting or sustaining the website with users.\n These contractors generally have no separate right to share this\n information, however, certain contractors providing website services,\n including online communications services, shall have the right to use and\n reveal, in compliance with their own privacy policy, personal information\n obtained in respect of the provision of these services.\n

\n

\n At any time, with or without notice nirmangurunepal can update or amend\n this privacy policy. In the event that significant changes occur in the way\n nirmangurunepal handles a user’s information which can identify the user,\n nirmangurunepal displays a notification on the website or email users about\n it. All information nirmangurunepal has about users and their accounts are\n covered by the current Privacy Policy of nirmangurunepal.\n

\n

\n Nevertheless, nirmangurunepal is not required to inform users of any\n modifications made to the Privacy Policy. You may refuse to accept the\n amendments and choose the removal of your personal data by writing to us if\n you have any questions or do not accept changes to your privacy policy.\n

\n

\n Please write to us if you have any compliance or complaints regarding the\n website or this privacy policy.\n

*/}\n
\n
\n );\n};\n","import { useContext, useEffect } from 'react';\n\nimport { SettingContext } from 'context/SettingContext';\n\nimport config from 'configs/config';\n\nimport './styles.scss';\nimport ManagingDirector from 'assets/images/ManagingDirector.jpg';\n\nexport default ({ }) => {\n const { activeSettingResult } = useContext(SettingContext);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [])\n\n return (\n
\n
\n About Us\n
\n
\n
\n
\n {activeSettingResult && activeSettingResult.logo ?\n logo\n : null\n }\n
\n
\n Nirmangurunepal.com is the first mover as well as largest e-commerce in Construction field where it provides the largest Business to Business (B2B) as well as Business to Consumers (B2C) marketplaces in Nepal. It’s the only platform which provides all Construction related solutions under one roof such as hardware, electrical, sanitary, plumbing, machinery and building materials via web portal in Nepal.\n
\n
\n
\n
\n Why Nirman Guru Nepal?\n
\n
\n Construction is a wide and complicated sector with various brands, product categories and prices. And more varieties create more confusion, and more confusion means waste of our precious time.\n
\n
\n We are mainly focused to give everyone right product at ideal cost and at correct time at desired destination whether it’s small or huge projects to tackle this well-established issue of settling on inappropriate choices during construction works.\n
\n
\n The website has special features for professional B2B customers as it helps them to track the progress of their individual construction sites for the expenses made, quantity and date of purchases made which again helps to manage one’s project very efficiently. Indeed, even the costs for single or numerous pieces of purchases made remain the same because of which the business clients can undoubtedly buy exactly what they need for the time, accordingly, assisting with keeping their Cash Flow as well.\n
\n
\n
\n
\n \n
\n
\n
\n Message from the Founder / CEO\n
\n
\n What is life, but a mere struggle! \n
\n
\n I remember the days when I used to be on the line of struggle and burning myself with experience. I feel proud to shift from being ‘on the line’ to being ‘online’ after more than 15 years of hardships in this field. Construction has been my keen area of interest from my early days. And so we are here with the objective to reach the end user. Our ultimate goal is to provide service and facilities to the end user.\n
\n
\n I extend my gratitude to you all for visiting our website. Looking forward for your feedback and continuous support. Welcome to Nirman Guru Nepal.\n
\n
\n
\n Ravi Jung Bista\n
\n Founder / CEO\n
\n
\n
\n
\n
\n );\n}","import { useContext, useEffect, useState } from 'react';\nimport { Row, Col, Form, Button, Alert } from 'antd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faMapMarkerAlt, faEnvelope, faPhoneAlt, faClock } from '@fortawesome/free-solid-svg-icons'\n\nimport { SettingContext } from 'context/SettingContext';\n\nimport useContactMessageCreate from 'hooks/contactMessage/useContactMessageCreate';\n\nimport * as validation from 'utils/validation';\n\nimport TextInput from 'components/Input/TextInput';\nimport SpinnerLoader from 'components/Loader/SpinnerLoader';\n\nimport './styles.scss';\n\nexport default ({ }) => {\n const [form] = Form.useForm();\n\n const [successMessage, setSuccessMessage] = useState('');\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [])\n\n const { activeSettingLoading, activeSettingResult } = useContext(SettingContext);\n\n const { contactMessageCreateTrigger, contactMessageCreateLoading, contactMessageCreateResult } = useContactMessageCreate();\n const submitFormData = (formData) => {\n setSuccessMessage('')\n\n contactMessageCreateTrigger(formData);\n };\n\n useEffect(() => {\n if (!contactMessageCreateLoading) {\n if (contactMessageCreateResult && contactMessageCreateResult._id) {\n form.resetFields();\n\n setSuccessMessage('Message sent!')\n }\n }\n }, [contactMessageCreateLoading, contactMessageCreateResult]);\n\n return (\n
\n
\n Contact Us\n
\n
\n \n \n
\n Keep in touch with us for best pricing and deals\n
\n {activeSettingLoading ?\n \n :\n activeSettingResult ?\n
\n
\n {activeSettingResult.address}\n
\n
\n {activeSettingResult.infoEmail}\n
\n
\n {activeSettingResult.primaryPhone}, {activeSettingResult.secondaryPhone}, {activeSettingResult.officePhone}\n
\n
\n {activeSettingResult.officeTime}\n
\n
\n :\n null\n }\n \n \n
\n
\n Fill in the form for your query\n
\n
\n \n \n \n \n \n \n ({\n validator(_, value) {\n if (value && value !== '') {\n if (!validation.mobile(value)) {\n return Promise.reject(new Error('Invalid mobile!'));\n }\n }\n return Promise.resolve();\n },\n })\n ]}\n />\n \n \n \n \n {successMessage != '' ?\n \n \n \n :\n null}\n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n );\n}","import useGraphQLMutation from \"hooks/common/useGraphQLMutation\";\n\nconst query = `\n ContactMessageCreate($name: String!, $mobile: String!, $message: String!) {\n contactMessageCreate(name: $name, mobile: $mobile, message: $message) {\n _id\n }\n }\n`;\n\nexport default () => {\n const { trigger, result, loading, error } = useGraphQLMutation({\n query,\n key: 'contactMessageCreate'\n });\n\n return { contactMessageCreateTrigger: trigger, contactMessageCreateResult: result, contactMessageCreateLoading: loading, contactMessageCreateError: error }\n}","import { useState, useRef, useEffect } from 'react';\nimport { Row, Col, Button } from 'antd';\nimport ImageGallery from 'react-image-gallery';\nimport renderHTML from 'react-render-html';\n\nimport useActiveProductBySlug from 'hooks/product/useActiveProductBySlug';\nimport useActiveSimilarProductsBySlug from 'hooks/product/useActiveSimilarProductsBySlug';\n// import useActiveRelatedProductsBySlug from 'hooks/product/useActiveRelatedProductsBySlug';\n\n\nimport routeConfig from 'Routes/config';\n\nimport config from 'configs/config';\n\nimport * as util from 'utils/util';\n\nimport ProductSlider from 'components/Slider/ProductSlider';\nimport SpinnerLoader from 'components/Loader/SpinnerLoader';\nimport ProductInquiryModal from 'components/Modal/ProductInquiryModal';\nimport ProductInquiryCallModal from 'components/Modal/ProductInquiryCallModal';\n\nimport './styles.scss';\n\nexport default ({ history, match }) => {\n window.scrollTo(0, 0);\n\n const urlCategory = match.params.category;\n const urlProduct = match.params.product;\n\n const [showInquiryModal, setShowInquiryModal] = useState(false);\n const [showInquiryCallModal, setShowInquiryCallModal] = useState(false);\n\n const { activeProductBySlugResult, activeProductBySlugLoading } = useActiveProductBySlug(urlProduct);\n const { activeSimilarProductsBySlugResult, activeSimilarProductsBySlugLoading } = useActiveSimilarProductsBySlug(urlProduct);\n // const { activeRelatedProductsBySlugResult, activeRelatedProductsBySlugLoading } = useActiveRelatedProductsBySlug(urlProduct);\n\n useEffect(() => {\n if (!activeProductBySlugLoading && activeProductBySlugResult && Object.keys(activeProductBySlugResult).length && Object.keys(activeProductBySlugResult).length > 0) {\n if (!activeProductBySlugResult._id) {\n history.push(routeConfig.homepage.path);\n }\n }\n }, [activeProductBySlugLoading, activeProductBySlugResult])\n\n const formatImageGalleryItems = (video, images) => {\n let formattedItems = [];\n\n if (images && images.length) {\n formattedItems = images.map(i => ({ original: `${config.assetURL}/${i}`, thumbnail: `${config.assetURL}/${i}` }));\n };\n\n if (video && video !== '') {\n const videoId = util.youtubeVideoIDParser(video);\n\n if (videoId) {\n formattedItems.unshift({\n originalUrl: `https://www.youtube.com/embed/${videoId}`,\n thumbnail: `http://img.youtube.com/vi/${videoId}/2.jpg`\n })\n }\n\n }\n\n return formattedItems;\n }\n\n const videoPlayerRef = useRef();\n const renderImageGalleryItem = (item) => {\n return < div >\n {item.originalUrl ?\n
\n \n \n
\n :\n \n }\n
\n }\n\n const imageGallerySlided = (index) => {\n if (index != 0 && activeProductBySlugResult && activeProductBySlugResult.video && activeProductBySlugResult.video !== '') {\n if (videoPlayerRef && videoPlayerRef.current && activeProductBySlugResult.video) {\n const videoId = util.youtubeVideoIDParser(activeProductBySlugResult.video);\n\n videoPlayerRef.current.src = `https://www.youtube.com/embed/${videoId}`;\n }\n }\n }\n\n return (\n
\n {activeProductBySlugResult._id ?\n <>\n setShowInquiryModal(false)} />\n setShowInquiryCallModal(false)} />\n \n :\n null\n }\n
\n Home > {urlCategory.replaceAll('-', ' ') || null} > {urlProduct.replaceAll('-', ' ') || null}\n
\n {activeProductBySlugLoading ?\n \n :\n activeProductBySlugResult ?\n <>\n
\n \n \n
\n {activeProductBySlugResult.image && activeProductBySlugResult.image.length ?\n \n :\n null}\n
\n \n \n
\n
\n {activeProductBySlugResult.title}\n
\n
\n {activeProductBySlugResult.brand ?\n
\n Brand: {activeProductBySlugResult.brand.title}\n
\n :\n null\n }\n
\n SKU: {activeProductBySlugResult.sku}\n
\n
\n
\n {renderHTML(activeProductBySlugResult.description || '')}\n
\n
\n Avaibality: In Stock\n
\n
\n Delivery Date: {activeProductBySlugResult.deliveryTime}\n
\n
\n {activeProductBySlugResult.offerPrice ?\n
\n Actual Price: NRs {util.priceFormatter(activeProductBySlugResult.price)}\n
\n :\n null}\n
\n {activeProductBySlugResult.offerPrice ? 'Now Only' : 'Price'}: NRs {activeProductBySlugResult.offerPrice ? util.priceFormatter(activeProductBySlugResult.offerPrice) : util.priceFormatter(activeProductBySlugResult.price)}\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n Product Overview\n
\n
\n {renderHTML(activeProductBySlugResult.overview || '')}\n
\n
\n \n : null}\n\n {activeSimilarProductsBySlugLoading ?\n \n :\n activeSimilarProductsBySlugResult ?\n
\n \n
\n :\n null\n }\n\n {/* {activeRelatedProductsBySlugLoading ?\n \n :\n activeRelatedProductsBySlugResult ?\n
\n \n
\n :\n null\n } */}\n
\n );\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\n ActiveProductBySlug($slug: String!) {\n activeProductBySlug(slug: $slug) {\n _id\n brand {\n _id\n title\n }\n title\n slug\n sku\n price\n offerPrice\n deliveryTime\n description\n overview\n image\n video\n }\n }\n`;\n\nexport default (slug) => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeProductBySlug',\n variables: { slug },\n fetchPolicy: 'cache-and-network',\n defaultValue: {}\n });\n\n return { activeProductBySlugResult: result, activeProductBySlugLoading: loading, activeProductBySlugError: error };\n}","import useGraphQLQuery from \"hooks/common/useGraphQLQuery\";\n\nconst query = `\nActiveSimilarProductsBySlug($slug: String!) {\n activeSimilarProductsBySlug(slug: $slug) {\n _id\n category {\n _id\n slug\n }\n title\n slug\n price\n offerPrice\n image\n video\n }\n}\n`;\n\nexport default (slug) => {\n const { result, loading, error } = useGraphQLQuery({\n query,\n key: 'activeSimilarProductsBySlug',\n variables: { slug },\n fetchPolicy: 'cache-and-network',\n defaultValue: []\n });\n\n return { activeSimilarProductsBySlugResult: result, activeSimilarProductsBySlugLoading: loading, activeSimilarProductsBySlugError: error };\n}","import { setValueOf, getValueOf, removeValueOf, STORAGE_KEYS } from \"utils/storage\";\n\nexport const authenticate = (accessToken) => {\n setValueOf(STORAGE_KEYS.ACCESS_TOKEN, accessToken);\n}\n\nexport const isAuthenticated = () => {\n let isAuthenticated = false;\n\n const accessToken = getValueOf(STORAGE_KEYS.ACCESS_TOKEN);\n\n if (accessToken && accessToken !== '') {\n isAuthenticated = true;\n }\n\n return isAuthenticated;\n}\n\nexport const unAuthenticate = (accessToken) => {\n removeValueOf(STORAGE_KEYS.ACCESS_TOKEN);\n}","import { Route, Redirect } from 'react-router-dom';\n\nimport { isAuthenticated } from 'services/auth';\n\nimport routeConfig from 'Routes/config';\n\nexport default ({ component: Component, ...rest }) => {\n return (\n {\n\n if (isAuthenticated()) {\n return ;\n }\n\n return \n }} />\n );\n}","import { Route, Redirect } from 'react-router-dom';\n\nimport { isAuthenticated } from 'services/auth';\n\nimport routeConfig from 'Routes/config';\n\nexport default ({ component: Component, ...rest }) => {\n return (\n {\n\n if (isAuthenticated()) {\n return \n }\n \n return ;\n }} />\n );\n}","import { useState, useEffect } from \"react\";\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\nimport { Row, Col, Input, Select, Button } from \"antd\";\n\nimport routeConfig from \"Routes/config\";\n\nimport \"./styles.scss\";\n\nexport default ({}) => {\n const match = useRouteMatch();\n const history = useHistory();\n\n const [search, setSearch] = useState(\"\");\n\n useEffect(() => {\n setSearch(match.params.search ? match.params.search : \"\");\n }, [match.params.search]);\n\n const redirectToSearch = () =>\n history.push(\n routeConfig.productSearch.path.replace(\":search\", encodeURI(search))\n );\n\n return (\n
\n \n \n
\n setSearch(e.target.value)}\n onKeyPress={(e) =>\n e.key === \"Enter\" || e.code === \"Enter\"\n ? redirectToSearch()\n : null\n }\n />\n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n
\n
\n );\n};\n","import { useContext, useState } from \"react\";\nimport { Link, useParams, useHistory } from \"react-router-dom\";\nimport { Row, Col, Drawer } from \"antd\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPhoneAlt, faBars } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { SettingContext } from \"context/SettingContext\";\nimport { CategoryContext } from \"context/CategoryContext\";\n\nimport routeConfig from \"Routes/config\";\n\nimport config from \"configs/config\";\n\nimport SearchBox from \"./SearchBox\";\n\nimport SpinnerLoader from \"components/Loader/SpinnerLoader\";\n\nimport \"./styles.scss\";\n\nexport default ({}) => {\n const params = useParams();\n const history = useHistory();\n\n const [drawerVisible, setDrawerVisible] = useState(false);\n\n const { activeSettingLoading, activeSettingResult } =\n useContext(SettingContext);\n const { activeCategoriesLoading, activeCategoriesResult } =\n useContext(CategoryContext);\n\n const redirectToPage = (link) => {\n setDrawerVisible(false);\n history.push(link);\n };\n\n return (\n
\n {activeSettingLoading ? (\n \n ) : activeSettingResult ? (\n
\n \n \n
\n setDrawerVisible(true)}\n />\n
\n \n \n
\n \n
\n \n
\n {/*
\n
\n Nirman Guru\n
\n
\n Nepal\n
\n
*/}\n \n
\n \n \n
\n \n
\n \n \n
\n
\n Available {activeSettingResult.officeTime} at\n
\n
\n {\" \"}\n {activeSettingResult.primaryPhone},{\" \"}\n {activeSettingResult.secondaryPhone}\n
\n
\n \n
\n
\n ) : null}\n\n {activeCategoriesLoading && activeCategoriesResult.length === 0 ? (\n \n ) : activeCategoriesResult ? (\n
\n \n {activeCategoriesResult.map((c, i) => (\n \n \n \n {c.title}\n
\n \n \n ))}\n \n
\n ) : null}\n\n setDrawerVisible(false)}\n >\n
\n \n \n
\n \n
\n \n
\n
\n \n {activeCategoriesResult.map((c, i) => (\n \n \n redirectToPage(\n routeConfig.productList.path.replace(\n \":category\",\n c.slug\n )\n )\n }\n >\n {c.title}\n
\n \n ))}\n \n
\n
\n \n \n );\n};\n","import { useContext } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Row, Col } from 'antd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faMapMarkerAlt, faEnvelope, faPhoneAlt, faClock } from '@fortawesome/free-solid-svg-icons'\nimport { faFacebook, faInstagram, faYoutube } from '@fortawesome/free-brands-svg-icons'\n\nimport { SettingContext } from 'context/SettingContext';\n\nimport routeConfig from 'Routes/config';\n\nimport config from 'configs/config';\n\nimport SpinnerLoader from 'components/Loader/SpinnerLoader';\n\nimport './styles.scss';\n\nexport default ({ }) => {\n const { activeSettingLoading, activeSettingResult } = useContext(SettingContext);\n\n return (\n
\n
\n {activeSettingLoading ?\n \n :\n activeSettingResult ?\n logo\n :\n null}\n
\n
\n \n \n
\n Contact Us\n
\n {activeSettingLoading ?\n \n :\n activeSettingResult ?\n
\n
\n {activeSettingResult.address}\n
\n
\n {activeSettingResult.infoEmail}\n
\n
\n {activeSettingResult.primaryPhone}, {activeSettingResult.secondaryPhone}, {activeSettingResult.officePhone}\n
\n
\n {activeSettingResult.officeTime}\n
\n
\n :\n null\n }\n \n \n
\n Information\n
\n
\n
\n \n Terms and Conditions\n \n
\n
\n \n Privacy Notice\n \n
\n
\n \n About Us\n \n
\n
\n \n Contact Us\n \n
\n
\n \n Disclaimer\n \n
\n
\n \n \n
\n Social Media\n
\n {activeSettingLoading ?\n \n :\n activeSettingResult ?\n
\n
\n {activeSettingResult.facebookLink ?\n \n \n \n :\n null\n }\n {activeSettingResult.instagramLink ?\n \n \n \n :\n null\n }\n {activeSettingResult.youtubeLink ?\n \n \n \n :\n null\n }\n
\n
\n :\n null\n }\n \n
\n
\n
\n © 2021 Nirman Sewa. All Rights Reserved.\n
\n
\n );\n}","import { Layout } from 'antd';\n\nimport Header from './Header';\nimport Footer from './Footer';\n\nimport './styles.scss';\n\nexport default ({ children }) => {\n return (\n \n \n
\n \n \n {children}\n \n \n