dq-cus-lib 1.1.7 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/chunk-4H3O2JGN.js +16 -0
  2. package/dist/chunk-4H3O2JGN.js.map +1 -0
  3. package/dist/chunk-6B3NAL4F.js +22 -0
  4. package/dist/chunk-6B3NAL4F.js.map +1 -0
  5. package/dist/{chunk-F4BCZYRK.js → chunk-767TKJQF.js} +4 -3
  6. package/dist/chunk-767TKJQF.js.map +1 -0
  7. package/dist/chunk-CN3GJW6R.js +16 -0
  8. package/dist/chunk-CN3GJW6R.js.map +1 -0
  9. package/dist/chunk-IBJKEVYR.js +12 -0
  10. package/dist/chunk-IBJKEVYR.js.map +1 -0
  11. package/dist/{chunk-IRLSI36D.js → chunk-LLX3WGKJ.js} +3 -3
  12. package/dist/{chunk-IRLSI36D.js.map → chunk-LLX3WGKJ.js.map} +1 -1
  13. package/dist/{chunk-IYKARRP3.js → chunk-PWBSF4OA.js} +5 -2
  14. package/dist/chunk-PWBSF4OA.js.map +1 -0
  15. package/dist/chunk-QH4BPB2K.js +13 -0
  16. package/dist/chunk-QH4BPB2K.js.map +1 -0
  17. package/dist/index.css +83 -0
  18. package/dist/index.css.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/pages/broker-auth.page.d.ts +9 -0
  21. package/dist/pages/broker-auth.page.js +78 -0
  22. package/dist/pages/broker-auth.page.js.map +1 -0
  23. package/dist/pages/broker-login.page.d.ts +9 -0
  24. package/dist/pages/broker-login.page.js +156 -0
  25. package/dist/pages/broker-login.page.js.map +1 -0
  26. package/dist/pages/broker-settings.page.d.ts +9 -0
  27. package/dist/pages/broker-settings.page.js +129 -0
  28. package/dist/pages/broker-settings.page.js.map +1 -0
  29. package/dist/pages/error.page.js +1 -1
  30. package/dist/pages/landing.page.js +3 -3
  31. package/dist/pages/layout.page.js +1 -1
  32. package/dist/pages/logout-error.page.js +2 -2
  33. package/dist/pages/signin.page.js +12 -40
  34. package/dist/pages/signin.page.js.map +1 -1
  35. package/package.json +22 -15
  36. package/dist/chunk-F4BCZYRK.js.map +0 -1
  37. package/dist/chunk-IYKARRP3.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import Typography from '@mui/material/Typography';
2
+ import Grid from '@mui/material/Grid';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ // src/components/common/login-image.tsx
6
+ var LoginImage = ({ image, title }) => {
7
+ return /* @__PURE__ */ jsxs("div", { children: [
8
+ /* @__PURE__ */ jsx(Grid, { mt: 1, children: /* @__PURE__ */ jsx(Grid, { children: /* @__PURE__ */ jsx("img", { className: "sign-in-logo", alt: "...", src: image }) }) }),
9
+ /* @__PURE__ */ jsx(Grid, { mt: 1, children: /* @__PURE__ */ jsx(Grid, { textAlign: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "h6", color: "var(--primary-color)", children: title }) }) })
10
+ ] });
11
+ };
12
+ var login_image_default = LoginImage;
13
+
14
+ export { login_image_default };
15
+ //# sourceMappingURL=chunk-4H3O2JGN.js.map
16
+ //# sourceMappingURL=chunk-4H3O2JGN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/common/login-image.tsx"],"names":[],"mappings":";;;;;AAQA,IAAM,UAAA,GAAwC,CAAC,EAAE,KAAA,EAAO,OAAM,KAAM;AAEhE,EAAA,4BACK,KAAA,EAAA,EACG,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAI,CAAA,EACN,QAAA,kBAAA,GAAA,CAAC,QACG,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe,GAAA,EAAI,KAAA,EAAM,GAAA,EAAK,KAAA,EAAO,GACxD,CAAA,EACJ,CAAA;AAAA,wBACC,IAAA,EAAA,EAAK,EAAA,EAAI,CAAA,EACN,QAAA,kBAAA,GAAA,CAAC,QAAK,SAAA,EAAU,QAAA,EACZ,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,IAAA,EAAK,KAAA,EAAM,sBAAA,EAC1B,QAAA,EAAA,KAAA,EACL,GACJ,CAAA,EACJ;AAAA,GAAA,EACJ,CAAA;AAGR,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"chunk-4H3O2JGN.js","sourcesContent":["import Typography from '@mui/material/Typography';\nimport Grid from '@mui/material/Grid';\n\ninterface LoginImageProps {\n image: string;\n title: string;\n}\n\nconst LoginImage: React.FC<LoginImageProps> = ({ image, title }) => {\n\n return (\n <div >\n <Grid mt={1}>\n <Grid>\n <img className=\"sign-in-logo\" alt=\"...\" src={image}></img>\n </Grid>\n </Grid>\n <Grid mt={1}>\n <Grid textAlign=\"center\">\n <Typography variant=\"h6\" color=\"var(--primary-color)\">\n {title}\n </Typography>\n </Grid>\n </Grid>\n </div>\n );\n \n}\n\nexport default LoginImage;"]}
@@ -0,0 +1,22 @@
1
+ import { configService } from 'sspart-fe-lib';
2
+
3
+ // src/resources/routes.tsx
4
+ var ROUTE_MAP = {
5
+ user_broker_auth: { service: "user", path: "/user/broker/auth" },
6
+ user_broker_set: { service: "user", path: "/user/broker/settings" },
7
+ signin: { service: "user", path: "/user/signin" }
8
+ };
9
+ function CUSTOMER_ROUTES(routeKey) {
10
+ const config = configService.getData();
11
+ const HOST_MAP = {
12
+ user: config.API_USER_API_HOST,
13
+ trade: config.API_TRADE_API_HOST
14
+ };
15
+ const route = ROUTE_MAP[routeKey];
16
+ const host = HOST_MAP[route.service];
17
+ return `${host}${route.path}`;
18
+ }
19
+
20
+ export { CUSTOMER_ROUTES };
21
+ //# sourceMappingURL=chunk-6B3NAL4F.js.map
22
+ //# sourceMappingURL=chunk-6B3NAL4F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/routes.tsx"],"names":[],"mappings":";;;AAEA,IAAM,SAAA,GAAY;AAAA,EACd,gBAAA,EAAkB,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,mBAAA,EAAoB;AAAA,EAC/D,eAAA,EAAiB,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,uBAAA,EAAwB;AAAA,EAClE,MAAA,EAAQ,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,cAAA;AACrC,CAAA;AAIO,SAAS,gBAAgB,QAAA,EAAoC;AAChE,EAAA,MAAM,MAAA,GAAS,cAAc,OAAA,EAAQ;AAErC,EAAA,MAAM,QAAA,GAAW;AAAA,IACb,MAAM,MAAA,CAAO,iBAAA;AAAA,IACb,OAAO,MAAA,CAAO;AAAA,GAClB;AAEA,EAAA,MAAM,KAAA,GAAQ,UAAU,QAAQ,CAAA;AAChC,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,KAAA,CAAM,OAAO,CAAA;AAEnC,EAAA,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,KAAA,CAAM,IAAI,CAAA,CAAA;AAC/B","file":"chunk-6B3NAL4F.js","sourcesContent":["import { configService } from \"sspart-fe-lib\";\n\nconst ROUTE_MAP = {\n user_broker_auth: { service: \"user\", path: \"/user/broker/auth\" },\n user_broker_set: { service: \"user\", path: \"/user/broker/settings\" },\n signin: { service: \"user\", path: \"/user/signin\" },\n} as const;\n\nexport type CustomerRouteKey = keyof typeof ROUTE_MAP;\n\nexport function CUSTOMER_ROUTES(routeKey: CustomerRouteKey): string {\n const config = configService.getData();\n\n const HOST_MAP = {\n user: config.API_USER_API_HOST,\n trade: config.API_TRADE_API_HOST,\n } as const;\n\n const route = ROUTE_MAP[routeKey];\n const host = HOST_MAP[route.service];\n\n return `${host}${route.path}`;\n}\n"]}
@@ -3,9 +3,10 @@ var IMAGE_LINKS = {
3
3
  SMALL_ICON: "https://i.ibb.co/24Qy7m1/Dhe-Quest64.png",
4
4
  ICON: "https://i.ibb.co/60L36htP/Dhe-Quest128.png",
5
5
  NAMELOGO: "https://i.ibb.co/qYhSRLJ4/Dhe-Quest128-Full.png",
6
- WALLPAPER: "https://i.imgur.com/nBm1Ub3.png"
6
+ WALLPAPER: "https://i.imgur.com/nBm1Ub3.png",
7
+ ANGLE_ONE: "https://i.imgur.com/CIuVKGC.png"
7
8
  };
8
9
 
9
10
  export { IMAGE_LINKS };
10
- //# sourceMappingURL=chunk-F4BCZYRK.js.map
11
- //# sourceMappingURL=chunk-F4BCZYRK.js.map
11
+ //# sourceMappingURL=chunk-767TKJQF.js.map
12
+ //# sourceMappingURL=chunk-767TKJQF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/images.tsx"],"names":[],"mappings":";AAAO,IAAM,WAAA,GAAc;AAAA,EACvB,UAAA,EAAa,0CAAA;AAAA,EACb,IAAA,EAAM,4CAAA;AAAA,EACN,QAAA,EAAU,iDAAA;AAAA,EACV,SAAA,EAAW,iCAAA;AAAA,EACX,SAAA,EAAW;AACf","file":"chunk-767TKJQF.js","sourcesContent":["export const IMAGE_LINKS = {\n SMALL_ICON : 'https://i.ibb.co/24Qy7m1/Dhe-Quest64.png',\n ICON: \"https://i.ibb.co/60L36htP/Dhe-Quest128.png\",\n NAMELOGO: \"https://i.ibb.co/qYhSRLJ4/Dhe-Quest128-Full.png\",\n WALLPAPER: \"https://i.imgur.com/nBm1Ub3.png\",\n ANGLE_ONE: \"https://i.imgur.com/CIuVKGC.png\",\n}"]}
@@ -0,0 +1,16 @@
1
+ import { CUSTOMER_ROUTES } from './chunk-6B3NAL4F.js';
2
+ import { getcall, deletecall, postcall } from 'sspart-fe-lib';
3
+
4
+ var getSettings = async () => {
5
+ return await getcall(CUSTOMER_ROUTES("user_broker_set"), "settings");
6
+ };
7
+ var logoutBroker = async (broker) => {
8
+ return await deletecall(CUSTOMER_ROUTES("user_broker_auth"), { broker }, "settings");
9
+ };
10
+ var updateBrokerAuthData = async (data) => {
11
+ return await postcall(CUSTOMER_ROUTES("user_broker_auth"), data, "broker-auth");
12
+ };
13
+
14
+ export { getSettings, logoutBroker, updateBrokerAuthData };
15
+ //# sourceMappingURL=chunk-CN3GJW6R.js.map
16
+ //# sourceMappingURL=chunk-CN3GJW6R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/broker-login.page/api-calls.tsx"],"names":[],"mappings":";;;AAGO,IAAM,cAAc,YAA0B;AACjD,EAAA,OAAO,MAAM,OAAA,CAAQ,eAAA,CAAgB,iBAAiB,GAAG,UAAU,CAAA;AACvE;AAEO,IAAM,YAAA,GAAe,OAAO,MAAA,KAAiC;AAChE,EAAA,OAAO,MAAM,WAAW,eAAA,CAAgB,kBAAkB,GAAG,EAAE,MAAA,IAAU,UAAU,CAAA;AACvF;AAEO,IAAM,oBAAA,GAAuB,OAAO,IAAA,KAA2B;AAClE,EAAA,OAAO,MAAM,QAAA,CAAS,eAAA,CAAgB,kBAAkB,CAAA,EAAG,MAAM,aAAa,CAAA;AAClF","file":"chunk-CN3GJW6R.js","sourcesContent":["import { deletecall, getcall, postcall } from \"sspart-fe-lib\";\nimport { CUSTOMER_ROUTES } from \"../../resources/routes\";\n\nexport const getSettings = async (): Promise<any> => {\n return await getcall(CUSTOMER_ROUTES(\"user_broker_set\"), \"settings\");\n};\n\nexport const logoutBroker = async (broker: string): Promise<any> => {\n return await deletecall(CUSTOMER_ROUTES(\"user_broker_auth\"), { broker }, \"settings\");\n};\n\nexport const updateBrokerAuthData = async (data: {}): Promise<any> => {\n return await postcall(CUSTOMER_ROUTES(\"user_broker_auth\"), data, \"broker-auth\");\n};"]}
@@ -0,0 +1,12 @@
1
+ // src/resources/status.tsx
2
+ var STATUS_CODE_MESSAGES = {
3
+ PLEASE_ENTER_USERNAME: "Please provide a valid Username",
4
+ PLEASE_ENTER_PASSWORD: "Please provide a valid Password",
5
+ PLEASE_ENTER_OTP: "Please provide a valid OTP",
6
+ BROKER_LOGIN_SUCCESS_MESSAGE: "Login successful, You can now place orders with your broker. Please use our help section to explore how to place orders and GTT orders.",
7
+ INVALID_BROKER_SELECTED: "Incorrect broker selected, please try again with a valid broker"
8
+ };
9
+
10
+ export { STATUS_CODE_MESSAGES };
11
+ //# sourceMappingURL=chunk-IBJKEVYR.js.map
12
+ //# sourceMappingURL=chunk-IBJKEVYR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/status.tsx"],"names":[],"mappings":";AAAO,IAAM,oBAAA,GAAuB;AAAA,EAChC,qBAAA,EAAuB,iCAAA;AAAA,EACvB,qBAAA,EAAuB,iCAAA;AAAA,EACvB,gBAAA,EAAkB,4BAAA;AAAA,EAClB,4BAAA,EAA8B,yIAAA;AAAA,EAC9B,uBAAA,EAAyB;AAC7B","file":"chunk-IBJKEVYR.js","sourcesContent":["export const STATUS_CODE_MESSAGES = {\n PLEASE_ENTER_USERNAME: \"Please provide a valid Username\",\n PLEASE_ENTER_PASSWORD: \"Please provide a valid Password\",\n PLEASE_ENTER_OTP: \"Please provide a valid OTP\",\n BROKER_LOGIN_SUCCESS_MESSAGE: \"Login successful, You can now place orders with your broker. Please use our help section to explore how to place orders and GTT orders.\",\n INVALID_BROKER_SELECTED: \"Incorrect broker selected, please try again with a valid broker\",\n}"]}
@@ -1,4 +1,4 @@
1
- import { IMAGE_LINKS } from './chunk-F4BCZYRK.js';
1
+ import { IMAGE_LINKS } from './chunk-767TKJQF.js';
2
2
  import Box from '@mui/material/Box';
