@bit.rhplus/ui2.filter-panel 0.0.2 → 0.0.4

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/dist/index.d.ts CHANGED
@@ -1,9 +1,17 @@
1
1
  export default FilterPanel;
2
- declare function FilterPanel({ filters, onRemoveFilter, onClearAll, fieldLabels, valueLabelsMap, alwaysVisible, }: {
2
+ declare function FilterPanel({ filters, onRemoveFilter, onClearAll, fieldLabels, valueLabelsMap, alwaysVisible, isLoading, current, pageSize, total, pageSizeOptions, onPageChange, onPageSizeChange, showPagination, }: {
3
3
  filters?: any[] | undefined;
4
4
  onRemoveFilter: any;
5
5
  onClearAll: any;
6
6
  fieldLabels?: {} | undefined;
7
7
  valueLabelsMap?: {} | undefined;
8
8
  alwaysVisible?: boolean | undefined;
9
+ isLoading?: boolean | undefined;
10
+ current?: number | undefined;
11
+ pageSize?: number | undefined;
12
+ total?: number | undefined;
13
+ pageSizeOptions?: string[] | undefined;
14
+ onPageChange: any;
15
+ onPageSizeChange: any;
16
+ showPagination?: boolean | undefined;
9
17
  }): import("react/jsx-runtime").JSX.Element | null;
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* eslint-disable */
3
3
  import React from 'react';
4
- import { Tag, Space, Button } from 'antd';
5
- import { CloseOutlined, FilterOutlined } from '@ant-design/icons';
4
+ import { Tag, Space, Button, Spin, Pagination } from 'antd';
5
+ import { CloseOutlined, FilterOutlined, LoadingOutlined } from '@ant-design/icons';
6
6
  import { filterCondition } from '@bit.rhplus/ui2.filter';
7
7
  const conditionLabels = {
8
- [filterCondition.equals]: '=',
9
- [filterCondition.notEquals]: '<>',
10
- [filterCondition.greaterThan]: '>',
11
- [filterCondition.greaterThanOrEqual]: '>=',
12
- [filterCondition.lessThan]: '<',
13
- [filterCondition.lessThanOrEqual]: '<=',
8
+ [filterCondition.equals]: 'je',
9
+ [filterCondition.notEquals]: 'není',
10
+ [filterCondition.greaterThan]: 'větší',
11
+ [filterCondition.greaterThanOrEqual]: 'větší nebo rovno',
12
+ [filterCondition.lessThan]: 'menší',
13
+ [filterCondition.lessThanOrEqual]: 'menší nebo rovno',
14
14
  [filterCondition.contains]: 'obsahuje',
15
15
  [filterCondition.startsWith]: 'začíná na',
16
16
  [filterCondition.endsWith]: 'končí na',
@@ -37,11 +37,12 @@ const formatValue = (value, fieldName, valueLabelsMap) => {
37
37
  }
38
38
  return String(value);
39
39
  };
40
- const FilterPanel = ({ filters = [], onRemoveFilter, onClearAll, fieldLabels = {}, valueLabelsMap = {}, alwaysVisible = false, }) => {
40
+ const FilterPanel = ({ filters = [], onRemoveFilter, onClearAll, fieldLabels = {}, valueLabelsMap = {}, alwaysVisible = false, isLoading = false, current = 1, pageSize = 100, total = 0, pageSizeOptions = ['100', '200', '300', '500', '1000'], onPageChange, onPageSizeChange, showPagination = true, }) => {
41
41
  if (!alwaysVisible && (!filters || filters.length === 0)) {
42
42
  return null;
43
43
  }
44
44
  const hasFilters = filters && filters.length > 0;
45
+ const loadingIcon = _jsx(LoadingOutlined, { style: { fontSize: 18, color: '#1890ff', fontWeight: 900, strokeWidth: 4 }, spin: true });
45
46
  return (_jsxs("div", { style: {
46
47
  display: 'flex',
47
48
  justifyContent: 'space-between',
@@ -50,8 +51,8 @@ const FilterPanel = ({ filters = [], onRemoveFilter, onClearAll, fieldLabels = {
50
51
  borderRadius: '4px',
51
52
  backgroundColor: '#fafafa',
52
53
  borderTop: '1px solid #f0f0f0',
53
- }, children: [_jsxs(Space, { style: { lineHeight: 'normal', flexWrap: 'wrap' }, size: [8, 8], children: [_jsx(FilterOutlined, { style: { color: hasFilters ? '#1890ff' : '#d9d9d9', fontSize: '14px' } }), hasFilters ? (filters.map((filter, index) => {
54
- const fieldLabel = fieldLabels[filter.field] || filter.field;
54
+ }, children: [_jsxs(Space, { style: { lineHeight: 'normal', flexWrap: 'wrap' }, size: [8, 8], children: [isLoading ? (_jsx(Spin, { indicator: loadingIcon })) : (_jsx(FilterOutlined, { style: { color: hasFilters ? '#1890ff' : '#d9d9d9', fontSize: '14px' } })), hasFilters ? (filters.map((filter, index) => {
55
+ const fieldLabel = filter.label || fieldLabels[filter.field] || filter.field;
55
56
  const conditionLabel = conditionLabels[filter.condition] || 'filtr';
56
57
  const valueLabel = formatValue(filter.value, filter.field, valueLabelsMap);
57
58
  const displayText = valueLabel
@@ -70,7 +71,11 @@ const FilterPanel = ({ filters = [], onRemoveFilter, onClearAll, fieldLabels = {
70
71
  padding: '2px 8px',
71
72
  margin: 0,
72
73
  }, children: displayText }, `${filter.field}-${index}`));
73
- })) : (_jsx("span", { style: { color: '#999', fontSize: '13px' }, children: "\u017D\u00E1dn\u00E9 aktivn\u00ED filtry" }))] }), _jsx(Space, { style: { lineHeight: 'normal', paddingRight: '7px' }, children: hasFilters && onClearAll && (_jsx(Button, { type: "link", size: "small", onClick: onClearAll, style: { color: '#999' }, children: "Vymazat v\u0161e" })) })] }));
74
+ })) : (_jsx("span", { style: { color: '#999', fontSize: '13px' }, children: "\u017D\u00E1dn\u00E9 aktivn\u00ED filtry" }))] }), _jsxs(Space, { style: { lineHeight: 'normal', paddingRight: '7px' }, size: [16, 8], children: [hasFilters && onClearAll && (_jsx(Button, { type: "link", size: "small", onClick: onClearAll, style: { color: '#999' }, children: "Vymazat v\u0161e" })), showPagination && (_jsx(Pagination, { size: "small", current: current, pageSize: pageSize, total: total, pageSizeOptions: pageSizeOptions, showSizeChanger: true, showQuickJumper: true, showTotal: (total, range) => `${range[0]}-${range[1]} z ${total}`, onChange: onPageChange, onShowSizeChange: (current, size) => {
75
+ if (onPageSizeChange) {
76
+ onPageSizeChange(current, size);
77
+ }
78
+ }, style: { marginBottom: 0 } }))] })] }));
74
79
  };
75
80
  export default FilterPanel;
76
81
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
package/index.jsx CHANGED
@@ -1,16 +1,16 @@
1
1
  /* eslint-disable */
2
2
  import React from 'react';
3
- import { Tag, Space, Button } from 'antd';
4
- import { CloseOutlined, FilterOutlined } from '@ant-design/icons';
3
+ import { Tag, Space, Button, Spin, Pagination } from 'antd';
4
+ import { CloseOutlined, FilterOutlined, LoadingOutlined } from '@ant-design/icons';
5
5
  import { filterCondition } from '@bit.rhplus/ui2.filter';
6
6
 
7
7
  const conditionLabels = {
8
- [filterCondition.equals]: '=',
9
- [filterCondition.notEquals]: '<>',
10
- [filterCondition.greaterThan]: '>',
11
- [filterCondition.greaterThanOrEqual]: '>=',
12
- [filterCondition.lessThan]: '<',
13
- [filterCondition.lessThanOrEqual]: '<=',
8
+ [filterCondition.equals]: 'je',
9
+ [filterCondition.notEquals]: 'není',
10
+ [filterCondition.greaterThan]: 'větší',
11
+ [filterCondition.greaterThanOrEqual]: 'větší nebo rovno',
12
+ [filterCondition.lessThan]: 'menší',
13
+ [filterCondition.lessThanOrEqual]: 'menší nebo rovno',
14
14
  [filterCondition.contains]: 'obsahuje',
15
15
  [filterCondition.startsWith]: 'začíná na',
16
16
  [filterCondition.endsWith]: 'končí na',
@@ -48,12 +48,22 @@ const FilterPanel = ({
48
48
  fieldLabels = {},
49
49
  valueLabelsMap = {},
50
50
  alwaysVisible = false,
51
+ isLoading = false,
52
+ current = 1,
53
+ pageSize = 100,
54
+ total = 0,
55
+ pageSizeOptions = ['100', '200', '300', '500', '1000'],
56
+ onPageChange,
57
+ onPageSizeChange,
58
+ showPagination = true,
51
59
  }) => {
52
60
  if (!alwaysVisible && (!filters || filters.length === 0)) {
53
61
  return null;
54
62
  }
55
63
 
56
64
  const hasFilters = filters && filters.length > 0;
65
+
66
+ const loadingIcon = <LoadingOutlined style={{ fontSize: 18, color: '#1890ff', fontWeight: 900, strokeWidth: 4 }} spin />;
57
67
 
58
68
  return (
59
69
  <div
@@ -68,10 +78,14 @@ const FilterPanel = ({
68
78
  }}
69
79
  >
70
80
  <Space style={{ lineHeight: 'normal', flexWrap: 'wrap' }} size={[8, 8]}>
71
- <FilterOutlined style={{ color: hasFilters ? '#1890ff' : '#d9d9d9', fontSize: '14px' }} />
81
+ {isLoading ? (
82
+ <Spin indicator={loadingIcon} />
83
+ ) : (
84
+ <FilterOutlined style={{ color: hasFilters ? '#1890ff' : '#d9d9d9', fontSize: '14px' }} />
85
+ )}
72
86
  {hasFilters ? (
73
87
  filters.map((filter, index) => {
74
- const fieldLabel = fieldLabels[filter.field] || filter.field;
88
+ const fieldLabel = filter.label || fieldLabels[filter.field] || filter.field;
75
89
  const conditionLabel = conditionLabels[filter.condition] || 'filtr';
76
90
  const valueLabel = formatValue(filter.value, filter.field, valueLabelsMap);
77
91
 
@@ -107,7 +121,7 @@ const FilterPanel = ({
107
121
  )}
108
122
  </Space>
109
123
 
110
- <Space style={{ lineHeight: 'normal', paddingRight: '7px' }}>
124
+ <Space style={{ lineHeight: 'normal', paddingRight: '7px' }} size={[16, 8]}>
111
125
  {hasFilters && onClearAll && (
112
126
  <Button
113
127
  type="link"
@@ -118,6 +132,25 @@ const FilterPanel = ({
118
132
  Vymazat vše
119
133
  </Button>
120
134
  )}
135
+ {showPagination && (
136
+ <Pagination
137
+ size="small"
138
+ current={current}
139
+ pageSize={pageSize}
140
+ total={total}
141
+ pageSizeOptions={pageSizeOptions}
142
+ showSizeChanger
143
+ showQuickJumper
144
+ showTotal={(total, range) => `${range[0]}-${range[1]} z ${total}`}
145
+ onChange={onPageChange}
146
+ onShowSizeChange={(current, size) => {
147
+ if (onPageSizeChange) {
148
+ onPageSizeChange(current, size);
149
+ }
150
+ }}
151
+ style={{ marginBottom: 0 }}
152
+ />
153
+ )}
121
154
  </Space>
122
155
  </div>
123
156
  );
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bit.rhplus/ui2.filter-panel",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "homepage": "https://bit.cloud/remote-scope/ui2/filter-panel",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "remote-scope",
8
8
  "name": "ui2/filter-panel",
9
- "version": "0.0.2"
9
+ "version": "0.0.4"
10
10
  },
11
11
  "dependencies": {
12
12
  "@ant-design/icons": "^5.4.0",