draft-components 1.7.1 → 1.8.0
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/cjs/components/filtered-search/filtered-search.cjs +6 -6
- package/cjs/components/index.cjs +2 -2
- package/cjs/index.cjs +2 -2
- package/esm/components/filtered-search/filtered-search.js +6 -6
- package/esm/components/index.js +1 -1
- package/esm/index.js +1 -1
- package/package.json +3 -3
- package/types/components/filtered-search/filtered-search.d.ts +2 -2
- package/types/components/filtered-search/index.d.ts +2 -2
- package/types/components/filtered-search/model/string-filter.d.ts +2 -2
- package/types/components/filtered-search/model/string-set-filter.d.ts +2 -2
|
@@ -14,7 +14,7 @@ const keyboardKeys = require('../../lib/keyboard-keys.cjs');
|
|
|
14
14
|
const helpers = require('../../lib/helpers.cjs');
|
|
15
15
|
const reactHelpers = require('../../lib/react-helpers.cjs');
|
|
16
16
|
|
|
17
|
-
function FilteredSearch({ className, placeholder = 'Search and filter', applyButtonLabel = 'Apply', cancelButtonLabel = 'Cancel', clearButtonAccessibleName = 'Clear', removeFilterButtonAccessibleName = 'Remove filter', filtersConfig, filters,
|
|
17
|
+
function FilteredSearch({ className, placeholder = 'Search and filter', applyButtonLabel = 'Apply', cancelButtonLabel = 'Cancel', clearButtonAccessibleName = 'Clear', removeFilterButtonAccessibleName = 'Remove filter', filtersConfig, filters, onChangeFilters, onMouseDown, ...props }) {
|
|
18
18
|
const containerRef = react.useRef(null);
|
|
19
19
|
const [query, setQuery] = react.useState('');
|
|
20
20
|
const [hasFocus, setHasFocus] = react.useState(false);
|
|
@@ -39,18 +39,18 @@ function FilteredSearch({ className, placeholder = 'Search and filter', applyBut
|
|
|
39
39
|
const addFilter = (config) => {
|
|
40
40
|
const filter = createFilter(config);
|
|
41
41
|
const textBoxElement = getTextBoxElement();
|
|
42
|
-
|
|
42
|
+
onChangeFilters([...filters, filter]);
|
|
43
43
|
textBoxElement.blur();
|
|
44
44
|
setQuery('');
|
|
45
45
|
setActiveField(filter.field);
|
|
46
46
|
};
|
|
47
47
|
const changeFilter = (changedFilter) => {
|
|
48
48
|
const newFilters = filters.map((filter) => (filter.field === changedFilter.field ? changedFilter : filter));
|
|
49
|
-
|
|
49
|
+
onChangeFilters(newFilters);
|
|
50
50
|
};
|
|
51
51
|
const removeFilter = (filterToRemove) => {
|
|
52
52
|
const newFilters = filters.filter((filter) => (filter.field !== filterToRemove.field));
|
|
53
|
-
|
|
53
|
+
onChangeFilters(newFilters);
|
|
54
54
|
};
|
|
55
55
|
const onFilterEditStarted = (filter) => {
|
|
56
56
|
setActiveField(filter.field);
|
|
@@ -133,7 +133,7 @@ function FilteredSearch({ className, placeholder = 'Search and filter', applyBut
|
|
|
133
133
|
}
|
|
134
134
|
else if (key === keyboardKeys.KeyboardKeys.Backspace) {
|
|
135
135
|
if (query === '' && filters.length > 0) {
|
|
136
|
-
|
|
136
|
+
onChangeFilters(filters.slice(0, -1));
|
|
137
137
|
isHandled = true;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
@@ -163,7 +163,7 @@ function FilteredSearch({ className, placeholder = 'Search and filter', applyBut
|
|
|
163
163
|
};
|
|
164
164
|
const onClearButtonPressed = (event) => {
|
|
165
165
|
event.stopPropagation();
|
|
166
|
-
|
|
166
|
+
onChangeFilters([]);
|
|
167
167
|
};
|
|
168
168
|
const onContainerPressed = (event) => {
|
|
169
169
|
if (event.currentTarget === event.target) {
|
package/cjs/components/index.cjs
CHANGED
|
@@ -24,9 +24,9 @@ const emptyState = require('./empty-state/empty-state.cjs');
|
|
|
24
24
|
const filePicker = require('./file-picker/file-picker.cjs');
|
|
25
25
|
const filterButtons = require('./filter-buttons/filter-buttons.cjs');
|
|
26
26
|
const filterButton = require('./filter-buttons/filter-button.cjs');
|
|
27
|
+
const filteredSearch = require('./filtered-search/filtered-search.cjs');
|
|
27
28
|
const stringFilter = require('./filtered-search/model/string-filter.cjs');
|
|
28
29
|
const stringSetFilter = require('./filtered-search/model/string-set-filter.cjs');
|
|
29
|
-
const filteredSearch = require('./filtered-search/filtered-search.cjs');
|
|
30
30
|
const formField = require('./form-field/form-field.cjs');
|
|
31
31
|
const label = require('./label/label.cjs');
|
|
32
32
|
const menu = require('./menu/menu.cjs');
|
|
@@ -95,9 +95,9 @@ exports.EmptyState = emptyState.EmptyState;
|
|
|
95
95
|
exports.FilePicker = filePicker.FilePicker;
|
|
96
96
|
exports.FilterButtons = filterButtons.FilterButtons;
|
|
97
97
|
exports.FilterButton = filterButton.FilterButton;
|
|
98
|
+
exports.FilteredSearch = filteredSearch.FilteredSearch;
|
|
98
99
|
exports.StringFilter = stringFilter.StringFilter;
|
|
99
100
|
exports.StringSetFilter = stringSetFilter.StringSetFilter;
|
|
100
|
-
exports.FilteredSearch = filteredSearch.FilteredSearch;
|
|
101
101
|
exports.FormField = formField.FormField;
|
|
102
102
|
exports.Label = label.Label;
|
|
103
103
|
exports.Menu = menu.Menu;
|
package/cjs/index.cjs
CHANGED
|
@@ -31,9 +31,9 @@ const emptyState = require('./components/empty-state/empty-state.cjs');
|
|
|
31
31
|
const filePicker = require('./components/file-picker/file-picker.cjs');
|
|
32
32
|
const filterButtons = require('./components/filter-buttons/filter-buttons.cjs');
|
|
33
33
|
const filterButton = require('./components/filter-buttons/filter-button.cjs');
|
|
34
|
+
const filteredSearch = require('./components/filtered-search/filtered-search.cjs');
|
|
34
35
|
const stringFilter = require('./components/filtered-search/model/string-filter.cjs');
|
|
35
36
|
const stringSetFilter = require('./components/filtered-search/model/string-set-filter.cjs');
|
|
36
|
-
const filteredSearch = require('./components/filtered-search/filtered-search.cjs');
|
|
37
37
|
const formField = require('./components/form-field/form-field.cjs');
|
|
38
38
|
const label = require('./components/label/label.cjs');
|
|
39
39
|
const menu = require('./components/menu/menu.cjs');
|
|
@@ -115,9 +115,9 @@ exports.EmptyState = emptyState.EmptyState;
|
|
|
115
115
|
exports.FilePicker = filePicker.FilePicker;
|
|
116
116
|
exports.FilterButtons = filterButtons.FilterButtons;
|
|
117
117
|
exports.FilterButton = filterButton.FilterButton;
|
|
118
|
+
exports.FilteredSearch = filteredSearch.FilteredSearch;
|
|
118
119
|
exports.StringFilter = stringFilter.StringFilter;
|
|
119
120
|
exports.StringSetFilter = stringSetFilter.StringSetFilter;
|
|
120
|
-
exports.FilteredSearch = filteredSearch.FilteredSearch;
|
|
121
121
|
exports.FormField = formField.FormField;
|
|
122
122
|
exports.Label = label.Label;
|
|
123
123
|
exports.Menu = menu.Menu;
|
|
@@ -12,7 +12,7 @@ import { KeyboardKeys } from '../../lib/keyboard-keys.js';
|
|
|
12
12
|
import { exhaustiveCheck } from '../../lib/helpers.js';
|
|
13
13
|
import { classNames } from '../../lib/react-helpers.js';
|
|
14
14
|
|
|
15
|
-
function FilteredSearch({ className, placeholder = 'Search and filter', applyButtonLabel = 'Apply', cancelButtonLabel = 'Cancel', clearButtonAccessibleName = 'Clear', removeFilterButtonAccessibleName = 'Remove filter', filtersConfig, filters,
|
|
15
|
+
function FilteredSearch({ className, placeholder = 'Search and filter', applyButtonLabel = 'Apply', cancelButtonLabel = 'Cancel', clearButtonAccessibleName = 'Clear', removeFilterButtonAccessibleName = 'Remove filter', filtersConfig, filters, onChangeFilters, onMouseDown, ...props }) {
|
|
16
16
|
const containerRef = useRef(null);
|
|
17
17
|
const [query, setQuery] = useState('');
|
|
18
18
|
const [hasFocus, setHasFocus] = useState(false);
|
|
@@ -37,18 +37,18 @@ function FilteredSearch({ className, placeholder = 'Search and filter', applyBut
|
|
|
37
37
|
const addFilter = (config) => {
|
|
38
38
|
const filter = createFilter(config);
|
|
39
39
|
const textBoxElement = getTextBoxElement();
|
|
40
|
-
|
|
40
|
+
onChangeFilters([...filters, filter]);
|
|
41
41
|
textBoxElement.blur();
|
|
42
42
|
setQuery('');
|
|
43
43
|
setActiveField(filter.field);
|
|
44
44
|
};
|
|
45
45
|
const changeFilter = (changedFilter) => {
|
|
46
46
|
const newFilters = filters.map((filter) => (filter.field === changedFilter.field ? changedFilter : filter));
|
|
47
|
-
|
|
47
|
+
onChangeFilters(newFilters);
|
|
48
48
|
};
|
|
49
49
|
const removeFilter = (filterToRemove) => {
|
|
50
50
|
const newFilters = filters.filter((filter) => (filter.field !== filterToRemove.field));
|
|
51
|
-
|
|
51
|
+
onChangeFilters(newFilters);
|
|
52
52
|
};
|
|
53
53
|
const onFilterEditStarted = (filter) => {
|
|
54
54
|
setActiveField(filter.field);
|
|
@@ -131,7 +131,7 @@ function FilteredSearch({ className, placeholder = 'Search and filter', applyBut
|
|
|
131
131
|
}
|
|
132
132
|
else if (key === KeyboardKeys.Backspace) {
|
|
133
133
|
if (query === '' && filters.length > 0) {
|
|
134
|
-
|
|
134
|
+
onChangeFilters(filters.slice(0, -1));
|
|
135
135
|
isHandled = true;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -161,7 +161,7 @@ function FilteredSearch({ className, placeholder = 'Search and filter', applyBut
|
|
|
161
161
|
};
|
|
162
162
|
const onClearButtonPressed = (event) => {
|
|
163
163
|
event.stopPropagation();
|
|
164
|
-
|
|
164
|
+
onChangeFilters([]);
|
|
165
165
|
};
|
|
166
166
|
const onContainerPressed = (event) => {
|
|
167
167
|
if (event.currentTarget === event.target) {
|
package/esm/components/index.js
CHANGED
|
@@ -22,9 +22,9 @@ export { EmptyState } from './empty-state/empty-state.js';
|
|
|
22
22
|
export { FilePicker } from './file-picker/file-picker.js';
|
|
23
23
|
export { FilterButtons } from './filter-buttons/filter-buttons.js';
|
|
24
24
|
export { FilterButton } from './filter-buttons/filter-button.js';
|
|
25
|
+
export { FilteredSearch } from './filtered-search/filtered-search.js';
|
|
25
26
|
export { StringFilter } from './filtered-search/model/string-filter.js';
|
|
26
27
|
export { StringSetFilter } from './filtered-search/model/string-set-filter.js';
|
|
27
|
-
export { FilteredSearch } from './filtered-search/filtered-search.js';
|
|
28
28
|
export { FormField } from './form-field/form-field.js';
|
|
29
29
|
export { Label } from './label/label.js';
|
|
30
30
|
export { Menu } from './menu/menu.js';
|
package/esm/index.js
CHANGED
|
@@ -29,9 +29,9 @@ export { EmptyState } from './components/empty-state/empty-state.js';
|
|
|
29
29
|
export { FilePicker } from './components/file-picker/file-picker.js';
|
|
30
30
|
export { FilterButtons } from './components/filter-buttons/filter-buttons.js';
|
|
31
31
|
export { FilterButton } from './components/filter-buttons/filter-button.js';
|
|
32
|
+
export { FilteredSearch } from './components/filtered-search/filtered-search.js';
|
|
32
33
|
export { StringFilter } from './components/filtered-search/model/string-filter.js';
|
|
33
34
|
export { StringSetFilter } from './components/filtered-search/model/string-set-filter.js';
|
|
34
|
-
export { FilteredSearch } from './components/filtered-search/filtered-search.js';
|
|
35
35
|
export { FormField } from './components/form-field/form-field.js';
|
|
36
36
|
export { Label } from './components/label/label.js';
|
|
37
37
|
export { Menu } from './components/menu/menu.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "draft-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "The React based UI components library.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"coverage": "npm run test -- --coverage --no-cache",
|
|
30
30
|
"lint": "eslint '**/*.{js,ts,tsx}'",
|
|
31
31
|
"lint-styles": "stylelint 'src/**/*.css'",
|
|
32
|
-
"check-types": "tsc --noEmit",
|
|
33
|
-
"prebuild": "npm run test && npm run lint && npm run lint-styles",
|
|
32
|
+
"check-types": "tsc --project 'tsconfig.json' --noEmit",
|
|
33
|
+
"prebuild": "npm run check-types && npm run test && npm run lint && npm run lint-styles",
|
|
34
34
|
"build": "node scripts/build.js",
|
|
35
35
|
"build-storybook": "storybook build",
|
|
36
36
|
"preversion": "npm run build",
|
|
@@ -10,6 +10,6 @@ export type FilteredSearchProps = FilteredSearchBaseProps & {
|
|
|
10
10
|
removeFilterButtonAccessibleName?: string;
|
|
11
11
|
filtersConfig: FilterConfig[];
|
|
12
12
|
filters: Filter[];
|
|
13
|
-
|
|
13
|
+
onChangeFilters: (filters: Filter[]) => void;
|
|
14
14
|
};
|
|
15
|
-
export declare function FilteredSearch({ className, placeholder, applyButtonLabel, cancelButtonLabel, clearButtonAccessibleName, removeFilterButtonAccessibleName, filtersConfig, filters,
|
|
15
|
+
export declare function FilteredSearch({ className, placeholder, applyButtonLabel, cancelButtonLabel, clearButtonAccessibleName, removeFilterButtonAccessibleName, filtersConfig, filters, onChangeFilters, onMouseDown, ...props }: FilteredSearchProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { StringFilter } from './model/string-filter';
|
|
2
|
-
export { StringSetFilter } from './model/string-set-filter';
|
|
3
1
|
export { FilteredSearch, type FilteredSearchProps, type FilteredSearchBaseProps, type FilteredSearchHTMLProps, } from './filtered-search';
|
|
4
2
|
export { type Filter, type FilterConfig, } from './types';
|
|
3
|
+
export { StringFilter, type StringFilterState, type StringFilterConfig, } from './model/string-filter';
|
|
4
|
+
export { StringSetFilter, type StringSetFilterState, type StringSetFilterConfig, } from './model/string-set-filter';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AbstractFilter } from './abstract-filter';
|
|
2
2
|
import { ValidationResult } from './validation-result';
|
|
3
|
-
declare const TYPE
|
|
3
|
+
declare const TYPE: "STRING";
|
|
4
4
|
declare const OPERATORS: {
|
|
5
5
|
readonly equal: "EQUAL";
|
|
6
6
|
readonly notEqual: "NOT_EQUAL";
|
|
@@ -25,7 +25,7 @@ export type StringFilterState = {
|
|
|
25
25
|
operator: StringFilterOperator;
|
|
26
26
|
};
|
|
27
27
|
export declare class StringFilter extends AbstractFilter {
|
|
28
|
-
static readonly Type
|
|
28
|
+
static readonly Type: "STRING";
|
|
29
29
|
static readonly Operators: {
|
|
30
30
|
readonly equal: "EQUAL";
|
|
31
31
|
readonly notEqual: "NOT_EQUAL";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AbstractFilter } from './abstract-filter';
|
|
2
|
-
declare const TYPE
|
|
2
|
+
declare const TYPE: "STRING_SET";
|
|
3
3
|
declare const OPERATORS: {
|
|
4
4
|
readonly in: "IN";
|
|
5
5
|
readonly notIn: "NOT_IN";
|
|
@@ -21,7 +21,7 @@ export type StringSetFilterState = {
|
|
|
21
21
|
operator: StringSetFilterOperator;
|
|
22
22
|
};
|
|
23
23
|
export declare class StringSetFilter extends AbstractFilter {
|
|
24
|
-
static readonly Type
|
|
24
|
+
static readonly Type: "STRING_SET";
|
|
25
25
|
static readonly Operators: {
|
|
26
26
|
readonly in: "IN";
|
|
27
27
|
readonly notIn: "NOT_IN";
|