3
3
  import AppBar from '@mui/material/AppBar';
4
4
  import Toolbar from '@mui/material/Toolbar';
@@ -21,5 +21,5 @@ var Header = ({ navigate }) => {
21
21
  var header_default = Header;
22
22
 
23
23
  export { header_default };
24
- //# sourceMappingURL=chunk-IRLSI36D.js.map
25
- //# sourceMappingURL=chunk-IRLSI36D.js.map
24
+ //# sourceMappingURL=chunk-LLX3WGKJ.js.map
25
+ //# sourceMappingURL=chunk-LLX3WGKJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/landing.page/header.tsx"],"names":[],"mappings":";;;;;;;;AAaA,IAAM,MAAA,GAAgC,CAAC,EAAE,QAAA,EAAS,KAAM;AAEpD,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AAC/B,IAAA,IAAI,IAAA,EAAM,QAAA,CAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,2BACK,MAAA,EAAA,EAAO,QAAA,EAAS,UAAS,KAAA,EAAM,SAAA,EAC5B,+BAAC,OAAA,EAAA,EACG,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAI,EAAE,QAAA,EAAU,GAAE,EACnB,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAc,GAAA,EAAI,KAAA,EAAM,GAAA,EAAK,WAAA,CAAY,UAAU,CAAA,EACtE,CAAA;AAAA,wBACC,GAAA,EAAA,EACG,QAAA,kBAAA,IAAA,CAAC,SAAM,SAAA,EAAU,KAAA,EAAM,SAAS,CAAA,EAC5B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAO,IAAA,EAAK,QAAA,EAAS,SAAkB,OAAA,EAAQ,MAAA,EAAO,MAAK,SAAA,EAAS,CAAA;AAAA,sBACrE,GAAA,CAAC,UAAO,IAAA,EAAK,QAAA,EAAS,SAAkB,OAAA,EAAQ,UAAA,EAAW,MAAK,OAAA,EAAO;AAAA,KAAA,EAC3E,CAAA,EACJ;AAAA,GAAA,EACJ,CAAA,EACJ,CAAA;AAER,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"chunk-IRLSI36D.js","sourcesContent":["import React from \"react\";\nimport Box from '@mui/material/Box';\nimport AppBar from '@mui/material/AppBar';\nimport Toolbar from '@mui/material/Toolbar';\nimport Stack from '@mui/material/Stack';\nimport { useNavigate } from \"react-router-dom\";\nimport { Button } from \"sspart-fe-lib\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\n\ninterface HeaderProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst Header: React.FC<HeaderProps> = ({ navigate }) => {\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <AppBar position=\"static\" color=\"default\">\n <Toolbar>\n <Box sx={{ flexGrow: 1 }}>\n <img className=\"header-logo\" alt=\"...\" src={IMAGE_LINKS.NAMELOGO}></img>\n </Box>\n <Box >\n <Stack direction=\"row\" spacing={1}>\n <Button name=\"signup\" onClick={onClick} variant=\"text\" text=\"Sign Up\"/>\n <Button name=\"signin\" onClick={onClick} variant=\"outlined\" text=\"Login\"/>\n </Stack>\n </Box>\n </Toolbar>\n </AppBar>\n );\n};\n\nexport default Header;\n"]}
1
+ {"version":3,"sources":["../src/components/landing.page/header.tsx"],"names":[],"mappings":";;;;;;;;AAaA,IAAM,MAAA,GAAgC,CAAC,EAAE,QAAA,EAAS,KAAM;AAEpD,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AAC/B,IAAA,IAAI,IAAA,EAAM,QAAA,CAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,2BACK,MAAA,EAAA,EAAO,QAAA,EAAS,UAAS,KAAA,EAAM,SAAA,EAC5B,+BAAC,OAAA,EAAA,EACG,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAI,EAAE,QAAA,EAAU,GAAE,EACnB,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAc,GAAA,EAAI,KAAA,EAAM,GAAA,EAAK,WAAA,CAAY,UAAU,CAAA,EACtE,CAAA;AAAA,wBACC,GAAA,EAAA,EACG,QAAA,kBAAA,IAAA,CAAC,SAAM,SAAA,EAAU,KAAA,EAAM,SAAS,CAAA,EAC5B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAO,IAAA,EAAK,QAAA,EAAS,SAAkB,OAAA,EAAQ,MAAA,EAAO,MAAK,SAAA,EAAS,CAAA;AAAA,sBACrE,GAAA,CAAC,UAAO,IAAA,EAAK,QAAA,EAAS,SAAkB,OAAA,EAAQ,UAAA,EAAW,MAAK,OAAA,EAAO;AAAA,KAAA,EAC3E,CAAA,EACJ;AAAA,GAAA,EACJ,CAAA,EACJ,CAAA;AAER,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"chunk-LLX3WGKJ.js","sourcesContent":["import React from \"react\";\nimport Box from '@mui/material/Box';\nimport AppBar from '@mui/material/AppBar';\nimport Toolbar from '@mui/material/Toolbar';\nimport Stack from '@mui/material/Stack';\nimport { useNavigate } from \"react-router-dom\";\nimport { Button } from \"sspart-fe-lib\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\n\ninterface HeaderProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst Header: React.FC<HeaderProps> = ({ navigate }) => {\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <AppBar position=\"static\" color=\"default\">\n <Toolbar>\n <Box sx={{ flexGrow: 1 }}>\n <img className=\"header-logo\" alt=\"...\" src={IMAGE_LINKS.NAMELOGO}></img>\n </Box>\n <Box >\n <Stack direction=\"row\" spacing={1}>\n <Button name=\"signup\" onClick={onClick} variant=\"text\" text=\"Sign Up\"/>\n <Button name=\"signin\" onClick={onClick} variant=\"outlined\" text=\"Login\"/>\n </Stack>\n </Box>\n </Toolbar>\n </AppBar>\n );\n};\n\nexport default Header;\n"]}
@@ -2,11 +2,14 @@
2
2
  var TITLES = {
3
3
  LANDING_PAGE_TITLE: "DheQuest | Analyze and Automate Your Trades with Precision, Maximize Profits, and Stay Ahead of the Market",
4
4
  DASHBOARD_PAGE_TITLE: "DheQuest | Your Trading Dashboard - Insights, Performance, and Automation",
5
+ BROKER_SETTINGS_PAGE_TITLE: "DheQuest | Broker Settings - Manage Broker Login(s)",
6
+ BROKER_AUTH_PAGE_TITLE: "DheQuest | Broker Authentication - Broker Authentication Management",
7
+ BROKER_LOGIN_PAGE_TITLE: "DheQuest | Broker Login - Manage Broker Login",
5
8
  SIGN_IN_PAGE_TITLE: "DheQuest | Securely Sign In to Your Automated Trading Platform",
6
9
  ERROR_PAGE_TITLE: "DheQuest | Oops! Something Went Wrong"
7
10
  };
8
11
  var ON_RESIZE = 900;
9
12
 
10
13
  export { ON_RESIZE, TITLES };
11
- //# sourceMappingURL=chunk-IYKARRP3.js.map
12
- //# sourceMappingURL=chunk-IYKARRP3.js.map
14
+ //# sourceMappingURL=chunk-PWBSF4OA.js.map
15
+ //# sourceMappingURL=chunk-PWBSF4OA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/constants.tsx"],"names":[],"mappings":";AAAO,IAAM,MAAA,GAAS;AAAA,EAClB,kBAAA,EAAoB,4GAAA;AAAA,EACpB,oBAAA,EAAsB,2EAAA;AAAA,EACtB,0BAAA,EAA4B,qDAAA;AAAA,EAC5B,sBAAA,EAAwB,qEAAA;AAAA,EACxB,uBAAA,EAAyB,+CAAA;AAAA,EACzB,kBAAA,EAAoB,gEAAA;AAAA,EACpB,gBAAA,EAAkB;AACtB;AAEO,IAAM,SAAA,GAAY","file":"chunk-PWBSF4OA.js","sourcesContent":["export const TITLES = {\n LANDING_PAGE_TITLE: \"DheQuest | Analyze and Automate Your Trades with Precision, Maximize Profits, and Stay Ahead of the Market\",\n DASHBOARD_PAGE_TITLE: \"DheQuest | Your Trading Dashboard - Insights, Performance, and Automation\",\n BROKER_SETTINGS_PAGE_TITLE: \"DheQuest | Broker Settings - Manage Broker Login(s)\",\n BROKER_AUTH_PAGE_TITLE: \"DheQuest | Broker Authentication - Broker Authentication Management\",\n BROKER_LOGIN_PAGE_TITLE: \"DheQuest | Broker Login - Manage Broker Login\",\n SIGN_IN_PAGE_TITLE: \"DheQuest | Securely Sign In to Your Automated Trading Platform\",\n ERROR_PAGE_TITLE: \"DheQuest | Oops! Something Went Wrong\",\n};\n\nexport const ON_RESIZE = 900;"]}
@@ -0,0 +1,13 @@
1
+ // src/components/broker-login.page/constants.tsx
2
+ var SUPPORTED_BROKERS = {
3
+ ANGEL_ONE: "AngelOne",
4
+ FYERS: "Fyers"
5
+ };
6
+ var BROKER_NAMES = {
7
+ Fyers: "Fyers",
8
+ AngelOne: "Angel One"
9
+ };
10
+
11
+ export { BROKER_NAMES, SUPPORTED_BROKERS };
12
+ //# sourceMappingURL=chunk-QH4BPB2K.js.map
13
+ //# sourceMappingURL=chunk-QH4BPB2K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/broker-login.page/constants.tsx"],"names":[],"mappings":";AAAO,IAAM,iBAAA,GAAoB;AAAA,EAC7B,SAAA,EAAW,UAAA;AAAA,EACX,KAAA,EAAO;AACX;AAEO,IAAM,YAAA,GAAuC;AAAA,EAChD,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU;AACd","file":"chunk-QH4BPB2K.js","sourcesContent":["export const SUPPORTED_BROKERS = {\n ANGEL_ONE: \"AngelOne\",\n FYERS: \"Fyers\"\n}\n\nexport const BROKER_NAMES: Record<string, string> = {\n Fyers: \"Fyers\",\n AngelOne: \"Angel One\"\n};"]}
package/dist/index.css CHANGED
@@ -172,4 +172,87 @@
172
172
  .small-btn-link-p {
173
173
  font-size: 14px !important;
174
174
  }
