@qiwi/pijma-desktop-extra 0.1.7 → 0.1.10

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,6 +1,6 @@
1
+ import 'react-day-picker/dist/style.css';
1
2
  import React from 'react';
2
3
  import { WithTranslation } from 'react-i18next';
3
4
  import DatePickerProps from './DatePickerProps';
4
- import 'react-day-picker/dist/style.css';
5
5
  declare const DatePicker: React.ComponentType<Omit<import("react-i18next").Subtract<DatePickerProps & WithTranslation<"translation", undefined>, import("react-i18next").WithTranslationProps>, keyof WithTranslation<N, undefined>> & import("react-i18next").WithTranslationProps>;
6
6
  export { DatePicker };
@@ -1,7 +1,7 @@
1
+ import 'react-day-picker/dist/style.css';
1
2
  import React from 'react';
2
3
  import { WithTranslation } from 'react-i18next';
3
4
  import DateRangerPickerProps from './DateRangerPickerProps';
4
- import 'react-day-picker/dist/style.css';
5
5
  export declare const PickerDropdown: import("@emotion/styled").StyledComponent<{
6
6
  theme?: import("@emotion/react").Theme | undefined;
7
7
  as?: React.ElementType<any> | undefined;
@@ -2,7 +2,7 @@ export default interface PaginatorProps {
2
2
  onChange?: (value?: any) => void;
3
3
  activePage: number;
4
4
  totalItemsCount: number;
5
- pageRangeDisplayed: number;
5
+ pageRangeDisplayed?: number;
6
6
  itemsCountPerPage: number;
7
7
  padding?: number;
8
8
  hideFirstLastPages?: boolean;
@@ -1,25 +1,6 @@
1
- import React, { Component } from 'react';
1
+ import { Component } from 'react';
2
2
  import PaginatorProps from './PaginatorProps';
3
- export declare const IconWrapper: import("@emotion/styled").StyledComponent<{
4
- theme?: import("@emotion/react").Theme | undefined;
5
- as?: React.ElementType<any> | undefined;
6
- } & {
7
- color: string | undefined;
8
- }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
- export declare const Wrapper: import("@emotion/styled").StyledComponent<{
10
- theme?: import("@emotion/react").Theme | undefined;
11
- as?: React.ElementType<any> | undefined;
12
- } & {
13
- isNavigationHidden: boolean;
14
- padding: number | undefined;
15
- isFirstLastNavigationHidden: boolean;
16
- }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
17
3
  export declare class Paginator extends Component<PaginatorProps> {
18
4
  onChangePage(page: any): void;
19
- resolveNavigaterItemColor(direction: string, { activePage, itemsCountPerPage, totalItemsCount, }: {
20
- activePage: number;
21
- itemsCountPerPage: number;
22
- totalItemsCount: number;
23
- }): string | undefined;
24
5
  render(): JSX.Element | null;
25
6
  }
@@ -1,3 +1,9 @@
1
1
  /// <reference types="react" />
2
- export declare const Table: ({ columns, data, onSelect, rowCursor, isActive, }: any) => JSX.Element;
2
+ import { TableOptions } from 'react-table';
3
+ export declare type TTableProps = Pick<TableOptions<any>, 'columns' | 'data'> & {
4
+ onSelect?: (d: any) => void;
5
+ isActive?: (d: any) => boolean;
6
+ rowCursor?: CSSStyleDeclaration['cursor'];
7
+ };
8
+ export declare const Table: ({ columns, data, onSelect, rowCursor, isActive, }: TTableProps) => JSX.Element;
3
9
  export { columnFactory } from './column';
@@ -14,6 +14,7 @@ var _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.
14
14
  var _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
15
15
  var _taggedTemplateLiteralLoose = require("@swc/helpers/lib/_tagged_template_literal_loose.js").default;
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
+ require("react-day-picker/dist/style.css");
17
18
  var _pijmaCore = require("@qiwi/pijma-core");
18
19
  var _pijmaDesktop = require("@qiwi/pijma-desktop");
19
20
  var _dateFns = require("date-fns");
@@ -23,7 +24,6 @@ var _reactI18Next = require("react-i18next");
23
24
  var _theme = require("../theme/index.js");
24
25
  var _locale = require("./locale.js");
25
26
  var _wrap = /*#__PURE__*/ _interopRequireDefault(require("./wrap.js"));
26
- require("react-day-picker/dist/style.css");
27
27
  function _templateObject() {
28
28
  var data = _taggedTemplateLiteralLoose([
29
29
  "\n position: absolute;\n background: #fff;\n z-index: 10;\n box-shadow: ",
@@ -8,8 +8,10 @@ Object.defineProperty(exports, "locales", {
8
8
  return locales;
9
9
  }
10
10
  });
11
- var _locale = require("date-fns/locale");
11
+ var _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.js").default;
12
+ var _indexJs = /*#__PURE__*/ _interopRequireDefault(require("date-fns/locale/en-US/index.js"));
13
+ var _indexJs1 = /*#__PURE__*/ _interopRequireDefault(require("date-fns/locale/ru/index.js"));
12
14
  var locales = {
13
- en: _locale.enUS,
14
- ru: _locale.ru
15
+ en: _indexJs.default,
16
+ ru: _indexJs1.default
15
17
  };
@@ -22,16 +22,16 @@ var _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.
22
22
  var _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
23
23
  var _taggedTemplateLiteralLoose = require("@swc/helpers/lib/_tagged_template_literal_loose.js").default;
24
24
  var _jsxRuntime = require("react/jsx-runtime");
25
+ require("react-day-picker/dist/style.css");
25
26
  var _pijmaCore = require("@qiwi/pijma-core");
26
27
  var _pijmaDesktop = require("@qiwi/pijma-desktop");
27
28
  var _dateFns = require("date-fns");
28
29
  var _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
29
30
  var _reactDayPicker = require("react-day-picker");
30
31
  var _reactI18Next = require("react-i18next");
32
+ var _locale = require("../date-picker/locale.js");
31
33
  var _wrap = /*#__PURE__*/ _interopRequireDefault(require("../date-picker/wrap.js"));
32
34
  var _theme = require("../theme/index.js");
33
- var _locale = require("../date-picker/locale.js");
34
- require("react-day-picker/dist/style.css");
35
35
  function _templateObject() {
36
36
  var data = _taggedTemplateLiteralLoose([
37
37
  "\n position: absolute;\n background: #fff;\n z-index: 10;\n border-radius: 8px;\n box-shadow: ",
@@ -54,7 +54,7 @@ function _templateObject1() {
54
54
  }
55
55
  function _templateObject2() {
56
56
  var data = _taggedTemplateLiteralLoose([
57
- "\n box-sizing: border-box;\n padding: 10px 24px;\n width: 100%;\n cursor: pointer;\n :hover {\n background-color: #f5f5f5;\n }\n &--active {\n background-color: #e6e6e6 !important;\n }\n ",
57
+ "\n box-sizing: border-box;\n padding: 10px 24px;\n width: 100%;\n cursor: pointer;\n :hover {\n background-color: #f5f5f5;\n }\n &--active {\n background-color: #e6e6e6 !important;\n }\n ",
58
58
  "\n"
59
59
  ]);
60
60
  _templateObject2 = function _templateObject2() {
@@ -2,66 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- IconWrapper: function() {
13
- return IconWrapper;
14
- },
15
- Wrapper: function() {
16
- return Wrapper;
17
- },
18
- Paginator: function() {
5
+ Object.defineProperty(exports, "Paginator", {
6
+ enumerable: true,
7
+ get: function() {
19
8
  return Paginator;
20
9
  }
21
10
  });
22
11
  var _extends = require("@swc/helpers/lib/_extends.js").default;
23
12
  var _inherits = require("@swc/helpers/lib/_inherits.js").default;
24
- var _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.js").default;
25
13
  var _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
26
- var _taggedTemplateLiteralLoose = require("@swc/helpers/lib/_tagged_template_literal_loose.js").default;
27
14
  var _jsxRuntime = require("react/jsx-runtime");
28
- var _pijmaCore = require("@qiwi/pijma-core");
15
+ var _pijmaDesktop = require("@qiwi/pijma-desktop");
29
16
  var _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
30
- var _reactJsPagination = /*#__PURE__*/ _interopRequireDefault(require("react-js-pagination"));
31
- var _theme = require("../theme/index.js");
32
- function _templateObject() {
33
- var data = _taggedTemplateLiteralLoose([
34
- "\n width: 24px;\n height: 24px;\n float: right;\n border: none;\n display: inline-block;\n fill: ",
35
- ";\n"
36
- ]);
37
- _templateObject = function _templateObject() {
38
- return data;
39
- };
40
- return data;
41
- }
42
- function _templateObject1() {
43
- var data = _taggedTemplateLiteralLoose([
44
- "\n ul.pagination {\n display: inline-flex;\n background: ",
45
- ";\n border-radius: 8px;\n box-shadow: 0 1px 3px ",
46
- ";\n\n li {\n display: flex;\n align-items: center;\n padding: ",
47
- "px;\n cursor: pointer;\n\n a {\n display: inline-block;\n min-width: 24px;\n text-align: center;\n color: ",
48
- ";\n margin: 0 auto;\n }\n }\n\n li.active a {\n color: ",
49
- ";\n text-align: center;\n }\n\n li:not(:last-child) {\n border-right: 1px solid #e6e6e6;\n }\n\n ",
50
- "\n"
51
- ]);
52
- _templateObject1 = function _templateObject1() {
53
- return data;
54
- };
55
- return data;
56
- }
57
- var IconWrapper = (0, _pijmaCore.styled)("div")(_templateObject(), function(props) {
58
- return props.color || _theme.COLOR.TEXT.Primary;
59
- });
60
- var Wrapper = (0, _pijmaCore.styled)("div")(_templateObject1(), _theme.COLOR.BACKGROUND.Primary, _theme.COLOR.BACKGROUND.Shadow, function(props) {
61
- return props.padding || 20;
62
- }, _theme.COLOR.TEXT.Primary, _theme.COLOR.BRAND.Primary, function(props) {
63
- return props.isFirstLastNavigationHidden ? "" : "li:first-child, li:last-child { width: 72px }";
64
- });
65
17
  var Paginator = /*#__PURE__*/ function(Component) {
66
18
  "use strict";
67
19
  _inherits(Paginator, Component);
@@ -75,66 +27,18 @@ var Paginator = /*#__PURE__*/ function(Component) {
75
27
  }
76
28
  this.props.onChange(page);
77
29
  };
78
- _proto.resolveNavigaterItemColor = function resolveNavigaterItemColor(direction, param) {
79
- var activePage = param.activePage, itemsCountPerPage = param.itemsCountPerPage, totalItemsCount = param.totalItemsCount;
80
- if (direction === "forward") {
81
- if (activePage === 1) {
82
- return _theme.COLOR.TEXT.Secondary3;
83
- }
84
- } else {
85
- if (activePage === Math.ceil(totalItemsCount / itemsCountPerPage)) {
86
- return _theme.COLOR.TEXT.Secondary3;
87
- }
88
- }
89
- };
90
30
  _proto.render = function render() {
91
- var _props = this.props, activePage = _props.activePage, totalItemsCount = _props.totalItemsCount, pageRangeDisplayed = _props.pageRangeDisplayed, itemsCountPerPage = _props.itemsCountPerPage, padding = _props.padding, hideFirstLastPages = _props.hideFirstLastPages, paginatorProps = _props.paginatorProps;
92
- var nextPageColor = this.resolveNavigaterItemColor("backward", this.props);
93
- var prevPageColor = this.resolveNavigaterItemColor("forward", this.props);
94
- var isNavigationHidden = Math.ceil(totalItemsCount / itemsCountPerPage) <= pageRangeDisplayed;
95
- var isFirstLastNavigationHidden = hideFirstLastPages || Math.ceil(totalItemsCount / itemsCountPerPage) <= pageRangeDisplayed;
31
+ var _props = this.props, activePage = _props.activePage, totalItemsCount = _props.totalItemsCount, itemsCountPerPage = _props.itemsCountPerPage, paginatorProps = _props.paginatorProps;
96
32
  var isPaginatorHidden = totalItemsCount <= itemsCountPerPage;
97
33
  if (isPaginatorHidden) {
98
34
  return null;
99
35
  }
100
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(Wrapper, {
101
- isNavigationHidden: isNavigationHidden,
102
- padding: padding,
103
- isFirstLastNavigationHidden: isFirstLastNavigationHidden,
104
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_reactJsPagination.default, _extends({
105
- activePage: activePage,
106
- itemsCountPerPage: itemsCountPerPage,
107
- totalItemsCount: totalItemsCount,
108
- pageRangeDisplayed: pageRangeDisplayed,
109
- hideNavigation: isNavigationHidden,
110
- hideFirstLastPages: isFirstLastNavigationHidden,
111
- onChange: this.onChangePage.bind(this),
112
- firstPageText: /*#__PURE__*/ (0, _jsxRuntime.jsx)(IconWrapper, {
113
- color: prevPageColor,
114
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pijmaCore.Icon, {
115
- name: "angle-double-left"
116
- })
117
- }),
118
- lastPageText: /*#__PURE__*/ (0, _jsxRuntime.jsx)(IconWrapper, {
119
- color: nextPageColor,
120
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pijmaCore.Icon, {
121
- name: "angle-double-right"
122
- })
123
- }),
124
- prevPageText: /*#__PURE__*/ (0, _jsxRuntime.jsx)(IconWrapper, {
125
- color: prevPageColor,
126
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pijmaCore.Icon, {
127
- name: "angle-left"
128
- })
129
- }),
130
- nextPageText: /*#__PURE__*/ (0, _jsxRuntime.jsx)(IconWrapper, {
131
- color: nextPageColor,
132
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pijmaCore.Icon, {
133
- name: "angle-right"
134
- })
135
- })
136
- }, paginatorProps))
137
- });
36
+ return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pijmaDesktop.Pagination, _extends({
37
+ active: activePage,
38
+ count: itemsCountPerPage,
39
+ total: totalItemsCount,
40
+ onChange: this.onChangePage.bind(this)
41
+ }, paginatorProps));
138
42
  };
139
43
  return Paginator;
140
44
  }(_react.Component);
@@ -19,6 +19,7 @@ _export(exports, {
19
19
  var _extends = require("@swc/helpers/lib/_extends.js").default;
20
20
  var _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.js").default;
21
21
  var _taggedTemplateLiteralLoose = require("@swc/helpers/lib/_tagged_template_literal_loose.js").default;
22
+ var _typeOf = require("@swc/helpers/lib/_type_of.js").default;
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  var _pijmaCore = require("@qiwi/pijma-core");
24
25
  var _react = /*#__PURE__*/ _interopRequireDefault(require("react"));
@@ -38,9 +39,9 @@ function _templateObject() {
38
39
  }
39
40
  function _templateObject1() {
40
41
  var data = _taggedTemplateLiteralLoose([
41
- "\n width: 100%;\n table {\n width: 100%;\n border-spacing: 0;\n font-family: 'Museo Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 10pt;\n text-overflow: ellipsis;\n\n overflow: hidden;\n overflow-wrap: break-word;\n thead {\n tr th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n font-size: 10pt;\n font-weight: 150;\n color: rgb(102, 102, 102);\n text-align: start;\n user-select: none;\n :first-child {\n padding-left: 32px;\n }\n :last-child {\n padding-right: 20px;\n }\n }\n font-weight: 300;\n border-bottom: 1px solid ",
42
+ "\n width: 100%;\n table {\n width: 100%;\n border-spacing: 0;\n font-family: 'Museo Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 10pt;\n text-overflow: ellipsis;\n\n overflow: hidden;\n overflow-wrap: break-word;\n thead {\n tr th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n font-size: 10pt;\n font-weight: 150;\n color: rgb(102, 102, 102);\n text-align: start;\n user-select: none;\n :first-child {\n padding-left: 44px;\n }\n :last-child {\n padding-right: 44px;\n }\n }\n font-weight: 300;\n border-bottom: 1px solid ",
42
43
  ";\n }\n\n tbody {\n tr {\n :hover {\n background-color: ",
43
- ";\n cursor: pointer;\n }\n :last-child {\n td {\n border-bottom: 0;\n }\n }\n td {\n :first-child {\n padding-left: 32px;\n }\n :last-child {\n padding-right: 20px;\n }\n }\n }\n }\n\n th,\n td {\n margin: 0;\n padding: 0.25rem 12px;\n\n :last-child {\n border-right: 0;\n }\n }\n }\n"
44
+ ";\n cursor: pointer;\n }\n :last-child {\n td {\n border-bottom: 0;\n }\n }\n td {\n :first-child {\n padding-left: 44px;\n }\n :last-child {\n padding-right: 44px;\n }\n }\n }\n }\n\n th,\n td {\n margin: 0;\n padding: 0.25rem 12px;\n\n :last-child {\n border-right: 0;\n }\n }\n }\n"
44
45
  ]);
45
46
  _templateObject1 = function _templateObject1() {
46
47
  return data;
@@ -62,19 +63,22 @@ var Table = function(param) {
62
63
  }), getTableProps = ref.getTableProps, getTableBodyProps = ref.getTableBodyProps, headerGroups = ref.headerGroups, rows = ref.rows, prepareRow = ref.prepareRow;
63
64
  // Render the UI for your table
64
65
  var headers = [];
65
- var thead = headerGroups.map(function(headerGroup, i) {
66
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)("tr", _extends({}, headerGroup.getHeaderGroupProps(), {
67
- children: headerGroup.headers.map(function(column, i) {
66
+ var thead = headerGroups.map(function(headerGroup) {
67
+ return(// headerGroup.getHeaderGroupProps() returns a key
68
+ // eslint-disable-next-line react/jsx-key
69
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)("tr", _extends({}, headerGroup.getHeaderGroupProps(), {
70
+ children: headerGroup.headers.map(function(column) {
68
71
  var header = column.render("Header");
69
- if (typeof header === "string") {
72
+ var typeofHeader = typeof header === "undefined" ? "undefined" : _typeOf(header);
73
+ if (typeofHeader === "string" || typeofHeader === "object" && /*#__PURE__*/ _react.default.isValidElement(header) && header.props.children) {
70
74
  headers.push(header);
71
75
  return /*#__PURE__*/ (0, _jsxRuntime.jsx)("th", _extends({}, column.getHeaderProps(), {
72
76
  children: header
73
- }), i);
77
+ }));
74
78
  }
75
79
  return null;
76
80
  })
77
- }), i);
81
+ })));
78
82
  });
79
83
  return /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableWrapper, {
80
84
  children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)("table", _extends({}, getTableProps(), {
@@ -83,9 +87,11 @@ var Table = function(param) {
83
87
  children: headers.length > 0 ? thead : null
84
88
  }) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {}),
85
89
  /*#__PURE__*/ (0, _jsxRuntime.jsx)("tbody", _extends({}, getTableBodyProps(), {
86
- children: rows.map(function(row, i) {
90
+ children: rows.map(function(row) {
87
91
  prepareRow(row);
88
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(TrWrapper, _extends({
92
+ return(// row.getRowProps() returns a key
93
+ // eslint-disable-next-line react/jsx-key
94
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TrWrapper, _extends({
89
95
  "data-cy": "table-row"
90
96
  }, row.getRowProps(), {
91
97
  active: isActive ? isActive(row.original) : false,
@@ -99,7 +105,7 @@ var Table = function(param) {
99
105
  children: cell.render("Cell")
100
106
  }), i);
101
107
  })
102
- }), i);
108
+ })));
103
109
  })
104
110
  }))
105
111
  ]
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  var _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.js").default;
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
+ var _pijmaDesktop = require("@qiwi/pijma-desktop");
7
8
  var _react = /*#__PURE__*/ _interopRequireDefault(require("react"));
8
9
  var _reactTestRenderer = /*#__PURE__*/ _interopRequireDefault(require("react-test-renderer"));
9
10
  var _main = require("../main/index.js");
@@ -12,11 +13,13 @@ describe("Paginator", function() {
12
13
  expect(_main.Paginator).not.toBeUndefined();
13
14
  });
14
15
  it("renders correctly", function() {
15
- var paginator = _reactTestRenderer.default.create(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_main.Paginator, {
16
- activePage: 2,
17
- totalItemsCount: 40,
18
- pageRangeDisplayed: 5,
19
- itemsCountPerPage: 10
16
+ var paginator = _reactTestRenderer.default.create(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_pijmaDesktop.ThemeProvider, {
17
+ theme: _pijmaDesktop.themes.orange,
18
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_main.Paginator, {
19
+ activePage: 2,
20
+ totalItemsCount: 40,
21
+ itemsCountPerPage: 10
22
+ })
20
23
  })).toJSON();
21
24
  expect(paginator).toMatchSnapshot();
22
25
  });
@@ -89,7 +89,7 @@ describe("columnFactory", function() {
89
89
  {
90
90
  accessor: "value",
91
91
  Header: "test"
92
- }
92
+ },
93
93
  ]
94
94
  })).toJSON();
