@equinor/fusion-react-filter 1.2.1 → 1.2.7

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,5 +1,7 @@
1
- import { FilterOptionSelector } from '../../../options';
1
+ import { FilterOptionBuilder, FilterOptionSelector } from '../../../options';
2
2
  import type { FilterComponent } from '../types';
3
+ import { CheckboxOption } from './types';
4
+ import type { FilterFn } from '../../../types';
3
5
  export declare type CheckboxFilterProps<TData extends Record<string, any> = Record<string, any>> = FilterComponent & {
4
6
  /** either name of property of data type or a function that selects value */
5
7
  selector?: Extract<keyof TData, string> | string | FilterOptionSelector<TData>;
@@ -7,10 +9,14 @@ export declare type CheckboxFilterProps<TData extends Record<string, any> = Reco
7
9
  enableAll?: boolean;
8
10
  /** initial selection */
9
11
  initial?: Set<string>;
12
+ filter?: {
13
+ filterFn: FilterFn<TData, Set<string>>;
14
+ optionFn: FilterOptionBuilder<TData, CheckboxOption, string>;
15
+ };
10
16
  };
11
17
  /**
12
18
  * Component for displaying multi-select filter with checkboxes
13
19
  */
14
- export declare const CheckboxFilter: (props: CheckboxFilterProps) => JSX.Element;
20
+ export declare const CheckboxFilter: <TData extends Record<string, any> = Record<string, any>>(props: CheckboxFilterProps<TData>) => JSX.Element;
15
21
  export default CheckboxFilter;
16
22
  //# sourceMappingURL=CheckboxFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAShD,oBAAY,mBAAmB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,eAAe,GAAG;IAC3G,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAAW,mBAAmB,KAAG,WAc3D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CheckboxFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,oBAAY,mBAAmB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,eAAe,GAAG;IAC3G,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAItB,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,kGAExB,WAcF,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxFilter.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAW/C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAe,EAAE;IACxE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,sBAAsB,oBAAK,IAAI,cAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,iBACzB,KAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAAI,EACzC,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,iBACzB,SAAS,IAAI,KAAC,uBAAuB,aAAG,EACzC,KAAC,qBAAqB,aAAG,aACrB,aACF,YACiB,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CheckboxFilter.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAoB/C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAiC,EACpB,EAAE;IACf,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,sBAAsB,oBAAK,IAAI,cAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,iBACzB,KAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAAI,EACzC,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,iBACzB,SAAS,IAAI,KAAC,uBAAuB,aAAG,EACzC,KAAC,qBAAqB,aAAG,aACrB,aACF,YACiB,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { FilterOptionBuilder, FilterOptionSelector } from '../../../options/types';
3
3
  import type { CheckboxOption } from './types';
4
+ import type { FilterFn } from '../../../types';
4
5
  export declare type CheckboxFilterProviderProps<TData extends Record<string, any>, TOption extends CheckboxOption = CheckboxOption> = {
5
6
  filterKey: string;
6
7
  title?: string;
7
- optionBuilder?: FilterOptionBuilder<TData, TOption, string>;
8
+ filter?: {
9
+ filterFn: FilterFn<TData, Set<string>>;
10
+ optionFn: FilterOptionBuilder<TData, TOption, string>;
11
+ };
8
12
  selector?: Extract<keyof TData, string> | string | FilterOptionSelector<TData>;
9
13
  initial?: Set<string>;
10
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxFilterProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ9C,oBAAY,2BAA2B,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,SAAS,cAAc,GAAG,cAAc,IAC7C;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,mLAKhC,WAmBF,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"CheckboxFilterProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,oBAAY,2BAA2B,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,SAAS,cAAc,GAAG,cAAc,IAC7C;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACvD,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,mLAKhC,WAuBF,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -6,11 +6,17 @@ const createFilterFn = (selector) => (data, selection) => {
6
6
  return selection.size ? data.filter((x) => selection.has(selector(x).key)) : data;
7
7
  };
