dq-cus-lib 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -76,106 +76,4 @@
76
76
  box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.05);
77
77
  border-top: 1px solid rgb(216, 216, 216, 0.25);
78
78
  }
79
-
80
- /* src/components/css/error.page.css */
81
- .error-404 {
82
- font-weight: 800;
83
- letter-spacing: 0.1em;
84
- }
85
- .error-text {
86
- font-weight: 800;
87
- }
88
- @media (max-width: 576px) {
89
- .error-404 {
90
- color: var(--alert-error);
91
- font-size: 18vw;
92
- }
93
- .error-emoji {
94
- font-size: 16vw;
95
- }
96
- .error-text {
97
- font-size: 6vw;
98
- }
99
- .error-desc {
100
- font-size: 3.25vw;
101
- }
102
- }
103
- @media (min-width: 576px) {
104
- .error-404 {
105
- color: var(--alert-error);
106
- font-size: 8vw;
107
- }
108
- .error-emoji {
109
- font-size: 7vw;
110
- }
111
- .error-text {
112
- font-size: 4vw;
113
- }
114
- .error-desc {
115
- font-size: 2vw;
116
- }
117
- }
118
- @media (min-width: 992px) {
119
- .error-desc {
120
- font-size: 1.5vw;
121
- }
122
- }
123
- .error-wrapper {
124
- position: absolute;
125
- top: 50%;
126
- left: 50%;
127
- transform: translate(-50%, -50%);
128
- text-align: center;
129
- }
130
-
131
- /* src/components/css/landing.page.css */
132
- .header-logo {
133
- width: 120px;
134
- }
135
- @media (max-width: 992px) {
136
- .landing-info-header {
137
- font-size: 36px;
138
- font-weight: 800;
139
- line-height: 42px;
140
- }
141
- }
142
- @media (min-width: 992px) {
143
- .landing-info-header {
144
- font-size: 36px;
145
- font-weight: 800;
146
- }
147
- }
148
- .landing-info-sub-header {
149
- font-size: 16px;
150
- font-weight: 600;
151
- line-height: 28px;
152
- }
153
- .landing-info-button {
154
- cursor: pointer;
155
- background-color: rgb(255, 75, 146);
156
- border-radius: 25px;
157
- color: var(--neutral-color);
158
- border: none;
159
- font-weight: 800;
160
- padding-left: 25px;
161
- padding-right: 25px;
162
- padding-top: 10px;
163
- padding-bottom: 10px;
164
- }
165
- .title-image-demo {
166
- max-width: 100%;
167
- width: 100%;
168
- }
169
-
170
- /* src/components/css/sign-in.page.css */
171
- .sign-in-card-wrapper {
172
- width: auto;
173
- min-height: auto;
174
- height: auto;
175
- margin: auto !important;
176
- padding: 20px;
177
- }
178
- .small-btn-link-p {
179
- font-size: 14px !important;
180
- }
181
79
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles/index.css","../src/components/css/error.page.css","../src/components/css/landing.page.css","../src/components/css/sign-in.page.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}",".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}",".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;;;ACzFA,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;;;ACrDA,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;;;ACzCA,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"],"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;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,29 +1,2 @@
1
- import { useNavigate } from 'react-router-dom';
2
- import React$1 from 'react';
3
1
 
4
- interface LogoutErrorProps {
5
- navigate: ReturnType<typeof useNavigate>;
6
- }
7
- declare const LogoutErrorPage: React.FC<LogoutErrorProps>;
8
-
9
- declare const ErrorPage: React.FC;
10
-
11
- interface LandingPageProps {
12
- navigate: ReturnType<typeof useNavigate>;
13
- }
14
- declare const LandingPage: React$1.FC<LandingPageProps>;
15
-
16
- interface LayoutPageProps {
17
- children: React.ReactNode;
18
- Header: React.ElementType;
19
- Footer: React.ElementType;
20
- username: String;
21
- }
22
- declare const LayoutPage: React.FC<LayoutPageProps>;
23
-
24
- interface SigninPageProps {
25
- navigate: ReturnType<typeof useNavigate>;
26
- }
27
- declare const SigninPage: React.FC<SigninPageProps>;
28
-
29
- export { ErrorPage, LandingPage, LayoutPage, LogoutErrorPage, SigninPage as SignInPage };
2
+ export { }
package/dist/index.js CHANGED
@@ -1,365 +1,3 @@
1
- import Box7 from '@mui/material/Box';
2
- import Container from '@mui/material/Container';
3
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
- import { auth, Resize, Loading, Button, LinkButton, alertService, Alerts, Textbox, PasswordTextbox, CheckBox, setLocalStorage, planAuth, postcall, configService } from 'sspart-fe-lib';
5
- import AppBar from '@mui/material/AppBar';
6
- import Toolbar from '@mui/material/Toolbar';
7
- import Stack from '@mui/material/Stack';
8
- import { useEffect, useState } from 'react';
9
- import { useTheme } from '@mui/material/styles';
10
- import useMediaQuery from '@mui/material/useMediaQuery';
11
- import Grid4 from '@mui/material/Grid';
12
- import Typography from '@mui/material/Typography';
13
- import CardContent from '@mui/material/CardContent';
14
- import CameraAltIcon from '@mui/icons-material/CameraAlt';
15
- import AddchartIcon from '@mui/icons-material/Addchart';
16
- import BarChartIcon from '@mui/icons-material/BarChart';
17
- import TimelineIcon from '@mui/icons-material/Timeline';
18
- import CalendarMonthIcon from '@mui/icons-material/CalendarMonth';
19
- import AccountBalanceIcon from '@mui/icons-material/AccountBalance';
20
- import Card from '@mui/material/Card';
21
1
 
