@ltht-react/timeline 1.0.156 → 1.0.160

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,197 +1,197 @@
1
- "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
- var __assign = (this && this.__assign) || function () {
7
- __assign = Object.assign || function(t) {
8
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9
- s = arguments[i];
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
- t[p] = s[p];
12
- }
13
- return t;
14
- };
15
- return __assign.apply(this, arguments);
16
- };
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- var jsx_runtime_1 = require("react/jsx-runtime");
22
- var styled_1 = __importDefault(require("@emotion/styled"));
23
- var icon_1 = require("@ltht-react/icon");
24
- var styles_1 = require("@ltht-react/styles");
25
- var types_1 = require("@ltht-react/types");
26
- var utils_1 = require("@ltht-react/utils");
27
- var hooks_1 = require("@ltht-react/hooks");
28
- var timeline_time_1 = __importDefault(require("../atoms/timeline-time"));
29
- var timeline_item_1 = __importDefault(require("../molecules/timeline-item"));
30
- var timeline_item_redacted_1 = __importDefault(require("../molecules/timeline-item-redacted"));
31
- var StyledTimeline = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin: -0.75rem;\n"], ["\n margin: -0.75rem;\n"])));
32
- var StyledTimelineDayBody = styled_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: white;\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n z-index: 1;\n height: ", ";\n left: calc(50% - 1px);\n border-width: 0 0 0 2px;\n border-color: ", ";\n border-style: solid;\n }\n"], ["\n background-color: white;\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n z-index: 1;\n height: ", ";\n left: calc(50% - 1px);\n border-width: 0 0 0 2px;\n border-color: ", ";\n border-style: solid;\n }\n"])), function (_a) {
33
- var isMobile = _a.isMobile;
34
- return (isMobile ? '0%' : '100%');
35
- }, styles_1.TEXT_COLOURS.INFO);
36
- var StyledTimelineDayHeader = styled_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n"], ["\n background-color: ", ";\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n"])), styles_1.BANNER_COLOURS.DEFAULT.BACKGROUND);
37
- var StyledTimelineDayItem = styled_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: inline-block;\n width: 100%;\n justify-content: center;\n padding: ", ";\n margin: ", ";\n"], ["\n display: inline-block;\n width: 100%;\n justify-content: center;\n padding: ", ";\n margin: ", ";\n"])), function (_a) {
38
- var isMobile = _a.isMobile;
39
- return (isMobile ? '' : '0 0.5rem');
40
- }, function (_a) {
41
- var isMobile = _a.isMobile;
42
- return (isMobile ? '0.5rem 0' : '1rem 0');
43
- });
44
- var StyledTimelineDayContent = styled_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: ", ";\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n"], ["\n width: ", ";\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n"])), function (_a) {
45
- var isMobile = _a.isMobile;
46
- return (isMobile ? '100%' : '49%');
47
- });
48
- var StyledTimelineDayLine = styled_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n width: 2%;\n vertical-align: top;\n margin-top: 0.125rem;\n display: inline-block;\n text-align: center;\n position: relative;\n height: 100%;\n"], ["\n width: 2%;\n vertical-align: top;\n margin-top: 0.125rem;\n display: inline-block;\n text-align: center;\n position: relative;\n height: 100%;\n"])));
49
- var StyledTimelineDayTimeLeft = styled_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: right;\n font-weight: bold;\n"], ["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: right;\n font-weight: bold;\n"])));
50
- var StyledTimelineDayTimeRight = styled_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: left;\n font-weight: bold;\n"], ["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: left;\n font-weight: bold;\n"])));
51
- var StyledOuterCircle = styled_1.default(icon_1.CircleIcon)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n position: absolute;\n z-index: 1;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: ", ";\n font-size: 0.75rem;\n"], ["\n position: absolute;\n z-index: 1;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: ", ";\n font-size: 0.75rem;\n"])), styles_1.TEXT_COLOURS.INFO);
52
- var StyledInnerCircle = styled_1.default(icon_1.CircleIcon)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n position: absolute;\n z-index: 2;\n top: 0.125rem;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: white;\n font-size: 0.5rem;\n"], ["\n position: absolute;\n z-index: 2;\n top: 0.125rem;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: white;\n font-size: 0.5rem;\n"])));
53
- var Timeline = function (_a) {
54
- var timelineItems = _a.timelineItems, domainResourceType = _a.domainResourceType;
55
- var width = hooks_1.useWindowSize().width;
56
- var isMobile = utils_1.isMobileView(width);
57
- var timelineDates = {};
58
- timelineItems === null || timelineItems === void 0 ? void 0 : timelineItems.forEach(function (timelineItem) {
59
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
60
- if (!(timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource)) {
61
- return;
62
- }
63
- var date = '';
64
- var displayDate = '';
65
- switch (domainResourceType) {
66
- case types_1.TimelineDomainResourceType.QuestionnaireResponse: {
67
- var qr = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
68
- if (!((_a = qr.authored) === null || _a === void 0 ? void 0 : _a.value)) {
69
- return;
70
- }
71
- date = utils_1.formatDate(new Date((_b = qr.authored) === null || _b === void 0 ? void 0 : _b.value));
72
- displayDate = utils_1.formatDateExplicitMonth(new Date((_c = qr.authored) === null || _c === void 0 ? void 0 : _c.value));
73
- break;
74
- }
75
- case types_1.TimelineDomainResourceType.DocumentReference: {
76
- var docRef = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
77
- if (!((_d = docRef.created) === null || _d === void 0 ? void 0 : _d.value)) {
78
- return;
79
- }
80
- date = utils_1.formatDate(new Date(docRef.created.value));
81
- displayDate = utils_1.formatDateExplicitMonth(new Date(docRef.created.value));
82
- break;
83
- }
84
- case types_1.TimelineDomainResourceType.AuditEvent: {
85
- var audit = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
86
- if (!((_f = (_e = audit.period) === null || _e === void 0 ? void 0 : _e.start) === null || _f === void 0 ? void 0 : _f.value)) {
87
- return;
88
- }
89
- date = utils_1.formatDate(new Date((_h = (_g = audit.period) === null || _g === void 0 ? void 0 : _g.start) === null || _h === void 0 ? void 0 : _h.value));
90
- displayDate = utils_1.formatDateExplicitMonth(new Date((_k = (_j = audit.period) === null || _j === void 0 ? void 0 : _j.start) === null || _k === void 0 ? void 0 : _k.value));
91
- break;
92
- }
93
- default:
94
- throw Error('Unrecognised resource type');
95
- }
96
- var lookup = timelineDates[date];
97
- if (!lookup) {
98
- timelineDates[date] = { item: [timelineItem], formattedDate: displayDate };
99
- }
100
- else {
101
- lookup.item.push(timelineItem);
102
- timelineDates[date] = lookup;
103
- }
104
- });
105
- var position = 0;
106
- return (jsx_runtime_1.jsx(StyledTimeline, __assign({ "data-testid": "timeline" }, { children: Object.entries(timelineDates).map(function (_a) {
107
- var _b;
108
- var dateKey = _a[0], value = _a[1];
109
- position += 1;
110
- return (jsx_runtime_1.jsxs("div", __assign({ "data-testid": dateKey }, { children: [jsx_runtime_1.jsx(StyledTimelineDayHeader, { children: value.formattedDate }, void 0),
111
- jsx_runtime_1.jsx(StyledTimelineDayBody, __assign({ isMobile: isMobile }, { children: (_b = value.item) === null || _b === void 0 ? void 0 : _b.map(function (timelineItem, idx) {
112
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
113
- var content = jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
114
- if (!(timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource)) {
115
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
116
- }
117
- var currentTime = '';
118
- var previousTime = '';
119
- switch (domainResourceType) {
120
- case types_1.TimelineDomainResourceType.QuestionnaireResponse: {
121
- var qr = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
122
- if (!((_a = qr.authored) === null || _a === void 0 ? void 0 : _a.value)) {
123
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
124
- }
125
- currentTime = utils_1.formatTime(new Date(qr.authored.value));
126
- previousTime = currentTime;
127
- if (idx > 0) {
128
- var previousItem = (_b = value.item[idx - 1]) === null || _b === void 0 ? void 0 : _b.domainResource;
129
- if (!((_c = previousItem === null || previousItem === void 0 ? void 0 : previousItem.authored) === null || _c === void 0 ? void 0 : _c.value)) {
130
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
131
- }
132
- previousTime = utils_1.formatTime(new Date(previousItem === null || previousItem === void 0 ? void 0 : previousItem.authored.value));
133
- }
134
- break;
135
- }
136
- case types_1.TimelineDomainResourceType.DocumentReference: {
137
- var docRef = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
138
- if (!((_d = docRef.created) === null || _d === void 0 ? void 0 : _d.value)) {
139
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
140
- }
141
- currentTime = utils_1.formatTime(new Date(docRef.created.value));
142
- previousTime = currentTime;
143
- if (idx > 0) {
144
- var previousItem = (_e = value.item[idx - 1]) === null || _e === void 0 ? void 0 : _e.domainResource;
145
- if (!((_f = previousItem === null || previousItem === void 0 ? void 0 : previousItem.created) === null || _f === void 0 ? void 0 : _f.value)) {
146
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
147
- }
148
- previousTime = utils_1.formatTime(new Date((_g = previousItem === null || previousItem === void 0 ? void 0 : previousItem.created) === null || _g === void 0 ? void 0 : _g.value));
149
- }
150
- break;
151
- }
152
- case types_1.TimelineDomainResourceType.AuditEvent: {
153
- var audit = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
154
- if (!((_j = (_h = audit.period) === null || _h === void 0 ? void 0 : _h.start) === null || _j === void 0 ? void 0 : _j.value)) {
155
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
156
- }
157
- currentTime = utils_1.formatTime(new Date((_l = (_k = audit.period) === null || _k === void 0 ? void 0 : _k.start) === null || _l === void 0 ? void 0 : _l.value));
158
- previousTime = currentTime;
159
- if (idx > 0) {
160
- var previousItem = (_m = value.item[idx - 1]) === null || _m === void 0 ? void 0 : _m.domainResource;
161
- if (!((_p = (_o = previousItem === null || previousItem === void 0 ? void 0 : previousItem.period) === null || _o === void 0 ? void 0 : _o.start) === null || _p === void 0 ? void 0 : _p.value)) {
162
- return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
163
- }
164
- previousTime = utils_1.formatTime(new Date((_r = (_q = previousItem === null || previousItem === void 0 ? void 0 : previousItem.period) === null || _q === void 0 ? void 0 : _q.start) === null || _r === void 0 ? void 0 : _r.value));
165
- }
166
- break;
167
- }
168
- }
169
- if (currentTime !== previousTime) {
170
- position += 1;
171
- }
172
- var itemKey = "timeline_day_item_" + dateKey + "_" + currentTime + "_" + idx;
173
- var isRedacted = (_s = timelineItem.domainResource.metadata.isRedacted) !== null && _s !== void 0 ? _s : false;
174
- if (isMobile) {
175
- content = (jsx_runtime_1.jsx(StyledTimelineDayContent, __assign({ isMobile: true }, { children: isRedacted ? (jsx_runtime_1.jsx(timeline_item_redacted_1.default, {}, void 0)) : (jsx_runtime_1.jsx(timeline_item_1.default, { timelineItem: timelineItem, domainResourceType: domainResourceType }, void 0)) }), void 0));
176
- }
177
- else if (position % 2 === 1) {
178
- var contentKey = "content_left_" + itemKey;
179
- content = (jsx_runtime_1.jsxs("div", __assign({ "data-testid": contentKey }, { children: [jsx_runtime_1.jsx(StyledTimelineDayContent, __assign({ isMobile: false }, { children: isRedacted ? (jsx_runtime_1.jsx(timeline_item_redacted_1.default, {}, void 0)) : (jsx_runtime_1.jsx(timeline_item_1.default, { timelineItem: timelineItem, domainResourceType: domainResourceType }, void 0)) }), void 0),
180
- jsx_runtime_1.jsxs(StyledTimelineDayLine, { children: [jsx_runtime_1.jsx(StyledOuterCircle, { status: "info", size: "medium" }, void 0),
181
- jsx_runtime_1.jsx(StyledInnerCircle, { status: "info", size: "medium" }, void 0)] }, void 0),
182
- jsx_runtime_1.jsx(StyledTimelineDayTimeRight, { children: jsx_runtime_1.jsx(timeline_time_1.default, { domainResource: timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource, domainResourceType: domainResourceType }, void 0) }, void 0)] }), contentKey));
183
- }
184
- else if (position % 2 === 0) {
185
- var contentKey = "content_right_" + itemKey;
186
- content = (jsx_runtime_1.jsxs("div", __assign({ "data-testid": contentKey }, { children: [jsx_runtime_1.jsx(StyledTimelineDayTimeLeft, { children: jsx_runtime_1.jsx(timeline_time_1.default, { domainResource: timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource, domainResourceType: domainResourceType }, void 0) }, void 0),
187
- jsx_runtime_1.jsxs(StyledTimelineDayLine, { children: [jsx_runtime_1.jsx(StyledOuterCircle, { status: "info", size: "medium" }, void 0),
188
- jsx_runtime_1.jsx(StyledInnerCircle, { status: "info", size: "medium" }, void 0)] }, void 0),
189
- jsx_runtime_1.jsx(StyledTimelineDayContent, __assign({ isMobile: false }, { children: isRedacted ? (jsx_runtime_1.jsx(timeline_item_redacted_1.default, {}, void 0)) : (jsx_runtime_1.jsx(timeline_item_1.default, { timelineItem: timelineItem, domainResourceType: domainResourceType }, void 0)) }), void 0)] }), contentKey));
190
- }
191
- return (jsx_runtime_1.jsx(StyledTimelineDayItem, __assign({ isMobile: isMobile, "data-testid": itemKey }, { children: content }), itemKey));
192
- }) }), void 0)] }), dateKey));
193
- }) }), "timeline"));
194
- };
195
- exports.default = Timeline;
196
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var jsx_runtime_1 = require("react/jsx-runtime");
22
+ var styled_1 = __importDefault(require("@emotion/styled"));
23
+ var icon_1 = require("@ltht-react/icon");
24
+ var styles_1 = require("@ltht-react/styles");
25
+ var types_1 = require("@ltht-react/types");
26
+ var utils_1 = require("@ltht-react/utils");
27
+ var hooks_1 = require("@ltht-react/hooks");
28
+ var timeline_time_1 = __importDefault(require("../atoms/timeline-time"));
29
+ var timeline_item_1 = __importDefault(require("../molecules/timeline-item"));
30
+ var timeline_item_redacted_1 = __importDefault(require("../molecules/timeline-item-redacted"));
31
+ var StyledTimeline = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin: -0.75rem;\n"], ["\n margin: -0.75rem;\n"])));
32
+ var StyledTimelineDayBody = styled_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: white;\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n z-index: 1;\n height: ", ";\n left: calc(50% - 1px);\n border-width: 0 0 0 2px;\n border-color: ", ";\n border-style: solid;\n }\n"], ["\n background-color: white;\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n z-index: 1;\n height: ", ";\n left: calc(50% - 1px);\n border-width: 0 0 0 2px;\n border-color: ", ";\n border-style: solid;\n }\n"])), function (_a) {
33
+ var isMobile = _a.isMobile;
34
+ return (isMobile ? '0%' : '100%');
35
+ }, styles_1.TEXT_COLOURS.INFO);
36
+ var StyledTimelineDayHeader = styled_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n"], ["\n background-color: ", ";\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n"])), styles_1.BANNER_COLOURS.DEFAULT.BACKGROUND);
37
+ var StyledTimelineDayItem = styled_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: inline-block;\n width: 100%;\n justify-content: center;\n padding: ", ";\n margin: ", ";\n"], ["\n display: inline-block;\n width: 100%;\n justify-content: center;\n padding: ", ";\n margin: ", ";\n"])), function (_a) {
38
+ var isMobile = _a.isMobile;
39
+ return (isMobile ? '' : '0 0.5rem');
40
+ }, function (_a) {
41
+ var isMobile = _a.isMobile;
42
+ return (isMobile ? '0.5rem 0' : '1rem 0');
43
+ });
44
+ var StyledTimelineDayContent = styled_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: ", ";\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n"], ["\n width: ", ";\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n"])), function (_a) {
45
+ var isMobile = _a.isMobile;
46
+ return (isMobile ? '100%' : '49%');
47
+ });
48
+ var StyledTimelineDayLine = styled_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n width: 2%;\n vertical-align: top;\n margin-top: 0.125rem;\n display: inline-block;\n text-align: center;\n position: relative;\n height: 100%;\n"], ["\n width: 2%;\n vertical-align: top;\n margin-top: 0.125rem;\n display: inline-block;\n text-align: center;\n position: relative;\n height: 100%;\n"])));
49
+ var StyledTimelineDayTimeLeft = styled_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: right;\n font-weight: bold;\n"], ["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: right;\n font-weight: bold;\n"])));
50
+ var StyledTimelineDayTimeRight = styled_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: left;\n font-weight: bold;\n"], ["\n width: 49%;\n padding: 0 0.5rem;\n display: inline-block;\n vertical-align: top;\n text-align: left;\n font-weight: bold;\n"])));
51
+ var StyledOuterCircle = styled_1.default(icon_1.CircleIcon)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n position: absolute;\n z-index: 1;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: ", ";\n font-size: 0.75rem;\n"], ["\n position: absolute;\n z-index: 1;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: ", ";\n font-size: 0.75rem;\n"])), styles_1.TEXT_COLOURS.INFO);
52
+ var StyledInnerCircle = styled_1.default(icon_1.CircleIcon)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n position: absolute;\n z-index: 2;\n top: 0.125rem;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: white;\n font-size: 0.5rem;\n"], ["\n position: absolute;\n z-index: 2;\n top: 0.125rem;\n transform: translate(-50%);\n -webkit-transform: translate(-50%);\n -ms-transform: translate(-50%);\n left: 50%;\n color: white;\n font-size: 0.5rem;\n"])));
53
+ var Timeline = function (_a) {
54
+ var timelineItems = _a.timelineItems, domainResourceType = _a.domainResourceType;
55
+ var width = hooks_1.useWindowSize().width;
56
+ var isMobile = utils_1.isMobileView(width);
57
+ var timelineDates = {};
58
+ timelineItems === null || timelineItems === void 0 ? void 0 : timelineItems.forEach(function (timelineItem) {
59
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
60
+ if (!(timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource)) {
61
+ return;
62
+ }
63
+ var date = '';
64
+ var displayDate = '';
65
+ switch (domainResourceType) {
66
+ case types_1.TimelineDomainResourceType.QuestionnaireResponse: {
67
+ var qr = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
68
+ if (!((_a = qr.authored) === null || _a === void 0 ? void 0 : _a.value)) {
69
+ return;
70
+ }
71
+ date = utils_1.formatDate(new Date((_b = qr.authored) === null || _b === void 0 ? void 0 : _b.value));
72
+ displayDate = utils_1.formatDateExplicitMonth(new Date((_c = qr.authored) === null || _c === void 0 ? void 0 : _c.value));
73
+ break;
74
+ }
75
+ case types_1.TimelineDomainResourceType.DocumentReference: {
76
+ var docRef = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
77
+ if (!((_d = docRef.created) === null || _d === void 0 ? void 0 : _d.value)) {
78
+ return;
79
+ }
80
+ date = utils_1.formatDate(new Date(docRef.created.value));
81
+ displayDate = utils_1.formatDateExplicitMonth(new Date(docRef.created.value));
82
+ break;
83
+ }
84
+ case types_1.TimelineDomainResourceType.AuditEvent: {
85
+ var audit = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
86
+ if (!((_f = (_e = audit.period) === null || _e === void 0 ? void 0 : _e.start) === null || _f === void 0 ? void 0 : _f.value)) {
87
+ return;
88
+ }
89
+ date = utils_1.formatDate(new Date((_h = (_g = audit.period) === null || _g === void 0 ? void 0 : _g.start) === null || _h === void 0 ? void 0 : _h.value));
90
+ displayDate = utils_1.formatDateExplicitMonth(new Date((_k = (_j = audit.period) === null || _j === void 0 ? void 0 : _j.start) === null || _k === void 0 ? void 0 : _k.value));
91
+ break;
92
+ }
93
+ default:
94
+ throw Error('Unrecognised resource type');
95
+ }
96
+ var lookup = timelineDates[date];
97
+ if (!lookup) {
98
+ timelineDates[date] = { item: [timelineItem], formattedDate: displayDate };
99
+ }
100
+ else {
101
+ lookup.item.push(timelineItem);
102
+ timelineDates[date] = lookup;
103
+ }
104
+ });
105
+ var position = 0;
106
+ return (jsx_runtime_1.jsx(StyledTimeline, __assign({ "data-testid": "timeline" }, { children: Object.entries(timelineDates).map(function (_a) {
107
+ var _b;
108
+ var dateKey = _a[0], value = _a[1];
109
+ position += 1;
110
+ return (jsx_runtime_1.jsxs("div", __assign({ "data-testid": dateKey }, { children: [jsx_runtime_1.jsx(StyledTimelineDayHeader, { children: value.formattedDate }, void 0),
111
+ jsx_runtime_1.jsx(StyledTimelineDayBody, __assign({ isMobile: isMobile }, { children: (_b = value.item) === null || _b === void 0 ? void 0 : _b.map(function (timelineItem, idx) {
112
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
113
+ var content = jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
114
+ if (!(timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource)) {
115
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
116
+ }
117
+ var currentTime = '';
118
+ var previousTime = '';
119
+ switch (domainResourceType) {
120
+ case types_1.TimelineDomainResourceType.QuestionnaireResponse: {
121
+ var qr = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
122
+ if (!((_a = qr.authored) === null || _a === void 0 ? void 0 : _a.value)) {
123
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
124
+ }
125
+ currentTime = utils_1.formatTime(new Date(qr.authored.value));
126
+ previousTime = currentTime;
127
+ if (idx > 0) {
128
+ var previousItem = (_b = value.item[idx - 1]) === null || _b === void 0 ? void 0 : _b.domainResource;
129
+ if (!((_c = previousItem === null || previousItem === void 0 ? void 0 : previousItem.authored) === null || _c === void 0 ? void 0 : _c.value)) {
130
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
131
+ }
132
+ previousTime = utils_1.formatTime(new Date(previousItem === null || previousItem === void 0 ? void 0 : previousItem.authored.value));
133
+ }
134
+ break;
135
+ }
136
+ case types_1.TimelineDomainResourceType.DocumentReference: {
137
+ var docRef = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
138
+ if (!((_d = docRef.created) === null || _d === void 0 ? void 0 : _d.value)) {
139
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
140
+ }
141
+ currentTime = utils_1.formatTime(new Date(docRef.created.value));
142
+ previousTime = currentTime;
143
+ if (idx > 0) {
144
+ var previousItem = (_e = value.item[idx - 1]) === null || _e === void 0 ? void 0 : _e.domainResource;
145
+ if (!((_f = previousItem === null || previousItem === void 0 ? void 0 : previousItem.created) === null || _f === void 0 ? void 0 : _f.value)) {
146
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
147
+ }
148
+ previousTime = utils_1.formatTime(new Date((_g = previousItem === null || previousItem === void 0 ? void 0 : previousItem.created) === null || _g === void 0 ? void 0 : _g.value));
149
+ }
150
+ break;
151
+ }
152
+ case types_1.TimelineDomainResourceType.AuditEvent: {
153
+ var audit = timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource;
154
+ if (!((_j = (_h = audit.period) === null || _h === void 0 ? void 0 : _h.start) === null || _j === void 0 ? void 0 : _j.value)) {
155
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
156
+ }
157
+ currentTime = utils_1.formatTime(new Date((_l = (_k = audit.period) === null || _k === void 0 ? void 0 : _k.start) === null || _l === void 0 ? void 0 : _l.value));
158
+ previousTime = currentTime;
159
+ if (idx > 0) {
160
+ var previousItem = (_m = value.item[idx - 1]) === null || _m === void 0 ? void 0 : _m.domainResource;
161
+ if (!((_p = (_o = previousItem === null || previousItem === void 0 ? void 0 : previousItem.period) === null || _o === void 0 ? void 0 : _o.start) === null || _p === void 0 ? void 0 : _p.value)) {
162
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
163
+ }
164
+ previousTime = utils_1.formatTime(new Date((_r = (_q = previousItem === null || previousItem === void 0 ? void 0 : previousItem.period) === null || _q === void 0 ? void 0 : _q.start) === null || _r === void 0 ? void 0 : _r.value));
165
+ }
166
+ break;
167
+ }
168
+ }
169
+ if (currentTime !== previousTime) {
170
+ position += 1;
171
+ }
172
+ var itemKey = "timeline_day_item_" + dateKey + "_" + currentTime + "_" + idx;
173
+ var isRedacted = (_s = timelineItem.domainResource.metadata.isRedacted) !== null && _s !== void 0 ? _s : false;
174
+ if (isMobile) {
175
+ content = (jsx_runtime_1.jsx(StyledTimelineDayContent, __assign({ isMobile: true }, { children: isRedacted ? (jsx_runtime_1.jsx(timeline_item_redacted_1.default, {}, void 0)) : (jsx_runtime_1.jsx(timeline_item_1.default, { timelineItem: timelineItem, domainResourceType: domainResourceType }, void 0)) }), void 0));
176
+ }
177
+ else if (position % 2 === 1) {
178
+ var contentKey = "content_left_" + itemKey;
179
+ content = (jsx_runtime_1.jsxs("div", __assign({ "data-testid": contentKey }, { children: [jsx_runtime_1.jsx(StyledTimelineDayContent, __assign({ isMobile: false }, { children: isRedacted ? (jsx_runtime_1.jsx(timeline_item_redacted_1.default, {}, void 0)) : (jsx_runtime_1.jsx(timeline_item_1.default, { timelineItem: timelineItem, domainResourceType: domainResourceType }, void 0)) }), void 0),
180
+ jsx_runtime_1.jsxs(StyledTimelineDayLine, { children: [jsx_runtime_1.jsx(StyledOuterCircle, { status: "info", size: "medium" }, void 0),
181
+ jsx_runtime_1.jsx(StyledInnerCircle, { status: "info", size: "medium" }, void 0)] }, void 0),
182
+ jsx_runtime_1.jsx(StyledTimelineDayTimeRight, { children: jsx_runtime_1.jsx(timeline_time_1.default, { domainResource: timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource, domainResourceType: domainResourceType }, void 0) }, void 0)] }), contentKey));
183
+ }
184
+ else if (position % 2 === 0) {
185
+ var contentKey = "content_right_" + itemKey;
186
+ content = (jsx_runtime_1.jsxs("div", __assign({ "data-testid": contentKey }, { children: [jsx_runtime_1.jsx(StyledTimelineDayTimeLeft, { children: jsx_runtime_1.jsx(timeline_time_1.default, { domainResource: timelineItem === null || timelineItem === void 0 ? void 0 : timelineItem.domainResource, domainResourceType: domainResourceType }, void 0) }, void 0),
187
+ jsx_runtime_1.jsxs(StyledTimelineDayLine, { children: [jsx_runtime_1.jsx(StyledOuterCircle, { status: "info", size: "medium" }, void 0),
188
+ jsx_runtime_1.jsx(StyledInnerCircle, { status: "info", size: "medium" }, void 0)] }, void 0),
189
+ jsx_runtime_1.jsx(StyledTimelineDayContent, __assign({ isMobile: false }, { children: isRedacted ? (jsx_runtime_1.jsx(timeline_item_redacted_1.default, {}, void 0)) : (jsx_runtime_1.jsx(timeline_item_1.default, { timelineItem: timelineItem, domainResourceType: domainResourceType }, void 0)) }), void 0)] }), contentKey));
190
+ }
191
+ return (jsx_runtime_1.jsx(StyledTimelineDayItem, __assign({ isMobile: isMobile, "data-testid": itemKey }, { children: content }), itemKey));
192
+ }) }), void 0)] }), dateKey));
193
+ }) }), "timeline"));
194
+ };
195
+ exports.default = Timeline;
196
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
197
197
  //# sourceMappingURL=timeline.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ltht-react/timeline",