175
+ .broker-auth-sub-message {
176
+ font-weight: 400;
177
+ font-size: 11px;
178
+ }
179
+ .broker-auth-wrapper {
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ width: 100%;
184
+ height: 60vh;
185
+ }
186
+ .broker-auth-success {
187
+ min-width: 100%;
188
+ width: auto;
189
+ min-height: auto;
190
+ height: auto;
191
+ margin: auto !important;
192
+ padding: 20px;
193
+ }
194
+ .broker-auth-success > .success svg {
195
+ fill: green;
196
+ }
197
+ .broker-auth-success-message {
198
+ font-weight: 800;
199
+ }
200
+ .broker-login-tile {
201
+ display: flex;
202
+ align-items: center;
203
+ justify-content: center;
204
+ width: 100px !important;
205
+ max-width: 100px !important;
206
+ height: 135px !important;
207
+ border-radius: 8px !important;
208
+ box-shadow: 2px 3px 10px 0px rgba(0, 0, 0, 0.15) !important;
209
+ -webkit-box-shadow: 2px 3px 10px 0px rgba(0, 0, 0, 0.15) !important;
210
+ -moz-box-shadow: 2px 3px 10px 0px rgba(0, 0, 0, 0.15) !important;
211
+ transition: all 0.2s ease-in-out !important;
212
+ }
213
+ .broker-login-tile:hover {
214
+ box-shadow: 0px 5px 4px 0px rgba(0, 0, 0, 0.15) !important;
215
+ -webkit-box-shadow: 0px 5px 4px 0px rgba(0, 0, 0, 0.15) !important;
216
+ -moz-box-shadow: 0px 5px 4px 0px rgba(0, 0, 0, 0.15) !important;
217
+ }
218
+ .broker-login-tile.disabled {
219
+ pointer-events: none !important;
220
+ box-shadow: none !important;
221
+ -webkit-box-shadow: none !important;
222
+ -moz-box-shadow: none !important;
223
+ }
224
+ .broker-login-logo {
225
+ width: 128px;
226
+ height: 80px;
227
+ min-width: 80px;
228
+ min-height: 80px;
229
+ max-width: 80px;
230
+ max-height: 80px;
231
+ border-radius: 8px;
232
+ }
233
+ .broker-login-text {
234
+ color: var(--text-color);
235
+ font-weight: 800;
236
+ }
237
+ .broker-logout {
238
+ cursor: pointer;
239
+ margin: 0px;
240
+ padding: 0px;
241
+ font-size: 14px;
242
+ color: var(--primary-color);
243
+ border: 0px solid grey;
244
+ background: transparent;
245
+ font-weight: 800;
246
+ transition: all 0.2s ease-in-out;
247
+ }
248
+ .broker-logout:hover {
249
+ color: var(--primary-color-hover);
250
+ }
251
+ .broker-settings-help {
252
+ font-size: 12px;
253
+ margin-top: 8px;
254
+ }
255
+ .text-center {
256
+ text-align: center !important;
257
+ }
175
258
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles/index.css"],"sourcesContent":[":root{\n --primary-color: #4CA8B4;\n --primary-color-hover: #2E8C99;\n --text-color: #003B4F;\n --disabled-color: #d4d4d4;\n --neutral-color: #ffffff;\n --background-color: #f3f3f3;\n --alert-error: rgba(255, 67, 67);\n --alert-error-hover: rgb(223, 0, 0);\n}\n\n.full-hw-window{\n min-height: 100vh;\n min-width: 100vw;\n}\n\n.sign-in-logo{\n width: 200px;\n}\n\n.wrapped-btn {\n width: auto !important;\n}\n\n.wrapped-btn-neutral.MuiButton-outlined {\n color: red !important;\n border-color: var(--primary-color) !important;\n background: var(--neutral-color) !important;\n}\n\n.outlined-btn {\n border: 1px solid var(--primary-color) !important;\n color: var(--primary-color) !important;\n background-color: transparent !important;\n padding: 6px 16px !important;\n font-size: 0.875rem !important;\n font-weight: 500 !important;\n line-height: 1.75 !important;\n border-radius: 4px !important;\n text-transform: uppercase !important;\n transition: all 0.3s ease !important;\n cursor: pointer !important;\n outline: none !important;\n}\n\n.outlined-btn:hover {\n border: 1px solid var(--primary-color-hover) !important;\n color: var(--primary-color-hover) !important;\n background-color: rgba(var(--primary-color-hover), 0.04) !important;\n}\n\n.user-option{\n background: none;\n border: none;\n cursor: pointer;\n color: var(--text-color);\n text-align: center;\n font-size: 12px;\n}\n\n.user-option:hover{\n color: var(--primary-color-hover);\n}\n\n.header-link{\n font-weight: 700;\n font-size: .85rem;\n}\n\n.logo-navbar{\n width: 28px;\n}\n\n.header-toolbar{\n min-height: 32px !important;\n height: auto !important;\n padding-top: 2px !important; \n padding-bottom: 2px !important;\n}\n\n.header-avatar{\n width: 28px !important;\n height: 28px !important;\n font-size: 14px !important;\n}\n\n.footer-layer{\n box-shadow: 0px 0px 7px rgba(0,0,0,0.05);\n border-top: 1px solid rgb(216, 216, 216, 0.25);\n}\n\n.error-404{\n font-weight: 800;\n letter-spacing: 0.1em;\n}\n\n.error-text {\n font-weight: 800;\n}\n\n@media (max-width: 576px) {\n .error-404 {\n color: var(--alert-error);\n font-size: 18vw;\n }\n .error-emoji{\n font-size: 16vw;\n }\n .error-text{\n font-size: 6vw;\n }\n .error-desc{\n font-size: 3.25vw;\n }\n}\n\n@media (min-width: 576px) {\n .error-404 {\n color: var(--alert-error);\n font-size: 8vw;\n }\n .error-emoji{\n font-size: 7vw;\n }\n .error-text{\n font-size: 4vw;\n }\n .error-desc{\n font-size: 2vw;\n }\n}\n\n@media (min-width: 992px) {\n .error-desc{\n font-size: 1.5vw;\n }\n}\n\n.error-wrapper{\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n}\n\n.header-logo{\n width: 120px;\n}\n\n@media (max-width: 992px) {\n .landing-info-header{\n font-size: 36px;\n font-weight: 800;\n line-height: 42px;\n }\n}\n\n@media (min-width: 992px) {\n .landing-info-header{\n font-size: 36px;\n font-weight: 800;\n }\n}\n\n.landing-info-sub-header{\n font-size: 16px;\n font-weight: 600;\n line-height: 28px;\n}\n\n.landing-info-button{\n cursor: pointer;\n background-color: rgb(255, 75, 146);\n border-radius: 25px;\n color: var(--neutral-color);\n border: none;\n font-weight: 800;\n padding-left: 25px;\n padding-right: 25px;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.title-image-demo{\n max-width: 100%;\n width: 100%;\n}\n\n.sign-in-card-wrapper{\n width: auto;\n min-height: auto;\n height: auto;\n margin: auto !important;\n padding: 20px;\n}\n\n.small-btn-link-p {\n font-size: 14px !important;\n}\n"],"mappings":";AAAA;AACI,mBAAiB;AACjB,yBAAuB;AACvB,gBAAc;AACd,oBAAkB;AAClB,mBAAiB;AACjB,sBAAoB;AACpB,iBAAe,KAAK,GAAG,EAAE,EAAE,EAAE;AAC7B,uBAAqB,IAAI,GAAG,EAAE,CAAC,EAAE;AACrC;AAEA,CAAC;AACG,cAAY;AACZ,aAAW;AACf;AAEA,CAAC;AACG,SAAO;AACX;AAEA,CAAC;AACG,SAAO;AACX;AAEA,CAAC,mBAAmB,CAAC;AACjB,SAAO;AACP,gBAAc,IAAI;AAClB,cAAY,IAAI;AACpB;AAEA,CAAC;AACG,UAAQ,IAAI,MAAM,IAAI;AACtB,SAAO,IAAI;AACX,oBAAkB;AAClB,WAAS,IAAI;AACb,aAAW;AACX,eAAa;AACb,eAAa;AACb,iBAAe;AACf,kBAAgB;AAChB,cAAY,IAAI,KAAK;AACrB,UAAQ;AACR,WAAS;AACb;AAEA,CAfC,YAeY;AACT,UAAQ,IAAI,MAAM,IAAI;AACtB,SAAO,IAAI;AACX,oBAAkB,KAAK,IAAI,sBAAsB,EAAE;AACvD;AAEA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,UAAQ;AACR,SAAO,IAAI;AACX,cAAY;AACZ,aAAW;AACf;AAEA,CATC,WASW;AACR,SAAO,IAAI;AACf;AAEA,CAAC;AACG,eAAa;AACb,aAAW;AACf;AAEA,CAAC;AACG,SAAO;AACX;AAEA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,eAAa;AACb,kBAAgB;AACpB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,aAAW;AACf;AAEA,CAAC;AACG,cAAY,IAAI,IAAI,IAAI,KAAK,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC;AACnC,cAAY,IAAI,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC7C;AAEA,CAAC;AACG,eAAa;AACb,kBAAgB;AACpB;AAEA,CAAC;AACG,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,WAAO,IAAI;AACX,eAAW;AACf;AACA,GAAC;AACG,eAAW;AACf;AACA,GAZH;AAaO,eAAW;AACf;AACA,GAAC;AACG,eAAW;AACf;AACJ;AAEA,QAAO,WAAY;AACf,GA1BH;AA2BO,WAAO,IAAI;AACX,eAAW;AACf;AACA,GAhBC;AAiBG,eAAW;AACf;AACA,GA5BH;AA6BO,eAAW;AACf;AACA,GAhBC;AAiBG,eAAW;AACf;AACJ;AAEA,QAAO,WAAY;AACf,GAtBC;AAuBG,eAAW;AACf;AACJ;AAEA,CAAC;AACG,YAAU;AACV,OAAK;AACL,QAAM;AACN,aAAW,UAAU,IAAI,EAAE;AAC3B,cAAY;AAChB;AAEA,CAAC;AACG,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAAC;AACG,eAAW;AACX,iBAAa;AACb,iBAAa;AACjB;AACJ;AAEA,QAAO,WAAY;AACf,GARC;AASG,eAAW;AACX,iBAAa;AACjB;AACJ;AAEA,CAAC;AACG,aAAW;AACX,eAAa;AACb,eAAa;AACjB;AAEA,CAAC;AACG,UAAQ;AACR,oBAAkB,IAAI,GAAG,EAAE,EAAE,EAAE;AAC/B,iBAAe;AACf,SAAO,IAAI;AACX,UAAQ;AACR,eAAa;AACb,gBAAc;AACd,iBAAe;AACf,eAAa;AACb,kBAAgB;AACpB;AAEA,CAAC;AACG,aAAW;AACX,SAAO;AACX;AAEA,CAAC;AACG,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,UAAQ;AACR,WAAS;AACb;AAEA,CAAC;AACG,aAAW;AACf;","names":[]}
1
+ {"version":3,"sources":["../src/styles/index.css"],"sourcesContent":[":root{\n --primary-color: #4CA8B4;\n --primary-color-hover: #2E8C99;\n --text-color: #003B4F;\n --disabled-color: #d4d4d4;\n --neutral-color: #ffffff;\n --background-color: #f3f3f3;\n --alert-error: rgba(255, 67, 67);\n --alert-error-hover: rgb(223, 0, 0);\n}\n\n.full-hw-window{\n min-height: 100vh;\n min-width: 100vw;\n}\n\n.sign-in-logo{\n width: 200px;\n}\n\n.wrapped-btn {\n width: auto !important;\n}\n\n.wrapped-btn-neutral.MuiButton-outlined {\n color: red !important;\n border-color: var(--primary-color) !important;\n background: var(--neutral-color) !important;\n}\n\n.outlined-btn {\n border: 1px solid var(--primary-color) !important;\n color: var(--primary-color) !important;\n background-color: transparent !important;\n padding: 6px 16px !important;\n font-size: 0.875rem !important;\n font-weight: 500 !important;\n line-height: 1.75 !important;\n border-radius: 4px !important;\n text-transform: uppercase !important;\n transition: all 0.3s ease !important;\n cursor: pointer !important;\n outline: none !important;\n}\n\n.outlined-btn:hover {\n border: 1px solid var(--primary-color-hover) !important;\n color: var(--primary-color-hover) !important;\n background-color: rgba(var(--primary-color-hover), 0.04) !important;\n}\n\n.user-option{\n background: none;\n border: none;\n cursor: pointer;\n color: var(--text-color);\n text-align: center;\n font-size: 12px;\n}\n\n.user-option:hover{\n color: var(--primary-color-hover);\n}\n\n.header-link{\n font-weight: 700;\n font-size: .85rem;\n}\n\n.logo-navbar{\n width: 28px;\n}\n\n.header-toolbar{\n min-height: 32px !important;\n height: auto !important;\n padding-top: 2px !important; \n padding-bottom: 2px !important;\n}\n\n.header-avatar{\n width: 28px !important;\n height: 28px !important;\n font-size: 14px !important;\n}\n\n.footer-layer{\n box-shadow: 0px 0px 7px rgba(0,0,0,0.05);\n border-top: 1px solid rgb(216, 216, 216, 0.25);\n}\n\n.error-404{\n font-weight: 800;\n letter-spacing: 0.1em;\n}\n\n.error-text {\n font-weight: 800;\n}\n\n@media (max-width: 576px) {\n .error-404 {\n color: var(--alert-error);\n font-size: 18vw;\n }\n .error-emoji{\n font-size: 16vw;\n }\n .error-text{\n font-size: 6vw;\n }\n .error-desc{\n font-size: 3.25vw;\n }\n}\n\n@media (min-width: 576px) {\n .error-404 {\n color: var(--alert-error);\n font-size: 8vw;\n }\n .error-emoji{\n font-size: 7vw;\n }\n .error-text{\n font-size: 4vw;\n }\n .error-desc{\n font-size: 2vw;\n }\n}\n\n@media (min-width: 992px) {\n .error-desc{\n font-size: 1.5vw;\n }\n}\n\n.error-wrapper{\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n}\n\n.header-logo{\n width: 120px;\n}\n\n@media (max-width: 992px) {\n .landing-info-header{\n font-size: 36px;\n font-weight: 800;\n line-height: 42px;\n }\n}\n\n@media (min-width: 992px) {\n .landing-info-header{\n font-size: 36px;\n font-weight: 800;\n }\n}\n\n.landing-info-sub-header{\n font-size: 16px;\n font-weight: 600;\n line-height: 28px;\n}\n\n.landing-info-button{\n cursor: pointer;\n background-color: rgb(255, 75, 146);\n border-radius: 25px;\n color: var(--neutral-color);\n border: none;\n font-weight: 800;\n padding-left: 25px;\n padding-right: 25px;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.title-image-demo{\n max-width: 100%;\n width: 100%;\n}\n\n.sign-in-card-wrapper{\n width: auto;\n min-height: auto;\n height: auto;\n margin: auto !important;\n padding: 20px;\n}\n\n.small-btn-link-p {\n font-size: 14px !important;\n}\n\n.broker-auth-sub-message{\n font-weight: 400;\n font-size: 11px;\n}\n\n.broker-auth-wrapper{\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 60vh;\n}\n\n.broker-auth-success {\n min-width: 100%;\n width: auto;\n min-height: auto;\n height: auto;\n margin: auto !important;\n padding: 20px;\n}\n\n.broker-auth-success > .success svg{\n fill: green;\n}\n\n.broker-auth-success-message{\n font-weight: 800;\n}\n\n.broker-login-tile{\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100px !important;\n max-width: 100px !important;\n height: 135px !important;\n border-radius: 8px !important;\n box-shadow: 2px 3px 10px 0px rgba(0,0,0,0.15) !important;\n -webkit-box-shadow: 2px 3px 10px 0px rgba(0,0,0,0.15) !important;\n -moz-box-shadow: 2px 3px 10px 0px rgba(0,0,0,0.15) !important;\n transition: all 0.2s ease-in-out !important;\n}\n\n.broker-login-tile:hover{\n box-shadow: 0px 5px 4px 0px rgba(0,0,0,0.15) !important;\n -webkit-box-shadow: 0px 5px 4px 0px rgba(0,0,0,0.15) !important;\n -moz-box-shadow: 0px 5px 4px 0px rgba(0,0,0,0.15) !important;\n}\n\n.broker-login-tile.disabled {\n pointer-events: none !important;\n box-shadow: none !important;\n -webkit-box-shadow: none !important;\n -moz-box-shadow: none !important;\n}\n\n.broker-login-logo{\n width: 128px;\n height: 80px;\n min-width: 80px;\n min-height: 80px;\n max-width: 80px;\n max-height: 80px;\n border-radius: 8px;\n}\n\n.broker-login-text{\n color: var(--text-color);\n font-weight: 800;\n}\n\n.broker-logout{\n cursor: pointer;\n margin: 0px;\n padding: 0px;\n font-size: 14px;\n color: var(--primary-color);\n border: 0px solid grey;\n background: transparent;\n font-weight: 800;\n transition: all 0.2s ease-in-out;\n}\n\n.broker-logout:hover{\n color: var(--primary-color-hover);\n}\n\n.broker-settings-help{\n font-size: 12px;\n margin-top: 8px;\n}\n\n\n.text-center{\n text-align: center !important;\n}"],"mappings":"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","names":[]}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { TITLES } from './chunk-IYKARRP3.js';
1
+ import { TITLES } from './chunk-PWBSF4OA.js';
2
2
  import { useEffect } from 'react';
3
3
  import Container from '@mui/material/Container';
4
4
  import PersonOutlineOutlinedIcon from '@mui/icons-material/PersonOutlineOutlined';
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { useNavigate } from 'react-router-dom';
3
+
4
+ interface BrokerAuthPageProps {
5
+ navigate: ReturnType<typeof useNavigate>;
6
+ }
7
+ declare const BrokerAuthPage: React.FC<BrokerAuthPageProps>;
8
+
9
+ export { BrokerAuthPage as default };
@@ -0,0 +1,78 @@
1
+ import { SUPPORTED_BROKERS, BROKER_NAMES } from '../chunk-QH4BPB2K.js';
2
+ import { STATUS_CODE_MESSAGES } from '../chunk-IBJKEVYR.js';
3
+ import { updateBrokerAuthData } from '../chunk-CN3GJW6R.js';
4
+ import '../chunk-6B3NAL4F.js';
5
+ import { TITLES } from '../chunk-PWBSF4OA.js';
6
+ import { useState, useCallback, useEffect } from 'react';
7
+ import Container from '@mui/material/Container';
8
+ import Grid from '@mui/material/Grid';
9
+ import Box from '@mui/material/Box';
10
+ import { useParams, useSearchParams } from 'react-router-dom';
11
+ import { Alerts } from 'sspart-fe-lib';
12
+ import { jsxs, jsx } from 'react/jsx-runtime';
13
+
14
+ // src/components/broker-login.page/auth-helper.tsx
15
+ var getAuthenticationData = (origin, searchParams) => {
16
+ switch (origin) {
17
+ case SUPPORTED_BROKERS.ANGEL_ONE:
18
+ return {
19
+ broker: SUPPORTED_BROKERS.ANGEL_ONE,
20
+ data: {
21
+ accessToken: searchParams.get("auth_token") ?? "",
22
+ feedToken: searchParams.get("feed_token") ?? "",
23
+ refreshToken: searchParams.get("refresh_token") ?? ""
24
+ }
25
+ };
26
+ case SUPPORTED_BROKERS.FYERS:
27
+ return {
28
+ broker: SUPPORTED_BROKERS.FYERS,
29
+ data: {
30
+ authCode: searchParams.get("auth_code") ?? ""
31
+ }
32
+ };
33
+ default:
34
+ return {
35
+ broker: origin,
36
+ data: {}
37
+ };
38
+ }
39
+ };
40
+ var Success = ({ origin }) => {
41
+ return /* @__PURE__ */ jsx("div", { className: "broker-auth-wrapper", children: /* @__PURE__ */ jsx("div", { className: "broker-auth-success", children: /* @__PURE__ */ jsxs("div", { className: "text-center success", children: [
42
+ /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", height: "96", width: "96", viewBox: "0 0 48 48", children: /* @__PURE__ */ jsx("path", { d: "M21.05 33.1 35.2 18.95l-2.3-2.25-11.85 11.85-6-6-2.25 2.25ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 24q0-4.15 1.575-7.8 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24 4q4.15 0 7.8 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Z" }) }),
43
+ /* @__PURE__ */ jsxs("div", { className: "mt-4 broker-auth-success-message", children: [
44
+ BROKER_NAMES[origin] ?? "Unknown Broker",
45
+ " authentication successful !!!"
46
+ ] }),
47
+ /* @__PURE__ */ jsx("div", { className: "mt-4 broker-auth-sub-message", children: STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE })
48
+ ] }) }) });
49
+ };
50
+ var success_default = Success;
51
+ var BrokerAuthPage = ({ navigate }) => {
52
+ const { id } = useParams();
53
+ const [searchParams] = useSearchParams();
54
+ const [success, setSuccess] = useState(false);
55
+ const fetchBrokerAuth = useCallback(async () => {
56
+ let body = getAuthenticationData(id ?? "", searchParams);
57
+ let response = await updateBrokerAuthData(body);
58
+ if (response) setSuccess(true);
59
+ else setSuccess(false);
60
+ }, [id, searchParams]);
61
+ useEffect(() => {
62
+ document.title = TITLES.BROKER_AUTH_PAGE_TITLE;
63
+ fetchBrokerAuth();
64
+ }, [fetchBrokerAuth]);
65
+ return /* @__PURE__ */ jsxs(Container, { maxWidth: "md", sx: { mt: 2, mb: 4 }, children: [
66
+ /* @__PURE__ */ jsx(Grid, { children: /* @__PURE__ */ jsx("h4", { className: "page-heading", children: "Broker authentication" }) }),
67
+ /* @__PURE__ */ jsx(Box, { sx: { my: 2 } }),
68
+ /* @__PURE__ */ jsxs(Grid, { children: [
69
+ /* @__PURE__ */ jsx(Alerts, { id: "broker-auth", className: "mt-2 mb-4" }),
70
+ success ? /* @__PURE__ */ jsx(success_default, { origin: id ?? "" }) : /* @__PURE__ */ jsx("div", {})
71
+ ] })
72
+ ] });
73
+ };
74
+ var broker_auth_page_default = BrokerAuthPage;
75
+
76
+ export { broker_auth_page_default as default };
77
+ //# sourceMappingURL=broker-auth.page.js.map
78
+ //# sourceMappingURL=broker-auth.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/broker-login.page/auth-helper.tsx","../../src/components/broker-login.page/success.tsx","../../src/pages/broker-auth.page.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"broker-auth.page.js","sourcesContent":["import { SUPPORTED_BROKERS } from \"./constants\";\n\ninterface AuthenticationData {\n broker: string;\n data: Record<string, string | null>;\n}\n\nexport const getAuthenticationData = (\n origin: string,\n searchParams: URLSearchParams\n): AuthenticationData => {\n\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return {\n broker: SUPPORTED_BROKERS.ANGEL_ONE,\n data: {\n accessToken: searchParams.get(\"auth_token\") ?? \"\",\n feedToken: searchParams.get(\"feed_token\") ?? \"\",\n refreshToken: searchParams.get(\"refresh_token\") ?? \"\",\n },\n };\n case SUPPORTED_BROKERS.FYERS:\n return {\n broker: SUPPORTED_BROKERS.FYERS,\n data: {\n authCode: searchParams.get(\"auth_code\") ?? \"\",\n },\n };\n default:\n return {\n broker: origin,\n data: {},\n };\n }\n};","import React from \"react\";\nimport { BROKER_NAMES } from \"./constants\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\ninterface Props {\n origin: string;\n}\n\nconst Success: React.FC<Props> = ({ origin }) => {\n return (\n <div className=\"broker-auth-wrapper\">\n <div className=\"broker-auth-success\">\n <div className=\"text-center success\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"96\" width=\"96\" viewBox=\"0 0 48 48\">\n <path d=\"M21.05 33.1 35.2 18.95l-2.3-2.25-11.85 11.85-6-6-2.25 2.25ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 24q0-4.15 1.575-7.8 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24 4q4.15 0 7.8 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Z\"/>\n </svg>\n <div className=\"mt-4 broker-auth-success-message\">\n {BROKER_NAMES[origin] ?? \"Unknown Broker\"} authentication successful !!!\n </div>\n <div className=\"mt-4 broker-auth-sub-message\">\n {STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Success;","import React, { useEffect, useState, useCallback } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from '@mui/material/Grid';\nimport Box from \"@mui/material/Box\";\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\";\nimport { TITLES } from '../resources/constants';\nimport { Alerts } from 'sspart-fe-lib';\nimport { updateBrokerAuthData } from '../components/broker-login.page/api-calls';\nimport { getAuthenticationData } from '../components/broker-login.page/auth-helper';\nimport Success from '../components/broker-login.page/success';\n\ninterface BrokerAuthPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerAuthPage: React.FC<BrokerAuthPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n const [searchParams] = useSearchParams();\n\n const [success, setSuccess] = useState(false);\n\n const fetchBrokerAuth = useCallback(async () => {\n let body = getAuthenticationData(id ?? \"\", searchParams);\n let response = await updateBrokerAuthData(body);\n if (response) setSuccess(true);\n else setSuccess(false);\n }, [ id, searchParams ]);\n\n useEffect(() => {\n document.title = TITLES.BROKER_AUTH_PAGE_TITLE;\n fetchBrokerAuth();\n }, [fetchBrokerAuth]);\n\n return (\n <Container maxWidth=\"md\" sx={{ mt: 2, mb: 4 }}>\n <Grid>\n <h4 className=\"page-heading\">Broker authentication</h4>\n </Grid>\n <Box sx={{ my: 2 }} />\n <Grid>\n <Alerts id=\"broker-auth\" className=\"mt-2 mb-4\" />\n {success ? <Success origin={id ?? \"\"}/> : <div/>}\n </Grid>\n </Container>\n );\n};\n\nexport default BrokerAuthPage;"]}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { useNavigate } from 'react-router-dom';
3
+
4
+ interface BrokerAuthPageProps {
5
+ navigate: ReturnType<typeof useNavigate>;
6
+ }
7
+ declare const BrokerLoginPage: React.FC<BrokerAuthPageProps>;
8
+
9
+ export { BrokerLoginPage as default };
@@ -0,0 +1,156 @@
1
+ import { login_image_default } from '../chunk-4H3O2JGN.js';
2
+ import { SUPPORTED_BROKERS } from '../chunk-QH4BPB2K.js';
3
+ import { STATUS_CODE_MESSAGES } from '../chunk-IBJKEVYR.js';
4
+ import { updateBrokerAuthData } from '../chunk-CN3GJW6R.js';
5
+ import '../chunk-6B3NAL4F.js';
6
+ import { TITLES } from '../chunk-PWBSF4OA.js';
7
+ import { IMAGE_LINKS } from '../chunk-767TKJQF.js';
8
+ import { useEffect, useState } from 'react';
9
+ import Container from '@mui/material/Container';
10
+ import Grid2 from '@mui/material/Grid';
11
+ import Card from '@mui/material/Card';
12
+ import { showValidationAlert, ALERT_TYPES, clearValidationAlert, Alerts, alertService, Textbox, PasswordTextbox, Button } from 'sspart-fe-lib';
13
+ import { jsx, jsxs } from 'react/jsx-runtime';
14
+ import Box from '@mui/material/Box';
15
+ import Typography from '@mui/material/Typography';
16
+ import { useParams } from 'react-router-dom';
17
+
18
+ var IncorrectBroker = () => {
19
+ useEffect(() => {
20
+ showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, "broker-auth");
21
+ return () => {
22
+ clearValidationAlert("broker-auth");
23
+ };
24
+ }, []);
25
+ return /* @__PURE__ */ jsxs(Container, { maxWidth: "sm", sx: { mt: 2, mb: 4 }, children: [
26
+ /* @__PURE__ */ jsx(Grid2, { sx: { my: 2 }, children: /* @__PURE__ */ jsx("h4", { className: "page-heading", children: "Broker login" }) }),
27
+ /* @__PURE__ */ jsx(Alerts, { id: "broker-auth" })
28
+ ] });
29
+ };
30
+ var incorrect_broker_default = IncorrectBroker;
31
+ var validateAngelOneSignIn = (data) => {
32
+ const errors = {};
33
+ if (!data.userid) {
34
+ errors["userid"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;
35
+ }
36
+ if (!data.totp) {
37
+ errors["totp"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_OTP;
38
+ }
39
+ if (!data.password) {
40
+ errors["password"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;
41
+ }
42
+ alertService.setData(errors);
43
+ return Object.keys(errors).length === 0;
44
+ };
45
+ var AngelOne = () => {
46
+ const [state, setState] = useState({ userid: "", password: "", totp: "" });
47
+ const [refresh, setRefresh] = useState(false);
48
+ useEffect(() => {
49
+ return () => {
50
+ alertService.resetData();
51
+ };
52
+ }, []);
53
+ const onChange = (name, value) => {
54
+ setState((prevState) => ({
55
+ ...prevState,
56
+ [name]: value
57
+ }));
58
+ };
59
+ const onLoginClick = async (event) => {
60
+ event.preventDefault();
61
+ if (validateAngelOneSignIn(state)) {
62
+ alertService.resetData();
63
+ const response = await updateBrokerAuthData({
64
+ broker: SUPPORTED_BROKERS.ANGEL_ONE,
65
+ userid: state.userid,
66
+ totp: state.totp,
67
+ password: state.password
68
+ });
69
+ if (response) {
70
+ showValidationAlert(ALERT_TYPES.SUCCESS, STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE, "broker-auth");
71
+ setState({ userid: "", password: "", totp: "" });
72
+ } else {
73
+ showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, "broker-auth");
74
+ setRefresh(!refresh);
75
+ }
76
+ } else {
77
+ setRefresh(!refresh);
78
+ }
79
+ };
80
+ const ads = alertService.getData();
81
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 0, direction: "column", alignItems: "center", justifyContent: "center", children: [
82
+ /* @__PURE__ */ jsx(login_image_default, { image: IMAGE_LINKS.ANGLE_ONE, title: "Angel One" }),
83
+ /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Typography, { variant: "caption", children: "This is DheQuest's Angel One login page" }) }) }),
84
+ /* @__PURE__ */ jsxs(Box, { component: "form", onSubmit: onLoginClick, noValidate: true, sx: { m: 0, width: "100%" }, children: [
85
+ /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
86
+ /* @__PURE__ */ jsx(Alerts, { id: "broker-auth" }),
87
+ /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
88
+ /* @__PURE__ */ jsx(
89
+ Textbox,
90
+ {
91
+ id: "userid",
92
+ name: "userid",
93
+ mandate: true,
94
+ validation: ads.userid,
95
+ type: "text",
96
+ placeholder: "Username",
97
+ size: "medium",
98
+ value: state.userid,
99
+ onChange
100
+ }
101
+ ),
102
+ /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
103
+ /* @__PURE__ */ jsx(
104
+ PasswordTextbox,
105
+ {
106
+ id: "password",
107
+ name: "password",
108
+ mandate: true,
109
+ validation: ads.password,
110
+ placeholder: "MPIN",
111
+ size: "medium",
112
+ value: state.password,
113
+ onChange
114
+ }
115
+ ),
116
+ /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
117
+ /* @__PURE__ */ jsx(
118
+ PasswordTextbox,
119
+ {
120
+ id: "totp",
121
+ name: "totp",
122
+ mandate: true,
123
+ validation: ads.totp,
124
+ placeholder: "OTP",
125
+ size: "medium",
126
+ value: state.totp,
127
+ onChange
128
+ }
129
+ ),
130
+ /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
131
+ /* @__PURE__ */ jsx(Button, { text: "Sign In", type: "submit" })
132
+ ] })
133
+ ] });
134
+ };
135
+ var angelone_default = AngelOne;
136
+ var LoginWrapper = ({ origin }) => {
137
+ switch (origin) {
138
+ case SUPPORTED_BROKERS.ANGEL_ONE:
139
+ return /* @__PURE__ */ jsx(angelone_default, {});
140
+ default:
141
+ return /* @__PURE__ */ jsx(incorrect_broker_default, {});
142
+ }
143
+ };
144
+ var login_wrapper_default = LoginWrapper;
145
+ var BrokerLoginPage = ({ navigate }) => {
146
+ const { id } = useParams();
147
+ useEffect(() => {
148
+ document.title = TITLES.BROKER_LOGIN_PAGE_TITLE;
149
+ }, []);
150
+ return /* @__PURE__ */ jsx(Grid2, { container: true, spacing: 0, justifyContent: "center", alignItems: "center", display: "flex", sx: { minHeight: "80dvh" }, children: /* @__PURE__ */ jsx(Container, { component: "main", maxWidth: "xs", children: /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx("div", { className: "sign-in-card-wrapper", children: /* @__PURE__ */ jsx(login_wrapper_default, { origin: id ?? "" }) }) }) }) });
151
+ };
152
+ var broker_login_page_default = BrokerLoginPage;
153
+
154
+ export { broker_login_page_default as default };
155
+ //# sourceMappingURL=broker-login.page.js.map
156
+ //# sourceMappingURL=broker-login.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/broker-login.page/incorrect-broker.tsx","../../src/components/broker-login.page/business-rules.tsx","../../src/components/broker-login.page/angelone.tsx","../../src/components/broker-login.page/login-wrapper.tsx","../../src/pages/broker-login.page.tsx"],"names":["Grid","useEffect","alertService","showValidationAlert","ALERT_TYPES","jsxs","jsx","Alerts","Container"],"mappings":"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","file":"broker-login.page.js","sourcesContent":["import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport { ALERT_TYPES, clearValidationAlert, showValidationAlert } from \"sspart-fe-lib\";\nimport { Alerts } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nconst IncorrectBroker: React.FC = () => {\n \n useEffect(() => {\n showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, 'broker-auth');\n return () => {\n clearValidationAlert(\"broker-auth\");\n };\n }, []);\n\n return (\n <Container maxWidth=\"sm\" sx={{ mt: 2, mb: 4 }}>\n <Grid sx={{ my: 2 }}>\n <h4 className=\"page-heading\">Broker login</h4>\n </Grid>\n <Alerts id=\"broker-auth\" />\n </Container>\n );\n};\n\nexport default IncorrectBroker;\n","import { alertService } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nexport interface AngelOneFormData {\n userid: string;\n totp: string;\n password: string;\n}\n\nexport const validateAngelOneSignIn = (data: AngelOneFormData): boolean => {\n const errors: Record<string, string> = {};\n\n if (!data.userid) {\n errors[\"userid\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;\n }\n\n if (!data.totp) {\n errors[\"totp\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_OTP;\n }\n\n if (!data.password) {\n errors[\"password\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;\n }\n\n alertService.setData(errors);\n\n return Object.keys(errors).length === 0;\n};","import React, { useState, useEffect } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { SUPPORTED_BROKERS } from \"./constants\";\nimport { updateBrokerAuthData } from \"./api-calls\";\nimport { validateAngelOneSignIn } from \"./business-rules\";\nimport LoginImage from \"../common/login-image\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\nimport { ALERT_TYPES, Alerts, alertService, Button, \n PasswordTextbox, showValidationAlert, Textbox } from \"sspart-fe-lib\";\n\nconst AngelOne: React.FC = () => {\n\n const [state, setState] = useState({ userid: \"\", password: \"\", totp: \"\" });\n\n const [refresh, setRefresh] = useState<boolean>(false);\n\n useEffect(() => {\n return () => { alertService.resetData(); };\n }, []);\n\n const onChange = (name: string, value: string) => {\n setState((prevState) => ({\n ...prevState,\n [name]: value\n }));\n };\n\n const onLoginClick = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n if (validateAngelOneSignIn(state)) {\n alertService.resetData();\n const response = await updateBrokerAuthData({\n broker: SUPPORTED_BROKERS.ANGEL_ONE, userid: state.userid,\n totp: state.totp, password: state.password });\n if (response) {\n showValidationAlert(ALERT_TYPES.SUCCESS, STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE, 'broker-auth');\n setState({ userid: \"\", password: \"\", totp: \"\" });\n } else {\n showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, 'broker-auth');\n setRefresh(!refresh);\n }\n } else {\n setRefresh(!refresh);\n }\n };\n\n const ads = alertService.getData();\n\n return (\n <Grid container spacing={0} direction=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <LoginImage image={IMAGE_LINKS.ANGLE_ONE} title=\"Angel One\" />\n <Grid>\n <Grid>\n <Typography variant=\"caption\">\n This is DheQuest's Angel One login page\n </Typography>\n </Grid>\n </Grid>\n <Box component=\"form\" onSubmit={onLoginClick} noValidate sx={{ m: 0, width: \"100%\" }}>\n <Box component=\"div\" sx={{ my: 2 }} />\n <Alerts id=\"broker-auth\" />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Textbox id=\"userid\" name=\"userid\" mandate validation={ads.userid} type=\"text\"\n placeholder=\"Username\" size=\"medium\" value={state.userid} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <PasswordTextbox id=\"password\" name=\"password\" mandate validation={ads.password} \n placeholder=\"MPIN\" size=\"medium\" value={state.password} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <PasswordTextbox id=\"totp\" name=\"totp\" mandate validation={ads.totp} \n placeholder=\"OTP\" size=\"medium\" value={state.totp} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Button text=\"Sign In\" type=\"submit\" />\n </Box>\n </Grid>\n );\n};\n\nexport default AngelOne;\n","import React from \"react\";\nimport IncorrectBroker from \"./incorrect-broker\";\nimport AngelOne from \"./angelone\";\nimport { SUPPORTED_BROKERS } from \"./constants\";\n\ninterface LoginWrapperProps {\n origin: string;\n}\n\nconst LoginWrapper: React.FC<LoginWrapperProps> = ({ origin }) => {\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return <AngelOne />;\n default:\n return <IncorrectBroker />;\n }\n};\n\nexport default LoginWrapper;\n","import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\nimport LoginWrapper from \"../components/broker-login.page/login-wrapper\";\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { TITLES } from '../resources/constants';\n\ninterface BrokerAuthPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerLoginPage: React.FC<BrokerAuthPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n\n useEffect(() => {\n document.title = TITLES.BROKER_LOGIN_PAGE_TITLE;\n }, []);\n\n return (\n <Grid container spacing={0} justifyContent=\"center\" alignItems=\"center\" display=\"flex\" sx={{ minHeight: \"80dvh\" }}>\n <Container component=\"main\" maxWidth=\"xs\">\n <Card>\n <div className=\"sign-in-card-wrapper\">\n <LoginWrapper origin={id ?? \"\"}/>\n </div>\n </Card>\n </Container>\n </Grid>\n );\n};\n\nexport default BrokerLoginPage;"]}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { useNavigate } from 'react-router-dom';
3
+
4
+ interface BrokerSettingsPageProps {
5
+ navigate: ReturnType<typeof useNavigate>;
6
+ }
7
+ declare const BrokerSettingsPage: React.FC<BrokerSettingsPageProps>;
8
+
9
+ export { BrokerSettingsPage as default };
@@ -0,0 +1,129 @@
1
+ import { getSettings, logoutBroker } from '../chunk-CN3GJW6R.js';
2
+ import '../chunk-6B3NAL4F.js';
3
+ import { TITLES } from '../chunk-PWBSF4OA.js';
4
+ import { useState, useCallback, useEffect, useMemo } from 'react';
5
+ import Container from '@mui/material/Container';
6
+ import Grid from '@mui/material/Grid';
7
+ import Box from '@mui/material/Box';
8
+ import { LinkButton, Alerts, getDateDifference, getCurrentDateWithoutTime, getDateWithoutTime, Tooltip, configService } from 'sspart-fe-lib';
9
+ import Card from '@mui/material/Card';
10
+ import CardContent from '@mui/material/CardContent';
11
+ import { jsxs, jsx } from 'react/jsx-runtime';
12
+
13
+ var BROKERS_LOGIN = [
14
+ {
15
+ name: "Angel One",
16
+ key: "AngelOne",
17
+ external: false,
18
+ img: "https://i.imgur.com/CIuVKGC.png"
19
+ },
20
+ {
21
+ name: "Fyers",
22
+ key: "Fyers",
23
+ external: true,
24
+ img: "https://i.imgur.com/anU1KVh.png",
25
+ url: "FYERS"
26
+ }
27
+ ];
28
+ var getUrl = (key) => {
29
+ switch (key) {
30
+ case "FYERS":
31
+ const config = configService.getData();
32
+ return config["API_FYERS_LOGIN_URL"];
33
+ default:
34
+ return "";
35
+ }
36
+ };
37
+ var SETTINGS_HELP_TEXT = {
38
+ broker_signin: "Login to your broker account, by clicking on the below tiles"
39
+ };
40
+ var BrokerSignIn = ({ brokerAuth, onCallBack, navigate }) => {
41
+ const verifyLoggedIn = useCallback(
42
+ (brokerKey) => {
43
+ const loginDate = brokerAuth?.[brokerKey]?.loginDate ?? 0;
44
+ return getDateDifference(getCurrentDateWithoutTime(), getDateWithoutTime(loginDate)) >= 0;
45
+ },
46
+ [brokerAuth]
47
+ );
48
+ const onLogoutClick = useCallback(
49
+ async (event) => {
50
+ const brokerKey = event.currentTarget.name;
51
+ const response = await logoutBroker(brokerKey);
52
+ if (response) onCallBack();
53
+ },
54
+ [onCallBack]
55
+ );
56
+ const onClick = useCallback(
57
+ (name) => {
58
+ if (name) navigate(`/${name}`);
59
+ },
60
+ [navigate]
61
+ );
62
+ const brokerList = useMemo(() => {
63
+ return BROKERS_LOGIN.map((broker) => {
64
+ const isLoggedIn = verifyLoggedIn(broker.key);
65
+ return /* @__PURE__ */ jsxs(Grid, { size: { md: 3, sm: 4, xs: 6 }, display: "flex", flexDirection: "column", alignItems: "center", children: [
66
+ broker.external ? /* @__PURE__ */ jsx("a", { href: getUrl(broker.url), className: `broker-login-tile text-center noselect ${isLoggedIn ? "disabled" : ""}`, children: /* @__PURE__ */ jsxs("div", { children: [
67
+ /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: broker.img }),
68
+ /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: broker.name })
69
+ ] }) }) : /* @__PURE__ */ jsx(
70
+ LinkButton,
71
+ {
72
+ name: `broker/login/${broker.key}`,
73
+ onClick,
74
+ className: `broker-login-tile text-center noselect ${isLoggedIn ? "disabled" : ""}`,
75
+ children: /* @__PURE__ */ jsxs("div", { children: [
76
+ /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: broker.img }),
77
+ /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: broker.name })
78
+ ] })
79
+ }
80
+ ),
81
+ isLoggedIn && /* @__PURE__ */ jsx("button", { name: broker.key, className: "broker-logout mt-4", onClick: onLogoutClick, children: "Logout" })
82
+ ] }, broker.key);
83
+ });
84
+ }, [verifyLoggedIn, onClick, onLogoutClick]);
85
+ return /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(CardContent, { children: [
86
+ /* @__PURE__ */ jsxs(Grid, { container: true, direction: "row", alignItems: "center", justifyContent: "center", sx: { mb: 2 }, children: [
87
+ /* @__PURE__ */ jsx("h4", { className: "page-heading text-center", children: "Broker(s) login" }),
88
+ /* @__PURE__ */ jsx(Tooltip, { title: SETTINGS_HELP_TEXT.broker_signin, placement: "bottom" })
89
+ ] }),
90
+ /* @__PURE__ */ jsx(Grid, { container: true, spacing: 2, justifyContent: "center", sx: { textAlign: "center", pb: 2 }, children: brokerList })
91
+ ] }) });
92
+ };
93
+ var brokers_default = BrokerSignIn;
94
+ var BrokerSettingsPage = ({ navigate }) => {
95
+ const [settings, setSettings] = useState({
96
+ brokerAuth: {}
97
+ });
98
+ const fetchSettings = useCallback(async () => {
99
+ const response = await getSettings();
100
+ if (response) setSettings(response);
101
+ }, []);
102
+ useEffect(() => {
103
+ document.title = TITLES.BROKER_SETTINGS_PAGE_TITLE;
104
+ fetchSettings();
105
+ }, [fetchSettings]);
106
+ const onClick = (name) => {
107
+ if (name) navigate(`/${name}`);
108
+ };
109
+ return /* @__PURE__ */ jsxs(Container, { maxWidth: "md", sx: { mt: 2, mb: 4 }, children: [
110
+ /* @__PURE__ */ jsxs(Grid, { children: [
111
+ /* @__PURE__ */ jsx("h4", { className: "page-heading", children: "Broker Settings" }),
112
+ /* @__PURE__ */ jsxs("div", { className: "broker-settings-help", children: [
113
+ "Please click ",
114
+ /* @__PURE__ */ jsx(LinkButton, { name: "help", text: "here", onClick }),
115
+ " for help to login into broker(s)."
116
+ ] })
117
+ ] }),
118
+ /* @__PURE__ */ jsx(Box, { sx: { my: 2 } }),
119
+ /* @__PURE__ */ jsxs(Grid, { children: [
120
+ /* @__PURE__ */ jsx(Alerts, { id: "settings", className: "mt-2 mb-4" }),
121
+ /* @__PURE__ */ jsx(brokers_default, { brokerAuth: settings.brokerAuth, navigate, onCallBack: fetchSettings })
122
+ ] })
123
+ ] });
124
+ };
125
+ var broker_settings_page_default = BrokerSettingsPage;
126
+
127
+ export { broker_settings_page_default as default };
128
+ //# sourceMappingURL=broker-settings.page.js.map
129
+ //# sourceMappingURL=broker-settings.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/broker-settings.page/constants.tsx","../../src/components/broker-settings.page/brokers.tsx","../../src/pages/broker-settings.page.tsx"],"names":["useCallback","jsxs","Grid","jsx","LinkButton"],"mappings":"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","file":"broker-settings.page.js","sourcesContent":["import { configService } from \"sspart-fe-lib\";\n\nexport const BROKERS_LOGIN = [\n {\n name: \"Angel One\",\n key: \"AngelOne\",\n external: false,\n img: \"https://i.imgur.com/CIuVKGC.png\"\n },{\n name: \"Fyers\",\n key: \"Fyers\",\n external: true,\n img: \"https://i.imgur.com/anU1KVh.png\",\n url: \"FYERS\"\n }\n]\n\nexport const getUrl = (key?: string) : string => {\n switch (key) {\n case \"FYERS\":\n const config = configService.getData();\n return config[\"API_FYERS_LOGIN_URL\"];\n default:\n return \"\";\n }\n}\n\nexport const SETTINGS_HELP_TEXT = {\n broker_signin: \"Login to your broker account, by clicking on the below tiles\"\n}","import React, { useCallback, useMemo } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Grid from \"@mui/material/Grid\";\nimport { logoutBroker } from \"../broker-login.page/api-calls\";\nimport { getCurrentDateWithoutTime, getDateDifference, \n getDateWithoutTime, LinkButton, Tooltip } from \"sspart-fe-lib\";\nimport { BROKERS_LOGIN, getUrl, SETTINGS_HELP_TEXT } from \"./constants\";\n\ninterface BrokerSignInProps {\n brokerAuth: Record<string, { loginDate: number }>;\n onCallBack: () => void;\n navigate: ReturnType<typeof useNavigate>;\n}\n\ninterface Broker {\n key: string;\n name: string;\n img: string;\n url?: string;\n external?: boolean;\n}\n\nconst BrokerSignIn: React.FC<BrokerSignInProps> = ({ brokerAuth, onCallBack, navigate }) => {\n\n const verifyLoggedIn = useCallback(\n (brokerKey: string): boolean => {\n const loginDate = brokerAuth?.[brokerKey]?.loginDate ?? 0;\n return getDateDifference(getCurrentDateWithoutTime(), getDateWithoutTime(loginDate)) >= 0;\n },\n [brokerAuth]\n );\n\n const onLogoutClick = useCallback(\n async (event: React.MouseEvent<HTMLButtonElement>) => {\n const brokerKey = event.currentTarget.name;\n const response = await logoutBroker(brokerKey);\n if (response) onCallBack();\n },\n [onCallBack]\n );\n\n const onClick = useCallback(\n (name?: string) => {\n if (name) navigate(`/${name}`);\n },\n [navigate]\n );\n\n const brokerList = useMemo(() => {\n return BROKERS_LOGIN.map((broker: Broker) => {\n const isLoggedIn = verifyLoggedIn(broker.key);\n\n return (\n <Grid key={broker.key} size={{md:3, sm:4, xs: 6}} display='flex' flexDirection='column' alignItems='center'>\n {broker.external ? (\n <a href={getUrl(broker.url)} className={`broker-login-tile text-center noselect ${isLoggedIn ? \"disabled\" : \"\"}`}>\n <div>\n <img className=\"broker-login-logo\" alt=\"broker-logo\" src={broker.img} />\n <div className=\"broker-login-text\">{broker.name}</div>\n </div>\n </a>\n ) : (\n <LinkButton name={`broker/login/${broker.key}`} onClick={onClick}\n className={`broker-login-tile text-center noselect ${isLoggedIn ? \"disabled\" : \"\"}`} >\n <div>\n <img className=\"broker-login-logo\" alt=\"broker-logo\" src={broker.img} />\n <div className=\"broker-login-text\">{broker.name}</div>\n </div>\n </LinkButton>\n )}\n {isLoggedIn && (\n <button name={broker.key} className=\"broker-logout mt-4\" onClick={onLogoutClick}>\n Logout\n </button>\n )}\n </Grid>\n );\n });\n }, [verifyLoggedIn, onClick, onLogoutClick]);\n\n return (\n <Card>\n <CardContent>\n <Grid container direction=\"row\" alignItems=\"center\" justifyContent='center' sx={{ mb: 2 }}>\n <h4 className=\"page-heading text-center\">Broker(s) login</h4>\n <Tooltip title={SETTINGS_HELP_TEXT.broker_signin} placement=\"bottom\" />\n </Grid>\n <Grid container spacing={2} justifyContent=\"center\" sx={{ textAlign: \"center\", pb: 2 }}>\n {brokerList}\n </Grid>\n </CardContent>\n </Card>\n );\n};\n\nexport default BrokerSignIn;","import React, { useEffect, useState, useCallback } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Container from \"@mui/material/Container\";\nimport Grid from '@mui/material/Grid';\nimport Box from \"@mui/material/Box\";\nimport { TITLES } from '../resources/constants';\nimport { getSettings } from '../components/broker-login.page/api-calls';\nimport { Alerts, LinkButton } from 'sspart-fe-lib';\nimport BrokerSignIn from '../components/broker-settings.page/brokers';\n\ninterface BrokerSettingsPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerSettingsPage: React.FC<BrokerSettingsPageProps> = ({ navigate }) => {\n\n const [settings, setSettings] = useState({\n brokerAuth: {}\n });\n\n const fetchSettings = useCallback(async () => {\n const response = await getSettings();\n if (response) setSettings(response);\n }, []);\n\n useEffect(() => {\n document.title = TITLES.BROKER_SETTINGS_PAGE_TITLE;\n fetchSettings();\n }, [fetchSettings]);\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <Container maxWidth=\"md\" sx={{ mt: 2, mb: 4 }}>\n <Grid>\n <h4 className=\"page-heading\">Broker Settings</h4>\n <div className=\"broker-settings-help\">\n Please click <LinkButton name=\"help\" text=\"here\" onClick={onClick} /> for help to login into broker(s).\n </div>\n </Grid>\n <Box sx={{ my: 2 }} />\n <Grid>\n <Alerts id=\"settings\" className=\"mt-2 mb-4\" />\n <BrokerSignIn brokerAuth={settings.brokerAuth} navigate={navigate} onCallBack={fetchSettings}/>\n </Grid>\n </Container>\n );\n};\n\nexport default BrokerSettingsPage;"]}
@@ -1,5 +1,5 @@
1
+ import { TITLES } from '../chunk-PWBSF4OA.js';
1
2
  import { error_default } from '../chunk-VPKSRGR2.js';