8
8
  export const CheckboxFilterProvider = (props) => {
9
- const { filterKey, selector = filterKey, optionBuilder, title, initial, children } = props;
9
+ const { filterKey, selector = filterKey, title, initial, filter, children } = props;
10
10
  const selectorFn = useMemo(() => typeof selector === 'function'
11
11
  ? selector
12
12
  : propertySelector(selector || selector), [selector]);
13
- const filterFn = useMemo(() => createFilterFn(selectorFn), [selectorFn]);
14
- return (_jsx(FilterOptionProvider, Object.assign({ selector: selectorFn, optionBuilder: optionBuilder, filter: { key: filterKey, title, initial, filterFn } }, { children: children }), void 0));
13
+ const filterFn = useMemo(() => {
14
+ if (filter?.filterFn)
15
+ return filter.filterFn;
16
+ if (!selectorFn)
17
+ throw Error('Could not create filter. Please provide either filterFn or filterSelector.');
18
+ return createFilterFn(selectorFn);
19
+ }, [selectorFn, filter?.filterFn]);
20
+ return (_jsx(FilterOptionProvider, Object.assign({ selector: selectorFn, optionBuilder: filter?.optionFn, filter: { key: filterKey, title, initial, filterFn } }, { children: children }), void 0));
15
21
  };
16
22
  //# sourceMappingURL=CheckboxFilterProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxFilterProvider.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKnE,MAAM,cAAc,GAClB,CAAyD,QAAqC,EAAE,EAAE,CAClG,CAAC,IAAa,EAAE,SAAsB,EAAE,EAAE;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzG,CAAC,CAAC;AAaJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAIpC,KAA4E,EAC/D,EAAE;IACf,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3F,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,OAAO,QAAQ,KAAK,UAAU;QAC5B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,gBAAgB,CAAC,QAAQ,IAAK,QAAyC,CAAC,EAC9E,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,OAAO,CACL,KAAC,oBAAoB,kBACnB,QAAQ,EAAE,UAAU,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAEnD,QAAQ,YACY,CACxB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"CheckboxFilterProvider.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,MAAM,cAAc,GAClB,CAAyD,QAAqC,EAAE,EAAE,CAClG,CAAC,IAAa,EAAE,SAAsB,EAAE,EAAE;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzG,CAAC,CAAC;AAgBJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAIpC,KAA4E,EAC/D,EAAE;IACf,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,OAAO,QAAQ,KAAK,UAAU;QAC5B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,gBAAgB,CAAC,QAAQ,IAAK,QAAyC,CAAC,EAC9E,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAA+B,GAAG,EAAE;QAC1D,IAAI,MAAM,EAAE,QAAQ;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,UAAU;YAAE,MAAM,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC3G,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnC,OAAO,CACL,KAAC,oBAAoB,kBACnB,QAAQ,EAAE,UAAU,EACpB,aAAa,EAAE,MAAM,EAAE,QAAQ,EAC/B,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAEnD,QAAQ,YACY,CACxB,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/fusion-react-filter",
3
- "version": "1.2.1",
3
+ "version": "1.2.7",
4
4
  "description": "component for Filtering data",
5
5
  "author": "",
6
6
  "homepage": "https://github.com/equinor/fusion-react-components/tree/master/packages/filter#readme",
@@ -41,15 +41,15 @@
41
41
  "url": "https://github.com/equinor/fusion-react-components/issues"
42
42
  },
43
43
  "dependencies": {
44
- "@equinor/fusion-react-button": "^0.5.4",
45
- "@equinor/fusion-react-checkbox": "^0.5.4",
46
- "@equinor/fusion-react-chip": "^0.3.3",
47
- "@equinor/fusion-react-icon": "^0.2.4",
48
- "@equinor/fusion-react-observable": "^1.1.0",
49
- "@equinor/fusion-react-radio": "^0.4.3",
50
- "@equinor/fusion-react-styles": "^0.3.7",
51
- "@equinor/fusion-react-textinput": "^0.6.4",
52
- "@equinor/fusion-react-utils": "^1.2.4"
44
+ "@equinor/fusion-react-button": "^0.5.5",
45
+ "@equinor/fusion-react-checkbox": "^0.5.5",
46
+ "@equinor/fusion-react-chip": "^0.3.4",
47
+ "@equinor/fusion-react-icon": "^0.2.5",
48
+ "@equinor/fusion-react-observable": "^1.1.1",
49
+ "@equinor/fusion-react-radio": "^0.4.4",
50
+ "@equinor/fusion-react-styles": "^0.5.0",
51
+ "@equinor/fusion-react-textinput": "^0.6.5",
52
+ "@equinor/fusion-react-utils": "^1.2.5"
53
53
  },
54
- "gitHead": "49e0f00e3758229f944838e353bee0280e6344c9"
54
+ "gitHead": "7c60eaa05a1d543d3e74e9d06d0ad71e5e6f235a"
55
55
  }