@tenancy.nz/feature-ui 1.10.7 → 1.10.9

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.
@@ -1,116 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
6
- var React = require('react');
7
- var doughnutChart = require('./doughnut-chart.cjs');
8
- var partnerLogo = require('./partner-logo.cjs');
9
- var general = require('../utils/helpers/general.cjs');
10
-
11
- var _excluded = ["bookMeCount", "oneRoofCount", "realEstateCount", "tradeMeCount", "manualCount", "websiteCount", "heading"];
12
- function AnalyticsDoughnutChart(_ref) {
13
- var _ref$bookMeCount = _ref.bookMeCount,
14
- bookMeCount = _ref$bookMeCount === void 0 ? 0 : _ref$bookMeCount,
15
- _ref$oneRoofCount = _ref.oneRoofCount,
16
- oneRoofCount = _ref$oneRoofCount === void 0 ? 0 : _ref$oneRoofCount,
17
- _ref$realEstateCount = _ref.realEstateCount,
18
- realEstateCount = _ref$realEstateCount === void 0 ? 0 : _ref$realEstateCount,
19
- _ref$tradeMeCount = _ref.tradeMeCount,
20
- tradeMeCount = _ref$tradeMeCount === void 0 ? 0 : _ref$tradeMeCount,
21
- _ref$manualCount = _ref.manualCount,
22
- manualCount = _ref$manualCount === void 0 ? 0 : _ref$manualCount,
23
- _ref$websiteCount = _ref.websiteCount,
24
- websiteCount = _ref$websiteCount === void 0 ? 0 : _ref$websiteCount,
25
- _ref$heading = _ref.heading,
26
- heading = _ref$heading === void 0 ? void 0 : _ref$heading,
27
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
28
- var data = [{
29
- color: "#0CC1A3",
30
- count: general.parseChartCount(bookMeCount),
31
- slug: "bookme",
32
- title: "Tenant Portal"
33
- },
34
- // {
35
- // color: '#000000',
36
- // count: parseChartCount(allhouseCount),
37
- // slug: 'allhouse',
38
- // title: 'Allhouse',
39
- // logo: (
40
- // <PartnerLogo
41
- // name="allhouse"
42
- // width={{xs: '48px', md: '59px'}}
43
- // height={{xs: '12px', md: '14px'}}
44
- // />
45
- // ),
46
- // },
47
- {
48
- color: "#FF8500",
49
- count: general.parseChartCount(oneRoofCount),
50
- slug: "oneroof",
51
- title: "OneRoof",
52
- logo: /* @__PURE__ */React.createElement(partnerLogo.default, {
53
- name: "oneroof",
54
- width: {
55
- xs: "52px",
56
- md: "66px"
57
- },
58
- height: {
59
- xs: "",
60
- md: "12px"
61
- }
62
- })
63
- }, {
64
- color: "#0098FF",
65
- count: general.parseChartCount(realEstateCount),
66
- slug: "realestate",
67
- title: "realestate.co.nz",
68
- logo: /* @__PURE__ */React.createElement(partnerLogo.default, {
69
- name: "realestate",
70
- width: {
71
- xs: "72px",
72
- md: "92px"
73
- },
74
- height: {
75
- xs: "12px",
76
- md: "14px"
77
- }
78
- })
79
- }, {
80
- color: "#4854D3",
81
- count: general.parseChartCount(tradeMeCount),
82
- slug: "trademe",
83
- title: "Trade Me",
84
- logo: /* @__PURE__ */React.createElement(partnerLogo.default, {
85
- name: "trademe",
86
- width: {
87
- xs: "64px",
88
- md: "90px"
89
- },
90
- height: {
91
- xs: "12px",
92
- md: "12px"
93
- }
94
- })
95
- }, {
96
- color: "#6D6D6D",
97
- count: general.parseChartCount(websiteCount),
98
- slug: "website",
99
- title: "Office Website"
100
- }, {
101
- color: "#D9D9D9",
102
- count: general.parseChartCount(manualCount),
103
- slug: "manual",
104
- title: "Manually Generated"
105
- }];
106
- return /* @__PURE__ */React.createElement(doughnutChart.default, _rollupPluginBabelHelpers.objectSpread2({
107
- data: data,
108
- heading: heading,
109
- size: {
110
- xs: "100px",
111
- md: "165px"
112
- }
113
- }, rest));
114
- }
115
-
116
- exports.default = AnalyticsDoughnutChart;
@@ -1,130 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
6
- var React = require('react');
7
- var reactUid = require('react-uid');
8
- var Stack = require('@mui/material/Stack');
9
- var ui = require('@tenancy.nz/ui');
10
- var chart_js = require('primereact/chart.js');
11
- var ChartLegend = require('./ChartLegend.cjs');
12
-
13
- function DoughnutChart(_ref) {
14
- var data = _ref.data,
15
- _ref$heading = _ref.heading,
16
- heading = _ref$heading === void 0 ? void 0 : _ref$heading,
17
- _ref$chartProps = _ref.chartProps,
18
- chartProps = _ref$chartProps === void 0 ? {} : _ref$chartProps,
19
- _ref$size = _ref.size,
20
- size = _ref$size === void 0 ? "164px" : _ref$size;
21
- if (!Array.isArray(data) || data.length === 0) {
22
- return null;
23
- }
24
- var chartLabels = data.map(function (d) {
25
- return d.title;
26
- });
27
- var chartValues = data.map(function (d) {
28
- return d.count;
29
- });
30
- var chartColors = data.map(function (d) {
31
- return d.color;
32
- });
33
- return /* @__PURE__ */React.createElement(Stack, {
34
- sx: {
35
- position: "relative"
36
- },
37
- alignItems: "center",
38
- gap: 4
39
- }, heading && /* @__PURE__ */React.createElement(ui.Heading, {
40
- as: "h4",
41
- color: "primary"
42
- }, heading), /* @__PURE__ */React.createElement(Stack, {
43
- flexDirection: "row",
44
- gap: {
45
- xs: 4,
46
- md: 12
47
- },
48
- alignItems: "center"
49
- }, /* @__PURE__ */React.createElement(ui.Box, {
50
- overflow: "hidden",
51
- position: "relative",
52
- maxWidth: "100%",
53
- sx: {
54
- width: size,
55
- height: size,
56
- "&& > canvas": {
57
- width: "100%",
58
- height: "100%"
59
- }
60
- }
61
- }, /* @__PURE__ */React.createElement(chart_js.Chart, _rollupPluginBabelHelpers.objectSpread2({
62
- type: "doughnut",
63
- data: {
64
- labels: chartLabels,
65
- datasets: [{
66
- data: chartValues,
67
- backgroundColor: chartColors,
68
- hoverBackgroundColor: chartColors,
69
- borderWidth: 0
70
- }]
71
- },
72
- options: {
73
- responsive: true,
74
- maintainAspectRatio: false,
75
- cutoutPercentage: 64,
76
- legend: {
77
- display: false
78
- },
79
- animation: {
80
- duration: 0
81
- },
82
- tooltips: {
83
- backgroundColor: "#0E0044",
84
- titleFontColor: "#fff",
85
- bodyFontColor: "#fff",
86
- xPadding: 8,
87
- yPadding: 8,
88
- bodyFontFamily: "Montserrat, sans-serif",
89
- bodyFontStyle: "semibold",
90
- bodyFontSize: 14,
91
- borderColor: "transparent",
92
- callbacks: {
93
- labelColor: function labelColor(tooltipItem, chart) {
94
- var dataset = chart.config.data.datasets[tooltipItem.datasetIndex];
95
- var color = dataset.backgroundColor[tooltipItem.index];
96
- return {
97
- borderColor: color,
98
- backgroundColor: color,
99
- borderWidth: 0,
100
- borderRadius: 5
101
- };
102
- },
103
- label: function label(_ref2) {
104
- var index = _ref2.index;
105
- return " ".concat(chartLabels[index], ": ").concat(parseInt(String(chartValues[index]), 10));
106
- }
107
- }
108
- }
109
- },
110
- style: {
111
- width: "100%",
112
- height: "100%"
113
- }
114
- }, chartProps))), /* @__PURE__ */React.createElement(Stack, {
115
- gap: 2
116
- }, data.map(function (item) {
117
- var color = item.color,
118
- count = item.count,
119
- title = item.title,
120
- logo = item.logo;
121
- return /* @__PURE__ */React.createElement(ChartLegend.default, {
122
- key: reactUid.uid(item),
123
- color: color,
124
- count: parseInt(String(count), 10),
125
- label: logo || title
126
- });
127
- }))));
128
- }
129
-
130
- exports.default = DoughnutChart;
@@ -1,173 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var reactUid = require('react-uid');
7
- var Stack = require('@mui/material/Stack');
8
- var useMediaQuery = require('@mui/material/useMediaQuery');
9
- var ui = require('@tenancy.nz/ui');
10
- var AnalyticsBox = require('./AnalyticsBox.cjs');
11
- var analyticsDoughnutChart = require('./analytics-doughnut-chart.cjs');
12
-
13
- var styles = {
14
- chartPaper: {
15
- height: "100%",
16
- width: "100%",
17
- alignItems: "center",
18
- justifyContent: "center",
19
- display: "flex"
20
- }
21
- };
22
- function PDFAnalyticsSection(_ref) {
23
- var viewingsCount = _ref.viewingsCount,
24
- bookingsCount = _ref.bookingsCount,
25
- attendeesCount = _ref.attendeesCount,
26
- cancellationsCount = _ref.cancellationsCount,
27
- applicationsCount = _ref.applicationsCount,
28
- averageRent = _ref.averageRent,
29
- textUsage = _ref.textUsage,
30
- agreementsCount = _ref.agreementsCount,
31
- agreementsFinalisedCount = _ref.agreementsFinalisedCount,
32
- filterDaysCount = _ref.filterDaysCount,
33
- allHouseEnquiriesCount = _ref.allHouseEnquiriesCount,
34
- bookMeEnquiriesCount = _ref.bookMeEnquiriesCount,
35
- oneRoofEnquiriesCount = _ref.oneRoofEnquiriesCount,
36
- realestateEnquiriesCount = _ref.realestateEnquiriesCount,
37
- tradeMeEnquiriesCount = _ref.tradeMeEnquiriesCount,
38
- manualEnquiryCount = _ref.manualEnquiryCount,
39
- websiteEnquiryCount = _ref.websiteEnquiryCount,
40
- allHouseBookingsCount = _ref.allHouseBookingsCount,
41
- bookMeBookingsCount = _ref.bookMeBookingsCount,
42
- oneRoofBookingsCount = _ref.oneRoofBookingsCount,
43
- realestateBookingsCount = _ref.realestateBookingsCount,
44
- tradeMeBookingsCount = _ref.tradeMeBookingsCount,
45
- manualBookingsCount = _ref.manualBookingsCount,
46
- websiteBookingsCount = _ref.websiteBookingsCount;
47
- var isXlUp = useMediaQuery(function (theme) {
48
- return theme.breakpoints.up("xl");
49
- });
50
- var stats = [{
51
- label: "Viewings",
52
- value: viewingsCount
53
- }, {
54
- label: "Bookings",
55
- value: bookingsCount
56
- }, {
57
- label: "Attendees",
58
- value: attendeesCount
59
- }, {
60
- label: "Cancellations",
61
- value: cancellationsCount
62
- }, {
63
- label: "Applications",
64
- value: applicationsCount
65
- }, {
66
- label: "Average Rent",
67
- value: "$".concat(averageRent)
68
- }, {
69
- label: "Text Usage Total",
70
- value: textUsage
71
- }];
72
- return /* @__PURE__ */React.createElement(Stack, {
73
- gap: 6
74
- }, /* @__PURE__ */React.createElement(ui.Grid, {
75
- container: true,
76
- spacing: 6
77
- }, /* @__PURE__ */React.createElement(ui.Grid, {
78
- container: true,
79
- item: true,
80
- spacing: 6,
81
- xs: 12
82
- }, /* @__PURE__ */React.createElement(ui.Grid, {
83
- item: true,
84
- xs: 6
85
- }, /* @__PURE__ */React.createElement(ui.Paper, {
86
- outlined: true,
87
- inset: "medium",
88
- overflow: false,
89
- sx: styles.chartPaper
90
- }, /* @__PURE__ */React.createElement(analyticsDoughnutChart.default, {
91
- tradeMeCount: tradeMeEnquiriesCount,
92
- bookMeCount: bookMeEnquiriesCount,
93
- manualCount: manualEnquiryCount,
94
- allhouseCount: allHouseEnquiriesCount,
95
- oneRoofCount: oneRoofEnquiriesCount,
96
- realEstateCount: realestateEnquiriesCount,
97
- websiteCount: websiteEnquiryCount,
98
- heading: "Number of enquiries"
99
- }))), /* @__PURE__ */React.createElement(ui.Grid, {
100
- item: true,
101
- xs: 6
102
- }, /* @__PURE__ */React.createElement(ui.Paper, {
103
- outlined: true,
104
- inset: "medium",
105
- overflow: false,
106
- sx: styles.chartPaper
107
- }, /* @__PURE__ */React.createElement(analyticsDoughnutChart.default, {
108
- tradeMeCount: tradeMeBookingsCount,
109
- bookMeCount: bookMeBookingsCount,
110
- manualCount: manualBookingsCount,
111
- allhouseCount: allHouseBookingsCount,
112
- oneRoofCount: oneRoofBookingsCount,
113
- realEstateCount: realestateBookingsCount,
114
- websiteCount: websiteBookingsCount,
115
- heading: "Number of bookings"
116
- })))), /* @__PURE__ */React.createElement(ui.Grid, {
117
- item: true,
118
- container: true,
119
- xs: 12,
120
- spacing: 6
121
- }, /* @__PURE__ */React.createElement(ui.Grid, {
122
- item: true,
123
- xs: 6
124
- }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
125
- outlined: true,
126
- label: /* @__PURE__ */React.createElement("strong", null, "Converted Properties"),
127
- amount: agreementsCount,
128
- width: "100%",
129
- height: isXlUp ? "157px" : "auto",
130
- text: /* @__PURE__ */React.createElement(ui.Text, {
131
- as: "span",
132
- variant: "inherit"
133
- }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement("strong", null, filterDaysCount), " days where an agreement has been ", /* @__PURE__ */React.createElement("strong", null, "created"))
134
- })), /* @__PURE__ */React.createElement(ui.Grid, {
135
- item: true,
136
- xs: 6,
137
- sx: {
138
- display: "flex",
139
- alignItems: "flex-end"
140
- }
141
- }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
142
- outlined: true,
143
- label: /* @__PURE__ */React.createElement("strong", null, "Converted Properties"),
144
- amount: agreementsFinalisedCount,
145
- width: "100%",
146
- height: isXlUp ? "157px" : "auto",
147
- text: /* @__PURE__ */React.createElement(ui.Text, {
148
- as: "span",
149
- variant: "inherit"
150
- }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement("strong", null, " ", filterDaysCount), " days where an agreement has been ", /* @__PURE__ */React.createElement("strong", null, "finalised"))
151
- })))), /* @__PURE__ */React.createElement(ui.Grid, {
152
- container: true,
153
- spacing: {
154
- xs: 3,
155
- md: 6
156
- }
157
- }, stats.map(function (stat, i) {
158
- return /* @__PURE__ */React.createElement(ui.Grid, {
159
- item: true,
160
- key: reactUid.uid(stat, i),
161
- xs: 3,
162
- md: 2
163
- }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
164
- outlined: true,
165
- label: stat.label,
166
- amount: stat.value,
167
- width: "100%",
168
- height: isXlUp ? "157px" : "124px"
169
- }));
170
- })));
171
- }
172
-
173
- exports.default = PDFAnalyticsSection;
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- var parseChartCount = function parseChartCount(value) {
4
- if (Number.isNaN(Number.parseInt(String(value), 10))) {
5
- return 0;
6
- }
7
- return Math.max(Number(value), 1e-3);
8
- };
9
-
10
- exports.parseChartCount = parseChartCount;
@@ -1,182 +0,0 @@
1
- import React from 'react';
2
- import { uid } from 'react-uid';
3
- import Stack from '@mui/material/Stack';
4
- import useMediaQuery from '@mui/material/useMediaQuery';
5
- import { Paper, Text, Grid } from '@tenancy.nz/ui';
6
- import AnalyticsBox from './AnalyticsBox.js';
7
- import AnalyticsDoughnutChart from './analytics-doughnut-chart.js';
8
-
9
- function AnalyticsSection(_ref) {
10
- var viewingsCount = _ref.viewingsCount,
11
- bookingsCount = _ref.bookingsCount,
12
- attendeesCount = _ref.attendeesCount,
13
- cancellationsCount = _ref.cancellationsCount,
14
- applicationsCount = _ref.applicationsCount,
15
- averageRent = _ref.averageRent,
16
- textUsage = _ref.textUsage,
17
- agreementsCount = _ref.agreementsCount,
18
- agreementsFinalisedCount = _ref.agreementsFinalisedCount,
19
- filterDaysCount = _ref.filterDaysCount,
20
- allHouseEnquiriesCount = _ref.allHouseEnquiriesCount,
21
- bookMeEnquiriesCount = _ref.bookMeEnquiriesCount,
22
- oneRoofEnquiriesCount = _ref.oneRoofEnquiriesCount,
23
- realestateEnquiriesCount = _ref.realestateEnquiriesCount,
24
- tradeMeEnquiriesCount = _ref.tradeMeEnquiriesCount,
25
- manualEnquiryCount = _ref.manualEnquiryCount,
26
- websiteEnquiriesCount = _ref.websiteEnquiriesCount,
27
- allHouseBookingsCount = _ref.allHouseBookingsCount,
28
- bookMeBookingsCount = _ref.bookMeBookingsCount,
29
- oneRoofBookingsCount = _ref.oneRoofBookingsCount,
30
- realestateBookingsCount = _ref.realestateBookingsCount,
31
- tradeMeBookingsCount = _ref.tradeMeBookingsCount,
32
- manualBookingsCount = _ref.manualBookingsCount,
33
- websiteBookingsCount = _ref.websiteBookingsCount,
34
- _ref$outlinedItems = _ref.outlinedItems,
35
- outlinedItems = _ref$outlinedItems === void 0 ? false : _ref$outlinedItems;
36
- var isXlUp = useMediaQuery(function (theme) {
37
- return theme.breakpoints.up("xl");
38
- });
39
- var stats = [{
40
- label: "Viewings",
41
- value: viewingsCount
42
- }, {
43
- label: "Bookings",
44
- value: bookingsCount
45
- }, {
46
- label: "Attendees",
47
- value: attendeesCount
48
- }, {
49
- label: "Cancellations",
50
- value: cancellationsCount
51
- }, {
52
- label: "Applications",
53
- value: applicationsCount
54
- }, {
55
- label: "Average Rent",
56
- value: "$".concat(averageRent)
57
- }, {
58
- label: "Text Usage Total",
59
- value: textUsage
60
- }];
61
- return /* @__PURE__ */React.createElement(Stack, {
62
- gap: 6
63
- }, /* @__PURE__ */React.createElement(Stack, {
64
- flexDirection: "row",
65
- gap: 6,
66
- flexWrap: "wrap",
67
- alignItems: "stretch"
68
- }, /* @__PURE__ */React.createElement(Paper, {
69
- outlined: outlinedItems,
70
- inset: "medium",
71
- overflow: false,
72
- sx: {
73
- width: "100%",
74
- minWidth: {
75
- lg: "456px"
76
- },
77
- flex: {
78
- xs: "0 0 100%",
79
- md: 1
80
- },
81
- alignItems: "center",
82
- justifyContent: "center",
83
- display: "flex"
84
- }
85
- }, /* @__PURE__ */React.createElement(AnalyticsDoughnutChart, {
86
- tradeMeCount: tradeMeEnquiriesCount,
87
- bookMeCount: bookMeEnquiriesCount,
88
- manualCount: manualEnquiryCount,
89
- allhouseCount: allHouseEnquiriesCount,
90
- oneRoofCount: oneRoofEnquiriesCount,
91
- realEstateCount: realestateEnquiriesCount,
92
- websiteCount: websiteEnquiriesCount,
93
- heading: "Number of enquiries"
94
- })), /* @__PURE__ */React.createElement(Paper, {
95
- outlined: outlinedItems,
96
- inset: "medium",
97
- overflow: false,
98
- sx: {
99
- width: "100%",
100
- minWidth: {
101
- lg: "456px"
102
- },
103
- flex: {
104
- xs: "0 0 100%",
105
- md: 1
106
- },
107
- alignItems: "center",
108
- justifyContent: "center",
109
- display: "flex"
110
- }
111
- }, /* @__PURE__ */React.createElement(AnalyticsDoughnutChart, {
112
- tradeMeCount: tradeMeBookingsCount,
113
- bookMeCount: bookMeBookingsCount,
114
- manualCount: manualBookingsCount,
115
- allhouseCount: allHouseBookingsCount,
116
- oneRoofCount: oneRoofBookingsCount,
117
- realEstateCount: realestateBookingsCount,
118
- websiteCount: websiteBookingsCount,
119
- heading: "Number of bookings"
120
- })), /* @__PURE__ */React.createElement(Stack, {
121
- gap: {
122
- xs: 3,
123
- md: 6
124
- },
125
- justifyContent: "space-between",
126
- sx: {
127
- flexDirection: {
128
- xs: "row",
129
- lg: "column"
130
- },
131
- flex: {
132
- sm: "0 0 100%",
133
- lg: "0 0 284px"
134
- }
135
- }
136
- }, /* @__PURE__ */React.createElement(AnalyticsBox, {
137
- outlined: outlinedItems,
138
- label: /* @__PURE__ */React.createElement("strong", null, "Converted Properties"),
139
- amount: agreementsCount,
140
- width: "100%",
141
- height: isXlUp ? "157px" : "auto",
142
- text: /* @__PURE__ */React.createElement(Text, {
143
- as: "span",
144
- variant: "inherit"
145
- }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement("strong", null, filterDaysCount), " days where an agreement has been ", /* @__PURE__ */React.createElement("strong", null, "created"))
146
- }), /* @__PURE__ */React.createElement(AnalyticsBox, {
147
- outlined: outlinedItems,
148
- label: /* @__PURE__ */React.createElement("strong", null, "Converted Properties"),
149
- amount: agreementsFinalisedCount,
150
- width: "100%",
151
- height: isXlUp ? "157px" : "auto",
152
- text: /* @__PURE__ */React.createElement(Text, {
153
- as: "span",
154
- variant: "inherit"
155
- }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement("strong", null, " ", filterDaysCount), " days where an agreement has been ", /* @__PURE__ */React.createElement("strong", null, "finalised"))
156
- })), /* @__PURE__ */React.createElement(Grid, {
157
- container: true,
158
- spacing: {
159
- xs: 3,
160
- md: 6
161
- }
162
- }, stats.map(function (stat, i) {
163
- return /* @__PURE__ */React.createElement(Grid, {
164
- item: true,
165
- key: uid(stat, i),
166
- flex: {
167
- lg: 1
168
- },
169
- xs: 6,
170
- sm: 3,
171
- md: 2
172
- }, /* @__PURE__ */React.createElement(AnalyticsBox, {
173
- outlined: outlinedItems,
174
- label: stat.label,
175
- amount: stat.value,
176
- width: "100%",
177
- height: isXlUp ? "157px" : "124px"
178
- }));
179
- }))));
180
- }
181
-
182
- export { AnalyticsSection as default };