2
- import { TITLES } from '../chunk-IYKARRP3.js';
3
3
  import { useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,6 +1,6 @@
1
- import { header_default } from '../chunk-IRLSI36D.js';
2
- import { TITLES } from '../chunk-IYKARRP3.js';
3
- import { IMAGE_LINKS } from '../chunk-F4BCZYRK.js';
1
+ import { TITLES } from '../chunk-PWBSF4OA.js';
2
+ import { header_default } from '../chunk-LLX3WGKJ.js';
3
+ import { IMAGE_LINKS } from '../chunk-767TKJQF.js';
4
4
  import { useEffect } from 'react';
5
5
  import Box from '@mui/material/Box';
6
6
  import { useTheme } from '@mui/material/styles';
@@ -1,4 +1,4 @@
1
- import { ON_RESIZE } from '../chunk-IYKARRP3.js';
1
+ import { ON_RESIZE } from '../chunk-PWBSF4OA.js';
2
2
  import { Resize } from 'sspart-fe-lib';
3
3
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { error_default } from '../chunk-VPKSRGR2.js';
2
- import { header_default } from '../chunk-IRLSI36D.js';
3
- import { IMAGE_LINKS } from '../chunk-F4BCZYRK.js';
2
+ import { header_default } from '../chunk-LLX3WGKJ.js';
3
+ import { IMAGE_LINKS } from '../chunk-767TKJQF.js';
4
4
  import Box from '@mui/material/Box';
5
5
  import { auth, Loading } from 'sspart-fe-lib';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,57 +1,29 @@
1
- import { TITLES } from '../chunk-IYKARRP3.js';
2
- import { IMAGE_LINKS } from '../chunk-F4BCZYRK.js';
1
+ import { login_image_default } from '../chunk-4H3O2JGN.js';
2
+ import { STATUS_CODE_MESSAGES } from '../chunk-IBJKEVYR.js';
3
+ import { CUSTOMER_ROUTES } from '../chunk-6B3NAL4F.js';
4
+ import { TITLES } from '../chunk-PWBSF4OA.js';
5
+ import { IMAGE_LINKS } from '../chunk-767TKJQF.js';
3
6
  import Container from '@mui/material/Container';
4
7
  import Card from '@mui/material/Card';
5
- import Grid2 from '@mui/material/Grid';
8
+ import Grid from '@mui/material/Grid';
6
9
  import { useEffect, useState } from 'react';
7
10
  import Box from '@mui/material/Box';
8
- import { alertService, Alerts, Textbox, PasswordTextbox, CheckBox, LinkButton, Button, setLocalStorage, planAuth, auth, postcall, configService } from 'sspart-fe-lib';
11
+ import { alertService, Alerts, Textbox, PasswordTextbox, CheckBox, LinkButton, Button, setLocalStorage, planAuth, auth, postcall } from 'sspart-fe-lib';
9
12
  import { jsx, jsxs } from 'react/jsx-runtime';
10
- import Typography from '@mui/material/Typography';
11
13
 
12
14
  var FooterLinks = ({ navigate, link1, title1, link2, title2 }) => {
13
15
  const onClick = (name) => {
14
16
  if (name) navigate(`${name}`);
15
17
  };
16
- return /* @__PURE__ */ jsxs(Grid2, { container: true, justifyContent: "space-between", alignItems: "center", children: [
17
- /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(LinkButton, { className: "small-btn-link-p", name: link1, text: title1, onClick }) }),
18
- /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(LinkButton, { className: "small-btn-link-p", name: link2, text: title2, onClick }) })
18
+ return /* @__PURE__ */ jsxs(Grid, { container: true, justifyContent: "space-between", alignItems: "center", children: [
19
+ /* @__PURE__ */ jsx(Grid, { children: /* @__PURE__ */ jsx(LinkButton, { className: "small-btn-link-p", name: link1, text: title1, onClick }) }),
20
+ /* @__PURE__ */ jsx(Grid, { children: /* @__PURE__ */ jsx(LinkButton, { className: "small-btn-link-p", name: link2, text: title2, onClick }) })
19
21
  ] });
20
22
  };
