@decisiv/ui-components 2.0.1-alpha.207 → 2.0.1-alpha.209
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/atoms/InputField/HelpMessage.d.ts.map +1 -1
- package/lib/atoms/InputField/HelpMessage.js +21 -6
- package/lib/atoms/InputField/index.d.ts.map +1 -1
- package/lib/atoms/InputField/index.js +2 -1
- package/lib/atoms/InputField/index.test.js +27 -0
- package/lib/components/Pagination/Pages.d.ts +1 -7
- package/lib/components/Pagination/Pages.d.ts.map +1 -1
- package/lib/components/Pagination/Pages.js +17 -0
- package/lib/components/Pagination/Pagination.d.ts +13 -14
- package/lib/components/Pagination/Pagination.d.ts.map +1 -1
- package/lib/components/Pagination/Pagination.js +20 -5
- package/lib/components/Pagination/Pagination.test.js +14 -0
- package/lib/components/Pagination/paginate.d.ts +1 -1
- package/lib/components/Pagination/paginate.d.ts.map +1 -1
- package/lib/components/Pagination/paginate.js +4 -0
- package/lib/components/Pagination/paginate.test.js +38 -17
- package/lib/components/Pagination/schema.d.ts.map +1 -1
- package/lib/components/Pagination/schema.js +3 -1
- package/lib/components/Pagination/types.d.ts +24 -1
- package/lib/components/Pagination/types.d.ts.map +1 -1
- package/lib/providers/ConfigProvider/utils/translations.d.ts +2 -0
- package/lib/providers/ConfigProvider/utils/translations.d.ts.map +1 -1
- package/lib/providers/ConfigProvider/utils/translations.js +3 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpMessage.d.ts","sourceRoot":"","sources":["../../../src/atoms/InputField/HelpMessage.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AASnC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"HelpMessage.d.ts","sourceRoot":"","sources":["../../../src/atoms/InputField/HelpMessage.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AASnC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA6ChE;kBA7CQ,WAAW;;;;;;;;;;;;;;AA8DpB,eAAe,WAAW,CAAC"}
|
|
@@ -31,14 +31,29 @@ function HelpMessage(props) {
|
|
|
31
31
|
_props$contentLength = props.contentLength,
|
|
32
32
|
contentLength = _props$contentLength === void 0 ? 0 : _props$contentLength;
|
|
33
33
|
var translate = (0, _useTranslations.default)();
|
|
34
|
-
var showCount = Boolean(maxLength && showCharacterCount);
|
|
34
|
+
var showCount = Boolean(maxLength && showCharacterCount);
|
|
35
|
+
var countSurpassed = maxLength && contentLength > maxLength;
|
|
36
|
+
|
|
37
|
+
var countMessage = _react.default.useMemo(function () {
|
|
38
|
+
if (!showCount) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (countSurpassed) {
|
|
43
|
+
return translate(undefined, 'textArea.countMessageOver', {
|
|
44
|
+
surplus: _react.default.createElement(RemainingCount, null, contentLength - maxLength),
|
|
45
|
+
max: "".concat(maxLength)
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return translate(undefined, 'textArea.countMessage', {
|
|
50
|
+
remaining: _react.default.createElement(RemainingCount, null, maxLength - contentLength),
|
|
51
|
+
max: "".concat(maxLength)
|
|
52
|
+
});
|
|
53
|
+
}, [contentLength, countSurpassed, maxLength, showCount, translate]);
|
|
35
54
|
|
|
36
|
-
var countMessage = showCount && translate(undefined, 'textArea.countMessage', {
|
|
37
|
-
remaining: _react.default.createElement(RemainingCount, null, maxLength - contentLength),
|
|
38
|
-
max: "".concat(maxLength)
|
|
39
|
-
});
|
|
40
55
|
return helpMessage || showCount ? _react.default.createElement(_Message.default, {
|
|
41
|
-
intent:
|
|
56
|
+
intent: countSurpassed ? 'warning' : 'help'
|
|
42
57
|
}, helpMessage, helpMessage && showCount && _react.default.createElement("br", null), countMessage) : null;
|
|
43
58
|
}
|
|
44
59
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/InputField/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,GAAG,EACH,sBAAsB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAoB5C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/InputField/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,GAAG,EACH,sBAAsB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAoB5C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoLD,QAAA,MAAM,iBAAiB,EAAE,sBAAsB,CAC7C,GAAG,CAAC,GAAG,CAAC,EACR,mBAAmB,CACK,CAAC;AAQ3B,eAAe,iBAAiB,CAAC"}
|
|
@@ -159,6 +159,7 @@ function InputField(props, targetRef) {
|
|
|
159
159
|
var labelId = labelIdProp || "".concat(targetId, "-label");
|
|
160
160
|
var translate = (0, _useTranslations.default)();
|
|
161
161
|
var requiredMessage = translate(requiredMessageProp, 'textField.requiredMessage');
|
|
162
|
+
var isCountOverflow = !!maxLength && contentLength > maxLength;
|
|
162
163
|
return _react.default.createElement(_Containers.InputFieldContainer, {
|
|
163
164
|
overflow: overflow,
|
|
164
165
|
style: style
|
|
@@ -166,7 +167,7 @@ function InputField(props, targetRef) {
|
|
|
166
167
|
cursor: cursor,
|
|
167
168
|
hiddenLabel: hideLabel,
|
|
168
169
|
disabled: disabled,
|
|
169
|
-
hasWarning: !!warningMessage || withWarningIntent,
|
|
170
|
+
hasWarning: !!warningMessage || withWarningIntent || isCountOverflow,
|
|
170
171
|
isFocused: isFocused,
|
|
171
172
|
readOnly: readOnly,
|
|
172
173
|
ref: inputContainerRef,
|
|
@@ -113,5 +113,32 @@ describe('InputField', function () {
|
|
|
113
113
|
}));
|
|
114
114
|
expect(getByText(textFinder("You have ".concat(100 - (initialValue.length + 3), " characters left (100 max).")))).toBeTruthy();
|
|
115
115
|
});
|
|
116
|
+
it('shows overflow message when values is larger than maxLength', function () {
|
|
117
|
+
var label = 'label';
|
|
118
|
+
var initialValue = 'Initial text';
|
|
119
|
+
|
|
120
|
+
var _render3 = render(_react.default.createElement(_.default, {
|
|
121
|
+
label: label,
|
|
122
|
+
value: initialValue,
|
|
123
|
+
showCharacterCount: true,
|
|
124
|
+
maxLength: 15
|
|
125
|
+
}, function (p) {
|
|
126
|
+
return _react.default.createElement(Dummy, p);
|
|
127
|
+
})),
|
|
128
|
+
getByText = _render3.getByText,
|
|
129
|
+
rerender = _render3.rerender;
|
|
130
|
+
|
|
131
|
+
expect(getByText(textFinder("You have ".concat(15 - initialValue.length, " characters left (15 max).")))).toBeTruthy();
|
|
132
|
+
var newValue = "".concat(initialValue, " with some additional text");
|
|
133
|
+
rerender(_react.default.createElement(_.default, {
|
|
134
|
+
label: label,
|
|
135
|
+
value: newValue,
|
|
136
|
+
showCharacterCount: true,
|
|
137
|
+
maxLength: 15
|
|
138
|
+
}, function (p) {
|
|
139
|
+
return _react.default.createElement(Dummy, p);
|
|
140
|
+
}));
|
|
141
|
+
expect(getByText(textFinder("You are ".concat(newValue.length - 15, " characters over the limit (15 max).")))).toBeTruthy();
|
|
142
|
+
});
|
|
116
143
|
});
|
|
117
144
|
});
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
export interface PagesProps {
|
|
4
|
-
variant?: PaginationVariant;
|
|
5
|
-
currentPage: number;
|
|
6
|
-
totalPages: number;
|
|
7
|
-
onPageChange: (page: Page) => void;
|
|
8
|
-
}
|
|
2
|
+
import { PagesProps } from './types';
|
|
9
3
|
export default function Pages({ variant, currentPage, totalPages, onPageChange, }: PagesProps): JSX.Element;
|
|
10
4
|
//# sourceMappingURL=Pages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pages.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pages.tsx"],"names":[],"mappings":";AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"Pages.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pages.tsx"],"names":[],"mappings":";AAQA,OAAO,EAA2B,UAAU,EAAE,MAAM,SAAS,CAAC;AAoB9D,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,OAAO,EACP,WAAW,EACX,UAAU,EACV,YAAY,GACb,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAuC1B"}
|
|
@@ -17,6 +17,10 @@ var _PaginationItem = _interopRequireDefault(require("./PaginationItem"));
|
|
|
17
17
|
|
|
18
18
|
var _paginate = _interopRequireDefault(require("./paginate"));
|
|
19
19
|
|
|
20
|
+
var _Typography = require("../Typography");
|
|
21
|
+
|
|
22
|
+
var _useTranslations = _interopRequireDefault(require("../../utils/useTranslations"));
|
|
23
|
+
|
|
20
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
25
|
|
|
22
26
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
|
@@ -37,6 +41,7 @@ function Pages(_ref2) {
|
|
|
37
41
|
currentPage = _ref2.currentPage,
|
|
38
42
|
totalPages = _ref2.totalPages,
|
|
39
43
|
onPageChange = _ref2.onPageChange;
|
|
44
|
+
var translate = (0, _useTranslations.default)();
|
|
40
45
|
var pages = (0, _react.useMemo)(function () {
|
|
41
46
|
return (0, _paginate.default)(currentPage, totalPages);
|
|
42
47
|
}, [currentPage, totalPages]); // for creating unique keys for the ellipses:
|
|
@@ -46,6 +51,18 @@ function Pages(_ref2) {
|
|
|
46
51
|
variant: variant
|
|
47
52
|
}, pages.map(function (page) {
|
|
48
53
|
var key = page.ellipsis ? "ellipsis-".concat(ellipsisCount += 1) : "page-".concat(page.page);
|
|
54
|
+
var pageText = translate(undefined, 'pagination.page', {
|
|
55
|
+
page: "".concat(page.page)
|
|
56
|
+
}); // if its openEnded
|
|
57
|
+
|
|
58
|
+
if (!totalPages) {
|
|
59
|
+
return _react.default.createElement(_Typography.P, {
|
|
60
|
+
key: key,
|
|
61
|
+
shade: 1,
|
|
62
|
+
size: "small"
|
|
63
|
+
}, pageText);
|
|
64
|
+
}
|
|
65
|
+
|
|
49
66
|
return _react.default.createElement(_PaginationItem.default, {
|
|
50
67
|
page: page,
|
|
51
68
|
key: key,
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import {
|
|
4
|
-
interface DefaultPaginationProps {
|
|
5
|
-
variant: PaginationVariant;
|
|
6
|
-
defaultActivePage?: number;
|
|
7
|
-
activePage?: number;
|
|
8
|
-
onPageChange?: (newPage: number, oldPage: number) => void;
|
|
9
|
-
labelPrevious?: string;
|
|
10
|
-
labelNext?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface PaginationProps extends DefaultPaginationProps {
|
|
13
|
-
totalPages: number;
|
|
14
|
-
}
|
|
3
|
+
import { PaginationProps } from './types';
|
|
15
4
|
declare function Pagination(props: PaginationProps): JSX.Element | null;
|
|
16
5
|
declare namespace Pagination {
|
|
17
6
|
var propTypes: {
|
|
18
7
|
variant: PropTypes.Requireable<string>;
|
|
8
|
+
openEnded: PropTypes.Requireable<boolean>;
|
|
19
9
|
defaultActivePage: PropTypes.Requireable<number>;
|
|
20
10
|
activePage: PropTypes.Requireable<number>;
|
|
21
|
-
totalPages: PropTypes.
|
|
11
|
+
totalPages: PropTypes.Requireable<number>;
|
|
22
12
|
onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
23
13
|
labelPrevious: PropTypes.Requireable<string>;
|
|
24
14
|
labelNext: PropTypes.Requireable<string>;
|
|
25
15
|
};
|
|
26
|
-
var defaultProps:
|
|
16
|
+
var defaultProps: {
|
|
17
|
+
readonly variant: "comfortable";
|
|
18
|
+
readonly openEnded: false;
|
|
19
|
+
readonly hasNext: false;
|
|
20
|
+
readonly defaultActivePage: 1;
|
|
21
|
+
readonly activePage: undefined;
|
|
22
|
+
readonly onPageChange: undefined;
|
|
23
|
+
readonly labelPrevious: undefined;
|
|
24
|
+
readonly labelNext: undefined;
|
|
25
|
+
};
|
|
27
26
|
}
|
|
28
27
|
export default Pagination;
|
|
29
28
|
//# sourceMappingURL=Pagination.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":";AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAUnC,OAAO,EAA6B,eAAe,EAAE,MAAM,SAAS,CAAC;AAGrE,iBAAwB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAmG7E;kBAnGuB,UAAU;;;;;;;;;;;;;;;;;;;;;;eAAV,UAAU"}
|
|
@@ -37,7 +37,6 @@ function Pagination(props) {
|
|
|
37
37
|
var variant = props.variant,
|
|
38
38
|
defaultActivePage = props.defaultActivePage,
|
|
39
39
|
activePage = props.activePage,
|
|
40
|
-
totalPages = props.totalPages,
|
|
41
40
|
onPageChange = props.onPageChange,
|
|
42
41
|
labelPrevious = props.labelPrevious,
|
|
43
42
|
labelNext = props.labelNext;
|
|
@@ -49,7 +48,16 @@ function Pagination(props) {
|
|
|
49
48
|
currentPage = _useState2[0],
|
|
50
49
|
setCurrentPage = _useState2[1];
|
|
51
50
|
|
|
52
|
-
if (
|
|
51
|
+
if (props.openEnded === false && !props.totalPages) {
|
|
52
|
+
// eslint-disable-next-line no-console
|
|
53
|
+
console.warn('totalPages prop must be defined when using a close-ended pagination');
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (props.openEnded === false && props.totalPages <= 1) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
53
61
|
var activePageIsControlled = typeof activePage !== 'undefined';
|
|
54
62
|
|
|
55
63
|
if (activePageIsControlled && activePage !== currentPage) {
|
|
@@ -59,9 +67,13 @@ function Pagination(props) {
|
|
|
59
67
|
var prevPage = currentPage > 1 ? {
|
|
60
68
|
page: currentPage - 1
|
|
61
69
|
} : undefined;
|
|
62
|
-
var
|
|
70
|
+
var openEndedNextPage = props.openEnded && props.hasNext ? {
|
|
71
|
+
page: currentPage + 1
|
|
72
|
+
} : undefined;
|
|
73
|
+
var fixedpaginationNextPage = props.openEnded === false && currentPage < props.totalPages ? {
|
|
63
74
|
page: currentPage + 1
|
|
64
75
|
} : undefined;
|
|
76
|
+
var nextPage = props.openEnded ? openEndedNextPage : fixedpaginationNextPage;
|
|
65
77
|
var prevButtonAriaLabel = prevPage ? translate(labelPrevious, 'pagination.aria.previous', {
|
|
66
78
|
page: "".concat(prevPage.page)
|
|
67
79
|
}) : undefined;
|
|
@@ -94,7 +106,7 @@ function Pagination(props) {
|
|
|
94
106
|
}), _react.default.createElement(_Pages.default, {
|
|
95
107
|
variant: variant,
|
|
96
108
|
currentPage: currentPage,
|
|
97
|
-
totalPages: totalPages,
|
|
109
|
+
totalPages: props.openEnded ? undefined : props.totalPages,
|
|
98
110
|
onPageChange: pageChangeHandler
|
|
99
111
|
}), _react.default.createElement(_NextPrevButton.default, {
|
|
100
112
|
variant: variant,
|
|
@@ -109,15 +121,18 @@ function Pagination(props) {
|
|
|
109
121
|
|
|
110
122
|
Pagination.propTypes = {
|
|
111
123
|
variant: _propTypes.default.oneOf(['comfortable', 'compact']),
|
|
124
|
+
openEnded: _propTypes.default.bool,
|
|
112
125
|
defaultActivePage: _propTypes.default.number,
|
|
113
126
|
activePage: _propTypes.default.number,
|
|
114
|
-
totalPages: _propTypes.default.number
|
|
127
|
+
totalPages: _propTypes.default.number,
|
|
115
128
|
onPageChange: _propTypes.default.func,
|
|
116
129
|
labelPrevious: _propTypes.default.string,
|
|
117
130
|
labelNext: _propTypes.default.string
|
|
118
131
|
};
|
|
119
132
|
var defaultProps = {
|
|
120
133
|
variant: 'comfortable',
|
|
134
|
+
openEnded: false,
|
|
135
|
+
hasNext: false,
|
|
121
136
|
defaultActivePage: 1,
|
|
122
137
|
activePage: undefined,
|
|
123
138
|
onPageChange: undefined,
|
|
@@ -254,4 +254,18 @@ describe('Pagination', function () {
|
|
|
254
254
|
|
|
255
255
|
expect(container).toBeEmpty();
|
|
256
256
|
});
|
|
257
|
+
it('shows warning when totalPages is not defined and its not openEnded', function () {
|
|
258
|
+
jest.spyOn(console, 'warn').mockImplementation(function () {});
|
|
259
|
+
|
|
260
|
+
var _renderPagination18 = renderPagination(_objectSpread({}, defaultProps, {
|
|
261
|
+
openEnded: false,
|
|
262
|
+
totalPages: undefined
|
|
263
|
+
})),
|
|
264
|
+
container = _renderPagination18.container;
|
|
265
|
+
|
|
266
|
+
expect(container).toBeEmpty();
|
|
267
|
+
expect(console.warn).toHaveBeenCalled(); // @ts-ignore
|
|
268
|
+
|
|
269
|
+
console.warn.mockRestore();
|
|
270
|
+
});
|
|
257
271
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/paginate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AA4C/B,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/paginate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AA4C/B,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,EAAE,CAgDR"}
|
|
@@ -42,10 +42,11 @@ var countEllipses = function countEllipses(pages) {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
describe('paginate', function () {
|
|
45
|
-
|
|
45
|
+
// open ended pagination case
|
|
46
|
+
describe('with no total pages', function () {
|
|
46
47
|
it('does not include any ellipses', function () {
|
|
47
48
|
testAllPages({
|
|
48
|
-
maxTotal:
|
|
49
|
+
maxTotal: 1
|
|
49
50
|
}, function (_ref2) {
|
|
50
51
|
var pages = _ref2.pages;
|
|
51
52
|
pages.forEach(function (page) {
|
|
@@ -53,20 +54,40 @@ describe('paginate', function () {
|
|
|
53
54
|
});
|
|
54
55
|
});
|
|
55
56
|
});
|
|
56
|
-
it('
|
|
57
|
+
it('only renders the current page', function () {
|
|
58
|
+
var result = (0, _paginate.default)(1, undefined);
|
|
59
|
+
expect(result).toEqual([{
|
|
60
|
+
active: true,
|
|
61
|
+
page: 1,
|
|
62
|
+
ellipsis: false
|
|
63
|
+
}]);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('with 7 or less pages', function () {
|
|
67
|
+
it('does not include any ellipses', function () {
|
|
57
68
|
testAllPages({
|
|
58
69
|
maxTotal: 7
|
|
59
70
|
}, function (_ref3) {
|
|
60
|
-
var
|
|
61
|
-
|
|
71
|
+
var pages = _ref3.pages;
|
|
72
|
+
pages.forEach(function (page) {
|
|
73
|
+
expect(page.ellipsis).toEqual(false);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
it('renders only as many items as there are pages', function () {
|
|
78
|
+
testAllPages({
|
|
79
|
+
maxTotal: 7
|
|
80
|
+
}, function (_ref4) {
|
|
81
|
+
var totalPages = _ref4.totalPages,
|
|
82
|
+
pages = _ref4.pages;
|
|
62
83
|
expect(pages.length).toEqual(totalPages);
|
|
63
84
|
});
|
|
64
85
|
});
|
|
65
86
|
});
|
|
66
87
|
describe('with 8 or more pages', function () {
|
|
67
|
-
function sharedTests(
|
|
68
|
-
var pages =
|
|
69
|
-
currentPage =
|
|
88
|
+
function sharedTests(_ref5) {
|
|
89
|
+
var pages = _ref5.pages,
|
|
90
|
+
currentPage = _ref5.currentPage;
|
|
70
91
|
it('renders 7 items', function () {
|
|
71
92
|
expect(pages).toHaveLength(7);
|
|
72
93
|
});
|
|
@@ -88,9 +109,9 @@ describe('paginate', function () {
|
|
|
88
109
|
lastCurrent: 4,
|
|
89
110
|
minTotal: totalPages,
|
|
90
111
|
maxTotal: totalPages
|
|
91
|
-
}, function (
|
|
92
|
-
var currentPage =
|
|
93
|
-
pages =
|
|
112
|
+
}, function (_ref6) {
|
|
113
|
+
var currentPage = _ref6.currentPage,
|
|
114
|
+
pages = _ref6.pages;
|
|
94
115
|
describe("when on page ".concat(currentPage), function () {
|
|
95
116
|
it("has one ellipsis at the end", function () {
|
|
96
117
|
expect(countEllipses(pages)).toEqual(1);
|
|
@@ -112,9 +133,9 @@ describe('paginate', function () {
|
|
|
112
133
|
lastCurrent: rightBound - 1,
|
|
113
134
|
minTotal: totalPages,
|
|
114
135
|
maxTotal: totalPages
|
|
115
|
-
}, function (
|
|
116
|
-
var currentPage =
|
|
117
|
-
pages =
|
|
136
|
+
}, function (_ref7) {
|
|
137
|
+
var currentPage = _ref7.currentPage,
|
|
138
|
+
pages = _ref7.pages;
|
|
118
139
|
describe("when on page ".concat(currentPage), function () {
|
|
119
140
|
it("has two ellipses", function () {
|
|
120
141
|
expect(countEllipses(pages)).toEqual(2);
|
|
@@ -136,9 +157,9 @@ describe('paginate', function () {
|
|
|
136
157
|
firstCurrent: rightBound,
|
|
137
158
|
minTotal: totalPages,
|
|
138
159
|
maxTotal: totalPages
|
|
139
|
-
}, function (
|
|
140
|
-
var currentPage =
|
|
141
|
-
pages =
|
|
160
|
+
}, function (_ref8) {
|
|
161
|
+
var currentPage = _ref8.currentPage,
|
|
162
|
+
pages = _ref8.pages;
|
|
142
163
|
describe("when on page ".concat(currentPage), function () {
|
|
143
164
|
it("has one ellipsis at the start", function () {
|
|
144
165
|
expect(countEllipses(pages)).toEqual(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/schema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,KAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/schema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,KAA0C,CAAC;AAoCvD,eAAe,MAAM,CAAC"}
|
|
@@ -15,7 +15,9 @@ schema.propTypes = {
|
|
|
15
15
|
variant: _reactDesc.PropTypes.oneOf(['comfortable', 'compact']).description('Controls the padding size of the component').defaultValue('comfortable'),
|
|
16
16
|
defaultActivePage: _reactDesc.PropTypes.number.description('When uncontrolled, specifies the default initially-active page').defaultValue('1'),
|
|
17
17
|
activePage: _reactDesc.PropTypes.number.description('Sets the currently-active page. If specified, the component is "controlled".'),
|
|
18
|
-
|
|
18
|
+
openEnded: _reactDesc.PropTypes.bool.description('Define if this is an open-ended pagination. Use hasNext to enable the next button').defaultValue('false'),
|
|
19
|
+
hasNext: _reactDesc.PropTypes.bool.description('Use with `openEnded` prop to define if the Next button is enabled').defaultValue('false'),
|
|
20
|
+
totalPages: _reactDesc.PropTypes.number.description('Sets the total number of pages. This is required when using a fixed pagination'),
|
|
19
21
|
onPageChange: _reactDesc.PropTypes.func.description('A function called with two arguments (the newly-active page and the previously-active page) whenever the active page changes'),
|
|
20
22
|
labelPrevious: _reactDesc.PropTypes.string.description('Override the "Previous" button label'),
|
|
21
23
|
labelNext: _reactDesc.PropTypes.string.description('Override the "Next" button label')
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
export declare type PaginationVariant = 'comfortable' | 'compact';
|
|
2
2
|
export interface Page {
|
|
3
|
-
active?: boolean;
|
|
4
3
|
page?: number;
|
|
4
|
+
active?: boolean;
|
|
5
5
|
ellipsis?: boolean;
|
|
6
6
|
}
|
|
7
|
+
export interface DefaultPaginationProps {
|
|
8
|
+
variant: PaginationVariant;
|
|
9
|
+
defaultActivePage?: number;
|
|
10
|
+
activePage?: number;
|
|
11
|
+
onPageChange?: (newPage: number, oldPage: number) => void;
|
|
12
|
+
labelPrevious?: string;
|
|
13
|
+
labelNext?: string;
|
|
14
|
+
}
|
|
15
|
+
declare type OpenEndedPaginationProps = {
|
|
16
|
+
openEnded: true;
|
|
17
|
+
hasNext: boolean;
|
|
18
|
+
} & DefaultPaginationProps;
|
|
19
|
+
declare type CloseEndedPaginationProps = {
|
|
20
|
+
openEnded: false;
|
|
21
|
+
totalPages: number;
|
|
22
|
+
} & DefaultPaginationProps;
|
|
23
|
+
export declare type PaginationProps = CloseEndedPaginationProps | OpenEndedPaginationProps;
|
|
24
|
+
export declare type PagesProps = {
|
|
25
|
+
currentPage: number;
|
|
26
|
+
totalPages?: CloseEndedPaginationProps['totalPages'];
|
|
27
|
+
onPageChange: (page: Page) => void;
|
|
28
|
+
} & Pick<PaginationProps, 'variant' | 'activePage'>;
|
|
7
29
|
export declare type PageChangeHandlerFn = (page: Page) => void;
|
|
30
|
+
export {};
|
|
8
31
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/types.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/types.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,IAAI;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,aAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,sBAAsB,CAAC;AAE3B,aAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,sBAAsB,CAAC;AAE3B,oBAAY,eAAe,GACvB,yBAAyB,GACzB,wBAAwB,CAAC;AAE7B,oBAAY,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACpC,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;AAEpD,oBAAY,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC"}
|
|
@@ -76,6 +76,7 @@ declare const translations: {
|
|
|
76
76
|
pagination: {
|
|
77
77
|
readonly previous: "Previous";
|
|
78
78
|
readonly next: "Next";
|
|
79
|
+
readonly page: "Page {page}";
|
|
79
80
|
aria: {
|
|
80
81
|
readonly label: "Pagination";
|
|
81
82
|
readonly previous: "Go to previous page, page {page}";
|
|
@@ -129,6 +130,7 @@ declare const translations: {
|
|
|
129
130
|
};
|
|
130
131
|
textArea: {
|
|
131
132
|
readonly countMessage: "You have {remaining} characters left ({max} max).";
|
|
133
|
+
readonly countMessageOver: "You are {surplus} characters over the limit ({max} max).";
|
|
132
134
|
};
|
|
133
135
|
textField: {
|
|
134
136
|
readonly requiredMessage: "Required";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../../src/providers/ConfigProvider/utils/translations.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../../src/providers/ConfigProvider/utils/translations.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JR,CAAC;AAEX,oBAAY,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,eAAe,YAAY,CAAC"}
|
|
@@ -82,6 +82,7 @@ var translations = {
|
|
|
82
82
|
pagination: {
|
|
83
83
|
previous: 'Previous',
|
|
84
84
|
next: 'Next',
|
|
85
|
+
page: 'Page {page}',
|
|
85
86
|
aria: {
|
|
86
87
|
label: 'Pagination',
|
|
87
88
|
previous: 'Go to previous page, page {page}',
|
|
@@ -134,7 +135,8 @@ var translations = {
|
|
|
134
135
|
}
|
|
135
136
|
},
|
|
136
137
|
textArea: {
|
|
137
|
-
countMessage: 'You have {remaining} characters left ({max} max).'
|
|
138
|
+
countMessage: 'You have {remaining} characters left ({max} max).',
|
|
139
|
+
countMessageOver: 'You are {surplus} characters over the limit ({max} max).'
|
|
138
140
|
},
|
|
139
141
|
textField: {
|
|
140
142
|
requiredMessage: 'Required'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decisiv/ui-components",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.209+1b20040",
|
|
4
4
|
"description": "Decisiv's design system React components",
|
|
5
5
|
"author": "Decisiv UI Development Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
73
|
"private": false,
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "1b200404a9270e9b1bf1b0d106c1173cd90fe309"
|
|
75
75
|
}
|