95
95
  expect(table).toMatchSnapshot();
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import 'react-day-picker/dist/style.css';
2
3
  import { Icon, Overlay, styled } from '@qiwi/pijma-core';
3
4
  import { MaskTextField } from '@qiwi/pijma-desktop';
4
5
  import { format } from 'date-fns';
@@ -8,7 +9,6 @@ import { withTranslation } from 'react-i18next';
8
9
  import { COLOR } from '../theme/index.js';
9
10
  import { locales } from './locale.js';
10
11
  import Wrap from './wrap.js';
11
- import 'react-day-picker/dist/style.css';
12
12
  const PickerDropdown = styled('div')`
13
13
  position: absolute;
14
14
  background: #fff;
@@ -1,4 +1,5 @@
1
- import { enUS, ru } from 'date-fns/locale';
1
+ import enUS from 'date-fns/locale/en-US/index.js';
2
+ import ru from 'date-fns/locale/ru/index.js';
2
3
  export const locales = {
3
4
  en: enUS,
4
5
  ru
@@ -1,14 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import 'react-day-picker/dist/style.css';
2
3
  import { Icon, Overlay, styled } from '@qiwi/pijma-core';
3
4
  import { TextField } from '@qiwi/pijma-desktop';
4
5
  import { format } from 'date-fns';
5
6
  import React, { Component } from 'react';
6
- import { DayPicker, addToRange } from 'react-day-picker';
7
+ import { addToRange, DayPicker } from 'react-day-picker';
7
8
  import { withTranslation } from 'react-i18next';
9
+ import { locales } from '../date-picker/locale.js';
8
10
  import Wrap from '../date-picker/wrap.js';
9
11
  import { COLOR } from '../theme/index.js';
10
- import { locales } from '../date-picker/locale.js';
11
- import 'react-day-picker/dist/style.css';
12
12
  export const PickerDropdown = styled('div')`