21
23
  var footer_links_default = FooterLinks;
22
- var LoginImage = ({ image, title }) => {
23
- return /* @__PURE__ */ jsxs("div", { children: [
24
- /* @__PURE__ */ jsx(Grid2, { mt: 1, children: /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx("img", { className: "sign-in-logo", alt: "...", src: image }) }) }),
25
- /* @__PURE__ */ jsx(Grid2, { mt: 1, children: /* @__PURE__ */ jsx(Grid2, { textAlign: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "h6", color: "var(--primary-color)", children: title }) }) })
26
- ] });
27
- };
28
- var login_image_default = LoginImage;
29
- var ROUTE_MAP = {
30
- signin: { service: "user", path: "/user/signin" }
31
- };
32
- function CUSTOMER_ROUTES(routeKey) {
33
- const config = configService.getData();
34
- const HOST_MAP = {
35
- user: config.API_USER_API_HOST,
36
- trade: config.API_TRADE_API_HOST
37
- };
38
- const route = ROUTE_MAP[routeKey];
39
- const host = HOST_MAP[route.service];
40
- return `${host}${route.path}`;
41
- }
42
-
43
- // src/components/signin.page/api-calls.tsx
44
24
  var login = async (username, password, tandc, rememberme) => {
45
25
  return await postcall(CUSTOMER_ROUTES("signin"), { username, password, tandc, rememberme }, "sign-in");
46
26
  };
