@licklist/design 0.44.486-dev.77 → 0.44.486-dev.78
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/events/event-statistic-modal/EventStatisticModal.d.ts +3 -1
- package/dist/events/event-statistic-modal/EventStatisticModal.d.ts.map +1 -1
- package/dist/events/event-statistic-modal/EventStatisticModal.js +1 -1
- package/dist/events/event-statistic-modal/hooks/useTableData.d.ts +2 -1
- package/dist/events/event-statistic-modal/hooks/useTableData.d.ts.map +1 -1
- package/dist/events/event-statistic-modal/hooks/useTableData.js +1 -1
- package/dist/events/event-statistic-modal/utils/index.d.ts +1 -1
- package/dist/events/event-statistic-modal/utils/index.d.ts.map +1 -1
- package/dist/events/event-statistic-modal/utils/index.js +1 -1
- package/package.json +1 -1
- package/src/events/event-statistic-modal/EventStatisticModal.tsx +5 -1
- package/src/events/event-statistic-modal/hooks/useTableData.tsx +12 -5
- package/src/events/event-statistic-modal/utils/index.ts +39 -34
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { EventStatistic } from "@licklist/core/dist/DataMapper/Provider/EventStatisticDataMapper";
|
|
3
|
+
import { Event } from "@licklist/core/dist/DataMapper/Provider/EventDataMapper";
|
|
3
4
|
export type EventStatisticModalProps = {
|
|
4
5
|
isOpen: boolean;
|
|
5
6
|
setIsOpen: (value: boolean) => void;
|
|
7
|
+
date?: Event["startAt"] | null;
|
|
6
8
|
eventStatistic?: EventStatistic | null;
|
|
7
9
|
title?: string;
|
|
8
10
|
};
|
|
9
|
-
export declare const EventStatisticModal: ({ isOpen, setIsOpen, eventStatistic, title, }: EventStatisticModalProps) => JSX.Element;
|
|
11
|
+
export declare const EventStatisticModal: ({ isOpen, setIsOpen, date, eventStatistic, title, }: EventStatisticModalProps) => JSX.Element;
|
|
10
12
|
//# sourceMappingURL=EventStatisticModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventStatisticModal.d.ts","sourceRoot":"","sources":["../../../src/events/event-statistic-modal/EventStatisticModal.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"EventStatisticModal.d.ts","sourceRoot":"","sources":["../../../src/events/event-statistic-modal/EventStatisticModal.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;AAClG,OAAO,EAAE,KAAK,EAAE,MAAM,yDAAyD,CAAC;AAKhF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,mBAAmB,wDAM7B,wBAAwB,gBAiD1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),a=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,l=require("react-i18next"),n=require("react-bootstrap"),r=require("../../static/Icon.js");require("../../table/MenuButton.js"),require("../../table/FilterHelperComponent.js"),require("../../table/PaginationHelperComponent.js"),require("../../table/PerPageHelperComponent.js");var s=require("../../table/StaticTable.js");require("../../table/TableHelperComponent.js"),require("../../table/ReactTableHelperComponent.js");var i=require("./hooks/useTableData.js");exports.EventStatisticModal=function(e){var t=e.isOpen,o=e.setIsOpen,c=e.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),a=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,l=require("react-i18next"),n=require("react-bootstrap"),r=require("../../static/Icon.js");require("../../table/MenuButton.js"),require("../../table/FilterHelperComponent.js"),require("../../table/PaginationHelperComponent.js"),require("../../table/PerPageHelperComponent.js");var s=require("../../table/StaticTable.js");require("../../table/TableHelperComponent.js"),require("../../table/ReactTableHelperComponent.js");var i=require("./hooks/useTableData.js");exports.EventStatisticModal=function(e){var t=e.isOpen,o=e.setIsOpen,c=e.date,u=e.eventStatistic,m=e.title,d=l.useTranslation("Design").t,b=i.useTableData(c,u),p=function(){o(!1)};return a.createElement(n.Modal,{show:t,onHide:p,animation:!1,centered:!0,contentClassName:"rounded",className:"event-statistic-modal"},a.createElement(n.Modal.Header,null,a.createElement(n.Modal.Title,{as:"h6"},null!=m?m:d("eventStatistic")),a.createElement(n.Button,{variant:"danger",className:"btn-sm rounded",onClick:p},a.createElement(r.default,{type:"times",height:"1rem"}))),a.createElement(n.Modal.Body,null,b.length?a.createElement(a.Fragment,null,a.createElement("h5",{className:"mb-5"},d("statistics")),a.createElement(s.StaticTable,{columns:[{key:"name",label:""},{key:"quantity",label:""},{key:"total",label:""}],data:b,className:"striped-static-table"})):a.createElement("div",{className:"no-statistic"},a.createElement("h5",null,d("noStatisticsForSelectedEvent")))))};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventStatistic } from "@licklist/core/dist/DataMapper/Provider/EventStatisticDataMapper";
|
|
2
|
+
import { Event } from "@licklist/core/dist/DataMapper/Provider/EventDataMapper";
|
|
2
3
|
import { StaticTableData } from "../../../table";
|
|
3
|
-
export declare const useTableData: (eventStatistic: EventStatistic | null) => StaticTableData[];
|
|
4
|
+
export declare const useTableData: (date: Event["startAt"] | null, eventStatistic: EventStatistic | null) => StaticTableData[];
|
|
4
5
|
//# sourceMappingURL=useTableData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableData.d.ts","sourceRoot":"","sources":["../../../../src/events/event-statistic-modal/hooks/useTableData.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"useTableData.d.ts","sourceRoot":"","sources":["../../../../src/events/event-statistic-modal/hooks/useTableData.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;AAClG,OAAO,EAAE,KAAK,EAAE,MAAM,yDAAyD,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,eAAO,MAAM,YAAY,SACjB,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,kBACb,cAAc,GAAG,IAAI,sBA+EtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=require("react"),n=e(r),u=require("@licklist/core/dist/Config"),i=require("react-i18next"),a=e(require("clsx")),c=require("react-intl"),o=require("../utils/index.js");exports.useTableData=function(e){var
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=require("react"),n=e(r),u=require("@licklist/core/dist/Config"),i=require("react-i18next"),a=e(require("clsx")),c=require("react-intl"),o=require("../utils/index.js");exports.useTableData=function(e,s){var l=i.useTranslation("Design").t,f=c.useIntl().formatNumber,d=t.__read(r.useState([]),2),y=d[0],T=d[1],b=function(e,t){return void 0===t&&(t=!1),n.createElement("div",{className:a("bold",t&&"header-row")},e)},q=function(e){var t=String(e);return Object.keys(o.TRANSLATION_KEYS).includes(t)?l(t):t};return r.useEffect((function(){T(function(e,t){if(!t)return[];var r=[];return o.convertEventStatisticToTableData(e,t).forEach((function(e){var t=e.name,n=e.quantity,i=e.total,a=e.isBold,c=e.isHeader,s=e.key,l=Object.keys(o.TRANSLATION_KEYS).includes(String(i))?i:f(Number(i),{style:"currency",currency:u.Currency.GBP}),d=q(t),y=q(n);a?r.push({name:b(d,c),quantity:b(y,c),total:b(t===o.TRANSLATION_KEYS.total?"Total: ".concat(l):l,c),key:s}):r.push({name:d,quantity:y,total:l,key:s})})),r}(e,s))}),[e,s]),y};
|
|
@@ -4,7 +4,7 @@ export declare const TRANSLATION_KEYS: {
|
|
|
4
4
|
total: string;
|
|
5
5
|
totalPerCategory: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const convertEventStatisticToTableData: (eventStatistic: EventStatistic) => {
|
|
7
|
+
export declare const convertEventStatisticToTableData: (date: string, eventStatistic: EventStatistic) => {
|
|
8
8
|
name: string;
|
|
9
9
|
key: string;
|
|
10
10
|
isHeader?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/events/event-statistic-modal/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/events/event-statistic-modal/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;AAIlG,eAAO,MAAM,gBAAgB;;;;CAI5B,CAAC;AAEF,eAAO,MAAM,gCAAgC,SACrC,MAAM,kBACI,cAAc;UAUtB,MAAM;SACP,MAAM;eACA,OAAO;aACT,OAAO;cACN,MAAM,GAAG,MAAM;WAClB,MAAM,GAAG,MAAM;GA4DzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t={shortQuantity:"shortQuantity",total:"total",totalPerCategory:"totalPerCategory"};exports.TRANSLATION_KEYS=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@licklist/core/dist/Config"),o=require("luxon"),a={shortQuantity:"shortQuantity",total:"total",totalPerCategory:"totalPerCategory"};exports.TRANSLATION_KEYS=a,exports.convertEventStatisticToTableData=function(e,r){var n,c,l=0,i=0;if(!r)return[];var u=[],s=o.DateTime.fromISO(e).toUTC().toFormat(t.DATE_TIME_FULL_FORMAT);return null===(c=Object.values(null!==(n=null==r?void 0:r.productCategorySummary[s])&&void 0!==n?n:{}))||void 0===c||c.forEach((function(t){var o=t.totalPerCategory,e=t.productsSummary,r=void 0===e?[]:e,n=t.categoryName,c=t.eventId,s=0;l+=o||0,u.push({name:n,key:"".concat(c,".").concat(n),isBold:!0,isHeader:!0,quantity:a.shortQuantity,total:a.total}),null==r||r.forEach((function(t){var o=t.productsSold,a=t.name,e=t.totalQuantity,r=t.total;s+=o,u.push({name:a,key:"".concat(c,".").concat(n,".").concat(a),quantity:e?"".concat(o," / ").concat(e):String(o),total:String(r)})})),u.push({name:a.totalPerCategory,key:"".concat(c,".").concat(n,".").concat(a.totalPerCategory),quantity:s,total:o,isBold:!0}),i+=s})),u.push({name:a.total,key:"".concat(a.total,".").concat(l),quantity:i,total:l,isBold:!0}),u};
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { Modal, Button } from "react-bootstrap";
|
|
3
3
|
import { useTranslation } from "react-i18next";
|
|
4
4
|
import { EventStatistic } from "@licklist/core/dist/DataMapper/Provider/EventStatisticDataMapper";
|
|
5
|
+
import { Event } from "@licklist/core/dist/DataMapper/Provider/EventDataMapper";
|
|
5
6
|
import Icon from "../../static/Icon";
|
|
6
7
|
import { StaticTable } from "../../table";
|
|
7
8
|
import { useTableData } from "./hooks/useTableData";
|
|
@@ -9,6 +10,7 @@ import { useTableData } from "./hooks/useTableData";
|
|
|
9
10
|
export type EventStatisticModalProps = {
|
|
10
11
|
isOpen: boolean;
|
|
11
12
|
setIsOpen: (value: boolean) => void;
|
|
13
|
+
date?: Event["startAt"] | null;
|
|
12
14
|
eventStatistic?: EventStatistic | null;
|
|
13
15
|
title?: string;
|
|
14
16
|
};
|
|
@@ -16,11 +18,13 @@ export type EventStatisticModalProps = {
|
|
|
16
18
|
export const EventStatisticModal = ({
|
|
17
19
|
isOpen,
|
|
18
20
|
setIsOpen,
|
|
21
|
+
date,
|
|
19
22
|
eventStatistic,
|
|
20
23
|
title,
|
|
21
24
|
}: EventStatisticModalProps) => {
|
|
22
25
|
const { t } = useTranslation("Design");
|
|
23
|
-
|
|
26
|
+
|
|
27
|
+
const data = useTableData(date, eventStatistic);
|
|
24
28
|
const handleClose = () => {
|
|
25
29
|
setIsOpen(false);
|
|
26
30
|
};
|
|
@@ -4,10 +4,14 @@ import { useIntl } from "react-intl";
|
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import * as Config from "@licklist/core/dist/Config";
|
|
6
6
|
import { EventStatistic } from "@licklist/core/dist/DataMapper/Provider/EventStatisticDataMapper";
|
|
7
|
+
import { Event } from "@licklist/core/dist/DataMapper/Provider/EventDataMapper";
|
|
7
8
|
import { convertEventStatisticToTableData, TRANSLATION_KEYS } from "../utils";
|
|
8
9
|
import { StaticTableData } from "../../../table";
|
|
9
10
|
|
|
10
|
-
export const useTableData = (
|
|
11
|
+
export const useTableData = (
|
|
12
|
+
date: Event["startAt"] | null,
|
|
13
|
+
eventStatistic: EventStatistic | null
|
|
14
|
+
) => {
|
|
11
15
|
const { t } = useTranslation("Design");
|
|
12
16
|
const { formatNumber } = useIntl();
|
|
13
17
|
const [tableRows, setTableRows] = useState<StaticTableData[]>([]);
|
|
@@ -28,14 +32,17 @@ export const useTableData = (eventStatistic: EventStatistic | null) => {
|
|
|
28
32
|
return t(key);
|
|
29
33
|
};
|
|
30
34
|
|
|
31
|
-
const transformStatisticToTableRows = (
|
|
35
|
+
const transformStatisticToTableRows = (
|
|
36
|
+
date: Event["startAt"],
|
|
37
|
+
statistic: EventStatistic | null
|
|
38
|
+
) => {
|
|
32
39
|
if (!statistic) {
|
|
33
40
|
return [];
|
|
34
41
|
}
|
|
35
42
|
|
|
36
43
|
const tableDataRows: StaticTableData[] = [];
|
|
37
44
|
|
|
38
|
-
convertEventStatisticToTableData(statistic).forEach(
|
|
45
|
+
convertEventStatisticToTableData(date, statistic).forEach(
|
|
39
46
|
({ name, quantity, total, isBold, isHeader, key }) => {
|
|
40
47
|
const formattedTotal = !Object.keys(TRANSLATION_KEYS).includes(
|
|
41
48
|
String(total)
|
|
@@ -77,9 +84,9 @@ export const useTableData = (eventStatistic: EventStatistic | null) => {
|
|
|
77
84
|
};
|
|
78
85
|
|
|
79
86
|
useEffect(() => {
|
|
80
|
-
setTableRows(transformStatisticToTableRows(eventStatistic));
|
|
87
|
+
setTableRows(transformStatisticToTableRows(date, eventStatistic));
|
|
81
88
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
|
-
}, [eventStatistic]);
|
|
89
|
+
}, [date, eventStatistic]);
|
|
83
90
|
|
|
84
91
|
return tableRows;
|
|
85
92
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { EventStatistic } from "@licklist/core/dist/DataMapper/Provider/EventStatisticDataMapper";
|
|
2
|
+
import { DateTime } from "luxon";
|
|
3
|
+
import { DATE_TIME_FULL_FORMAT } from "@licklist/core/dist/Config";
|
|
2
4
|
|
|
3
5
|
export const TRANSLATION_KEYS = {
|
|
4
6
|
shortQuantity: "shortQuantity",
|
|
@@ -7,6 +9,7 @@ export const TRANSLATION_KEYS = {
|
|
|
7
9
|
};
|
|
8
10
|
|
|
9
11
|
export const convertEventStatisticToTableData = (
|
|
12
|
+
date: string,
|
|
10
13
|
eventStatistic: EventStatistic
|
|
11
14
|
) => {
|
|
12
15
|
let totalAmount = 0;
|
|
@@ -25,49 +28,51 @@ export const convertEventStatisticToTableData = (
|
|
|
25
28
|
total: string | number;
|
|
26
29
|
}[] = [];
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
(
|
|
30
|
-
|
|
31
|
-
({ totalPerCategory, productsSummary = [], categoryName, eventId }) => {
|
|
32
|
-
let quantity = 0;
|
|
31
|
+
const summaryFormattedDate = DateTime.fromISO(date)
|
|
32
|
+
.toUTC()
|
|
33
|
+
.toFormat(DATE_TIME_FULL_FORMAT);
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
Object.values(
|
|
36
|
+
eventStatistic?.productCategorySummary[summaryFormattedDate] ?? {}
|
|
37
|
+
)?.forEach(
|
|
38
|
+
({ totalPerCategory, productsSummary = [], categoryName, eventId }) => {
|
|
39
|
+
let quantity = 0;
|
|
35
40
|
|
|
36
|
-
|
|
37
|
-
name: categoryName,
|
|
38
|
-
key: `${eventId}.${categoryName}`,
|
|
39
|
-
isBold: true,
|
|
40
|
-
isHeader: true,
|
|
41
|
-
quantity: TRANSLATION_KEYS.shortQuantity,
|
|
42
|
-
total: TRANSLATION_KEYS.total,
|
|
43
|
-
});
|
|
41
|
+
totalAmount += totalPerCategory || 0;
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
tableDataArray.push({
|
|
44
|
+
name: categoryName,
|
|
45
|
+
key: `${eventId}.${categoryName}`,
|
|
46
|
+
isBold: true,
|
|
47
|
+
isHeader: true,
|
|
48
|
+
quantity: TRANSLATION_KEYS.shortQuantity,
|
|
49
|
+
total: TRANSLATION_KEYS.total,
|
|
50
|
+
});
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
quantity: totalQuantity
|
|
53
|
-
? `${productsSold} / ${totalQuantity}`
|
|
54
|
-
: String(productsSold),
|
|
55
|
-
total: String(total),
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
);
|
|
52
|
+
productsSummary?.forEach(
|
|
53
|
+
({ productsSold, name, totalQuantity, total }) => {
|
|
54
|
+
quantity += productsSold;
|
|
59
55
|
|
|
60
56
|
tableDataArray.push({
|
|
61
|
-
name
|
|
62
|
-
key: `${eventId}.${categoryName}.${
|
|
63
|
-
quantity
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
name,
|
|
58
|
+
key: `${eventId}.${categoryName}.${name}`,
|
|
59
|
+
quantity: totalQuantity
|
|
60
|
+
? `${productsSold} / ${totalQuantity}`
|
|
61
|
+
: String(productsSold),
|
|
62
|
+
total: String(total),
|
|
66
63
|
});
|
|
67
|
-
|
|
68
|
-
totalQuantity += quantity;
|
|
69
64
|
}
|
|
70
65
|
);
|
|
66
|
+
|
|
67
|
+
tableDataArray.push({
|
|
68
|
+
name: TRANSLATION_KEYS.totalPerCategory,
|
|
69
|
+
key: `${eventId}.${categoryName}.${TRANSLATION_KEYS.totalPerCategory}`,
|
|
70
|
+
quantity,
|
|
71
|
+
total: totalPerCategory,
|
|
72
|
+
isBold: true,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
totalQuantity += quantity;
|
|
71
76
|
}
|
|
72
77
|
);
|
|
73
78
|
|