13
13
  position: absolute;
14
14
  background: #fff;
@@ -22,17 +22,17 @@ export const CheckBoxContainer = styled('div')`
22
22
  padding: 5px;
23
23
  `;
24
24
  export const Item = styled('div')`
25
- box-sizing: border-box;
26
- padding: 10px 24px;
27
- width: 100%;
28
- cursor: pointer;
29
- :hover {
30
- background-color: #f5f5f5;
31
- }
32
- &--active {
33
- background-color: #e6e6e6 !important;
34
- }
35
- ${(props)=>props.active ? 'background-color: #E6E6E6 !important;' : ''}
25
+ box-sizing: border-box;
26
+ padding: 10px 24px;
27
+ width: 100%;
28
+ cursor: pointer;
29
+ :hover {
30
+ background-color: #f5f5f5;
31
+ }
32
+ &--active {
33
+ background-color: #e6e6e6 !important;
34
+ }
35
+ ${(props)=>props.active ? 'background-color: #E6E6E6 !important;' : ''}
36
36
  `;
37
37
  export const ScrollContainer = styled('div')`
38
38
  position: relative;
@@ -1,49 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Icon, styled } from '@qiwi/pijma-core';
2
+ import { Pagination } from '@qiwi/pijma-desktop';
3
3
  import React, { Component } from 'react';
4
- import Pagination from 'react-js-pagination';
5
- import { COLOR } from '../theme/index.js';
6
- export const IconWrapper = styled('div')`
7
- width: 24px;
8
- height: 24px;
9
- float: right;
10
- border: none;
11
- display: inline-block;
12
- fill: ${(props)=>props.color || COLOR.TEXT.Primary};
13
- `;
14
- export const Wrapper = styled('div')`
15
- ul.pagination {
16
- display: inline-flex;
17
- background: ${COLOR.BACKGROUND.Primary};
18
- border-radius: 8px;
19
- box-shadow: 0 1px 3px ${COLOR.BACKGROUND.Shadow};
20
-
21
- li {
22
- display: flex;
23
- align-items: center;
24
- padding: ${(props)=>props.padding || 20}px;
25
- cursor: pointer;
26
-
27
- a {
28
- display: inline-block;
29
- min-width: 24px;
30
- text-align: center;
31
- color: ${COLOR.TEXT.Primary};
32
- margin: 0 auto;
33
- }
34
- }
35
-
36
- li.active a {
37
- color: ${COLOR.BRAND.Primary};
38
- text-align: center;
39
- }
40
-
41
- li:not(:last-child) {
42
- border-right: 1px solid #e6e6e6;
43
- }
44
-
45
- ${(props)=>props.isFirstLastNavigationHidden ? '' : 'li:first-child, li:last-child { width: 72px }'}
46
- `;
47
4
  export class Paginator extends Component {
48
5
  onChangePage(page) {
49
6
  if (!this.props.onChange) {
@@ -51,65 +8,18 @@ export class Paginator extends Component {
51
8
  }
52
9
  this.props.onChange(page);
53
10
  }
54
- resolveNavigaterItemColor(direction, { activePage , itemsCountPerPage , totalItemsCount }) {
55
- if (direction === 'forward') {
56
- if (activePage === 1) {
57
- return COLOR.TEXT.Secondary3;
58
- }
59
- } else {
60
- if (activePage === Math.ceil(totalItemsCount / itemsCountPerPage)) {
61
- return COLOR.TEXT.Secondary3;
62
- }
63
- }
64
- }
65
11
  render() {
66
- const { activePage , totalItemsCount , pageRangeDisplayed , itemsCountPerPage , padding , hideFirstLastPages , paginatorProps , } = this.props;
67
- const nextPageColor = this.resolveNavigaterItemColor('backward', this.props);
68
- const prevPageColor = this.resolveNavigaterItemColor('forward', this.props);
69
- const isNavigationHidden = Math.ceil(totalItemsCount / itemsCountPerPage) <= pageRangeDisplayed;
70
- const isFirstLastNavigationHidden = hideFirstLastPages || Math.ceil(totalItemsCount / itemsCountPerPage) <= pageRangeDisplayed;
12
+ const { activePage , totalItemsCount , itemsCountPerPage , paginatorProps } = this.props;
71
13
  const isPaginatorHidden = totalItemsCount <= itemsCountPerPage;
72
14
  if (isPaginatorHidden) {
73
15
  return null;
74
16
  }
75
- return /*#__PURE__*/ _jsx(Wrapper, {
76
- isNavigationHidden: isNavigationHidden,
77
- padding: padding,
78
- isFirstLastNavigationHidden: isFirstLastNavigationHidden,
79
- children: /*#__PURE__*/ _jsx(Pagination, {
80
- activePage: activePage,
81
- itemsCountPerPage: itemsCountPerPage,
82
- totalItemsCount: totalItemsCount,
83
- pageRangeDisplayed: pageRangeDisplayed,
84
- hideNavigation: isNavigationHidden,
85
- hideFirstLastPages: isFirstLastNavigationHidden,
86
- onChange: this.onChangePage.bind(this),
87
- firstPageText: /*#__PURE__*/ _jsx(IconWrapper, {
88
- color: prevPageColor,
89
- children: /*#__PURE__*/ _jsx(Icon, {
90
- name: "angle-double-left"
91
- })
92
- }),
93
- lastPageText: /*#__PURE__*/ _jsx(IconWrapper, {
94
- color: nextPageColor,
95
- children: /*#__PURE__*/ _jsx(Icon, {
96
- name: "angle-double-right"
97
- })
98
- }),
99
- prevPageText: /*#__PURE__*/ _jsx(IconWrapper, {
100
- color: prevPageColor,
101
- children: /*#__PURE__*/ _jsx(Icon, {
102
- name: "angle-left"
103
- })
104
- }),
105
- nextPageText: /*#__PURE__*/ _jsx(IconWrapper, {
106
- color: nextPageColor,
107
- children: /*#__PURE__*/ _jsx(Icon, {
108
- name: "angle-right"
109
- })
110
- }),
111
- ...paginatorProps
112
- })
17
+ return /*#__PURE__*/ _jsx(Pagination, {
18
+ active: activePage,
19
+ count: itemsCountPerPage,
20
+ total: totalItemsCount,
21
+ onChange: this.onChangePage.bind(this),
22
+ ...paginatorProps
113
23
  });
114
24
  }
115
25
  }
@@ -27,10 +27,10 @@ const TableWrapper = styled.div`
27
27
  text-align: start;
28
28
  user-select: none;
29
29
  :first-child {
30
- padding-left: 32px;
30
+ padding-left: 44px;
31
31
  }
32
32
  :last-child {
33
- padding-right: 20px;
33
+ padding-right: 44px;
34
34
  }
35
35
  }
