farm-react 1.0.5 → 1.0.7
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/README.md +79 -4
- package/dist/cjs/assets/data/header.d.ts +6 -0
- package/dist/cjs/assets/data/header.js +17 -0
- package/dist/cjs/assets/data/header.js.map +1 -0
- package/dist/cjs/assets/data/home.d.ts +0 -0
- package/dist/cjs/assets/data/home.js +2 -0
- package/dist/cjs/assets/data/home.js.map +1 -0
- package/dist/cjs/assets/data/icons.d.ts +0 -0
- package/dist/cjs/assets/data/icons.js +2 -0
- package/dist/cjs/assets/data/icons.js.map +1 -0
- package/dist/cjs/components/Accordion.d.ts +33 -0
- package/dist/cjs/components/Accordion.js +20 -0
- package/dist/cjs/components/Accordion.js.map +1 -0
- package/dist/cjs/components/Button.d.ts +2 -0
- package/dist/cjs/components/Button.js +8 -0
- package/dist/cjs/components/Button.js.map +1 -0
- package/dist/cjs/components/Label.d.ts +14 -0
- package/dist/cjs/components/Label.js +21 -0
- package/dist/cjs/components/Label.js.map +1 -0
- package/dist/cjs/components/Layout/Footer.d.ts +3 -0
- package/dist/cjs/components/Layout/Footer.js +11 -0
- package/dist/cjs/components/Layout/Footer.js.map +1 -0
- package/dist/cjs/components/Layout/Header.d.ts +2 -0
- package/dist/cjs/components/Layout/Header.js +17 -0
- package/dist/cjs/components/Layout/Header.js.map +1 -0
- package/dist/cjs/components/Layout/Sidebar.d.ts +2 -0
- package/dist/cjs/components/Layout/Sidebar.js +9 -0
- package/dist/cjs/components/Layout/Sidebar.js.map +1 -0
- package/dist/cjs/components/RatingDisplay.d.ts +27 -0
- package/dist/cjs/components/RatingDisplay.js +39 -0
- package/dist/cjs/components/RatingDisplay.js.map +1 -0
- package/dist/cjs/components/TextInput.d.ts +9 -0
- package/dist/cjs/components/TextInput.js +21 -0
- package/dist/cjs/components/TextInput.js.map +1 -0
- package/dist/cjs/constants/app.d.ts +1 -0
- package/dist/cjs/constants/app.js +5 -0
- package/dist/cjs/constants/app.js.map +1 -0
- package/dist/cjs/constants/images.d.ts +0 -0
- package/dist/cjs/constants/images.js +2 -0
- package/dist/cjs/constants/images.js.map +1 -0
- package/dist/cjs/constants/routes.d.ts +0 -0
- package/dist/cjs/constants/routes.js +2 -0
- package/dist/cjs/constants/routes.js.map +1 -0
- package/dist/cjs/container/index.d.ts +0 -0
- package/dist/cjs/container/index.js +2 -0
- package/dist/cjs/container/index.js.map +1 -0
- package/dist/cjs/helpers/app.d.ts +81 -0
- package/dist/cjs/helpers/app.js +151 -0
- package/dist/cjs/helpers/app.js.map +1 -0
- package/dist/cjs/helpers/index.d.ts +0 -0
- package/dist/cjs/helpers/index.js +2 -0
- package/dist/cjs/helpers/index.js.map +1 -0
- package/dist/cjs/hooks/index.d.ts +0 -0
- package/dist/cjs/hooks/index.js +2 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -2
- package/dist/cjs/index.js +9 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/strings/en.d.ts +4 -0
- package/dist/cjs/strings/en.js +9 -0
- package/dist/cjs/strings/en.js.map +1 -0
- package/dist/cjs/strings/index.d.ts +0 -0
- package/dist/cjs/strings/index.js +2 -0
- package/dist/cjs/strings/index.js.map +1 -0
- package/dist/esm/assets/data/header.d.ts +6 -0
- package/dist/esm/assets/data/header.js +14 -0
- package/dist/esm/assets/data/header.js.map +1 -0
- package/dist/esm/assets/data/home.d.ts +0 -0
- package/dist/esm/assets/data/home.js +2 -0
- package/dist/esm/assets/data/home.js.map +1 -0
- package/dist/esm/assets/data/icons.d.ts +0 -0
- package/dist/esm/assets/data/icons.js +2 -0
- package/dist/esm/assets/data/icons.js.map +1 -0
- package/dist/esm/components/Accordion.d.ts +33 -0
- package/dist/esm/components/Accordion.js +18 -0
- package/dist/esm/components/Accordion.js.map +1 -0
- package/dist/esm/components/Button.d.ts +2 -0
- package/dist/esm/components/Button.js +5 -0
- package/dist/esm/components/Button.js.map +1 -0
- package/dist/esm/components/Label.d.ts +14 -0
- package/dist/esm/components/Label.js +18 -0
- package/dist/esm/components/Label.js.map +1 -0
- package/dist/esm/components/Layout/Footer.d.ts +3 -0
- package/dist/esm/components/Layout/Footer.js +9 -0
- package/dist/esm/components/Layout/Footer.js.map +1 -0
- package/dist/esm/components/Layout/Header.d.ts +2 -0
- package/dist/esm/components/Layout/Header.js +14 -0
- package/dist/esm/components/Layout/Header.js.map +1 -0
- package/dist/esm/components/Layout/Sidebar.d.ts +2 -0
- package/dist/esm/components/Layout/Sidebar.js +7 -0
- package/dist/esm/components/Layout/Sidebar.js.map +1 -0
- package/dist/esm/components/RatingDisplay.d.ts +27 -0
- package/dist/esm/components/RatingDisplay.js +37 -0
- package/dist/esm/components/RatingDisplay.js.map +1 -0
- package/dist/esm/components/TextInput.d.ts +9 -0
- package/dist/esm/components/TextInput.js +18 -0
- package/dist/esm/components/TextInput.js.map +1 -0
- package/dist/esm/constants/app.d.ts +1 -0
- package/dist/esm/constants/app.js +2 -0
- package/dist/esm/constants/app.js.map +1 -0
- package/dist/esm/constants/images.d.ts +0 -0
- package/dist/esm/constants/images.js +2 -0
- package/dist/esm/constants/images.js.map +1 -0
- package/dist/esm/constants/routes.d.ts +0 -0
- package/dist/esm/constants/routes.js +2 -0
- package/dist/esm/constants/routes.js.map +1 -0
- package/dist/esm/container/index.d.ts +0 -0
- package/dist/esm/container/index.js +2 -0
- package/dist/esm/container/index.js.map +1 -0
- package/dist/esm/helpers/app.d.ts +81 -0
- package/dist/esm/helpers/app.js +136 -0
- package/dist/esm/helpers/app.js.map +1 -0
- package/dist/esm/helpers/index.d.ts +0 -0
- package/dist/esm/helpers/index.js +2 -0
- package/dist/esm/helpers/index.js.map +1 -0
- package/dist/esm/hooks/index.d.ts +0 -0
- package/dist/esm/hooks/index.js +2 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/index.d.ts +5 -2
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strings/en.d.ts +4 -0
- package/dist/esm/strings/en.js +6 -0
- package/dist/esm/strings/en.js.map +1 -0
- package/dist/esm/strings/index.d.ts +0 -0
- package/dist/esm/strings/index.js +2 -0
- package/dist/esm/strings/index.js.map +1 -0
- package/dist/package.json +13 -0
- package/package.json +62 -53
- package/dist/cjs/components/app.d.ts +0 -6
- package/dist/cjs/components/app.js +0 -22
- package/dist/cjs/components/app.js.map +0 -1
- package/dist/esm/components/app.d.ts +0 -6
- package/dist/esm/components/app.js +0 -19
- package/dist/esm/components/app.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,79 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# farm-react
|
|
2
|
+
|
|
3
|
+
React UI component library for building farmer product websites and applications with ease and consistency.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/farm-react)
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
**farm-react** provides a set of reusable, accessible, and customizable React components specifically designed for farm product e-shops, dashboards, and supply chain UIs. It streamlines frontend development for agriculture and farm supply product interfaces.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
- Accessible and flexible components (Accordion, Button, Label, RatingDisplay, TextInput, Layouts)
|
|
15
|
+
- TypeScript support with full typings
|
|
16
|
+
- Customizable through classnames and attributes
|
|
17
|
+
- Built on top of React and React-Bootstrap for rapid integration
|
|
18
|
+
- Easy theming with SCSS support
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
Install from npm:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install farm-react
|
|
28
|
+
# or
|
|
29
|
+
yarn add farm-react
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Peer dependencies:** Ensure your project has React (v18+) installed.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Usage Example
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { Accordion, Button, Label, RatingDisplay, TextInput } from 'farm-react';
|
|
40
|
+
|
|
41
|
+
function App() {
|
|
42
|
+
return (
|
|
43
|
+
<div>
|
|
44
|
+
<Accordion data={[{ title: 'Demo Section', desc: 'Accordion Content' }]} />
|
|
45
|
+
<Button />
|
|
46
|
+
<Label label="This is a label" />
|
|
47
|
+
<RatingDisplay value={4} activeIcons={4} totalCount={5} />
|
|
48
|
+
<TextInput placeholder="Enter something..." />
|
|
49
|
+
</div>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Components
|
|
57
|
+
|
|
58
|
+
- **Accordion**: Expandable/collapsible sections with custom headers and bodies.
|
|
59
|
+
- **Button**: Simple button placeholder for customization.
|
|
60
|
+
- **Label**: Label with optional icon and tooltip features.
|
|
61
|
+
- **RatingDisplay**: Flexible star (or icon) rating component, custom icons/labels.
|
|
62
|
+
- **TextInput**: Text input with optional label and password toggle.
|
|
63
|
+
- **Layout/Header/Footer/Sidebar**: Basic prebuilt layout scaffolding.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Theming & Customization
|
|
68
|
+
- Customize appearance using the provided `classnames` and `attributes` props.
|
|
69
|
+
- Use your preferred SCSS, CSS, or a CSS-in-JS solution. Comes with some default SCSS styles.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## License
|
|
74
|
+
|
|
75
|
+
ISC
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
© 2025 Nikhil Kumar. Distributed under the ISC License.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.headerItem = void 0;
|
|
4
|
+
var headerItem = [
|
|
5
|
+
{ id: 1, label: 'Bootstrap 5', link: 'https://getbootstrap.com/docs/5.3/getting-started/introduction/' },
|
|
6
|
+
{ id: 2, label: 'React bootstrap', link: 'https://react-bootstrap.netlify.app/' },
|
|
7
|
+
{ id: 4, label: 'Seed App', link: 'https://seed-app' },
|
|
8
|
+
{ id: 3, label: 'Updates group', link: 'https://chat.whatsapp.com/ISQ2i9zTTvr2dGPzyvE5FV?mode=ac_t' },
|
|
9
|
+
// { id: 6, label: 'home', link: '' },
|
|
10
|
+
// { id: 7, label: 'home', link: '' },
|
|
11
|
+
// { id: 8, label: 'home', link: '' },
|
|
12
|
+
// { id: 9, label: 'home', link: '' },
|
|
13
|
+
// { id: 10, label: 'home', link: '' },
|
|
14
|
+
// { id: 11, label: 'home', link: '' },
|
|
15
|
+
];
|
|
16
|
+
exports.headerItem = headerItem;
|
|
17
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../src/assets/data/header.ts"],"names":[],"mappings":";;;AAAA,IAAM,UAAU,GAAG;IACjB,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,iEAAiE,EAAE;IACxG,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,sCAAsC,EAAE;IACjF,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE;IACtD,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,4DAA4D,EAAE;IACrG,sCAAsC;IACtC,sCAAsC;IACtC,sCAAsC;IACtC,sCAAsC;IACtC,uCAAuC;IACvC,uCAAuC;CACxC,CAAA;AACQ,gCAAU"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../../src/assets/data/home.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../src/assets/data/icons.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
interface AccordionData {
|
|
3
|
+
title?: string;
|
|
4
|
+
subtitle?: string;
|
|
5
|
+
desc?: string;
|
|
6
|
+
}
|
|
7
|
+
interface Classnames {
|
|
8
|
+
wrapper?: string;
|
|
9
|
+
item?: string;
|
|
10
|
+
header?: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
subtitle?: string;
|
|
13
|
+
body?: string;
|
|
14
|
+
}
|
|
15
|
+
interface Attributes {
|
|
16
|
+
wrapper?: object;
|
|
17
|
+
item?: object;
|
|
18
|
+
header?: object;
|
|
19
|
+
title?: object;
|
|
20
|
+
subtitle?: object;
|
|
21
|
+
body?: object;
|
|
22
|
+
}
|
|
23
|
+
export interface AccordionProps {
|
|
24
|
+
data: AccordionData[];
|
|
25
|
+
alwaysOpen?: boolean;
|
|
26
|
+
defaultActiveKey?: string;
|
|
27
|
+
classnames?: Classnames;
|
|
28
|
+
attributes?: Attributes;
|
|
29
|
+
renderBody?: (item: AccordionData) => ReactNode | ReactElement;
|
|
30
|
+
renderHeader?: (item: AccordionData) => ReactNode | ReactElement;
|
|
31
|
+
}
|
|
32
|
+
declare function Accordion({ data, alwaysOpen, defaultActiveKey, classnames, attributes, renderBody, renderHeader, }: AccordionProps): ReactElement;
|
|
33
|
+
export default Accordion;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var react_1 = require("react");
|
|
6
|
+
var Accordion_1 = tslib_1.__importDefault(require("react-bootstrap/Accordion"));
|
|
7
|
+
var clsx_1 = tslib_1.__importDefault(require("clsx"));
|
|
8
|
+
var app_1 = require("../helpers/app");
|
|
9
|
+
function Accordion(_a) {
|
|
10
|
+
var data = _a.data, _b = _a.alwaysOpen, alwaysOpen = _b === void 0 ? false : _b, _c = _a.defaultActiveKey, defaultActiveKey = _c === void 0 ? undefined : _c, _d = _a.classnames, classnames = _d === void 0 ? undefined : _d, _e = _a.attributes, attributes = _e === void 0 ? undefined : _e, renderBody = _a.renderBody, renderHeader = _a.renderHeader;
|
|
11
|
+
// Destruct props
|
|
12
|
+
var _f = (0, app_1.destructObj)(classnames), wrapperClass = _f.wrapper, itemClass = _f.item, headerClass = _f.header, titleClass = _f.title, subTitleClass = _f.subtitle, bodyClass = _f.body;
|
|
13
|
+
var _g = (0, app_1.destructObj)(attributes), wrapperAttr = _g.wrapper, itemAttr = _g.item, headerAttr = _g.header, titleAttr = _g.title, subTitleAttr = _g.subtitle, bodyAttr = _g.body;
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(Accordion_1.default, tslib_1.__assign({}, wrapperAttr, { alwaysOpen: alwaysOpen, defaultActiveKey: defaultActiveKey, className: (0, clsx_1.default)('farm-custom-acc', wrapperClass), children: (0, app_1.isArrayNotEmpty)(data) &&
|
|
15
|
+
(data === null || data === void 0 ? void 0 : data.map(function (item, index) { return ((0, react_1.createElement)(Accordion_1.default.Item, tslib_1.__assign({}, itemAttr, { key: index, eventKey: index.toString(), className: (0, clsx_1.default)(itemClass) }),
|
|
16
|
+
(0, jsx_runtime_1.jsx)(Accordion_1.default.Header, tslib_1.__assign({}, headerAttr, { className: (0, clsx_1.default)('farm-content-none', headerClass), children: renderHeader ? (renderHeader(item)) : ((0, jsx_runtime_1.jsxs)("div", { children: [(item === null || item === void 0 ? void 0 : item.title) && ((0, jsx_runtime_1.jsx)("p", tslib_1.__assign({}, titleAttr, { className: (0, clsx_1.default)('mb-0 fs-20', titleClass), children: item.title }))), (item === null || item === void 0 ? void 0 : item.subtitle) && ((0, jsx_runtime_1.jsx)("small", tslib_1.__assign({}, subTitleAttr, { className: (0, clsx_1.default)(subTitleClass), children: item.subtitle })))] })) })),
|
|
17
|
+
(0, jsx_runtime_1.jsx)(Accordion_1.default.Body, tslib_1.__assign({}, bodyAttr, { className: (0, clsx_1.default)(bodyClass), children: renderBody ? renderBody(item) : item.desc })))); })) })));
|
|
18
|
+
}
|
|
19
|
+
exports.default = Accordion;
|
|
20
|
+
//# sourceMappingURL=Accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/components/Accordion.tsx"],"names":[],"mappings":";;;;;AACA,gFAAmD;AACnD,sDAAuB;AACvB,sCAA6D;AAqC7D,SAAS,SAAS,CAAC,EAQF;QAPf,IAAI,UAAA,EACJ,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,wBAA4B,EAA5B,gBAAgB,mBAAG,SAAS,KAAA,EAC5B,kBAAsB,EAAtB,UAAU,mBAAG,SAAS,KAAA,EACtB,kBAAsB,EAAtB,UAAU,mBAAG,SAAS,KAAA,EACtB,UAAU,gBAAA,EACV,YAAY,kBAAA;IAEZ,iBAAiB;IACX,IAAA,KAO4B,IAAA,iBAAW,EAAC,UAAU,CAAC,EAN9C,YAAY,aAAA,EACf,SAAS,UAAA,EACP,WAAW,YAAA,EACZ,UAAU,WAAA,EACP,aAAa,cAAA,EACjB,SAAS,UACwC,CAAA;IAEnD,IAAA,KAO4B,IAAA,iBAAW,EAAC,UAAU,CAAC,EAN9C,WAAW,aAAA,EACd,QAAQ,UAAA,EACN,UAAU,YAAA,EACX,SAAS,WAAA,EACN,YAAY,cAAA,EAChB,QAAQ,UACyC,CAAA;IAEzD,OAAO,CACL,uBAAC,mBAAW,uBACN,WAAW,IACf,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,IAAA,cAAI,EAAC,iBAAiB,EAAE,YAAY,CAAC,YAE/C,IAAA,qBAAe,EAAC,IAAI,CAAC;aACpB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CACzB,2BAAC,mBAAW,CAAC,IAAI,uBAAK,QAAQ,IAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAA,cAAI,EAAC,SAAS,CAAC;gBAChG,uBAAC,mBAAW,CAAC,MAAM,uBAAK,UAAU,IAAE,SAAS,EAAE,IAAA,cAAI,EAAC,mBAAmB,EAAE,WAAW,CAAC,YAClF,YAAY,CAAC,CAAC,CAAC,CACd,YAAY,CAAC,IAAI,CAAC,CACnB,CAAC,CAAC,CAAC,CACF,4CACG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAI,CACd,iDAAO,SAAS,IAAE,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,EAAE,UAAU,CAAC,YACxD,IAAI,CAAC,KAAK,IACT,CACL,EACA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,KAAI,CACjB,qDAAW,YAAY,IAAE,SAAS,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,YACpD,IAAI,CAAC,QAAQ,IACR,CACT,IACG,CACP,IACkB;gBACrB,uBAAC,mBAAW,CAAC,IAAI,uBAAK,QAAQ,IAAE,SAAS,EAAE,IAAA,cAAI,EAAC,SAAS,CAAC,YACvD,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IACzB,CACF,CACpB,EAxB0B,CAwB1B,CAAC,CAAA,IACQ,CACf,CAAA;AACH,CAAC;AAED,kBAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button.tsx"],"names":[],"mappings":";;AAEA,yBAEC;;AAFD,SAAwB,MAAM;IAC5B,OAAO,iCAAW,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReactElement } from 'react';
|
|
2
|
+
interface Classnames {
|
|
3
|
+
label?: string;
|
|
4
|
+
icon?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface LabelProps {
|
|
7
|
+
id?: string;
|
|
8
|
+
label?: string;
|
|
9
|
+
icon?: string;
|
|
10
|
+
tooltip?: string | ReactElement;
|
|
11
|
+
classnames?: Classnames;
|
|
12
|
+
}
|
|
13
|
+
declare function Label({ id, label, icon, tooltip, classnames }: LabelProps): ReactElement | null;
|
|
14
|
+
export default Label;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var clsx_1 = tslib_1.__importDefault(require("clsx"));
|
|
6
|
+
var react_bootstrap_1 = require("react-bootstrap");
|
|
7
|
+
var app_1 = require("../helpers/app");
|
|
8
|
+
function Label(_a) {
|
|
9
|
+
var id = _a.id, label = _a.label, _b = _a.icon, icon = _b === void 0 ? 'bi bi-info-circle' : _b, tooltip = _a.tooltip, classnames = _a.classnames;
|
|
10
|
+
// Destructure classnames safely
|
|
11
|
+
var _c = (0, app_1.destructObj)(classnames), labelClass = _c.label, iconClass = _c.icon;
|
|
12
|
+
/** Renders the label icon */
|
|
13
|
+
var renderLabelIcon = function () { return (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)(icon, iconClass, { 'ms-2': tooltip }) }); };
|
|
14
|
+
if (!label)
|
|
15
|
+
return null;
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)("label", { htmlFor: id, className: (0, clsx_1.default)(labelClass, 'form-label', {
|
|
17
|
+
'd-flex align-items-center': !!icon,
|
|
18
|
+
}), children: [label, tooltip ? ((0, jsx_runtime_1.jsx)(react_bootstrap_1.OverlayTrigger, { placement: 'top', overlay: (0, jsx_runtime_1.jsx)(react_bootstrap_1.Tooltip, { className: 'bg-white rounded', children: tooltip }), children: renderLabelIcon() })) : (renderLabelIcon())] }));
|
|
19
|
+
}
|
|
20
|
+
exports.default = Label;
|
|
21
|
+
//# sourceMappingURL=Label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.js","sourceRoot":"","sources":["../../../src/components/Label.tsx"],"names":[],"mappings":";;;;AACA,sDAAuB;AACvB,mDAAyD;AACzD,sCAA4C;AAe5C,SAAS,KAAK,CAAC,EAA0E;QAAxE,EAAE,QAAA,EAAE,KAAK,WAAA,EAAE,YAA0B,EAA1B,IAAI,mBAAG,mBAAmB,KAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAA;IACzE,gCAAgC;IAC1B,IAAA,KAAyC,IAAA,iBAAW,EAAC,UAAU,CAAC,EAAvD,UAAU,WAAA,EAAQ,SAAS,UAA4B,CAAA;IAEtE,6BAA6B;IAC7B,IAAM,eAAe,GAAG,cAAoB,OAAA,8BAAG,SAAS,EAAE,IAAA,cAAI,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAI,EAA5D,CAA4D,CAAA;IAExG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,OAAO,CACL,mCACE,OAAO,EAAE,EAAE,EACX,SAAS,EAAE,IAAA,cAAI,EAAC,UAAU,EAAE,YAAY,EAAE;YACxC,2BAA2B,EAAE,CAAC,CAAC,IAAI;SACpC,CAAC,aAED,KAAK,EACL,OAAO,CAAC,CAAC,CAAC,CACT,uBAAC,gCAAc,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,uBAAC,yBAAO,IAAC,SAAS,EAAC,kBAAkB,YAAE,OAAO,GAAW,YAC/F,eAAe,EAAE,GACH,CAClB,CAAC,CAAC,CAAC,CACF,eAAe,EAAE,CAClB,IACK,CACT,CAAA;AACH,CAAC;AAED,kBAAe,KAAK,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
var header_1 = require("../../assets/data/header");
|
|
5
|
+
var react_bootstrap_1 = require("react-bootstrap");
|
|
6
|
+
var app_1 = require("../../constants/app");
|
|
7
|
+
function Footer() {
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)("footer", { children: (0, jsx_runtime_1.jsx)(react_bootstrap_1.Container, { children: (0, jsx_runtime_1.jsxs)(react_bootstrap_1.Row, { children: [(0, jsx_runtime_1.jsxs)(react_bootstrap_1.Col, { lg: 2, children: [(0, jsx_runtime_1.jsx)(react_bootstrap_1.Image, { src: app_1.LOGO_IMG, alt: 'farm-react logo', height: 40, width: 40 }), ' '] }), (0, jsx_runtime_1.jsx)(react_bootstrap_1.Col, { lg: 4 }), (0, jsx_runtime_1.jsx)(react_bootstrap_1.Col, { lg: 6, children: (0, jsx_runtime_1.jsx)(react_bootstrap_1.Nav, { className: 'd-flex', children: header_1.headerItem.map(function (item) { return ((0, jsx_runtime_1.jsx)(react_bootstrap_1.Nav.Link, { href: item.link, className: 'text-dark', children: item.label }, item.id)); }) }) })] }) }) }));
|
|
9
|
+
}
|
|
10
|
+
exports.default = Footer;
|
|
11
|
+
//# sourceMappingURL=Footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../src/components/Layout/Footer.tsx"],"names":[],"mappings":";;;AACA,mDAAqD;AACrD,mDAAiE;AACjE,2CAA8C;AAE9C,SAAS,MAAM;IACb,OAAO,CACL,6CACE,uBAAC,2BAAS,cACR,wBAAC,qBAAG,eACF,wBAAC,qBAAG,IAAC,EAAE,EAAE,CAAC,aACR,uBAAC,uBAAK,IAAC,GAAG,EAAE,cAAQ,EAAE,GAAG,EAAC,iBAAiB,EAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAI,EAAC,GAAG,IACrE,EACN,uBAAC,qBAAG,IAAC,EAAE,EAAE,CAAC,GAAI,EACd,uBAAC,qBAAG,IAAC,EAAE,EAAE,CAAC,YACR,uBAAC,qBAAG,IAAC,SAAS,EAAC,QAAQ,YACpB,mBAAU,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CACxB,uBAAC,qBAAG,CAAC,IAAI,IAAe,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,WAAW,YAC3D,IAAI,CAAC,KAAK,IADE,IAAI,CAAC,EAAE,CAEX,CACZ,EAJyB,CAIzB,CAAC,GACE,GACF,IACF,GACI,GACL,CACV,CAAA;AACH,CAAC;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var Container_1 = tslib_1.__importDefault(require("react-bootstrap/Container"));
|
|
6
|
+
var Nav_1 = tslib_1.__importDefault(require("react-bootstrap/Nav"));
|
|
7
|
+
var Navbar_1 = tslib_1.__importDefault(require("react-bootstrap/Navbar"));
|
|
8
|
+
var react_bootstrap_1 = require("react-bootstrap");
|
|
9
|
+
var header_1 = require("../../assets/data/header");
|
|
10
|
+
var react_router_1 = require("react-router");
|
|
11
|
+
var react_bootstrap_2 = require("react-bootstrap");
|
|
12
|
+
var app_1 = require("../../constants/app");
|
|
13
|
+
function Header() {
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)("header", { className: 'position-sticky top-0', children: (0, jsx_runtime_1.jsx)(Navbar_1.default, { expand: 'lg', className: 'bg-body-tertiary', children: (0, jsx_runtime_1.jsxs)(Container_1.default, { children: [(0, jsx_runtime_1.jsx)(Navbar_1.default.Brand, { href: '#', children: (0, jsx_runtime_1.jsx)(react_bootstrap_2.Image, { src: app_1.LOGO_IMG, alt: 'logo image', height: 30, width: 30 }) }), (0, jsx_runtime_1.jsx)(Navbar_1.default.Toggle, { "aria-controls": 'basic-navbar-nav' }), (0, jsx_runtime_1.jsx)(Navbar_1.default.Collapse, { id: 'basic-navbar-nav', children: (0, jsx_runtime_1.jsxs)(Nav_1.default, { className: 'me-auto', children: [header_1.headerItem.map(function (item) { return ((0, jsx_runtime_1.jsx)(Nav_1.default.Link, { to: item.link, as: react_router_1.Link, children: item.label }, item.id)); }), (0, jsx_runtime_1.jsxs)(react_bootstrap_1.NavDropdown, { title: 'Version', id: 'basic-nav-dropdown', children: [(0, jsx_runtime_1.jsx)(react_bootstrap_1.NavDropdown.Item, { href: '#', children: "farm-react 1.0.0" }), (0, jsx_runtime_1.jsx)(react_bootstrap_1.NavDropdown.Item, { href: '#', children: "farm-react 2.0.0" })] })] }) })] }) }) }));
|
|
15
|
+
}
|
|
16
|
+
exports.default = Header;
|
|
17
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/components/Layout/Header.tsx"],"names":[],"mappings":";;;;AAAA,gFAAiD;AACjD,oEAAqC;AACrC,0EAA2C;AAC3C,mDAA6C;AAC7C,mDAAqD;AACrD,6CAAmC;AACnC,mDAAuC;AACvC,2CAA8C;AAE9C,SAAS,MAAM;IACb,OAAO,CACL,mCAAQ,SAAS,EAAC,uBAAuB,YACvC,uBAAC,gBAAM,IAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,kBAAkB,YAC9C,wBAAC,mBAAS,eACR,uBAAC,gBAAM,CAAC,KAAK,IAAC,IAAI,EAAC,GAAG,YACpB,uBAAC,uBAAK,IAAC,GAAG,EAAE,cAAQ,EAAE,GAAG,EAAC,YAAY,EAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAI,GACnD,EACf,uBAAC,gBAAM,CAAC,MAAM,qBAAe,kBAAkB,GAAG,EAClD,uBAAC,gBAAM,CAAC,QAAQ,IAAC,EAAE,EAAC,kBAAkB,YACpC,wBAAC,aAAG,IAAC,SAAS,EAAC,SAAS,aACrB,mBAAU,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CACxB,uBAAC,aAAG,CAAC,IAAI,IAAe,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,mBAAI,YAC5C,IAAI,CAAC,KAAK,IADE,IAAI,CAAC,EAAE,CAEX,CACZ,EAJyB,CAIzB,CAAC,EACF,wBAAC,6BAAW,IAAC,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,oBAAoB,aAClD,uBAAC,6BAAW,CAAC,IAAI,IAAC,IAAI,EAAC,GAAG,iCAAoC,EAC9D,uBAAC,6BAAW,CAAC,IAAI,IAAC,IAAI,EAAC,GAAG,iCAAoC,IAClD,IACV,GACU,IACR,GACL,GACF,CACV,CAAA;AACH,CAAC;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
var react_bootstrap_1 = require("react-bootstrap");
|
|
5
|
+
function Sidebar() {
|
|
6
|
+
return ((0, jsx_runtime_1.jsx)(react_bootstrap_1.Offcanvas, { show: true, className: 'top-60', backdrop: false, scroll: true, children: (0, jsx_runtime_1.jsx)(react_bootstrap_1.Offcanvas.Body, { children: "Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc." }) }));
|
|
7
|
+
}
|
|
8
|
+
exports.default = Sidebar;
|
|
9
|
+
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar.tsx"],"names":[],"mappings":";;;AAAA,mDAA2C;AAE3C,SAAS,OAAO;IACd,OAAO,CACL,uBAAC,2BAAS,IAAC,IAAI,QAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAC9D,uBAAC,2BAAS,CAAC,IAAI,oIAGE,GACP,CACb,CAAA;AACH,CAAC;AAED,kBAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactElement } from 'react';
|
|
2
|
+
interface Classnames {
|
|
3
|
+
wrapper?: string;
|
|
4
|
+
icon?: string;
|
|
5
|
+
item?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
}
|
|
8
|
+
interface Attributes {
|
|
9
|
+
wrapper?: object;
|
|
10
|
+
icon?: object;
|
|
11
|
+
item?: object;
|
|
12
|
+
label?: object;
|
|
13
|
+
}
|
|
14
|
+
interface RatingDisplayProps {
|
|
15
|
+
value?: number | string;
|
|
16
|
+
decimalCount?: number;
|
|
17
|
+
icon?: string;
|
|
18
|
+
activeIcons: number;
|
|
19
|
+
totalCount?: number;
|
|
20
|
+
hideLabel?: boolean;
|
|
21
|
+
classnames?: Classnames;
|
|
22
|
+
attributes?: Attributes;
|
|
23
|
+
onClick?: ((val: number) => void) | null;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
}
|
|
26
|
+
declare function RatingDisplay({ icon, value, decimalCount, totalCount, disabled, hideLabel, activeIcons, classnames, attributes, onClick, }: RatingDisplayProps): ReactElement;
|
|
27
|
+
export default RatingDisplay;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var clsx_1 = tslib_1.__importDefault(require("clsx"));
|
|
6
|
+
var app_1 = require("../helpers/app");
|
|
7
|
+
function RatingDisplay(_a) {
|
|
8
|
+
var _b = _a.icon, icon = _b === void 0 ? 'bi bi-star-fill' : _b, _c = _a.value, value = _c === void 0 ? 0 : _c, _d = _a.decimalCount, decimalCount = _d === void 0 ? 0 : _d, _e = _a.totalCount, totalCount = _e === void 0 ? 1 : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.hideLabel, hideLabel = _g === void 0 ? false : _g, activeIcons = _a.activeIcons, _h = _a.classnames, classnames = _h === void 0 ? {} : _h, _j = _a.attributes, attributes = _j === void 0 ? {} : _j, onClick = _a.onClick;
|
|
9
|
+
// condition: interactive only if onClick is provided and not disabled
|
|
10
|
+
var isInteractive = !!onClick && !disabled;
|
|
11
|
+
// Object Destructuring
|
|
12
|
+
var _k = (0, app_1.destructObj)(classnames), wrapperClass = _k.wrapper, iconClass = _k.icon, labelClass = _k.label;
|
|
13
|
+
var _l = (0, app_1.destructObj)(attributes), wrapperAttr = _l.wrapper, iconAttr = _l.icon, labelAttr = _l.label;
|
|
14
|
+
/** Function responsible for creating the ratings array on the basis of total count being passed. */
|
|
15
|
+
function createRatingsArr() {
|
|
16
|
+
return Array.from({ length: totalCount }, function (_, index) { return index + 1; });
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* This function format the value according to decimal count and remove the trailing zeros.
|
|
20
|
+
* In order to display numbers after decimal points, we are using the maximum limit of 5.
|
|
21
|
+
* @returns return the formatted string value.
|
|
22
|
+
*/
|
|
23
|
+
function getFormattedVal() {
|
|
24
|
+
var numVal = typeof value === 'string' ? Number(value) : value;
|
|
25
|
+
var count = Math.min(decimalCount, 5);
|
|
26
|
+
return numVal
|
|
27
|
+
.toFixed(count)
|
|
28
|
+
.replace(/(\.\d*?)0+$/, '$1')
|
|
29
|
+
.replace(/\.$/, '')
|
|
30
|
+
.toString();
|
|
31
|
+
}
|
|
32
|
+
function renderLabelText() {
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)("span", tslib_1.__assign({}, labelAttr, { className: (0, clsx_1.default)(labelClass), children: getFormattedVal() })));
|
|
34
|
+
}
|
|
35
|
+
return ((0, jsx_runtime_1.jsxs)("div", tslib_1.__assign({}, wrapperAttr, { className: (0, clsx_1.default)('d-flex align-items-center gap-2', wrapperClass), children: [(0, app_1.isArrayNotEmpty)(createRatingsArr()) &&
|
|
36
|
+
createRatingsArr().map(function (star) { return ((0, jsx_runtime_1.jsx)("span", { className: "d-flex align-items-center ".concat(isInteractive ? 'rating-hover' : 'disabled-rating'), onClick: function () { return (isInteractive ? onClick(star) : undefined); }, children: (0, jsx_runtime_1.jsx)("i", tslib_1.__assign({}, iconAttr, { className: (0, clsx_1.default)(icon, iconClass, star <= activeIcons ? 'text-warning' : 'text-secondary', isInteractive ? 'cursor-pointer' : 'cursor-default pe-none') })) }, star)); }), !hideLabel ? renderLabelText() : null] })));
|
|
37
|
+
}
|
|
38
|
+
exports.default = RatingDisplay;
|
|
39
|
+
//# sourceMappingURL=RatingDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RatingDisplay.js","sourceRoot":"","sources":["../../../src/components/RatingDisplay.tsx"],"names":[],"mappings":";;;;AACA,sDAAuB;AACvB,sCAA6D;AA6B7D,SAAS,aAAa,CAAC,EAWF;QAVnB,YAAwB,EAAxB,IAAI,mBAAG,iBAAiB,KAAA,EACxB,aAAS,EAAT,KAAK,mBAAG,CAAC,KAAA,EACT,oBAAgB,EAAhB,YAAY,mBAAG,CAAC,KAAA,EAChB,kBAAc,EAAd,UAAU,mBAAG,CAAC,KAAA,EACd,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EACjB,WAAW,iBAAA,EACX,kBAAe,EAAf,UAAU,mBAAG,EAAE,KAAA,EACf,kBAAe,EAAf,UAAU,mBAAG,EAAE,KAAA,EACf,OAAO,aAAA;IAEP,sEAAsE;IACtE,IAAM,aAAa,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAA;IAE5C,uBAAuB;IACjB,IAAA,KAIgC,IAAA,iBAAW,EAAC,UAAU,CAAC,EAHlD,YAAY,aAAA,EACf,SAAS,UAAA,EACR,UAAU,WAC0C,CAAA;IAEvD,IAAA,KAIgC,IAAA,iBAAW,EAAC,UAAU,CAAC,EAHlD,WAAW,aAAA,EACd,QAAQ,UAAA,EACP,SAAS,WAC2C,CAAA;IAE7D,oGAAoG;IACpG,SAAS,gBAAgB;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,CAAC,CAAA;IACpE,CAAC;IAED;;;;OAIG;IACH,SAAS,eAAe;QACtB,IAAM,MAAM,GAAW,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxE,IAAM,KAAK,GAAW,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;QAC/C,OAAO,MAAM;aACV,OAAO,CAAC,KAAK,CAAC;aACd,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;aAC5B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,QAAQ,EAAE,CAAA;IACf,CAAC;IAED,SAAS,eAAe;QACtB,OAAO,CACL,oDAAU,SAAS,IAAE,SAAS,EAAE,IAAA,cAAI,EAAC,UAAU,CAAC,YAC7C,eAAe,EAAE,IACb,CACR,CAAA;IACH,CAAC;IAED,OAAO,CACL,oDAAS,WAAW,IAAE,SAAS,EAAE,IAAA,cAAI,EAAC,iCAAiC,EAAE,YAAY,CAAC,aACnF,IAAA,qBAAe,EAAC,gBAAgB,EAAE,CAAC;gBAClC,gBAAgB,EAAE,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC/B,iCAEE,SAAS,EAAE,oCAA6B,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAE,EAC5F,OAAO,EAAE,cAAM,OAAA,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAA3C,CAA2C,YAE1D,iDACM,QAAQ,IACZ,SAAS,EAAE,IAAA,cAAI,EACb,IAAI,EACJ,SAAS,EACT,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,EACvD,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAC5D,IACD,IAZG,IAAI,CAaJ,CACR,EAhBgC,CAgBhC,CAAC,EACH,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,KAClC,CACP,CAAA;AACH,CAAC;AAED,kBAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LabelProps } from './Label';
|
|
2
|
+
export interface TextInputProps {
|
|
3
|
+
labelProps?: LabelProps;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
variant?: string;
|
|
7
|
+
id?: string;
|
|
8
|
+
}
|
|
9
|
+
export default function TextInput({ labelProps, placeholder, type, variant, id }: TextInputProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = TextInput;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
var clsx_1 = tslib_1.__importDefault(require("clsx"));
|
|
7
|
+
var Label_1 = tslib_1.__importDefault(require("./Label"));
|
|
8
|
+
var react_1 = require("react");
|
|
9
|
+
var react_bootstrap_1 = require("react-bootstrap");
|
|
10
|
+
function TextInput(_a) {
|
|
11
|
+
var labelProps = _a.labelProps, placeholder = _a.placeholder, _b = _a.type, type = _b === void 0 ? 'text' : _b, _c = _a.variant, variant = _c === void 0 ? 'sm' : _c, id = _a.id;
|
|
12
|
+
var _d = (0, react_1.useState)(false), showPassword = _d[0], setShowPassword = _d[1];
|
|
13
|
+
var handleToggle = function () {
|
|
14
|
+
setShowPassword(function (prev) { return !prev; });
|
|
15
|
+
};
|
|
16
|
+
function renderInput() {
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(react_bootstrap_1.Form.Control, { placeholder: placeholder, id: id, type: type === 'password' && showPassword ? 'text' : type, className: (0, clsx_1.default)("form-control-".concat(variant)) }));
|
|
18
|
+
}
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('text-input-wrapper'), children: [(0, jsx_runtime_1.jsx)(Label_1.default, tslib_1.__assign({}, labelProps, { id: id })), type === 'password' ? ((0, jsx_runtime_1.jsxs)("div", { className: 'position-relative', children: [renderInput(), (0, jsx_runtime_1.jsx)(react_bootstrap_1.Button, { variant: 'transparent', className: 'form-control-icon text-dark', onClick: handleToggle, children: (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)(showPassword ? 'bi bi-eye bi' : 'bi-eye-slash') }) })] })) : (renderInput())] }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=TextInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../../src/components/TextInput.tsx"],"names":[],"mappings":";;AAcA,4BAiCC;;;AA/CD,sDAAuB;AAEvB,0DAA2B;AAC3B,+BAAmD;AACnD,mDAA8C;AAU9C,SAAwB,SAAS,CAAC,EAA8E;QAA5E,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,YAAa,EAAb,IAAI,mBAAG,MAAM,KAAA,EAAE,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,EAAE,QAAA;IACtF,IAAA,KAAkC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAA;IAEvD,IAAM,YAAY,GAAG;QACnB,eAAe,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,SAAS,WAAW;QAClB,OAAO,CACL,uBAAC,sBAAI,CAAC,OAAO,IACX,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,KAAK,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACzD,SAAS,EAAE,IAAA,cAAI,EAAC,uBAAgB,OAAO,CAAE,CAAC,GAC1C,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,cAAI,EAAC,oBAAoB,CAAC,aACxC,uBAAC,eAAK,uBAAK,UAAU,IAAE,EAAE,EAAE,EAAE,IAAI,EAChC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CACrB,iCAAK,SAAS,EAAC,mBAAmB,aAC/B,WAAW,EAAE,EACd,uBAAC,wBAAM,IAAC,OAAO,EAAC,aAAa,EAAC,SAAS,EAAC,6BAA6B,EAAC,OAAO,EAAE,YAAY,YACzF,8BAAG,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,GAAI,GAC/D,IACL,CACP,CAAC,CAAC,CAAC,CACF,WAAW,EAAE,CACd,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LOGO_IMG = "app/assets/images/logo.png";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/constants/app.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,4BAA4B,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../../src/constants/images.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/constants/routes.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/container/index.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely returns the provided object or an empty object as fallback.
|
|
3
|
+
* @param value - The object to check.
|
|
4
|
+
* @returns The original object if defined, otherwise an empty object of type T.
|
|
5
|
+
*/
|
|
6
|
+
export declare function destructObj<T extends object>(value?: T): T;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if the given value is an empty string (after trimming).
|
|
9
|
+
* @param value - The string to check.
|
|
10
|
+
* @returns true if the value is not a valid string or is empty after trimming, false otherwise.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isEmptyString(value?: string | null): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if the given value is a non-empty string.
|
|
15
|
+
* @param value - The string to check.
|
|
16
|
+
* @returns true if the value is a string with at least one character, false otherwise.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isStringNotEmpty(value?: string | null): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Checks if the given value is a non-empty array.
|
|
21
|
+
* @param value - The array to check.
|
|
22
|
+
* @returns true if the value is an array with at least one element, false otherwise.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isArrayNotEmpty<T>(value?: T[] | null): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Checks if the given value is an empty array.
|
|
27
|
+
* @param value - The array to check.
|
|
28
|
+
* @returns true if the value is an array with no elements, false otherwise.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isArrayEmpty<T>(value?: T[] | null): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Safely returns the length of the given array.
|
|
33
|
+
* @param value - The array to check.
|
|
34
|
+
* @returns The number of elements in the array, or 0 if the array is null/undefined.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getArrayLength<T>(value?: T[] | null): number;
|
|
37
|
+
/**
|
|
38
|
+
* Safely checks if the given array includes a specific value.
|
|
39
|
+
* @param array - The array to check.
|
|
40
|
+
* @param item - The item to search for.
|
|
41
|
+
* @returns true if the array includes the item, false otherwise.
|
|
42
|
+
*/
|
|
43
|
+
export declare function isArrayIncludes<T>(array: T[] | null | undefined, item: T): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Checks if the given value is an empty object.
|
|
46
|
+
* @param value - The object to check.
|
|
47
|
+
* @returns true if the value is an object with no own enumerable keys, false otherwise.
|
|
48
|
+
*/
|
|
49
|
+
export declare function isObjEmpty(value?: object | null): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Checks if the given value is a non-empty plain object.
|
|
52
|
+
* @param value - The object to check.
|
|
53
|
+
* @returns true if the value is a plain object with at least one own key, false otherwise.
|
|
54
|
+
*/
|
|
55
|
+
export declare function isObjNotEmpty(value?: object | null): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Checks if the given value is empty.
|
|
58
|
+
* Supports: string, array, object.
|
|
59
|
+
* @param value - The value to check.
|
|
60
|
+
* @returns true if the value is empty, false otherwise.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isEmpty(value: any): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Generates an array of dates between two dates (inclusive).
|
|
65
|
+
* @param start - The start date.
|
|
66
|
+
* @param end - The end date.
|
|
67
|
+
* @returns An array of Date objects from start to end.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getDates(start: Date, end: Date): Date[];
|
|
70
|
+
/**
|
|
71
|
+
* Formats a given date into a string.
|
|
72
|
+
* @param date - The date to format.
|
|
73
|
+
* @param format - The format string (default: "YYYY-MM-DD").
|
|
74
|
+
* Supported tokens: YYYY, MM, DD, HH, mm, ss
|
|
75
|
+
* @returns The formatted date string.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getFormattedDate(date: Date, format?: string): string;
|
|
78
|
+
/**
|
|
79
|
+
* Returns the current logged-in user from localStorage.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getCurrentUser(): any | null;
|