@ltht-react/flag-detail 2.0.84 → 2.0.85
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/lib/index.d.ts +2 -0
- package/lib/index.js +30 -2
- package/lib/index.js.map +1 -1
- package/package.json +7 -6
- package/src/index.tsx +65 -15
package/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { Flag } from '@ltht-react/types';
|
|
3
|
+
import { ButtonProps } from '@ltht-react/button';
|
|
3
4
|
import { CollapsibleDetailCollectionProps } from '@ltht-react/type-detail';
|
|
4
5
|
declare const FlagDetail: FC<Props>;
|
|
5
6
|
interface Props extends CollapsibleDetailCollectionProps {
|
|
6
7
|
flag: Flag;
|
|
8
|
+
controls?: ButtonProps[];
|
|
7
9
|
}
|
|
8
10
|
export default FlagDetail;
|
package/lib/index.js
CHANGED
|
@@ -1,12 +1,40 @@
|
|
|
1
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
|
+
};
|
|
2
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
21
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
22
|
+
var styled_1 = __importDefault(require("@emotion/styled"));
|
|
4
23
|
var types_1 = require("@ltht-react/types");
|
|
5
24
|
var utils_1 = require("@ltht-react/utils");
|
|
25
|
+
var button_1 = require("@ltht-react/button");
|
|
26
|
+
var styles_1 = require("@ltht-react/styles");
|
|
6
27
|
var type_detail_1 = require("@ltht-react/type-detail");
|
|
28
|
+
var StyledControlsContainer = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n margin: auto 10px auto 10px;\n flex-direction: column;\n\n ", " {\n margin: 10px 0 0 0;\n flex-flow: row wrap;\n }\n\n ", " {\n margin: 10px 5px 0 0;\n flex-direction: column;\n }\n"], ["\n display: flex;\n margin: auto 10px auto 10px;\n flex-direction: column;\n\n ", " {\n margin: 10px 0 0 0;\n flex-flow: row wrap;\n }\n\n ", " {\n margin: 10px 5px 0 0;\n flex-direction: column;\n }\n"])), styles_1.MOBILE_MAXIMUM_MEDIA_QUERY, styles_1.SMALL_SCREEN_MAXIMUM_MEDIA_QUERY);
|
|
29
|
+
var StyledButton = (0, styled_1.default)(button_1.Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin: 2px 0 2px 0;\n font-size: 0.8em !important;\n padding: 1px 5px;\n\n ", " {\n margin: 2px 5px 2px 0;\n width: fit-content;\n }\n\n ", " {\n margin: 2px 0 2px 0;\n width: 100%;\n max-width: 200px;\n }\n"], ["\n margin: 2px 0 2px 0;\n font-size: 0.8em !important;\n padding: 1px 5px;\n\n ", " {\n margin: 2px 5px 2px 0;\n width: fit-content;\n }\n\n ", " {\n margin: 2px 0 2px 0;\n width: 100%;\n max-width: 200px;\n }\n"])), styles_1.MOBILE_MAXIMUM_MEDIA_QUERY, styles_1.SMALL_SCREEN_MAXIMUM_MEDIA_QUERY);
|
|
7
30
|
var FlagDetail = function (_a) {
|
|
8
|
-
var flag = _a.flag, _b = _a.viewType, viewType =
|
|
9
|
-
|
|
31
|
+
var flag = _a.flag, _b = _a.controls, controls = _b === void 0 ? [] : _b, _c = _a.viewType, viewType = _c === void 0 ? types_1.DetailViewType.Compact : _c;
|
|
32
|
+
var buttons = (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
33
|
+
if (controls.length) {
|
|
34
|
+
buttons = ((0, jsx_runtime_1.jsx)(StyledControlsContainer, { children: controls.map(function (props, index) { return ((0, jsx_runtime_1.jsx)(StyledButton, __assign({}, props), index)); }) }));
|
|
35
|
+
}
|
|
36
|
+
return ((0, jsx_runtime_1.jsxs)(type_detail_1.CollapsibleDetailCollection, { viewType: viewType, children: [(0, jsx_runtime_1.jsx)(type_detail_1.CodeableConceptDetail, { term: "Code", concept: flag === null || flag === void 0 ? void 0 : flag.code }), (0, jsx_runtime_1.jsx)(type_detail_1.StringDetail, { term: "Status", description: flag.status.toString() }), (0, jsx_runtime_1.jsx)(type_detail_1.CodeableConceptDetail, { term: "Category", concept: flag === null || flag === void 0 ? void 0 : flag.category }), (0, jsx_runtime_1.jsx)(type_detail_1.PeriodDetail, { period: flag === null || flag === void 0 ? void 0 : flag.period }), (0, jsx_runtime_1.jsx)(type_detail_1.NarrativeDetail, { narrative: flag === null || flag === void 0 ? void 0 : flag.text }), (0, jsx_runtime_1.jsx)(type_detail_1.StringDetail, { term: "Advice", description: (0, utils_1.getStringExtension)(flag === null || flag === void 0 ? void 0 : flag.extension, 'https://leedsth.nhs.uk/alert/advice'), parse: false }), buttons, (0, jsx_runtime_1.jsx)(type_detail_1.ResourceReferenceDetail, { term: "Author", resourceReference: flag === null || flag === void 0 ? void 0 : flag.author })] }));
|
|
10
37
|
};
|
|
11
38
|
exports.default = FlagDetail;
|
|
39
|
+
var templateObject_1, templateObject_2;
|
|
12
40
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,2DAAoC;AACpC,2CAAwD;AACxD,2CAAsD;AACtD,6CAAwD;AACxD,6CAAiG;AAEjG,uDAQgC;AAEhC,IAAM,uBAAuB,GAAG,gBAAM,CAAC,GAAG,iSAAA,qFAKtC,EAA0B,kEAK1B,EAAgC,mEAInC,KATG,mCAA0B,EAK1B,yCAAgC,CAInC,CAAA;AACD,IAAM,YAAY,GAAG,IAAA,gBAAM,EAAC,eAAM,CAAC,8SAAA,qFAK/B,EAA0B,oEAK1B,EAAgC,8EAKnC,KAVG,mCAA0B,EAK1B,yCAAgC,CAKnC,CAAA;AAED,IAAM,UAAU,GAAc,UAAC,EAA0D;QAAxD,IAAI,UAAA,EAAE,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,EAAE,gBAAiC,EAAjC,QAAQ,mBAAG,sBAAc,CAAC,OAAO,KAAA;IACrF,IAAI,OAAO,GAAG,kDAAK,CAAA;IACnB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,GAAG,CACR,uBAAC,uBAAuB,cACrB,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,CAC9B,uBAAC,YAAY,eAAiB,KAAK,GAAhB,KAAK,CAAe,CACxC,EAF+B,CAE/B,CAAC,GACsB,CAC3B,CAAA;IACH,CAAC;IAED,OAAO,CACL,wBAAC,yCAA2B,IAAC,QAAQ,EAAE,QAAQ,aAC7C,uBAAC,mCAAqB,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,GAAI,EAC1D,uBAAC,0BAAY,IAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAI,EACnE,uBAAC,mCAAqB,IAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,GAAI,EAClE,uBAAC,0BAAY,IAAC,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,GAAI,EACtC,uBAAC,6BAAe,IAAC,SAAS,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,GAAI,EAC1C,uBAAC,0BAAY,IACX,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,IAAA,0BAAkB,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE,qCAAqC,CAAC,EACvF,KAAK,EAAE,KAAK,GACZ,EACD,OAAO,EACR,uBAAC,qCAAuB,IAAC,IAAI,EAAC,QAAQ,EAAC,iBAAiB,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,GAAI,IAC9C,CAC/B,CAAA;AACH,CAAC,CAAA;AAOD,kBAAe,UAAU,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ltht-react/flag-detail",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.85",
|
|
4
4
|
"description": "ltht-react clinical FlagDetail component.",
|
|
5
5
|
"author": "LTHT",
|
|
6
6
|
"homepage": "",
|
|
@@ -28,11 +28,12 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@emotion/react": "^11.0.0",
|
|
30
30
|
"@emotion/styled": "^11.0.0",
|
|
31
|
-
"@ltht-react/
|
|
32
|
-
"@ltht-react/
|
|
33
|
-
"@ltht-react/
|
|
34
|
-
"@ltht-react/
|
|
31
|
+
"@ltht-react/button": "^2.0.85",
|
|
32
|
+
"@ltht-react/styles": "^2.0.85",
|
|
33
|
+
"@ltht-react/type-detail": "^2.0.85",
|
|
34
|
+
"@ltht-react/types": "^2.0.85",
|
|
35
|
+
"@ltht-react/utils": "^2.0.85",
|
|
35
36
|
"react": "^18.2.0"
|
|
36
37
|
},
|
|
37
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "cb0f8ea64ce25abb0b9a1ee934a930e84ca588ae"
|
|
38
39
|
}
|
package/src/index.tsx
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { FC } from 'react'
|
|
2
|
+
import styled from '@emotion/styled'
|
|
2
3
|
import { DetailViewType, Flag } from '@ltht-react/types'
|
|
3
4
|
import { getStringExtension } from '@ltht-react/utils'
|
|
5
|
+
import { Button, ButtonProps } from '@ltht-react/button'
|
|
6
|
+
import { MOBILE_MAXIMUM_MEDIA_QUERY, SMALL_SCREEN_MAXIMUM_MEDIA_QUERY } from '@ltht-react/styles'
|
|
4
7
|
|
|
5
8
|
import {
|
|
6
9
|
CodeableConceptDetail,
|
|
@@ -12,24 +15,71 @@ import {
|
|
|
12
15
|
CollapsibleDetailCollection,
|
|
13
16
|
} from '@ltht-react/type-detail'
|
|
14
17
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
18
|
+
const StyledControlsContainer = styled.div`
|
|
19
|
+
display: flex;
|
|
20
|
+
margin: auto 10px auto 10px;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
|
|
23
|
+
${MOBILE_MAXIMUM_MEDIA_QUERY} {
|
|
24
|
+
margin: 10px 0 0 0;
|
|
25
|
+
flex-flow: row wrap;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
${SMALL_SCREEN_MAXIMUM_MEDIA_QUERY} {
|
|
29
|
+
margin: 10px 5px 0 0;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
}
|
|
32
|
+
`
|
|
33
|
+
const StyledButton = styled(Button)`
|
|
34
|
+
margin: 2px 0 2px 0;
|
|
35
|
+
font-size: 0.8em !important;
|
|
36
|
+
padding: 1px 5px;
|
|
37
|
+
|
|
38
|
+
${MOBILE_MAXIMUM_MEDIA_QUERY} {
|
|
39
|
+
margin: 2px 5px 2px 0;
|
|
40
|
+
width: fit-content;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
${SMALL_SCREEN_MAXIMUM_MEDIA_QUERY} {
|
|
44
|
+
margin: 2px 0 2px 0;
|
|
45
|
+
width: 100%;
|
|
46
|
+
max-width: 200px;
|
|
47
|
+
}
|
|
48
|
+
`
|
|
49
|
+
|
|
50
|
+
const FlagDetail: FC<Props> = ({ flag, controls = [], viewType = DetailViewType.Compact }) => {
|
|
51
|
+
let buttons = <></>
|
|
52
|
+
if (controls.length) {
|
|
53
|
+
buttons = (
|
|
54
|
+
<StyledControlsContainer>
|
|
55
|
+
{controls.map((props, index) => (
|
|
56
|
+
<StyledButton key={index} {...props} />
|
|
57
|
+
))}
|
|
58
|
+
</StyledControlsContainer>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<CollapsibleDetailCollection viewType={viewType}>
|
|
64
|
+
<CodeableConceptDetail term="Code" concept={flag?.code} />
|
|
65
|
+
<StringDetail term="Status" description={flag.status.toString()} />
|
|
66
|
+
<CodeableConceptDetail term="Category" concept={flag?.category} />
|
|
67
|
+
<PeriodDetail period={flag?.period} />
|
|
68
|
+
<NarrativeDetail narrative={flag?.text} />
|
|
69
|
+
<StringDetail
|
|
70
|
+
term="Advice"
|
|
71
|
+
description={getStringExtension(flag?.extension, 'https://leedsth.nhs.uk/alert/advice')}
|
|
72
|
+
parse={false}
|
|
73
|
+
/>
|
|
74
|
+
{buttons}
|
|
75
|
+
<ResourceReferenceDetail term="Author" resourceReference={flag?.author} />
|
|
76
|
+
</CollapsibleDetailCollection>
|
|
77
|
+
)
|
|
78
|
+
}
|
|
30
79
|
|
|
31
80
|
interface Props extends CollapsibleDetailCollectionProps {
|
|
32
81
|
flag: Flag
|
|
82
|
+
controls?: ButtonProps[]
|
|
33
83
|
}
|
|
34
84
|
|
|
35
85
|
export default FlagDetail
|