22
- // src/pages/logout-error.page.tsx
23
- var Error = () => {
24
- return /* @__PURE__ */ jsx(Container, { className: "error-wrapper", children: /* @__PURE__ */ jsxs("div", { children: [
25
- /* @__PURE__ */ jsxs("div", { className: "error-404", children: [
26
- "4",
27
- /* @__PURE__ */ jsx("span", { className: "error-emoji", role: "img", "aria-label": "0", children: "\u{1F635}" }),
28
- "4"
29
- ] }),
30
- /* @__PURE__ */ jsx("div", { className: "error-text", children: "OOPS! PAGE NOT BE FOUND" }),
31
- /* @__PURE__ */ jsxs("p", { className: "error-desc mt-2", children: [
32
- "Sorry, but the page you are looking for does not exist. We must have removed, renamed or never created it ",
33
- /* @__PURE__ */ jsx("span", { "aria-label": "face", role: "img", children: "\u{1F92A}" })
34
- ] })
35
- ] }) });
36
- };
37
- var error_default = Error;
38
-
39
- // src/resources/images.tsx
40
- var IMAGE_LINKS = {
41
- SMALL_ICON: "https://i.ibb.co/24Qy7m1/Dhe-Quest64.png",
42
- NAMELOGO: "https://i.ibb.co/qYhSRLJ4/Dhe-Quest128-Full.png",
43
- WALLPAPER: "https://i.imgur.com/nBm1Ub3.png"
44
- };
45
- var LoadingComp = () => {
46
- return /* @__PURE__ */ jsx(Loading, { path: IMAGE_LINKS.SMALL_ICON });
47
- };
48
- var loading_default = LoadingComp;
49
- var Header = ({ navigate }) => {
50
- const onClick = (name) => {
51
- if (name) navigate(`/${name}`);
52
- };
53
- return /* @__PURE__ */ jsx(AppBar, { position: "static", color: "default", children: /* @__PURE__ */ jsxs(Toolbar, { children: [
54
- /* @__PURE__ */ jsx(Box7, { sx: { flexGrow: 1 }, children: /* @__PURE__ */ jsx("img", { className: "header-logo", alt: "...", src: IMAGE_LINKS.NAMELOGO }) }),
55
- /* @__PURE__ */ jsx(Box7, { children: /* @__PURE__ */ jsxs(Stack, { direction: "row", spacing: 1, children: [
56
- /* @__PURE__ */ jsx(Button, { name: "signup", onClick, variant: "text", text: "Sign Up" }),
57
- /* @__PURE__ */ jsx(Button, { name: "signin", onClick, variant: "outlined", text: "Login" })
58
- ] }) })
59
- ] }) });
60
- };
61
- var header_default = Header;
62
- var LogoutErrorPage = ({ navigate }) => {
63
- if (auth.isAuthenticated()) return /* @__PURE__ */ jsx(loading_default, {});
64
- return /* @__PURE__ */ jsxs(Box7, { sx: { width: "100%" }, children: [
65
- /* @__PURE__ */ jsx(header_default, { navigate }),
66
- /* @__PURE__ */ jsx(error_default, {})
67
- ] });
68
- };
69
- var logout_error_page_default = LogoutErrorPage;
70
-
71
- // src/resources/constants.tsx
72
- var TITLES = {
73
- LANDING_PAGE_TITLE: "DheQuest | Analyze and Automate Your Trades with Precision, Maximize Profits, and Stay Ahead of the Market",
74
- SIGN_IN_PAGE_TITLE: "DheQuest | Securely Sign In to Your Automated Trading Platform",
75
- ERROR_PAGE_TITLE: "DheQuest | Oops! Something Went Wrong"
76
- };
77
- var ON_RESIZE = 900;
78
- var ErrorPage = () => {
79
- useEffect(() => {
80
- document.title = TITLES.ERROR_PAGE_TITLE;
81
- }, []);
82
- return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(error_default, {}) });
83
- };
84
- var error_page_default = ErrorPage;
85
- var Hero = ({ navigate }) => {
86
- const theme = useTheme();
87
- const isMobile = useMediaQuery(theme.breakpoints.down("md"));
88
- const onClick = () => {
89
- navigate("/signup");
90
- };
91
- return /* @__PURE__ */ jsx(Box7, { display: "flex", flexDirection: "column", minHeight: "91.5vh", height: "auto", children: /* @__PURE__ */ jsx(Container, { style: { flex: "1", display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsxs(Grid4, { container: true, alignItems: "center", children: [
92
- /* @__PURE__ */ jsx(Grid4, { size: { xs: 12, md: 5 }, className: "mt-4", children: /* @__PURE__ */ jsxs(Box7, { children: [
93
- /* @__PURE__ */ jsx("div", { className: "landing-info-header", children: "Trading platform with cutting-edge GTT capabilities." }),
94
- /* @__PURE__ */ jsx("div", { className: "landing-info-sub-header mt-4", children: "Experience the future of trading with GTT. Elevate your strategies with DheQuest's superior service. The future is here\u2014trade smarter today." }),
95
- /* @__PURE__ */ jsx("button", { className: "landing-info-button mt-4", onClick, children: "Sign Up" })
96
- ] }) }),
97
- /* @__PURE__ */ jsx(Grid4, { size: { xs: 12, md: 7 }, className: "mt-4", children: /* @__PURE__ */ jsx(Box7, { display: "flex", justifyContent: isMobile ? "center" : "end", children: /* @__PURE__ */ jsx("img", { className: "title-image-demo", alt: "...", src: IMAGE_LINKS.WALLPAPER }) }) })
98
- ] }) }) });
99
- };
100
- var hero_default = Hero;
101
- var FEATURES = [
102
- {
103
- title: "Advanced Order Types",
104
- description: "Execute your trades with precision using a variety of advanced order types, including limit orders, stop-loss orders, take-profit orders, and more.",
105
- icon: /* @__PURE__ */ jsx(CameraAltIcon, { sx: { fontSize: "3.5rem" } })
106
- },
107
- {
108
- title: "Real-time Market Depth",
109
- description: "Gain valuable insights into market liquidity and order flow with real-time market depth data. See the current buy and sell order.",
110
- icon: /* @__PURE__ */ jsx(AddchartIcon, { sx: { fontSize: "3.5rem" } })
111
- },
112
- {
113
- title: "Margin Trading and Leverage",
114
- description: "Amplify your trading power with margin trading and leverage. Access greater capital and potentially increase your profits.",
115
- icon: /* @__PURE__ */ jsx(BarChartIcon, { sx: { fontSize: "3.5rem" } })
116
- },
117
- {
118
- title: "Portfolio Analytics",
119
- description: "Analyze your trading performance with detailed portfolio analytics. improvement and optimize your trading strategies.",
120
- icon: /* @__PURE__ */ jsx(TimelineIcon, { sx: { fontSize: "3.5rem" } })
121
- },
122
- {
123
- title: "Alerts and Notifications",
124
- description: "Stay informed about critical market events with customizable alerts and notifications. important events to react quickly to market changes.",
125
- icon: /* @__PURE__ */ jsx(CalendarMonthIcon, { sx: { fontSize: "3.5rem" } })
126
- },
127
- {
128
- title: "API Access",
129
- description: "Integrate our platform with your own trading tools and applications using our powerful API. Develop custom trading strategies.",
130
- icon: /* @__PURE__ */ jsx(AccountBalanceIcon, { sx: { fontSize: "3.5rem" } })
131
- }
132
- ];
133
- var Features = () => {
134
- return /* @__PURE__ */ jsxs(Box7, { sx: { padding: 6, backgroundColor: "#f9f9f9" }, children: [
135
- /* @__PURE__ */ jsxs(Container, { children: [
136
- /* @__PURE__ */ jsx(Typography, { variant: "h4", align: "center", gutterBottom: true, mb: 4, sx: { fontWeight: "bold" }, children: "Key Features" }),
137
- /* @__PURE__ */ jsx(Typography, { variant: "body2", align: "center", gutterBottom: true, mb: 4, sx: { lineHeight: "40px " }, children: "Automate your trading strategies with our robust algorithmic trading capabilities. Develop, backtest, and deploy custom trading bots to execute trades based on predefined rules and parameters, allowing you to capitalize on market opportunities 24/7." })
138
- ] }),
139
- /* @__PURE__ */ jsx(Grid4, { container: true, spacing: 6, marginBottom: 4, paddingTop: 4, children: FEATURES.map((feature, index) => /* @__PURE__ */ jsx(Grid4, { size: { xs: 12, sm: 6, md: 4 }, textAlign: "center", children: /* @__PURE__ */ jsxs(CardContent, { children: [
140
- feature.icon,
141
- /* @__PURE__ */ jsx(Typography, { variant: "h6", sx: { fontWeight: "bold" }, gutterBottom: true, children: feature.title }),
142
- /* @__PURE__ */ jsx(Typography, { variant: "body2", gutterBottom: true, sx: { lineHeight: "40px " }, children: feature.description })
143
- ] }) }, index)) })
144
- ] });
145
- };
146
- var features_default = Features;
147
- var Footer = ({ navigate }) => {
148
- const onClick = (name) => {
149
- if (name) navigate(`/${name}`);
150
- };
151
- return /* @__PURE__ */ jsxs(Box7, { sx: { textAlign: "center", padding: 4, backgroundColor: "#f9f9f9" }, children: [
152
- /* @__PURE__ */ jsxs(Typography, { variant: "body2", gutterBottom: true, children: [
153
- /* @__PURE__ */ jsx(LinkButton, { name: "privacy-policy", text: "Privacy Policy", onClick }),
154
- " | ",
155
- /* @__PURE__ */ jsx(LinkButton, { name: "terms-and-conditions", text: "Terms and Conditions", onClick }),
156
- " | ",
157
- /* @__PURE__ */ jsx(LinkButton, { name: "cookie-policy", text: "Cookie Policy", onClick }),
158
- " "
159
- ] }),
160
- /* @__PURE__ */ jsxs(Typography, { variant: "body2", color: "textSecondary", children: [
161
- "\xA9 ",
162
- (/* @__PURE__ */ new Date()).getFullYear(),
163
- " SSPART Enterprise Pvt Ltd. All rights reserved."
164
- ] }),
165
- /* @__PURE__ */ jsx(Box7, { sx: { marginTop: 2 }, children: /* @__PURE__ */ jsx(LinkButton, { name: "contact-us", text: "Contact Us", className: "wrapped-btn outlined-btn", onClick }) })
166
- ] });
167
- };
168
- var footer_default = Footer;
169
- var LandingPage = ({ navigate }) => {
170
- useEffect(() => {
171
- document.title = TITLES.LANDING_PAGE_TITLE;
172
- }, []);
173
- return /* @__PURE__ */ jsxs(Box7, { sx: { width: "100%" }, children: [
174
- /* @__PURE__ */ jsx(header_default, { navigate }),
175
- /* @__PURE__ */ jsx(hero_default, { navigate }),
176
- /* @__PURE__ */ jsx(features_default, {}),
177
- /* @__PURE__ */ jsx(footer_default, { navigate })
178
- ] });
179
- };
180
- var landing_page_default = LandingPage;
181
- var LayoutPage = ({ children, Header: Header2, Footer: Footer2, username }) => {
182
- return /* @__PURE__ */ jsxs("div", { children: [
183
- /* @__PURE__ */ jsxs("div", { children: [
184
- /* @__PURE__ */ jsx(Resize, { maxWidth: ON_RESIZE, ShortElement: /* @__PURE__ */ jsx(Fragment, {}), LongElement: /* @__PURE__ */ jsx(Header2, { username }) }),
185
- children
186
- ] }),
187
- /* @__PURE__ */ jsx(Resize, { maxWidth: ON_RESIZE, ShortElement: /* @__PURE__ */ jsx(Footer2, {}), LongElement: /* @__PURE__ */ jsx(Fragment, {}) })
188
- ] });
189
- };
190
- var layout_page_default = LayoutPage;
191
- var FooterLinks = ({ navigate, link1, title1, link2, title2 }) => {
192
- const onClick = (name) => {
193
- if (name) navigate(`${name}`);
194
- };
195
- return /* @__PURE__ */ jsxs(Grid4, { container: true, justifyContent: "space-between", alignItems: "center", children: [
196
- /* @__PURE__ */ jsx(Grid4, { children: /* @__PURE__ */ jsx(LinkButton, { className: "small-btn-link-p", name: link1, text: title1, onClick }) }),
197
- /* @__PURE__ */ jsx(Grid4, { children: /* @__PURE__ */ jsx(LinkButton, { className: "small-btn-link-p", name: link2, text: title2, onClick }) })
198
- ] });
199
- };
200
- var footer_links_default = FooterLinks;
201
- var LoginImage = ({ image, title }) => {
202
- return /* @__PURE__ */ jsxs("div", { children: [
203
- /* @__PURE__ */ jsx(Grid4, { mt: 1, children: /* @__PURE__ */ jsx(Grid4, { children: /* @__PURE__ */ jsx("img", { className: "sign-in-logo", alt: "...", src: image }) }) }),
204
- /* @__PURE__ */ jsx(Grid4, { mt: 1, children: /* @__PURE__ */ jsx(Grid4, { textAlign: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "h6", color: "var(--primary-color)", children: title }) }) })
205
- ] });
206
- };
207
- var login_image_default = LoginImage;
208
- var ROUTE_MAP = {
209
- signin: { service: "user", path: "/user/signin" }
210
- };
211
- function CUSTOMER_ROUTES(routeKey) {
212
- const config = configService.getData();
213
- console.log("Config from cus in routes.jsx", config);
214
- const HOST_MAP = {
215
- user: config.API_USER_API_HOST,
216
- trade: config.API_TRADE_API_HOST
217
- };
218
- const route = ROUTE_MAP[routeKey];
219
- const host = HOST_MAP[route.service];
220
- console.log("full from cus in routes.jsx", `${host}${route.path}`);
221
- return `${host}${route.path}`;
222
- }
223
-
224
- // src/components/signin.page/api-calls.tsx
225
- var login = async (username, password, tandc, rememberme) => {
226
- return await postcall(CUSTOMER_ROUTES("signin"), { username, password, tandc, rememberme }, "sign-in");
227
- };
228
-
229
- // src/resources/status.tsx
230
- var STATUS_CODE_MESSAGES = {
231
- PLEASE_ENTER_USERNAME: "Please provide a valid Username",
232
- PLEASE_ENTER_PASSWORD: "Please provide a valid Password"
233
- };
234
-
235
- // src/components/signin.page/business-rules.tsx
236
- var validateLoginForm = (data) => {
237
- const errors = {};
238
- if (!data.username) {
239
- errors["username"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;
240
- }
241
- if (!data.password) {
242
- errors["password"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;
243
- }
244
- alertService.setData(errors);
245
- return Object.keys(errors).length === 0;
246
- };
247
- var SignIn = ({ navigate }) => {
248
- const [validationErrors, setValidationErrors] = useState({});
249
- const [formData, setFormData] = useState({
250
- username: "",
251
- password: "",
252
- tandc: false,
253
- rememberme: false
254
- });
255
- useEffect(() => {
256
- return () => {
257
- alertService.resetData();
258
- };
259
- }, []);
260
- const handleChange = (name, value) => {
261
- setFormData({ ...formData, [name]: value });
262
- };
263
- const handleSubmit = async (e) => {
264
- e.preventDefault();
265
- if (validateLoginForm(formData)) {
266
- alertService.resetData();
267
- const { username, password, tandc, rememberme } = formData;
268
- const result = await login(username, password, tandc, rememberme);
269
- if (result && result.username) {
270
- const { username: username2, fullname, permissions } = result;
271
- setLocalStorage("username", username2);
272
- setLocalStorage("fullname", fullname);
273
- planAuth.setData({ username: username2, fullname, permissions });
274
- auth.authenticate(() => navigate("/dashboard"));
275
- }
276
- } else {
277
- setValidationErrors(alertService.getData());
278
- }
279
- };
280
- const onClick = (name) => {
281
- if (name) navigate(`/${name}`);
282
- };
283
- return /* @__PURE__ */ jsxs(Grid4, { container: true, direction: "column", alignItems: "center", justifyContent: "center", children: [
284
- /* @__PURE__ */ jsx(login_image_default, { image: IMAGE_LINKS.NAMELOGO, title: "Sign in" }),
285
- /* @__PURE__ */ jsxs(Box7, { component: "form", onSubmit: handleSubmit, noValidate: true, sx: { m: 0, width: "100%" }, children: [
286
- /* @__PURE__ */ jsx(Alerts, { id: "sign-in", className: "mt-2 mb-4" }),
287
- /* @__PURE__ */ jsx(
288
- Textbox,
289
- {
290
- id: "username",
291
- name: "username",
292
- type: "text",
293
- placeholder: "Username",
294
- size: "medium",
295
- validation: validationErrors.username,
296
- value: formData.username,
297
- onChange: handleChange,
298
- mandate: true
299
- }
300
- ),
301
- /* @__PURE__ */ jsx(Box7, { sx: { mb: 2 } }),
302
- /* @__PURE__ */ jsx(
303
- PasswordTextbox,
304
- {
305
- id: "password",
306
- name: "password",
307
- placeholder: "Password",
308
- size: "medium",
309
- validation: validationErrors.password,
310
- value: formData.password,
311
- onChange: handleChange,
312
- mandate: true
313
- }
314
- ),
315
- /* @__PURE__ */ jsx(Box7, { sx: { mb: 2 } }),
316
- /* @__PURE__ */ jsx(
317
- CheckBox,
318
- {
319
- name: "rememberme",
320
- label: "Remember me",
321
- value: formData.rememberme,
322
- onChange: handleChange
323
- }
324
- ),
325
- /* @__PURE__ */ jsx(
326
- CheckBox,
327
- {
328
- name: "tandc",
329
- value: formData.tandc,
330
- validation: validationErrors.tandc,
331
- label: /* @__PURE__ */ jsxs("span", { children: [
332
- "I agree to DheQuest's ",
333
- /* @__PURE__ */ jsx(LinkButton, { name: "terms", text: "Terms & Conditions", onClick })
334
- ] }),
335
- onChange: handleChange
336
- }
337
- ),
338
- /* @__PURE__ */ jsx(Box7, { sx: { mb: 2 } }),
339
- /* @__PURE__ */ jsx(Button, { text: "Sign In", type: "submit" }),
340
- /* @__PURE__ */ jsx(Box7, { sx: { mb: 2 } }),
341
- /* @__PURE__ */ jsx(
342
- footer_links_default,
343
- {
344
- navigate,
345
- link1: "/user/forget-password",
346
- title1: "Forgot password?",
347
- link2: "/signup",
348
- title2: "Don't have an account? Sign Up"
349
- }
350
- )
351
- ] })
352
- ] });
353
- };
354
- var sign_in_default = SignIn;
355
- var SigninPage = ({ navigate }) => {
356
- useEffect(() => {
357
- document.title = TITLES.SIGN_IN_PAGE_TITLE;
358
- }, []);
359
- return /* @__PURE__ */ jsx(Grid4, { 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 }) }) }) }) });
360
- };
361
- var signin_page_default = SigninPage;
362
-
363
- export { error_page_default as ErrorPage, landing_page_default as LandingPage, layout_page_default as LayoutPage, logout_error_page_default as LogoutErrorPage, signin_page_default as SignInPage };
364
2
  //# sourceMappingURL=index.js.map
