@tenancy.nz/feature-ui 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.cjs +134 -0
  2. package/dist/cjs/components/AgentDetailsCard.cjs +93 -0
  3. package/dist/cjs/components/AnalyticsBox.cjs +58 -0
  4. package/dist/cjs/components/AnalyticsSection.cjs +161 -0
  5. package/dist/cjs/components/BookingChart.cjs +126 -0
  6. package/dist/cjs/components/BookingChart.styled.cjs +46 -0
  7. package/dist/cjs/components/BookingTable.cjs +53 -0
  8. package/dist/cjs/components/BookingTableRow.cjs +107 -0
  9. package/dist/cjs/components/BookingTableRow.styled.cjs +21 -0
  10. package/dist/cjs/components/BookingTableRowHeader.cjs +66 -0
  11. package/dist/cjs/components/BookingTableRowSkeleton.cjs +97 -0
  12. package/dist/cjs/components/CheckedIcon.cjs +23 -0
  13. package/dist/cjs/components/EnquiriesDoughnutChart.cjs +144 -0
  14. package/dist/cjs/components/GridList.cjs +80 -0
  15. package/dist/cjs/components/Hidden.cjs +18 -0
  16. package/dist/cjs/components/IconLabel.cjs +44 -0
  17. package/dist/cjs/components/NotesCard.cjs +67 -0
  18. package/dist/cjs/components/PropertyCard.cjs +145 -0
  19. package/dist/cjs/components/PropertyCard.styled.cjs +24 -0
  20. package/dist/cjs/index.cjs +36 -0
  21. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +120 -0
  22. package/dist/esm/components/AgentDetailsCard.js +89 -0
  23. package/dist/esm/components/AnalyticsBox.js +54 -0
  24. package/dist/esm/components/AnalyticsSection.js +157 -0
  25. package/dist/esm/components/BookingChart.js +122 -0
  26. package/dist/esm/components/BookingChart.styled.js +40 -0
  27. package/dist/esm/components/BookingTable.js +49 -0
  28. package/dist/esm/components/BookingTableRow.js +103 -0
  29. package/dist/esm/components/BookingTableRow.styled.js +19 -0
  30. package/dist/esm/components/BookingTableRowHeader.js +62 -0
  31. package/dist/esm/components/BookingTableRowSkeleton.js +93 -0
  32. package/dist/esm/components/CheckedIcon.js +19 -0
  33. package/dist/esm/components/EnquiriesDoughnutChart.js +140 -0
  34. package/dist/esm/components/GridList.js +76 -0
  35. package/dist/esm/components/Hidden.js +14 -0
  36. package/dist/esm/components/IconLabel.js +40 -0
  37. package/dist/esm/components/NotesCard.js +63 -0
  38. package/dist/esm/components/PropertyCard.js +141 -0
  39. package/dist/esm/components/PropertyCard.styled.js +20 -0
  40. package/dist/esm/index.js +16 -0
  41. package/package.json +5 -5
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+ var ui = require('@tenancy.nz/ui');
8
+ var CheckedIcon = require('./CheckedIcon.cjs');
9
+ var BookingTableRow_styled = require('./BookingTableRow.styled.cjs');
10
+
11
+ var tagMap = function tagMap(status) {
12
+ if (status === "confirmed") {
13
+ return /* @__PURE__ */React.createElement(ui.Tag, {
14
+ color: "success",
15
+ label: "Confirmed"
16
+ });
17
+ }
18
+ if (status === "cancelled") {
19
+ return /* @__PURE__ */React.createElement(ui.Tag, {
20
+ color: "error",
21
+ label: "Cancelled"
22
+ });
23
+ }
24
+ return /* @__PURE__ */React.createElement(ui.Tag, {
25
+ color: "info",
26
+ label: "Registered"
27
+ });
28
+ };
29
+ function BookingTableRow(_ref) {
30
+ var _ref$applicationRecei = _ref.applicationReceived,
31
+ applicationReceived = _ref$applicationRecei === void 0 ? false : _ref$applicationRecei,
32
+ _ref$applicationSent = _ref.applicationSent,
33
+ applicationSent = _ref$applicationSent === void 0 ? false : _ref$applicationSent,
34
+ _ref$attended = _ref.attended,
35
+ attended = _ref$attended === void 0 ? false : _ref$attended,
36
+ firstName = _ref.firstName,
37
+ lastName = _ref.lastName,
38
+ _ref$notes = _ref.notes,
39
+ notes = _ref$notes === void 0 ? void 0 : _ref$notes,
40
+ status = _ref.status,
41
+ _ref$suitable = _ref.suitable,
42
+ suitable = _ref$suitable === void 0 ? false : _ref$suitable,
43
+ _ref$tenantNotes = _ref.tenantNotes,
44
+ tenantNotes = _ref$tenantNotes === void 0 ? void 0 : _ref$tenantNotes;
45
+ return /* @__PURE__ */React.createElement(ui.Grid, {
46
+ container: true,
47
+ spacing: 0
48
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
49
+ item: true,
50
+ container: true,
51
+ xs: 6
52
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
53
+ item: true,
54
+ xs: 3,
55
+ md: 3
56
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, null, firstName, " ", lastName)), /* @__PURE__ */React.createElement(ui.Grid, {
57
+ item: true,
58
+ xs: 6,
59
+ md: 7
60
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, null, /* @__PURE__ */React.createElement(ui.Text, {
61
+ as: "div",
62
+ variant: "body2"
63
+ }, notes && /* @__PURE__ */React.createElement(ui.Text, {
64
+ variant: "inherit",
65
+ paragraph: !!tenantNotes
66
+ }, /* @__PURE__ */React.createElement("strong", null, "Property Manager Note"), " ", /* @__PURE__ */React.createElement("br", null), notes), tenantNotes && /* @__PURE__ */React.createElement(ui.Text, {
67
+ variant: "inherit"
68
+ }, /* @__PURE__ */React.createElement("strong", null, "Tenant Feedback"), /* @__PURE__ */React.createElement("br", null), tenantNotes)))), /* @__PURE__ */React.createElement(ui.Grid, {
69
+ item: true,
70
+ xs: 3,
71
+ md: 2
72
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, null, /* @__PURE__ */React.createElement("span", null, tagMap(status))))), /* @__PURE__ */React.createElement(ui.Grid, {
73
+ item: true,
74
+ container: true,
75
+ xs: 6
76
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
77
+ item: true,
78
+ xs: 3
79
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
80
+ align: "center"
81
+ }, /* @__PURE__ */React.createElement(CheckedIcon.default, {
82
+ value: attended
83
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
84
+ item: true,
85
+ xs: 3
86
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
87
+ align: "center"
88
+ }, /* @__PURE__ */React.createElement(CheckedIcon.default, {
89
+ value: suitable
90
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
91
+ item: true,
92
+ xs: 3
93
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
94
+ align: "center"
95
+ }, /* @__PURE__ */React.createElement(CheckedIcon.default, {
96
+ value: applicationSent
97
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
98
+ item: true,
99
+ xs: 3
100
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
101
+ align: "center"
102
+ }, /* @__PURE__ */React.createElement(CheckedIcon.default, {
103
+ value: applicationReceived
104
+ })))));
105
+ }
106
+
107
+ exports.default = BookingTableRow;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
5
+ var react = require('@emotion/react');
6
+ var styled = require('@emotion/styled');
7
+
8
+ var _templateObject, _templateObject2;
9
+ var StyledBookingTableRowCell = styled("div", {
10
+ shouldForwardProp: function shouldForwardProp(prop) {
11
+ return prop !== "align";
12
+ }
13
+ })(_templateObject || (_templateObject = _rollupPluginBabelHelpers.taggedTemplateLiteral(["\n ", "\n"])), function (_ref) {
14
+ var _ref$align = _ref.align,
15
+ align = _ref$align === void 0 ? "left" : _ref$align,
16
+ header = _ref.header,
17
+ theme = _ref.theme;
18
+ return react.css(_templateObject2 || (_templateObject2 = _rollupPluginBabelHelpers.taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n justify-content: ", ";\n padding: 6px 12px;\n font-size: ", ";\n color: #717680;\n height: 100%;\n\n ", "\n\n ", "\n\n ", "\n\n ", " {\n padding: 12px 24px;\n }\n\n @media print {\n padding: 12px 24px;\n }\n "])), header ? "center" : "flex-start", header ? "12px" : "14px", align === "left" && "\n align-items: flex-start;\n ", align === "center" && "\n align-items: center;\n text-align: center;\n ", align === "right" && "\n align-items: flex-end;\n ", theme.breakpoints.up("md"));
19
+ });
20
+
21
+ exports.StyledBookingTableRowCell = StyledBookingTableRowCell;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+ var ui = require('@tenancy.nz/ui');
8
+ var BookingTableRow_styled = require('./BookingTableRow.styled.cjs');
9
+
10
+ function BookingTableRowHeader() {
11
+ return /* @__PURE__ */React.createElement(ui.Grid, {
12
+ container: true,
13
+ spacing: 0
14
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
15
+ item: true,
16
+ container: true,
17
+ xs: 6
18
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
19
+ item: true,
20
+ xs: 3
21
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
22
+ header: true
23
+ }, "Name")), /* @__PURE__ */React.createElement(ui.Grid, {
24
+ item: true,
25
+ xs: 6,
26
+ md: 7
27
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
28
+ header: true
29
+ }, "Comments")), /* @__PURE__ */React.createElement(ui.Grid, {
30
+ item: true,
31
+ xs: 3,
32
+ md: 2
33
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
34
+ header: true
35
+ }, "Status"))), /* @__PURE__ */React.createElement(ui.Grid, {
36
+ item: true,
37
+ container: true,
38
+ xs: 6
39
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
40
+ item: true,
41
+ xs: 3
42
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
43
+ align: "center",
44
+ header: true
45
+ }, "Attendend")), /* @__PURE__ */React.createElement(ui.Grid, {
46
+ item: true,
47
+ xs: 3
48
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
49
+ align: "center",
50
+ header: true
51
+ }, "Suitable")), /* @__PURE__ */React.createElement(ui.Grid, {
52
+ item: true,
53
+ xs: 3
54
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
55
+ align: "center",
56
+ header: true
57
+ }, "Application Sent")), /* @__PURE__ */React.createElement(ui.Grid, {
58
+ item: true,
59
+ xs: 3
60
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
61
+ align: "center",
62
+ header: true
63
+ }, "Application Received"))));
64
+ }
65
+
66
+ exports.default = BookingTableRowHeader;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+ var ui = require('@tenancy.nz/ui');
8
+ var BookingTableRow_styled = require('./BookingTableRow.styled.cjs');
9
+
10
+ function BookingTableRowSkeleton() {
11
+ return /* @__PURE__ */React.createElement(ui.Grid, {
12
+ container: true,
13
+ spacing: 0
14
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
15
+ item: true,
16
+ container: true,
17
+ xs: 12,
18
+ sm: 6
19
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
20
+ item: true,
21
+ xs: 12,
22
+ sm: 3
23
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, null, /* @__PURE__ */React.createElement(ui.Skeleton, {
24
+ width: "85%",
25
+ height: "20px",
26
+ variant: "text"
27
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
28
+ item: true,
29
+ xs: 12,
30
+ sm: 6,
31
+ md: 7
32
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, null, /* @__PURE__ */React.createElement(ui.Skeleton, {
33
+ width: "95%",
34
+ height: "20px",
35
+ variant: "text"
36
+ }), /* @__PURE__ */React.createElement(ui.Skeleton, {
37
+ width: "80%",
38
+ height: "20px",
39
+ variant: "text"
40
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
41
+ item: true,
42
+ xs: 12,
43
+ sm: 3,
44
+ md: 2
45
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, null, /* @__PURE__ */React.createElement(ui.Skeleton, {
46
+ width: "90px",
47
+ height: "30px",
48
+ variant: "text"
49
+ })))), /* @__PURE__ */React.createElement(ui.Grid, {
50
+ item: true,
51
+ container: true,
52
+ xs: 12,
53
+ sm: 6
54
+ }, /* @__PURE__ */React.createElement(ui.Grid, {
55
+ item: true,
56
+ xs: 12,
57
+ sm: 3
58
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
59
+ align: "center"
60
+ }, /* @__PURE__ */React.createElement(ui.Skeleton, {
61
+ width: "40px",
62
+ height: "20px",
63
+ variant: "text"
64
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
65
+ item: true,
66
+ xs: 12,
67
+ sm: 3
68
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
69
+ align: "center"
70
+ }, /* @__PURE__ */React.createElement(ui.Skeleton, {
71
+ width: "40px",
72
+ height: "20px",
73
+ variant: "text"
74
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
75
+ item: true,
76
+ xs: 12,
77
+ sm: 3
78
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
79
+ align: "center"
80
+ }, /* @__PURE__ */React.createElement(ui.Skeleton, {
81
+ width: "40px",
82
+ height: "20px",
83
+ variant: "text"
84
+ }))), /* @__PURE__ */React.createElement(ui.Grid, {
85
+ item: true,
86
+ xs: 12,
87
+ sm: 3
88
+ }, /* @__PURE__ */React.createElement(BookingTableRow_styled.StyledBookingTableRowCell, {
89
+ align: "center"
90
+ }, /* @__PURE__ */React.createElement(ui.Skeleton, {
91
+ width: "40px",
92
+ height: "20px",
93
+ variant: "text"
94
+ })))));
95
+ }
96
+
97
+ exports.default = BookingTableRowSkeleton;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+ var icons = require('@tenancy.nz/icons');
8
+
9
+ function CheckedIcon(_ref) {
10
+ var value = _ref.value;
11
+ if (value === true) {
12
+ return /* @__PURE__ */React.createElement(icons.CircleCheckIcon, {
13
+ color: "success.main",
14
+ size: "20px"
15
+ });
16
+ }
17
+ return /* @__PURE__ */React.createElement(icons.CircleTimesIcon, {
18
+ color: "error.main",
19
+ size: "20px"
20
+ });
21
+ }
22
+
23
+ exports.default = CheckedIcon;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+ var ui = require('@tenancy.nz/ui');
8
+ var chart = require('primereact/chart');
9
+
10
+ function EnquiriesDoughnutChart(_ref) {
11
+ var _ref$tradeMeEnquiries = _ref.tradeMeEnquiriesCount,
12
+ tradeMeEnquiriesCount = _ref$tradeMeEnquiries === void 0 ? 0 : _ref$tradeMeEnquiries,
13
+ _ref$bookMeEnquiriesC = _ref.bookMeEnquiriesCount,
14
+ bookMeEnquiriesCount = _ref$bookMeEnquiriesC === void 0 ? 0 : _ref$bookMeEnquiriesC,
15
+ _ref$manualEnquiryCou = _ref.manualEnquiryCount,
16
+ manualEnquiryCount = _ref$manualEnquiryCou === void 0 ? 0 : _ref$manualEnquiryCou;
17
+ var colors = {
18
+ tradeMe: "#6FD3C0",
19
+ bookMe: "#00C0F3",
20
+ manual: "#394869"
21
+ };
22
+ var chartColors = [colors.tradeMe, colors.bookMe, colors.manual];
23
+ return /* @__PURE__ */React.createElement(ui.Box, {
24
+ position: "relative",
25
+ display: "flex",
26
+ height: "100%",
27
+ align: "center"
28
+ }, /* @__PURE__ */React.createElement(ui.Text, {
29
+ transform: "uppercase",
30
+ sx: {
31
+ position: "absolute",
32
+ left: 20,
33
+ top: -10
34
+ },
35
+ fontSize: 13,
36
+ color: "textPrimary",
37
+ weight: "700"
38
+ }, "Number of enquiries"), /* @__PURE__ */React.createElement(ui.Box, {
39
+ width: "100%",
40
+ overflow: "hidden"
41
+ }, /* @__PURE__ */React.createElement(chart.Chart, {
42
+ type: "doughnut",
43
+ data: {
44
+ labels: ["TradeMe", "BookMe", "Manual"],
45
+ datasets: [{
46
+ data: [Math.max(tradeMeEnquiriesCount, 1e-3), Math.max(bookMeEnquiriesCount, 1e-3), Math.max(manualEnquiryCount, 1e-3)],
47
+ backgroundColor: chartColors,
48
+ hoverBackgroundColor: chartColors
49
+ }]
50
+ },
51
+ options: {
52
+ legend: {
53
+ display: false
54
+ },
55
+ animation: {
56
+ duration: 0
57
+ }
58
+ },
59
+ style: {
60
+ width: "100%",
61
+ position: "absolute",
62
+ top: "18%",
63
+ left: "-75px"
64
+ }
65
+ })), /* @__PURE__ */React.createElement(ui.Box, {
66
+ maxWidth: {
67
+ xs: "160px",
68
+ xl: "180px"
69
+ },
70
+ width: "100%",
71
+ padding: "10px 20px",
72
+ mt: -4
73
+ }, /* @__PURE__ */React.createElement(ui.Box, {
74
+ width: "100%"
75
+ }, /* @__PURE__ */React.createElement(ui.Box, {
76
+ height: "10px",
77
+ backgroundColor: colors.tradeMe,
78
+ width: "100%"
79
+ }), /* @__PURE__ */React.createElement(ui.Box, {
80
+ display: "flex",
81
+ justify: "space-between",
82
+ width: "100%",
83
+ align: "flex-start",
84
+ mt: 2
85
+ }, /* @__PURE__ */React.createElement(ui.Text, {
86
+ transform: "uppercase",
87
+ fontSize: 12,
88
+ weight: "600"
89
+ }, "TradeMe"), /* @__PURE__ */React.createElement(ui.Text, {
90
+ transform: "uppercase",
91
+ fontSize: 32,
92
+ weight: "700",
93
+ mt: -3,
94
+ color: "textPrimary"
95
+ }, tradeMeEnquiriesCount))), /* @__PURE__ */React.createElement(ui.Box, {
96
+ width: "100%",
97
+ mt: "30px"
98
+ }, /* @__PURE__ */React.createElement(ui.Box, {
99
+ height: "10px",
100
+ backgroundColor: colors.bookMe,
101
+ width: "100%"
102
+ }), /* @__PURE__ */React.createElement(ui.Box, {
103
+ display: "flex",
104
+ justify: "space-between",
105
+ width: "100%",
106
+ align: "flex-start",
107
+ mt: 2
108
+ }, /* @__PURE__ */React.createElement(ui.Text, {
109
+ transform: "uppercase",
110
+ fontSize: 12,
111
+ weight: "600"
112
+ }, "Bookme"), /* @__PURE__ */React.createElement(ui.Text, {
113
+ transform: "uppercase",
114
+ fontSize: 32,
115
+ weight: "700",
116
+ mt: -3,
117
+ color: "textPrimary"
118
+ }, bookMeEnquiriesCount))), /* @__PURE__ */React.createElement(ui.Box, {
119
+ width: "100%",
120
+ mt: "30px"
121
+ }, /* @__PURE__ */React.createElement(ui.Box, {
122
+ height: "10px",
123
+ backgroundColor: colors.manual,
124
+ width: "100%"
125
+ }), /* @__PURE__ */React.createElement(ui.Box, {
126
+ display: "flex",
127
+ justify: "space-between",
128
+ width: "100%",
129
+ align: "flex-start",
130
+ mt: 2
131
+ }, /* @__PURE__ */React.createElement(ui.Text, {
132
+ transform: "uppercase",
133
+ fontSize: 12,
134
+ weight: "600"
135
+ }, "Manually", /* @__PURE__ */React.createElement("br", null), "Generated"), /* @__PURE__ */React.createElement(ui.Text, {
136
+ transform: "uppercase",
137
+ fontSize: 32,
138
+ weight: "700",
139
+ color: "textPrimary",
140
+ mt: -3
141
+ }, manualEnquiryCount)))));
142
+ }
143
+
144
+ exports.default = EnquiriesDoughnutChart;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
7
+ var React = require('react');
8
+ var ui = require('@tenancy.nz/ui');
9
+ var Hidden = require('./Hidden.cjs');
10
+
11
+ var _excluded = ["items", "children", "renderItem", "headerComponent", "footerComponent", "spacing", "loading", "loadingComponent", "emptyComponent", "currentPage", "totalPages", "onChangePage", "showHeaderComponent", "resultsPerPage", "onChangeResultsPerPage", "perPage", "scrollTopOnChangePage"];
12
+ function GridList(_ref) {
13
+ var items = _ref.items,
14
+ children = _ref.children,
15
+ renderItem = _ref.renderItem,
16
+ headerComponent = _ref.headerComponent,
17
+ footerComponent = _ref.footerComponent,
18
+ spacing = _ref.spacing,
19
+ loading = _ref.loading,
20
+ loadingComponent = _ref.loadingComponent,
21
+ emptyComponent = _ref.emptyComponent,
22
+ currentPage = _ref.currentPage,
23
+ totalPages = _ref.totalPages,
24
+ onChangePage = _ref.onChangePage,
25
+ showHeaderComponent = _ref.showHeaderComponent,
26
+ resultsPerPage = _ref.resultsPerPage,
27
+ onChangeResultsPerPage = _ref.onChangeResultsPerPage,
28
+ perPage = _ref.perPage,
29
+ scrollTopOnChangePage = _ref.scrollTopOnChangePage,
30
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
31
+ var gridContainerRef = React.useRef(null);
32
+ var childLen = React.Children.count(children);
33
+ var isChildren = childLen > 0;
34
+ var listLength = 0;
35
+ if (!isChildren) {
36
+ listLength = Array.isArray(items) ? items.length : 0;
37
+ } else {
38
+ listLength = childLen;
39
+ }
40
+ var isEmpty = listLength === 0;
41
+ React.useEffect(function () {
42
+ if (scrollTopOnChangePage && currentPage > 1 && !loading && gridContainerRef && gridContainerRef.current) {
43
+ gridContainerRef.current.scrollIntoView();
44
+ }
45
+ }, [currentPage, loading, gridContainerRef, scrollTopOnChangePage]);
46
+ return /* @__PURE__ */React.createElement(React.Fragment, null, showHeaderComponent && headerComponent, loading && /* @__PURE__ */React.createElement(React.Fragment, null, loadingComponent), !loading && isEmpty && /* @__PURE__ */React.createElement(React.Fragment, null, emptyComponent), !loading && !isEmpty && /* @__PURE__ */React.createElement("div", {
47
+ ref: gridContainerRef,
48
+ style: {
49
+ width: "100%"
50
+ }
51
+ }, /* @__PURE__ */React.createElement(ui.Grid, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
52
+ container: true
53
+ }, rest), {}, {
54
+ spacing: spacing
55
+ }), isChildren ? children : items.map(renderItem))), typeof onChangePage === "function" && /* @__PURE__ */React.createElement(Hidden.default, {
56
+ hide: isEmpty
57
+ }, /* @__PURE__ */React.createElement(ui.Box, {
58
+ display: "flex",
59
+ justify: "center",
60
+ align: "center",
61
+ direction: "column",
62
+ marginTop: 12
63
+ }, /* @__PURE__ */React.createElement(ui.Pagination, {
64
+ page: currentPage,
65
+ count: totalPages,
66
+ color: "textPrimary",
67
+ shape: "round",
68
+ size: "large",
69
+ onChange: onChangePage
70
+ }), typeof onChangeResultsPerPage === "function" && /* @__PURE__ */React.createElement(ui.Box, {
71
+ mt: 4
72
+ }, /* @__PURE__ */React.createElement(ui.Select, {
73
+ name: "gridListSelect",
74
+ value: perPage,
75
+ options: resultsPerPage,
76
+ onChange: onChangeResultsPerPage
77
+ })))), footerComponent);
78
+ }
79
+
80
+ exports.default = GridList;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ require('react');
7
+
8
+ function Hidden(_ref) {
9
+ var _ref$hide = _ref.hide,
10
+ hide = _ref$hide === void 0 ? false : _ref$hide,
11
+ children = _ref.children;
12
+ if (hide) {
13
+ return null;
14
+ }
15
+ return children;
16
+ }
17
+
18
+ exports.default = Hidden;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
7
+ var React = require('react');
8
+ var ui = require('@tenancy.nz/ui');
9
+
10
+ var _excluded = ["children", "endIcon", "startIcon", "onClick"];
11
+ function IconLabel(_ref) {
12
+ var children = _ref.children,
13
+ _ref$endIcon = _ref.endIcon,
14
+ endIcon = _ref$endIcon === void 0 ? void 0 : _ref$endIcon,
15
+ _ref$startIcon = _ref.startIcon,
16
+ startIcon = _ref$startIcon === void 0 ? void 0 : _ref$startIcon,
17
+ _ref$onClick = _ref.onClick,
18
+ onClick = _ref$onClick === void 0 ? void 0 : _ref$onClick,
19
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
20
+ var iconLabel = /* @__PURE__ */React.createElement(ui.Box, _rollupPluginBabelHelpers.objectSpread2({
21
+ align: "center",
22
+ display: "inline-flex"
23
+ }, rest), startIcon && /* @__PURE__ */React.createElement(ui.Box, {
24
+ display: "inline-flex",
25
+ color: "inherit",
26
+ fontSize: "inherit"
27
+ }, startIcon), children && /* @__PURE__ */React.createElement(ui.Box, {
28
+ display: "inline-flex",
29
+ color: "inherit",
30
+ fontSize: "inherit",
31
+ marginLeft: startIcon ? 1 : 0,
32
+ marginRight: endIcon ? 1 : 0,
33
+ fontWeight: "inherit"
34
+ }, children), endIcon && /* @__PURE__ */React.createElement(ui.Box, {
35
+ display: "inline-flex",
36
+ color: "text.muted",
37
+ marginLeft: 1
38
+ }, endIcon));
39
+ return /* @__PURE__ */React.createElement(React.Fragment, null, typeof onClick === "function" ? /* @__PURE__ */React.createElement(ui.Box, {
40
+ onClick: onClick
41
+ }, iconLabel) : iconLabel);
42
+ }
43
+
44
+ exports.default = IconLabel;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
7
+ var React = require('react');
8
+ var ui = require('@tenancy.nz/ui');
9
+
10
+ var _excluded = ["loading", "tag", "text"];
11
+ var tagMap = function tagMap(name) {
12
+ if (typeof name !== "string") {
13
+ return name;
14
+ }
15
+ if (name === "feedback") {
16
+ return /* @__PURE__ */React.createElement(ui.Tag, {
17
+ color: "info",
18
+ label: "Feedback"
19
+ });
20
+ }
21
+ if (name === "maintenance") {
22
+ return /* @__PURE__ */React.createElement(ui.Tag, {
23
+ color: "orange",
24
+ label: "Maintenance"
25
+ });
26
+ }
27
+ return name;
28
+ };
29
+ function NotesCard(_ref) {
30
+ var _ref$loading = _ref.loading,
31
+ loading = _ref$loading === void 0 ? false : _ref$loading,
32
+ _ref$tag = _ref.tag,
33
+ tag = _ref$tag === void 0 ? void 0 : _ref$tag,
34
+ _ref$text = _ref.text,
35
+ text = _ref$text === void 0 ? void 0 : _ref$text,
36
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
37
+ return /* @__PURE__ */React.createElement(ui.Paper, _rollupPluginBabelHelpers.objectSpread2({
38
+ inset: "medium",
39
+ sx: {
40
+ minHeight: "100%"
41
+ }
42
+ }, rest), /* @__PURE__ */React.createElement(ui.Box, {
43
+ mb: "8px",
44
+ mt: loading ? "-5px" : "0px"
45
+ }, loading ? /* @__PURE__ */React.createElement(ui.Skeleton, {
46
+ width: "114px",
47
+ height: "30px",
48
+ variant: "text"
49
+ }) : tagMap(tag)), loading && /* @__PURE__ */React.createElement(React.Fragment, null, /* @__PURE__ */React.createElement(ui.Skeleton, {
50
+ width: "90%",
51
+ height: "20px",
52
+ variant: "text"
53
+ }), /* @__PURE__ */React.createElement(ui.Skeleton, {
54
+ width: "80%",
55
+ height: "20px",
56
+ variant: "text"
57
+ }), /* @__PURE__ */React.createElement(ui.Skeleton, {
58
+ width: "70%",
59
+ height: "20px",
60
+ variant: "text"
61
+ })), !loading && /* @__PURE__ */React.createElement(ui.Text, {
62
+ variant: "body2",
63
+ weight: "400"
64
+ }, text));
65
+ }
66
+
67
+ exports.default = NotesCard;