@laerdal/life-react-components 1.10.3-dev.12.full → 1.10.3-dev.14
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.
|
@@ -30,15 +30,12 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
30
30
|
var TableFooter = function TableFooter(props) {
|
|
31
31
|
var _props$rowsPerPageLab, _props$showMoreLabel, _props$showFewerLabel;
|
|
32
32
|
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}, {
|
|
40
|
-
value: '100'
|
|
41
|
-
}];
|
|
33
|
+
var rowsPerPageOptions = [10, 20, 50, 100];
|
|
34
|
+
var rowsPerPageValues = rowsPerPageOptions.map(function (x) {
|
|
35
|
+
return {
|
|
36
|
+
value: "".concat(x)
|
|
37
|
+
};
|
|
38
|
+
});
|
|
42
39
|
var dropDownText = "".concat((_props$rowsPerPageLab = props.rowsPerPageLabel) !== null && _props$rowsPerPageLab !== void 0 ? _props$rowsPerPageLab : 'Rows per page', " : ").concat(props.rowsPerPage);
|
|
43
40
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooter, {
|
|
44
41
|
"data-testid": "TestTableFooterRow",
|
|
@@ -58,7 +55,7 @@ var TableFooter = function TableFooter(props) {
|
|
|
58
55
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.ArrowDropUp, {})]
|
|
59
56
|
})]
|
|
60
57
|
}), !props.accordion && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterContent, {
|
|
61
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.DropdownButton, {
|
|
58
|
+
children: [props.rows && props.rows.length > rowsPerPageOptions[0] && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.DropdownButton, {
|
|
62
59
|
type: 'text',
|
|
63
60
|
items: rowsPerPageValues,
|
|
64
61
|
disabled: props.showLoadingIndicator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageValues","value","dropDownText","rowsPerPageLabel","rowsPerPage","accordion","setIsCollapsed","isCollapsed","defaultOnMouseDownHandler","rows","length","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","COLORS","neutral_600","nextPage"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;;;AAeA,IAAMA,WAAsD,GAAG,SAAzDA,WAAyD,CAACC,KAAD,EAAW;AAAA;;AACxE,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageOptions","rowsPerPageValues","map","x","value","dropDownText","rowsPerPageLabel","rowsPerPage","accordion","setIsCollapsed","isCollapsed","defaultOnMouseDownHandler","rows","length","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","COLORS","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownButton, DropdownItem} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\ninterface TableFooterProps extends TableProps {\n onRowsPerPageChange: (value: number) => void;\n rowsPerPage: number;\n from?: number;\n to?: number;\n total?: number;\n nextPage: () => void;\n prevPage: () => void;\n setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageOptions = [10, 20, 50, 100];\n const rowsPerPageValues: DropdownItem[] = rowsPerPageOptions.map(x => { return {value: `${x}`}});\n\n const dropDownText = `${props.rowsPerPageLabel ?? 'Rows per page'} : ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>{props.showMoreLabel ?? 'Show more'} ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>{props.showFewerLabel ?? 'Show fewer'}</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n { props.rows && props.rows.length > rowsPerPageOptions[0] && <DropdownButton\n type={'text'}\n items={rowsPerPageValues}\n disabled={props.showLoadingIndicator}\n value={[`${props.rowsPerPage}`]}\n onClick={(value) => props.onRowsPerPageChange(+value[0])}\n label={dropDownText}\n keepLabel={true}\n />}\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\n <ChevronLeft size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.nextPage()}\n disabled={props.to === props.total || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.cjs"}
|
|
@@ -14,15 +14,12 @@ import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
14
14
|
var TableFooter = function TableFooter(props) {
|
|
15
15
|
var _props$rowsPerPageLab, _props$showMoreLabel, _props$showFewerLabel;
|
|
16
16
|
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}, {
|
|
24
|
-
value: '100'
|
|
25
|
-
}];
|
|
17
|
+
var rowsPerPageOptions = [10, 20, 50, 100];
|
|
18
|
+
var rowsPerPageValues = rowsPerPageOptions.map(function (x) {
|
|
19
|
+
return {
|
|
20
|
+
value: "".concat(x)
|
|
21
|
+
};
|
|
22
|
+
});
|
|
26
23
|
var dropDownText = "".concat((_props$rowsPerPageLab = props.rowsPerPageLabel) !== null && _props$rowsPerPageLab !== void 0 ? _props$rowsPerPageLab : 'Rows per page', " : ").concat(props.rowsPerPage);
|
|
27
24
|
return /*#__PURE__*/_jsxs(StyledTableFooter, {
|
|
28
25
|
"data-testid": "TestTableFooterRow",
|
|
@@ -42,7 +39,7 @@ var TableFooter = function TableFooter(props) {
|
|
|
42
39
|
}), /*#__PURE__*/_jsx(SystemIcons.ArrowDropUp, {})]
|
|
43
40
|
})]
|
|
44
41
|
}), !props.accordion && /*#__PURE__*/_jsxs(StyledTableFooterContent, {
|
|
45
|
-
children: [/*#__PURE__*/_jsx(DropdownButton, {
|
|
42
|
+
children: [props.rows && props.rows.length > rowsPerPageOptions[0] && /*#__PURE__*/_jsx(DropdownButton, {
|
|
46
43
|
type: 'text',
|
|
47
44
|
items: rowsPerPageValues,
|
|
48
45
|
disabled: props.showLoadingIndicator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["React","DropdownButton","IconButton","ChevronLeft","ChevronRight","COLORS","StyledTableFooter","StyledTableFooterCollapseButton","StyledTableFooterContent","StyledTableFooterControls","StyledTableFooterCurrentInfo","SystemIcons","defaultOnMouseDownHandler","TableFooter","props","rowsPerPageValues","value","dropDownText","rowsPerPageLabel","rowsPerPage","accordion","setIsCollapsed","isCollapsed","rows","length","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","neutral_600","nextPage"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAAQC,cAAR,QAA2C,aAA3C;AACA,SAAQC,UAAR,QAAyB,WAAzB;AACA,SAAQC,WAAR,EAAqBC,YAArB,QAAwC,kCAAxC;AACA,SAAQC,MAAR,QAAqB,WAArB;AACA,SACEC,iBADF,EACqBC,+BADrB,EAEEC,wBAFF,EAGEC,yBAHF,EAIEC,4BAJF,QAKO,eALP;AAMA,SAAQC,WAAR,QAA0B,UAA1B;AACA,SAAQC,yBAAR,QAAwC,WAAxC;;;;;AAeA,IAAMC,WAAsD,GAAG,SAAzDA,WAAyD,CAACC,KAAD,EAAW;AAAA;;AACxE,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["React","DropdownButton","IconButton","ChevronLeft","ChevronRight","COLORS","StyledTableFooter","StyledTableFooterCollapseButton","StyledTableFooterContent","StyledTableFooterControls","StyledTableFooterCurrentInfo","SystemIcons","defaultOnMouseDownHandler","TableFooter","props","rowsPerPageOptions","rowsPerPageValues","map","x","value","dropDownText","rowsPerPageLabel","rowsPerPage","accordion","setIsCollapsed","isCollapsed","rows","length","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownButton, DropdownItem} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\ninterface TableFooterProps extends TableProps {\n onRowsPerPageChange: (value: number) => void;\n rowsPerPage: number;\n from?: number;\n to?: number;\n total?: number;\n nextPage: () => void;\n prevPage: () => void;\n setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageOptions = [10, 20, 50, 100];\n const rowsPerPageValues: DropdownItem[] = rowsPerPageOptions.map(x => { return {value: `${x}`}});\n\n const dropDownText = `${props.rowsPerPageLabel ?? 'Rows per page'} : ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>{props.showMoreLabel ?? 'Show more'} ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>{props.showFewerLabel ?? 'Show fewer'}</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n { props.rows && props.rows.length > rowsPerPageOptions[0] && <DropdownButton\n type={'text'}\n items={rowsPerPageValues}\n disabled={props.showLoadingIndicator}\n value={[`${props.rowsPerPage}`]}\n onClick={(value) => props.onRowsPerPageChange(+value[0])}\n label={dropDownText}\n keepLabel={true}\n />}\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\n <ChevronLeft size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.nextPage()}\n disabled={props.to === props.total || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.js"}
|