365
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/error.page/error.tsx","../src/resources/images.tsx","../src/components/common/loading.tsx","../src/components/landing.page/header.tsx","../src/pages/logout-error.page.tsx","../src/resources/constants.tsx","../src/pages/error.page.tsx","../src/components/landing.page/hero.tsx","../src/components/landing.page/constants.tsx","../src/components/landing.page/features.tsx","../src/components/landing.page/footer.tsx","../src/pages/landing.page.tsx","../src/pages/layout.page.tsx","../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":["jsx","jsxs","Box","Container","Grid","Typography","useEffect","Header","Footer","LinkButton","alertService","username","auth","Button"],"mappings":"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","file":"index.js","sourcesContent":["import '../css/error.page.css';\nimport Container from '@mui/material/Container';\n\nconst Error = () => {\n\n return (\n <Container className='error-wrapper'>\n <div>\n <div className=\"error-404\"> \n 4<span className=\"error-emoji\" role=\"img\" aria-label=\"0\">😵</span>4\n </div>\n <div className=\"error-text\">\n OOPS! PAGE NOT BE FOUND\n </div>\n <p className=\"error-desc mt-2\">Sorry, but the page you are looking for does not exist. We must have removed, renamed or never created it <span aria-label=\"face\" role=\"img\">🤪</span></p>\n </div>\n </Container>\n );\n \n}\n\nexport default Error;","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}","import { Loading } from \"sspart-fe-lib\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\n\nconst LoadingComp = () => {\n\n return (\n <Loading path={IMAGE_LINKS.SMALL_ICON} />\n );\n};\n\nexport default LoadingComp;\n","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","import Box from '@mui/material/Box';\nimport Error from '../components/error.page/error';\nimport { auth } from \"sspart-fe-lib\";\nimport Loading from \"../components/common/loading\";\nimport Header from '../components/landing.page/header';\nimport { useNavigate } from 'react-router-dom';\n\ninterface LogoutErrorProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst LogoutErrorPage: React.FC<LogoutErrorProps> = ({ navigate }) => {\n\n if(auth.isAuthenticated()) return <Loading />\n\n return <Box sx={{ width: \"100%\" }}>\n <Header navigate={navigate}/>\n <Error />\n </Box>\n \n}\n\nexport default LogoutErrorPage;","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;","import Error from '../components/error.page/error';\nimport { useEffect } from \"react\";\nimport { TITLES } from '../resources/constants';\n\nconst ErrorPage : React.FC = () => {\n\n useEffect(() => {\n document.title = TITLES.ERROR_PAGE_TITLE;\n }, []);\n\n return (\n <div>\n <Error />\n </div>\n );\n};\n\nexport default ErrorPage;\n","import React from \"react\";\nimport Box from '@mui/material/Box';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Container from '@mui/material/Container';\nimport Grid from '@mui/material/Grid';\nimport { useNavigate } from \"react-router-dom\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\n\ninterface HeroProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst Hero: React.FC<HeroProps> = ({ navigate }) => {\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n \n const onClick = () => {\n navigate('/signup');\n };\n\n return (\n <Box display=\"flex\" flexDirection=\"column\" minHeight=\"91.5vh\" height=\"auto\">\n <Container style={{ flex: '1', display: 'flex', alignItems: 'center' }}>\n <Grid container alignItems=\"center\">\n <Grid size={{xs:12, md:5}} className='mt-4'>\n <Box>\n <div className=\"landing-info-header\">\n Trading platform with cutting-edge GTT capabilities.\n </div>\n <div className=\"landing-info-sub-header mt-4\">\n Experience the future of trading with GTT. Elevate your strategies with DheQuest's superior service. The future is here—trade smarter today.\n </div>\n <button className=\"landing-info-button mt-4\" onClick={onClick}>Sign Up</button>\n </Box>\n </Grid>\n <Grid size={{xs:12, md:7}} className='mt-4' >\n <Box display=\"flex\" justifyContent={isMobile ? \"center\" : \"end\"}>\n <img className=\"title-image-demo\" alt=\"...\" src={IMAGE_LINKS.WALLPAPER}></img>\n </Box>\n </Grid>\n </Grid>\n </Container>\n </Box>\n );\n};\n\nexport default Hero;\n","import CameraAltIcon from '@mui/icons-material/CameraAlt';\nimport AddchartIcon from '@mui/icons-material/Addchart';\nimport BarChartIcon from '@mui/icons-material/BarChart';\nimport TimelineIcon from '@mui/icons-material/Timeline';\nimport CalendarMonthIcon from '@mui/icons-material/CalendarMonth';\nimport AccountBalanceIcon from '@mui/icons-material/AccountBalance';\n\nexport const FEATURES = [\n {\n title: \"Advanced Order Types\",\n description:\n \"Execute your trades with precision using a variety of advanced order types, including limit orders, stop-loss orders, take-profit orders, and more.\",\n icon: <CameraAltIcon sx={{ fontSize: '3.5rem' }}/>\n },\n {\n title: \"Real-time Market Depth\",\n description:\n \"Gain valuable insights into market liquidity and order flow with real-time market depth data. See the current buy and sell order.\",\n icon: <AddchartIcon sx={{ fontSize: '3.5rem' }}/>\n },\n {\n title: \"Margin Trading and Leverage\",\n description:\n \"Amplify your trading power with margin trading and leverage. Access greater capital and potentially increase your profits.\",\n icon: <BarChartIcon sx={{ fontSize: '3.5rem' }}/>\n },\n {\n title: \"Portfolio Analytics\",\n description: \"Analyze your trading performance with detailed portfolio analytics. improvement and optimize your trading strategies.\",\n icon: <TimelineIcon sx={{ fontSize: '3.5rem' }}/>\n },\n {\n title: \"Alerts and Notifications\",\n description: \"Stay informed about critical market events with customizable alerts and notifications. important events to react quickly to market changes.\",\n icon: <CalendarMonthIcon sx={{ fontSize: '3.5rem' }}/>\n },\n {\n title: \"API Access\",\n description: \"Integrate our platform with your own trading tools and applications using our powerful API. Develop custom trading strategies.\",\n icon: <AccountBalanceIcon sx={{ fontSize: '3.5rem' }}/>\n }\n];","import React from \"react\";\nimport Container from '@mui/material/Container';\nimport Typography from '@mui/material/Typography';\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport CardContent from '@mui/material/CardContent';\nimport { FEATURES } from \"./constants\";\n\nconst Features: React.FC = () => {\n\n return (\n <Box sx={{ padding: 6, backgroundColor: \"#f9f9f9\" }}>\n <Container>\n <Typography variant=\"h4\" align=\"center\" gutterBottom mb={4} sx={{ fontWeight: \"bold\" }}>\n Key Features\n </Typography>\n <Typography variant=\"body2\" align=\"center\" gutterBottom mb={4} sx={{lineHeight: '40px '}}>\n Automate your trading strategies with our robust algorithmic trading capabilities. \n Develop, backtest, and deploy custom trading bots to execute trades based on predefined rules and parameters, \n allowing you to capitalize on market opportunities 24/7.\n </Typography>\n </Container>\n <Grid container spacing={6} marginBottom={4} paddingTop={4}>\n {FEATURES.map((feature, index) => (\n <Grid size={{xs: 12, sm:6, md:4}} key={index} textAlign=\"center\">\n <CardContent>\n {feature.icon}\n <Typography variant=\"h6\" sx={{ fontWeight: \"bold\" }} gutterBottom>\n {feature.title}\n </Typography>\n <Typography variant=\"body2\" gutterBottom sx={{lineHeight: '40px '}}>\n {feature.description}\n </Typography>\n </CardContent>\n </Grid>\n ))}\n </Grid>\n </Box>\n );\n};\n\nexport default Features;\n","import React from \"react\";\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport { useNavigate } from \"react-router-dom\";\nimport { LinkButton } from \"sspart-fe-lib\";\n\ninterface FooterProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst Footer: React.FC<FooterProps> = ({ navigate }) => {\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <Box sx={{ textAlign: \"center\", padding: 4, backgroundColor: \"#f9f9f9\"}}>\n <Typography variant=\"body2\" gutterBottom>\n <LinkButton name=\"privacy-policy\" text=\"Privacy Policy\" onClick={onClick}/>{\" | \"}\n <LinkButton name=\"terms-and-conditions\" text=\"Terms and Conditions\" onClick={onClick}/>{\" | \"}\n <LinkButton name=\"cookie-policy\" text=\"Cookie Policy\" onClick={onClick}/>{\" \"}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n &copy; {new Date().getFullYear()} SSPART Enterprise Pvt Ltd. All rights reserved.\n </Typography>\n <Box sx={{ marginTop: 2 }}>\n <LinkButton name=\"contact-us\" text=\"Contact Us\" className=\"wrapped-btn outlined-btn\" onClick={onClick}/>\n </Box>\n </Box>\n );\n};\n\nexport default Footer;\n","import '../components/css/landing.page.css';\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Box from '@mui/material/Box';\nimport Header from \"../components/landing.page/header\";\nimport Hero from \"../components/landing.page/hero\";\nimport Features from \"../components/landing.page/features\";\nimport Footer from \"../components/landing.page/footer\";\nimport { TITLES } from '../resources/constants';\n\ninterface LandingPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst LandingPage: React.FC<LandingPageProps> = ({ navigate }) => {\n\n useEffect(() => {\n document.title = TITLES.LANDING_PAGE_TITLE;\n }, []);\n\n return (\n <Box sx={{ width: \"100%\" }}>\n <Header navigate={navigate}/>\n <Hero navigate={navigate}/>\n <Features />\n <Footer navigate={navigate}/>\n </Box>\n );\n};\n\nexport default LandingPage;\n","import { Resize } from \"sspart-fe-lib\";\nimport { ON_RESIZE } from '../resources/constants';\n\ninterface LayoutPageProps {\n children: React.ReactNode;\n Header: React.ElementType;\n Footer: React.ElementType;\n username: String;\n}\n\nconst LayoutPage: React.FC<LayoutPageProps> = ({ children, Header, Footer, username }) => {\n \n return (\n <div>\n <div>\n <Resize maxWidth={ON_RESIZE} ShortElement={<></>} LongElement={<Header username={username}/>} />\n {children}\n </div>\n <Resize maxWidth={ON_RESIZE} ShortElement={<Footer />} LongElement={<></>}/>\n </div>\n );\n};\n\nexport default LayoutPage;\n","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 console.log(\"Config from cus in routes.jsx\", config);\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 console.log(\"full from cus in routes.jsx\", `${host}${route.path}`);\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 '../components/css/sign-in.page.css';\nimport 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":[],"names":[],"mappings":"","file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dq-cus-lib",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -10,7 +10,12 @@
10
10
  "import": "./dist/index.js",
11
11
  "types": "./dist/index.d.ts"
12
12
  },
13
- "./index.css": "./dist/index.css"
13
+ "./index.css": "./dist/index.css",
14
+ "./pages/landing.page": "./dist/pages/landing.page.js",
15
+ "./pages/signin.page": "./dist/pages/signin.page.js",
16
+ "./pages/layout.page": "./dist/pages/layout.page.js",
17
+ "./pages/logout-error.page": "./dist/pages/logout-error.page.js",
18
+ "./pages/error.page": "./dist/pages/error.page.js"
14
19
  },
15
20
  "files": ["dist"],
16
21
  "sideEffects": ["*.css"],