47
-
48
- // src/resources/status.tsx
49
- var STATUS_CODE_MESSAGES = {
50
- PLEASE_ENTER_USERNAME: "Please provide a valid Username",
51
- PLEASE_ENTER_PASSWORD: "Please provide a valid Password"
52
- };
53
-
54
- // src/components/signin.page/business-rules.tsx
55
27
  var validateLoginForm = (data) => {
56
28
  const errors = {};
57
29
  if (!data.username) {
@@ -99,7 +71,7 @@ var SignIn = ({ navigate }) => {
99
71
  const onClick = (name) => {
100
72
  if (name) navigate(`/${name}`);
101
73
  };
102
- return /* @__PURE__ */ jsxs(Grid2, { container: true, direction: "column", alignItems: "center", justifyContent: "center", children: [
74
+ return /* @__PURE__ */ jsxs(Grid, { container: true, direction: "column", alignItems: "center", justifyContent: "center", children: [
103
75
  /* @__PURE__ */ jsx(login_image_default, { image: IMAGE_LINKS.NAMELOGO, title: "Sign in" }),
104
76
  /* @__PURE__ */ jsxs(Box, { component: "form", onSubmit: handleSubmit, noValidate: true, sx: { m: 0, width: "100%" }, children: [
105
77
  /* @__PURE__ */ jsx(Alerts, { id: "sign-in", className: "mt-2 mb-4" }),
@@ -175,7 +147,7 @@ var SigninPage = ({ navigate }) => {
175
147
  useEffect(() => {
176
148
  document.title = TITLES.SIGN_IN_PAGE_TITLE;
177
149
  }, []);
178
- return /* @__PURE__ */ jsx(Grid2, { container: true, spacing: 0, direction: "row", alignItems: "center", justifyContent: "center", className: "full-hw-window", children: /* @__PURE__ */ jsx(Container, { component: "main", maxWidth: "xs", children: /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx("div", { className: "sign-in-card-wrapper modal-body", children: /* @__PURE__ */ jsx(sign_in_default, { navigate }) }) }) }) });
150
+ return /* @__PURE__ */ jsx(Grid, { container: true, spacing: 0, direction: "row", alignItems: "center", justifyContent: "center", className: "full-hw-window", children: /* @__PURE__ */ jsx(Container, { component: "main", maxWidth: "xs", children: /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx("div", { className: "sign-in-card-wrapper modal-body", children: /* @__PURE__ */ jsx(sign_in_default, { navigate }) }) }) }) });
179
151
  };
180
152
  var signin_page_default = SigninPage;
181
153
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/signin.page/footer-links.tsx","../../src/components/common/login-image.tsx","../../src/resources/routes.tsx","../../src/components/signin.page/api-calls.tsx","../../src/resources/status.tsx","../../src/components/signin.page/business-rules.tsx","../../src/components/signin.page/sign-in.tsx","../../src/pages/signin.page.tsx"],"names":["Grid","jsxs","jsx","alertService","username","LinkButton","useEffect"],"mappings":"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","file":"signin.page.js","sourcesContent":["import Grid from '@mui/material/Grid';\nimport { useNavigate } from 'react-router-dom';\nimport { LinkButton } from \"sspart-fe-lib\";\n\ninterface FooterLinksProps {\n navigate: ReturnType<typeof useNavigate>;\n link1: string;\n title1: string;\n link2: string;\n title2: string;\n}\n\nconst FooterLinks: React.FC<FooterLinksProps> = ({ navigate, link1, title1, link2, title2 }) => {\n \n const onClick = (name?: string) => {\n if (name) navigate(`${name}`);\n };\n\n return (\n <Grid container justifyContent=\"space-between\" alignItems=\"center\">\n <Grid>\n <LinkButton className=\"small-btn-link-p\" name={link1} text={title1} onClick={onClick}/>\n </Grid>\n <Grid>\n <LinkButton className=\"small-btn-link-p\" name={link2} text={title2} onClick={onClick}/>\n </Grid>\n </Grid>\n );\n};\n\nexport default FooterLinks;\n","import Typography from '@mui/material/Typography';\nimport Grid from '@mui/material/Grid';\n\ninterface LoginImageProps {\n image: string;\n title: string;\n}\n\nconst LoginImage: React.FC<LoginImageProps> = ({ image, title }) => {\n\n return (\n <div >\n <Grid mt={1}>\n <Grid>\n <img className=\"sign-in-logo\" alt=\"...\" src={image}></img>\n </Grid>\n </Grid>\n <Grid mt={1}>\n <Grid textAlign=\"center\">\n <Typography variant=\"h6\" color=\"var(--primary-color)\">\n {title}\n </Typography>\n </Grid>\n </Grid>\n </div>\n );\n \n}\n\nexport default LoginImage;","import { configService } from \"sspart-fe-lib\";\n\nconst ROUTE_MAP = {\n signin: { service: \"user\", path: \"/user/signin\" },\n} as const;\n\nexport type CustomerRouteKey = keyof typeof ROUTE_MAP;\n\nexport function CUSTOMER_ROUTES(routeKey: CustomerRouteKey): string {\n const config = configService.getData();\n\n const HOST_MAP = {\n user: config.API_USER_API_HOST,\n trade: config.API_TRADE_API_HOST,\n } as const;\n\n const route = ROUTE_MAP[routeKey];\n const host = HOST_MAP[route.service];\n\n return `${host}${route.path}`;\n}\n","import { postcall } from \"sspart-fe-lib\";\nimport { CUSTOMER_ROUTES } from \"../../resources/routes\";\n\nexport const login = async (username: string, password: string, tandc: boolean, rememberme: boolean) => {\n return await postcall(CUSTOMER_ROUTES(\"signin\"), { username, password, tandc, rememberme }, \"sign-in\");\n};","export const STATUS_CODE_MESSAGES = {\n PLEASE_ENTER_USERNAME: \"Please provide a valid Username\",\n PLEASE_ENTER_PASSWORD: \"Please provide a valid Password\",\n}","import { alertService } from 'sspart-fe-lib';\nimport { STATUS_CODE_MESSAGES } from '../../resources/status';\n\nexport const validateLoginForm = (data: any) => {\n const errors: Record<string, string> = {};\n\n if (!data.username) {\n errors[\"username\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;\n }\n\n if (!data.password) {\n errors[\"password\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;\n }\n\n alertService.setData(errors);\n\n return Object.keys(errors).length === 0;\n};\n","import { useState, useEffect } from \"react\";\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport FooterLinks from \"./footer-links\";\nimport LoginImage from \"../common/login-image\";\nimport { login } from \"./api-calls\";\nimport { validateLoginForm } from \"./business-rules\";\nimport { alertService, auth, planAuth, setLocalStorage, Alerts,\n Button, PasswordTextbox, Textbox, CheckBox, LinkButton\n } from \"sspart-fe-lib\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface SignInProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst SignIn: React.FC<SignInProps> = ({ navigate }) => {\n\n const [validationErrors, setValidationErrors] = useState<Record<string, string>>({});\n const [formData, setFormData] = useState({\n username: \"\",\n password: \"\",\n tandc: false,\n rememberme: false,\n });\n\n useEffect(() => {\n return () => {\n alertService.resetData();\n };\n }, []);\n\n const handleChange = (name: string, value: any) => {\n setFormData({ ...formData, [name]: value });\n };\n\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n if (validateLoginForm(formData)) {\n alertService.resetData();\n const { username, password, tandc, rememberme } = formData;\n const result = await login(username, password, tandc, rememberme);\n if (result && result.username) {\n const { username, fullname, permissions } = result;\n setLocalStorage(\"username\", username);\n setLocalStorage(\"fullname\", fullname);\n planAuth.setData({ username, fullname, permissions });\n auth.authenticate(() => navigate('/dashboard'));\n }\n } else {\n setValidationErrors(alertService.getData());\n }\n };\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <Grid container direction=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <LoginImage image={IMAGE_LINKS.NAMELOGO} title=\"Sign in\" />\n <Box component=\"form\" onSubmit={handleSubmit} noValidate sx={{ m: 0, width: \"100%\" }}>\n <Alerts id=\"sign-in\" className=\"mt-2 mb-4\"/>\n <Textbox id=\"username\" name=\"username\" type=\"text\" placeholder=\"Username\" size=\"medium\"\n validation={validationErrors.username} value={formData.username}\n onChange={handleChange} mandate={true} />\n <Box sx={{ mb: 2 }}/>\n <PasswordTextbox id=\"password\" name=\"password\" placeholder=\"Password\" size=\"medium\"\n validation={validationErrors.password} value={formData.password}\n onChange={handleChange} mandate={true} />\n <Box sx={{ mb: 2 }}/>\n <CheckBox name=\"rememberme\" label=\"Remember me\" value={formData.rememberme}\n onChange={handleChange} />\n <CheckBox name=\"tandc\" value={formData.tandc} validation={validationErrors.tandc}\n label={<span>I agree to DheQuest's <LinkButton name=\"terms\" text=\"Terms & Conditions\" onClick={onClick}/></span>}\n onChange={handleChange} />\n <Box sx={{ mb: 2 }}/>\n <Button text=\"Sign In\" type=\"submit\"/>\n <Box sx={{ mb: 2 }}/>\n <FooterLinks navigate={navigate} \n link1=\"/user/forget-password\" title1=\"Forgot password?\"\n link2=\"/signup\" title2=\"Don't have an account? Sign Up\" />\n </Box>\n </Grid>\n );\n};\n\nexport default SignIn;","import Container from '@mui/material/Container';\nimport Card from '@mui/material/Card';\nimport Grid from '@mui/material/Grid';\nimport { useEffect } from \"react\";\nimport SignIn from '../components/signin.page/sign-in';\nimport { TITLES } from '../resources/constants';\nimport { useNavigate } from 'react-router-dom';\n\ninterface SigninPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst SigninPage: React.FC<SigninPageProps> = ({ navigate }) => {\n\n\tuseEffect(() => {\n\t\tdocument.title = TITLES.SIGN_IN_PAGE_TITLE;\n\t}, []);\n\n\treturn (\n\t\t<Grid container spacing={0} direction=\"row\" alignItems=\"center\" justifyContent=\"center\" className='full-hw-window'>\n\t\t\t<Container component=\"main\" maxWidth=\"xs\">\n\t\t\t\t<Card >\n\t\t\t\t\t<div className=\"sign-in-card-wrapper modal-body\">\n\t\t\t\t\t\t<SignIn navigate={navigate}/>\n\t\t\t\t\t</div>\n\t\t\t\t</Card>\n\t\t\t</Container>\n\t\t</Grid>\n\t);\n}\n\nexport default SigninPage;"]}
1
+ {"version":3,"sources":["../../src/components/signin.page/footer-links.tsx","../../src/components/signin.page/api-calls.tsx","../../src/components/signin.page/business-rules.tsx","../../src/components/signin.page/sign-in.tsx","../../src/pages/signin.page.tsx"],"names":["alertService","username","jsxs","Grid","jsx","LinkButton","useEffect"],"mappings":";;;;;;;;;;;;;AAYA,IAAM,WAAA,GAA0C,CAAC,EAAE,QAAA,EAAU,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAO,KAAM;AAE5F,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AAC/B,IAAA,IAAI,IAAA,EAAM,QAAA,CAAS,CAAA,EAAG,IAAI,CAAA,CAAE,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,4BACK,IAAA,EAAA,EAAK,SAAA,EAAS,MAAC,cAAA,EAAe,eAAA,EAAgB,YAAW,QAAA,EACtD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,kBAAA,EAAmB,MAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAiB,CAAA,EACzF,CAAA;AAAA,oBACA,GAAA,CAAC,IAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,kBAAA,EAAmB,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAiB,CAAA,EACzF;AAAA,GAAA,EACJ,CAAA;AAER,CAAA;AAEA,IAAO,oBAAA,GAAQ,WAAA;AC3BR,IAAM,KAAA,GAAQ,OAAO,QAAA,EAAkB,QAAA,EAAkB,OAAgB,UAAA,KAAwB;AACpG,EAAA,OAAO,MAAM,QAAA,CAAS,eAAA,CAAgB,QAAQ,CAAA,EAAG,EAAE,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,UAAA,EAAW,EAAG,SAAS,CAAA;AACzG,CAAA;ACFO,IAAM,iBAAA,GAAoB,CAAC,IAAA,KAAc;AAC5C,EAAA,MAAM,SAAiC,EAAC;AAExC,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAChB,IAAA,MAAA,CAAO,UAAU,IAAI,oBAAA,CAAqB,qBAAA;AAAA,EAC9C;AAEA,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAChB,IAAA,MAAA,CAAO,UAAU,IAAI,oBAAA,CAAqB,qBAAA;AAAA,EAC9C;AAEA,EAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAE3B,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,KAAW,CAAA;AAC1C,CAAA;ACAA,IAAM,MAAA,GAAgC,CAAC,EAAE,QAAA,EAAS,KAAM;AAEpD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,QAAA,CAAiC,EAAE,CAAA;AACnF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAAA,CAAS;AAAA,IACrC,QAAA,EAAU,EAAA;AAAA,IACV,QAAA,EAAU,EAAA;AAAA,IACV,KAAA,EAAO,KAAA;AAAA,IACP,UAAA,EAAY;AAAA,GACf,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,OAAO,MAAM;AACT,MAAAA,aAAa,SAAA,EAAU;AAAA,IAC3B,CAAA;AAAA,EACJ,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,EAAc,KAAA,KAAe;AAC/C,IAAA,WAAA,CAAY,EAAE,GAAG,QAAA,EAAU,CAAC,IAAI,GAAG,OAAO,CAAA;AAAA,EAC9C,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,OAAO,CAAA,KAAW;AACnC,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAI,iBAAA,CAAkB,QAAQ,CAAA,EAAG;AAC7B,MAAAA,aAAa,SAAA,EAAU;AACvB,MAAA,MAAM,EAAE,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,YAAW,GAAI,QAAA;AAClD,MAAA,MAAM,SAAS,MAAM,KAAA,CAAM,QAAA,EAAU,QAAA,EAAU,OAAO,UAAU,CAAA;AAChE,MAAA,IAAI,MAAA,IAAU,OAAO,QAAA,EAAU;AAC3B,QAAA,MAAM,EAAE,QAAA,EAAAC,SAAAA,EAAU,QAAA,EAAU,aAAY,GAAI,MAAA;AAC5C,QAAA,eAAA,CAAgB,YAAYA,SAAQ,CAAA;AACpC,QAAA,eAAA,CAAgB,YAAY,QAAQ,CAAA;AACpC,QAAA,QAAA,CAAS,QAAQ,EAAE,QAAA,EAAAA,SAAAA,EAAU,QAAA,EAAU,aAAa,CAAA;AACpD,QAAA,IAAA,CAAK,YAAA,CAAa,MAAM,QAAA,CAAS,YAAY,CAAC,CAAA;AAAA,MAClD;AAAA,IACJ,CAAA,MAAO;AACH,MAAA,mBAAA,CAAoBD,YAAAA,CAAa,SAAS,CAAA;AAAA,IAC9C;AAAA,EACJ,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AAC/B,IAAA,IAAI,IAAA,EAAM,QAAA,CAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,uBACIE,IAAAA,CAACC,IAAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,SAAA,EAAU,QAAA,EAAS,UAAA,EAAW,QAAA,EAAS,cAAA,EAAe,QAAA,EAClE,QAAA,EAAA;AAAA,oBAAAC,IAAC,mBAAA,EAAA,EAAW,KAAA,EAAO,WAAA,CAAY,QAAA,EAAU,OAAM,SAAA,EAAU,CAAA;AAAA,oBACzDF,IAAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAU,QAAO,QAAA,EAAU,YAAA,EAAc,UAAA,EAAU,IAAA,EAAC,IAAI,EAAE,CAAA,EAAG,CAAA,EAAG,KAAA,EAAO,QAAO,EAC/E,QAAA,EAAA;AAAA,sBAAAE,GAAAA,CAAC,MAAA,EAAA,EAAO,EAAA,EAAG,SAAA,EAAU,WAAU,WAAA,EAAW,CAAA;AAAA,sBAC1CA,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UAAQ,EAAA,EAAG,UAAA;AAAA,UAAW,IAAA,EAAK,UAAA;AAAA,UAAW,IAAA,EAAK,MAAA;AAAA,UAAO,WAAA,EAAY,UAAA;AAAA,UAAW,IAAA,EAAK,QAAA;AAAA,UAC3E,YAAY,gBAAA,CAAiB,QAAA;AAAA,UAAU,OAAO,QAAA,CAAS,QAAA;AAAA,UACvD,QAAA,EAAU,YAAA;AAAA,UAAc,OAAA,EAAS;AAAA;AAAA,OAAM;AAAA,sBAC3CA,GAAAA,CAAC,GAAA,EAAA,EAAI,IAAI,EAAE,EAAA,EAAI,GAAE,EAAE,CAAA;AAAA,sBACnBA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UAAgB,EAAA,EAAG,UAAA;AAAA,UAAW,IAAA,EAAK,UAAA;AAAA,UAAW,WAAA,EAAY,UAAA;AAAA,UAAW,IAAA,EAAK,QAAA;AAAA,UACvE,YAAY,gBAAA,CAAiB,QAAA;AAAA,UAAU,OAAO,QAAA,CAAS,QAAA;AAAA,UACvD,QAAA,EAAU,YAAA;AAAA,UAAc,OAAA,EAAS;AAAA;AAAA,OAAM;AAAA,sBAC3CA,GAAAA,CAAC,GAAA,EAAA,EAAI,IAAI,EAAE,EAAA,EAAI,GAAE,EAAE,CAAA;AAAA,sBACnBA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAAS,IAAA,EAAK,YAAA;AAAA,UAAa,KAAA,EAAM,aAAA;AAAA,UAAc,OAAO,QAAA,CAAS,UAAA;AAAA,UAC5D,QAAA,EAAU;AAAA;AAAA,OAAc;AAAA,sBAC5BA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAAS,IAAA,EAAK,OAAA;AAAA,UAAQ,OAAO,QAAA,CAAS,KAAA;AAAA,UAAO,YAAY,gBAAA,CAAiB,KAAA;AAAA,UACvE,KAAA,kBAAOF,IAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,YAAA,wBAAA;AAAA,4BAAsBE,IAACC,UAAAA,EAAA,EAAW,MAAK,OAAA,EAAQ,IAAA,EAAK,sBAAqB,OAAA,EAAiB;AAAA,WAAA,EAAE,CAAA;AAAA,UACzG,QAAA,EAAU;AAAA;AAAA,OAAc;AAAA,sBAC5BD,GAAAA,CAAC,GAAA,EAAA,EAAI,IAAI,EAAE,EAAA,EAAI,GAAE,EAAE,CAAA;AAAA,sBACnBA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,SAAA,EAAU,MAAK,QAAA,EAAQ,CAAA;AAAA,sBACpCA,GAAAA,CAAC,GAAA,EAAA,EAAI,IAAI,EAAE,EAAA,EAAI,GAAE,EAAE,CAAA;AAAA,sBACnBA,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UAAY,QAAA;AAAA,UACT,KAAA,EAAM,uBAAA;AAAA,UAAwB,MAAA,EAAO,kBAAA;AAAA,UACrC,KAAA,EAAM,SAAA;AAAA,UAAU,MAAA,EAAO;AAAA;AAAA;AAAiC,KAAA,EAChE;AAAA,GAAA,EACJ,CAAA;AAER,CAAA;AAEA,IAAO,eAAA,GAAQ,MAAA;AC5Ef,IAAM,UAAA,GAAwC,CAAC,EAAE,QAAA,EAAS,KAAM;AAE/D,EAAAE,UAAU,MAAM;AACf,IAAA,QAAA,CAAS,QAAQ,MAAA,CAAO,kBAAA;AAAA,EACzB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACCF,GAAAA,CAACD,IAAAA,EAAA,EAAK,SAAA,EAAS,MAAC,OAAA,EAAS,CAAA,EAAG,SAAA,EAAU,KAAA,EAAM,YAAW,QAAA,EAAS,cAAA,EAAe,UAAS,SAAA,EAAU,gBAAA,EACjG,0BAAAC,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,MAAA,EAAO,UAAS,IAAA,EACpC,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EACA,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACd,0BAAAA,GAAAA,CAAC,eAAA,EAAA,EAAO,UAAmB,CAAA,EAC5B,CAAA,EACD,GACD,CAAA,EACD,CAAA;AAEF,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"signin.page.js","sourcesContent":["import Grid from '@mui/material/Grid';\nimport { useNavigate } from 'react-router-dom';\nimport { LinkButton } from \"sspart-fe-lib\";\n\ninterface FooterLinksProps {\n navigate: ReturnType<typeof useNavigate>;\n link1: string;\n title1: string;\n link2: string;\n title2: string;\n}\n\nconst FooterLinks: React.FC<FooterLinksProps> = ({ navigate, link1, title1, link2, title2 }) => {\n \n const onClick = (name?: string) => {\n if (name) navigate(`${name}`);\n };\n\n return (\n <Grid container justifyContent=\"space-between\" alignItems=\"center\">\n <Grid>\n <LinkButton className=\"small-btn-link-p\" name={link1} text={title1} onClick={onClick}/>\n </Grid>\n <Grid>\n <LinkButton className=\"small-btn-link-p\" name={link2} text={title2} onClick={onClick}/>\n </Grid>\n </Grid>\n );\n};\n\nexport default FooterLinks;\n","import { postcall } from \"sspart-fe-lib\";\nimport { CUSTOMER_ROUTES } from \"../../resources/routes\";\n\nexport const login = async (username: string, password: string, tandc: boolean, rememberme: boolean) => {\n return await postcall(CUSTOMER_ROUTES(\"signin\"), { username, password, tandc, rememberme }, \"sign-in\");\n};","import { alertService } from 'sspart-fe-lib';\nimport { STATUS_CODE_MESSAGES } from '../../resources/status';\n\nexport const validateLoginForm = (data: any) => {\n const errors: Record<string, string> = {};\n\n if (!data.username) {\n errors[\"username\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;\n }\n\n if (!data.password) {\n errors[\"password\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;\n }\n\n alertService.setData(errors);\n\n return Object.keys(errors).length === 0;\n};\n","import { useState, useEffect } from \"react\";\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport FooterLinks from \"./footer-links\";\nimport LoginImage from \"../common/login-image\";\nimport { login } from \"./api-calls\";\nimport { validateLoginForm } from \"./business-rules\";\nimport { alertService, auth, planAuth, setLocalStorage, Alerts,\n Button, PasswordTextbox, Textbox, CheckBox, LinkButton\n } from \"sspart-fe-lib\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface SignInProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst SignIn: React.FC<SignInProps> = ({ navigate }) => {\n\n const [validationErrors, setValidationErrors] = useState<Record<string, string>>({});\n const [formData, setFormData] = useState({\n username: \"\",\n password: \"\",\n tandc: false,\n rememberme: false,\n });\n\n useEffect(() => {\n return () => {\n alertService.resetData();\n };\n }, []);\n\n const handleChange = (name: string, value: any) => {\n setFormData({ ...formData, [name]: value });\n };\n\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n if (validateLoginForm(formData)) {\n alertService.resetData();\n const { username, password, tandc, rememberme } = formData;\n const result = await login(username, password, tandc, rememberme);\n if (result && result.username) {\n const { username, fullname, permissions } = result;\n setLocalStorage(\"username\", username);\n setLocalStorage(\"fullname\", fullname);\n planAuth.setData({ username, fullname, permissions });\n auth.authenticate(() => navigate('/dashboard'));\n }\n } else {\n setValidationErrors(alertService.getData());\n }\n };\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <Grid container direction=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <LoginImage image={IMAGE_LINKS.NAMELOGO} title=\"Sign in\" />\n <Box component=\"form\" onSubmit={handleSubmit} noValidate sx={{ m: 0, width: \"100%\" }}>\n <Alerts id=\"sign-in\" className=\"mt-2 mb-4\"/>\n <Textbox id=\"username\" name=\"username\" type=\"text\" placeholder=\"Username\" size=\"medium\"\n validation={validationErrors.username} value={formData.username}\n onChange={handleChange} mandate={true} />\n <Box sx={{ mb: 2 }}/>\n <PasswordTextbox id=\"password\" name=\"password\" placeholder=\"Password\" size=\"medium\"\n validation={validationErrors.password} value={formData.password}\n onChange={handleChange} mandate={true} />\n <Box sx={{ mb: 2 }}/>\n <CheckBox name=\"rememberme\" label=\"Remember me\" value={formData.rememberme}\n onChange={handleChange} />\n <CheckBox name=\"tandc\" value={formData.tandc} validation={validationErrors.tandc}\n label={<span>I agree to DheQuest's <LinkButton name=\"terms\" text=\"Terms & Conditions\" onClick={onClick}/></span>}\n onChange={handleChange} />\n <Box sx={{ mb: 2 }}/>\n <Button text=\"Sign In\" type=\"submit\"/>\n <Box sx={{ mb: 2 }}/>\n <FooterLinks navigate={navigate} \n link1=\"/user/forget-password\" title1=\"Forgot password?\"\n link2=\"/signup\" title2=\"Don't have an account? Sign Up\" />\n </Box>\n </Grid>\n );\n};\n\nexport default SignIn;","import Container from '@mui/material/Container';\nimport Card from '@mui/material/Card';\nimport Grid from '@mui/material/Grid';\nimport { useEffect } from \"react\";\nimport SignIn from '../components/signin.page/sign-in';\nimport { TITLES } from '../resources/constants';\nimport { useNavigate } from 'react-router-dom';\n\ninterface SigninPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst SigninPage: React.FC<SigninPageProps> = ({ navigate }) => {\n\n\tuseEffect(() => {\n\t\tdocument.title = TITLES.SIGN_IN_PAGE_TITLE;\n\t}, []);\n\n\treturn (\n\t\t<Grid container spacing={0} direction=\"row\" alignItems=\"center\" justifyContent=\"center\" className='full-hw-window'>\n\t\t\t<Container component=\"main\" maxWidth=\"xs\">\n\t\t\t\t<Card >\n\t\t\t\t\t<div className=\"sign-in-card-wrapper modal-body\">\n\t\t\t\t\t\t<SignIn navigate={navigate}/>\n\t\t\t\t\t</div>\n\t\t\t\t</Card>\n\t\t\t</Container>\n\t\t</Grid>\n\t);\n}\n\nexport default SigninPage;"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dq-cus-lib",
3
- "version": "1.1.7",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -14,11 +14,18 @@
14
14
  "./pages/landing.page": "./dist/pages/landing.page.js",
15
15
  "./pages/signin.page": "./dist/pages/signin.page.js",
16
16
  "./pages/layout.page": "./dist/pages/layout.page.js",
17
+ "./pages/broker-auth.page": "./dist/pages/broker-auth.page.js",
18
+ "./pages/broker-login.page": "./dist/pages/broker-login.page.js",
19
+ "./pages/broker-settings.page": "./dist/pages/broker-settings.page.js",
17
20
  "./pages/logout-error.page": "./dist/pages/logout-error.page.js",
18
21
  "./pages/error.page": "./dist/pages/error.page.js"
19
22
  },
20
- "files": ["dist"],
21
- "sideEffects": ["*.css"],
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "sideEffects": [
27
+ "*.css"
28
+ ],
22
29
  "scripts": {
23
30
  "dev": "vite",
24
31
  "build": "tsup",
@@ -29,24 +36,24 @@
29
36
  "html-react-parser": "^5.2.17"
30
37
  },
31
38
  "peerDependencies": {
39
+ "@emotion/react": "^11.14.0",
40
+ "@emotion/styled": "^11.14.0",
41
+ "@mui/icons-material": "^7.3.8",
42
+ "@mui/material": "^7.3.8",
43
+ "@mui/system": "^7.3.8",
44
+ "chart.js": "^4.5.1",
32
45
  "react": "^19.0.0",
33
46
  "react-dom": "^19.0.0",
34
47
  "react-router-dom": "^7.13.0",
35
48
  "react-window": "^2.2.6",
36
- "@mui/material": "^7.3.8",
37
- "@mui/icons-material": "^7.3.8",
38
- "@mui/system": "^7.3.8",
39
- "@emotion/react": "^11.14.0",
40
- "@emotion/styled": "^11.14.0",
41
- "chart.js": "^4.5.1",
42
- "sspart-fe-lib": "^1.2.0"
49
+ "sspart-fe-lib": "^1.2.5"
43
50
  },
44
51
  "devDependencies": {
45
- "typescript": "^5.9.3",
46
- "tsup": "^8.5.1",
47
- "vite": "^7.3.1",
48
- "@vitejs/plugin-react": "^5.0.3",
49
52
  "@types/react": "^19.0.2",
50
- "@types/react-dom": "^19.0.2"
53
+ "@types/react-dom": "^19.0.2",
54
+ "@vitejs/plugin-react": "^5.0.3",
55
+ "tsup": "^8.5.1",
56
+ "typescript": "^5.9.3",
57
+ "vite": "^7.3.1"
51
58
  }
52
59
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/resources/images.tsx"],"names":[],"mappings":";AAAO,IAAM,WAAA,GAAc;AAAA,EACvB,UAAA,EAAa,0CAAA;AAAA,EACb,IAAA,EAAM,4CAAA;AAAA,EACN,QAAA,EAAU,iDAAA;AAAA,EACV,SAAA,EAAW;AACf","file":"chunk-F4BCZYRK.js","sourcesContent":["export const IMAGE_LINKS = {\n SMALL_ICON : 'https://i.ibb.co/24Qy7m1/Dhe-Quest64.png',\n ICON: \"https://i.ibb.co/60L36htP/Dhe-Quest128.png\",\n NAMELOGO: \"https://i.ibb.co/qYhSRLJ4/Dhe-Quest128-Full.png\",\n WALLPAPER: \"https://i.imgur.com/nBm1Ub3.png\",\n}"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/resources/constants.tsx"],"names":[],"mappings":";AAAO,IAAM,MAAA,GAAS;AAAA,EAClB,kBAAA,EAAoB,4GAAA;AAAA,EACpB,oBAAA,EAAsB,2EAAA;AAAA,EACtB,kBAAA,EAAoB,gEAAA;AAAA,EACpB,gBAAA,EAAkB;AACtB;AAEO,IAAM,SAAA,GAAY","file":"chunk-IYKARRP3.js","sourcesContent":["export const TITLES = {\n LANDING_PAGE_TITLE: \"DheQuest | Analyze and Automate Your Trades with Precision, Maximize Profits, and Stay Ahead of the Market\",\n DASHBOARD_PAGE_TITLE: \"DheQuest | Your Trading Dashboard - Insights, Performance, and Automation\",\n SIGN_IN_PAGE_TITLE: \"DheQuest | Securely Sign In to Your Automated Trading Platform\",\n ERROR_PAGE_TITLE: \"DheQuest | Oops! Something Went Wrong\",\n};\n\nexport const ON_RESIZE = 900;"]}