3
- "version": "1.0.156",
3
+ "version": "1.0.160",
4
4
  "description": "> TODO: description",
5
5
  "author": "Jonny Dyson",
6
6
  "homepage": "",
@@ -23,14 +23,14 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@emotion/styled": "^11.0.0",
26
- "@ltht-react/banner": "^1.0.141",
27
- "@ltht-react/hooks": "^1.0.158",
28
- "@ltht-react/icon": "^1.3.168",
29
- "@ltht-react/styles": "^1.3.160",
30
- "@ltht-react/types": "^1.0.164",
31
- "@ltht-react/utils": "^1.1.166",
26
+ "@ltht-react/banner": "^1.0.145",
27
+ "@ltht-react/hooks": "^1.0.162",
28
+ "@ltht-react/icon": "^1.3.172",
29
+ "@ltht-react/styles": "^1.3.164",
30
+ "@ltht-react/types": "^1.0.168",
31
+ "@ltht-react/utils": "^1.1.170",
32
32
  "react": "^17.0.0",
33
33
  "react-html-parser": "^2.0.2"
34
34
  },
35
- "gitHead": "4bdf1eb64f4c6f0c4d77f382e34d24fa31dcd05d"
35
+ "gitHead": "5c7463ceea5b61c56a0c05c4a3c5ded8a21052cc"
36
36
  }