@bit.rhplus/ui2.filter-panel 0.0.1 → 0.0.3

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