36
36
  font-weight: 300;
@@ -50,10 +50,10 @@ const TableWrapper = styled.div`
50
50
  }
51
51
  td {
52
52
  :first-child {
53
- padding-left: 32px;
53
+ padding-left: 44px;
54
54
  }
55
55
  :last-child {
56
- padding-right: 20px;
56
+ padding-right: 44px;
57
57
  }
58
58
  }
59
59
  }
@@ -78,20 +78,23 @@ export const Table = ({ columns , data , onSelect , rowCursor , isActive })=>{
78
78
  });
79
79
  // Render the UI for your table
80
80
  const headers = [];
81
- const thead = headerGroups.map((headerGroup, i)=>/*#__PURE__*/ _jsx("tr", {
81
+ const thead = headerGroups.map((headerGroup)=>// headerGroup.getHeaderGroupProps() returns a key
82
+ // eslint-disable-next-line react/jsx-key
83
+ /*#__PURE__*/ _jsx("tr", {
82
84
  ...headerGroup.getHeaderGroupProps(),
83
- children: headerGroup.headers.map((column, i)=>{
85
+ children: headerGroup.headers.map((column)=>{
84
86
  const header = column.render('Header');
85
- if (typeof header === 'string') {
87
+ const typeofHeader = typeof header;
88
+ if (typeofHeader === 'string' || typeofHeader === 'object' && /*#__PURE__*/ React.isValidElement(header) && header.props.children) {
86
89
  headers.push(header);
87
90
  return /*#__PURE__*/ _jsx("th", {
88
91
  ...column.getHeaderProps(),
89
92
  children: header
90
- }, i);
93
+ });
91
94
  }
92
95
  return null;
93
96
  })
94
- }, i));
97
+ }));
95
98
  return /*#__PURE__*/ _jsx(TableWrapper, {
96
99
  children: /*#__PURE__*/ _jsxs("table", {
97
100
  ...getTableProps(),
@@ -101,9 +104,11 @@ export const Table = ({ columns , data , onSelect , rowCursor , isActive })=>{
101
104
  }) : /*#__PURE__*/ _jsx(_Fragment, {}),
102
105
  /*#__PURE__*/ _jsx("tbody", {
103
106
  ...getTableBodyProps(),
104
- children: rows.map((row, i)=>{
107
+ children: rows.map((row)=>{
105
108
  prepareRow(row);
106
- return /*#__PURE__*/ _jsx(TrWrapper, {
109
+ return(// row.getRowProps() returns a key
110
+ // eslint-disable-next-line react/jsx-key
111
+ /*#__PURE__*/ _jsx(TrWrapper, {
107
112
  "data-cy": 'table-row',
108
113
  ...row.getRowProps(),
109
114
  active: isActive ? isActive(row.original) : false,
@@ -115,7 +120,7 @@ export const Table = ({ columns , data , onSelect , rowCursor , isActive })=>{
115
120
  children: cell.render('Cell')
116
121
  }, i);
117
122
  })
118
- }, i);
123
+ }));
119
124
  })
120
125
  })
121
126
  ]
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ThemeProvider, themes } from '@qiwi/pijma-desktop';
2
3
  import React from 'react';
3
4
  import renderer from 'react-test-renderer';
4
5
  import { Paginator } from '../main/index.js';
@@ -7,11 +8,13 @@ describe('Paginator', ()=>{
7
8
  expect(Paginator).not.toBeUndefined();
8
9
  });
9
10
  it('renders correctly', ()=>{
10
- const paginator = renderer.create(/*#__PURE__*/ _jsx(Paginator, {
11
- activePage: 2,
12
- totalItemsCount: 40,
13
- pageRangeDisplayed: 5,
14
- itemsCountPerPage: 10
11
+ const paginator = renderer.create(/*#__PURE__*/ _jsx(ThemeProvider, {
12
+ theme: themes.orange,
13
+ children: /*#__PURE__*/ _jsx(Paginator, {
14
+ activePage: 2,
15
+ totalItemsCount: 40,
16
+ itemsCountPerPage: 10
17
+ })
15
18
  })).toJSON();
16
19
  expect(paginator).toMatchSnapshot();
17
20
  });
@@ -80,7 +80,7 @@ describe('columnFactory', ()=>{
80
80
  {
81
81
  accessor: 'value',
82
82
  Header: 'test'
83
- }
83
+ },
84
84
  ]
85
85
  })).toJSON();
86
86
  expect(table).toMatchSnapshot();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qiwi/pijma-desktop-extra",
3
- "version": "0.1.7",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "main": "./lib/es5/main/index.js",
6
6
  "module": "./lib/es6/main/index.js",
@@ -27,7 +27,8 @@
27
27
  "build:es6": "swc src -d lib/es6 --config-file swc.es6.json && tsc-esm-fix --target=lib/es6 --fillBlank",
28
28
  "build:dts": "tsc --project tsconfig.dts.json",
29
29
  "test": "jest",
30
- "lint": "eslint --fix src && prettier --loglevel silent --write src"
30
+ "format": "eslint --fix src && prettier --loglevel silent --write src",
31
+ "lint": "eslint src"
31
32
  },
32
33
  "files": [
33
34
  "README.md",
@@ -35,13 +36,13 @@
35
36
  ],
36
37
  "dependencies": {
37
38
  "@qiwi/common-formatters": "^1.2.1",
38
- "@qiwi/pijma-core": "1.156.0",
39
- "@qiwi/pijma-desktop": "1.155.0",
39
+ "@qiwi/pijma-core": "1.157.0",
40
+ "@qiwi/pijma-desktop": "1.156.0",
41
+ "date-fns": "^2.29.2",
40
42
  "lodash-es": "^4.17.21",
41
43
  "react-day-picker": "8.1.3",
42
44
  "react-dropzone": "^14.2.2",
43
45
  "react-i18next": "^11.18.4",
44
- "react-js-pagination": "^3.0.3",
45
46
  "react-table": "^7.8.0"
46
47
  },
47
48
  "devDependencies": {