@vuu-ui/vuu-filters 0.6.10-debug → 0.6.11

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/package.json CHANGED
@@ -4,9 +4,9 @@
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
- "@vuu-ui/vuu-codemirror": "0.6.10-debug",
8
- "@vuu-ui/vuu-data": "0.6.10-debug",
9
- "@vuu-ui/vuu-utils": "0.6.10-debug",
7
+ "@vuu-ui/vuu-codemirror": "0.6.11",
8
+ "@vuu-ui/vuu-data": "0.6.11",
9
+ "@vuu-ui/vuu-utils": "0.6.11",
10
10
  "@salt-ds/core": "1.0.0",
11
11
  "@heswell/salt-lab": "1.0.0-alpha.0-vuu.1",
12
12
  "react": "^17.0.2",
@@ -16,9 +16,11 @@
16
16
  "cjs",
17
17
  "esm",
18
18
  "index.css",
19
- "index.css.map"
19
+ "index.css.map",
20
+ "/types"
20
21
  ],
21
22
  "module": "esm/index.js",
22
23
  "main": "cjs/index.js",
23
- "version": "0.6.10-debug"
24
+ "version": "0.6.11",
25
+ "types": "types/index.d.ts"
24
26
  }
@@ -0,0 +1,6 @@
1
+ import { DataSourceRow } from "@vuu-ui/vuu-data";
2
+ import { Filter } from "@vuu-ui/vuu-filter-types";
3
+ import { ColumnMap } from "@vuu-ui/vuu-utils";
4
+ export declare const getFilterPredicate: (columnMap: ColumnMap, filterQuery: string) => FilterPredicate;
5
+ export declare function filterPredicate(columnMap: ColumnMap, filter: Filter): FilterPredicate;
6
+ export type FilterPredicate = (row: DataSourceRow) => boolean;
@@ -0,0 +1,10 @@
1
+ import { Filter } from "@vuu-ui/vuu-filter-types";
2
+ import { HTMLAttributes } from "react";
3
+ import { filterSubmissionHandler, SuggestionConsumer } from "./useCodeMirrorEditor";
4
+ import "./FilterInput.css";
5
+ export interface FilterInputProps extends SuggestionConsumer, HTMLAttributes<HTMLDivElement> {
6
+ existingFilter?: Filter;
7
+ namedFilters?: Map<string, string>;
8
+ onSubmitFilter?: filterSubmissionHandler;
9
+ }
10
+ export declare const FilterInput: ({ existingFilter, namedFilters, onSubmitFilter, suggestionProvider, ...props }: FilterInputProps) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { Extension } from "@vuu-ui/vuu-codemirror";
2
+ export declare const minimalSetup: Extension;
3
+ export { EditorView } from "@codemirror/view";
@@ -0,0 +1,2 @@
1
+ import { LanguageSupport } from "@vuu-ui/vuu-codemirror";
2
+ export declare const filterLanguageSupport: () => LanguageSupport;
@@ -0,0 +1,2 @@
1
+ import { Filter } from "@vuu-ui/vuu-filter-types";
2
+ export declare const parseFilter: (filterQuery: string) => Filter;
@@ -0,0 +1,3 @@
1
+ import { Tree } from "@lezer/common";
2
+ import { Filter } from "@vuu-ui/vuu-filter-types";
3
+ export declare const walkTree: (tree: Tree, source: string) => Partial<Filter> | undefined;
@@ -0,0 +1,2 @@
1
+ export const parser: LRParser;
2
+ import { LRParser } from "@vuu-ui/vuu-codemirror";
@@ -0,0 +1,27 @@
1
+ export const Filter: 1;
2
+ export const ColumnValueExpression: 2;
3
+ export const Column: 3;
4
+ export const Operator: 4;
5
+ export const Eq: 5;
6
+ export const NotEq: 6;
7
+ export const Gt: 7;
8
+ export const Lt: 8;
9
+ export const Starts: 9;
10
+ export const Ends: 10;
11
+ export const Number: 11;
12
+ export const String: 12;
13
+ export const True: 13;
14
+ export const False: 14;
15
+ export const ColumnSetExpression: 15;
16
+ export const In: 16;
17
+ export const LBrack: 17;
18
+ export const Values: 18;
19
+ export const Comma: 19;
20
+ export const RBrack: 20;
21
+ export const AndExpression: 21;
22
+ export const And: 22;
23
+ export const OrExpression: 23;
24
+ export const Or: 24;
25
+ export const ParenthesizedExpression: 25;
26
+ export const As: 26;
27
+ export const FilterName: 27;
@@ -0,0 +1 @@
1
+ export * from "./FilterLanguage";
@@ -0,0 +1 @@
1
+ export declare const filterInfo: (filterName: string, filterQuery: string) => HTMLElement;
@@ -0,0 +1 @@
1
+ export declare const vuuHighlighting: import("@codemirror/state").Extension;
@@ -0,0 +1,3 @@
1
+ export * from "./FilterInput";
2
+ export * from "./useCodeMirrorEditor";
3
+ export * from "./useFilterSuggestionProvider";
@@ -0,0 +1 @@
1
+ export declare const vuuTheme: import("@codemirror/state").Extension;
@@ -0,0 +1,29 @@
1
+ /// <reference types="react" />
2
+ import { Completion } from "@vuu-ui/vuu-codemirror";
3
+ import { Filter } from "@vuu-ui/vuu-filter-types";
4
+ import { FilterSubmissionMode } from "./useFilterAutoComplete";
5
+ export type SuggestionType = "column" | "columnValue" | "operator";
6
+ export interface SuggestionOptions {
7
+ columnName?: string;
8
+ operator?: string;
9
+ startsWith?: string;
10
+ selection?: string[];
11
+ }
12
+ export type getSuggestionsType = (valueType: SuggestionType, options?: SuggestionOptions) => Promise<Completion[]>;
13
+ export interface ISuggestionProvider {
14
+ getSuggestions: getSuggestionsType;
15
+ isPartialMatch: (valueType: SuggestionType, columnName?: string, text?: string | undefined) => Promise<boolean>;
16
+ }
17
+ export interface SuggestionConsumer {
18
+ suggestionProvider: ISuggestionProvider;
19
+ }
20
+ export type filterSubmissionHandler = (filter: Filter | undefined, filterQuery: string, mode?: FilterSubmissionMode, filterName?: string) => void;
21
+ export interface CodeMirrorEditorProps {
22
+ existingFilter?: Filter;
23
+ onSubmitFilter?: filterSubmissionHandler;
24
+ suggestionProvider: ISuggestionProvider;
25
+ }
26
+ export declare const useCodeMirrorEditor: ({ existingFilter, onSubmitFilter, suggestionProvider, }: CodeMirrorEditorProps) => {
27
+ editorRef: import("react").RefObject<HTMLDivElement>;
28
+ clearInput: () => void;
29
+ };
@@ -0,0 +1,7 @@
1
+ import { CompletionSource } from "@vuu-ui/vuu-codemirror";
2
+ import { Filter } from "@vuu-ui/vuu-filter-types";
3
+ import { MutableRefObject } from "react";
4
+ import { ISuggestionProvider } from "./useCodeMirrorEditor";
5
+ export type FilterSubmissionMode = "and" | "or" | "replace";
6
+ export type ApplyCompletion = (mode?: FilterSubmissionMode) => void;
7
+ export declare const useAutoComplete: (suggestionProvider: ISuggestionProvider, onSubmit: MutableRefObject<ApplyCompletion>, existingFilter?: Filter) => CompletionSource;
@@ -0,0 +1,13 @@
1
+ import { Completion } from "@vuu-ui/vuu-codemirror";
2
+ import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
3
+ import { ISuggestionProvider } from "@vuu-ui/vuu-filters";
4
+ import { VuuTable } from "@vuu-ui/vuu-protocol-types";
5
+ export interface VuuCompletion extends Completion {
6
+ isIllustration?: boolean;
7
+ }
8
+ export interface SuggestionProviderHookProps {
9
+ columns: ColumnDescriptor[];
10
+ namedFilters?: Map<string, string>;
11
+ table: VuuTable;
12
+ }
13
+ export declare const useFilterSuggestionProvider: ({ columns, namedFilters, table, }: SuggestionProviderHookProps) => ISuggestionProvider;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { DropdownProps } from "@heswell/salt-lab";
3
+ import { ISuggestionProvider } from "../filter-input";
4
+ export interface FilterDropdownProps extends DropdownProps {
5
+ column: string;
6
+ suggestionProvider: ISuggestionProvider;
7
+ }
8
+ export declare const FilterDropdown: ({ column, selected: selectedProp, suggestionProvider, ...props }: FilterDropdownProps) => JSX.Element;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { DropdownProps } from "@heswell/salt-lab";
3
+ import { ISuggestionProvider } from "../filter-input";
4
+ export interface FilterDropdownProps extends DropdownProps<string, "multiple"> {
5
+ column: string;
6
+ suggestionProvider: ISuggestionProvider;
7
+ }
8
+ export declare const FilterDropdownMultiSelect: ({ column, selected: selectedProp, suggestionProvider, ...props }: FilterDropdownProps) => JSX.Element;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { Filter } from "@vuu-ui/vuu-filter-types";
3
+ import { ToolbarProps } from "@heswell/salt-lab";
4
+ import { SuggestionConsumer } from "../filter-input";
5
+ import "./FilterToolbar.css";
6
+ export interface FilterToolbarProps extends SuggestionConsumer, ToolbarProps {
7
+ filter?: Filter;
8
+ }
9
+ export declare const FilterToolbar: ({ className, filter, suggestionProvider, ...props }: FilterToolbarProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./FilterToolbar";
@@ -0,0 +1,7 @@
1
+ import { Filter } from "@vuu-ui/vuu-filter-types";
2
+ import { SuggestionConsumer } from "@vuu-ui/vuu-filters";
3
+ import { ReactElement } from "react";
4
+ export interface FilterToolbarProps extends SuggestionConsumer {
5
+ filter?: Filter;
6
+ }
7
+ export declare const useFilterToolbar: ({ filter, suggestionProvider, }: FilterToolbarProps) => ReactElement<any, string | import("react").JSXElementConstructor<any>> | ReactElement<any, string | import("react").JSXElementConstructor<any>>[];
@@ -0,0 +1,44 @@
1
+ import { KeyedColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
2
+ import { Row } from "@vuu-ui/vuu-utils";
3
+ import { Filter, FilterClause, FilterCombinatorOp } from "@vuu-ui/vuu-filter-types";
4
+ export declare const AND = "and";
5
+ export declare const EQUALS = "=";
6
+ export declare const GREATER_THAN = ">";
7
+ export declare const LESS_THAN = "<";
8
+ export declare const OR = "or";
9
+ export declare const STARTS_WITH = "starts";
10
+ export declare const ENDS_WITH = "ends";
11
+ export declare const IN = "in";
12
+ export type FilterType = "and" | "=" | ">" | ">=" | "in" | "<=" | "<" | "NOT_IN" | "NOT_SW" | "or" | "SW";
13
+ export declare const filterClauses: (filter: Filter | null, clauses?: FilterClause[]) => FilterClause[];
14
+ type AddFilterOptions = {
15
+ combineWith: FilterCombinatorOp;
16
+ };
17
+ export declare const addFilter: (existingFilter: Filter | undefined, filter: Filter, { combineWith }?: AddFilterOptions) => Filter | undefined;
18
+ export declare const filterAsQuery: (f: Filter, namedFilters?: {}) => string;
19
+ interface CommonFilter {
20
+ colName?: string;
21
+ otherColFilters?: Filter[];
22
+ mode?: any;
23
+ value?: any;
24
+ values?: any;
25
+ op?: "or" | "and";
26
+ column?: string;
27
+ filters?: Filter[];
28
+ }
29
+ export interface OtherFilter extends CommonFilter {
30
+ type: FilterType;
31
+ values?: any[];
32
+ }
33
+ export type RowFilterFn = (row: Row) => boolean;
34
+ export declare const removeColumnFromFilter: (column: KeyedColumnDescriptor, filter: Filter) => [Filter | undefined, string];
35
+ export declare const removeFilter: (sourceFilter: Filter, filterToRemove: Filter) => {
36
+ type: string;
37
+ filters: Filter[];
38
+ } | null;
39
+ export declare const splitFilterOnColumn: (filter: Filter | null, columnName: string) => [Filter | null, Filter | null];
40
+ export declare const overrideColName: (filter: Filter, column: string) => Filter;
41
+ export declare const filterIncludesColumn: (filter: Filter, column: KeyedColumnDescriptor) => boolean;
42
+ export declare const filterEquals: (f1?: Filter, f2?: Filter, strict?: boolean) => boolean;
43
+ export declare const updateFilter: (filter: Filter | undefined, newFilter: Filter | undefined, mode: "add" | "replace") => Filter | undefined;
44
+ export {};
@@ -0,0 +1,9 @@
1
+ import { AndFilter, Filter, MultiClauseFilter, MultiValueFilterClause, OrFilter, SingleValueFilterClause } from "@vuu-ui/vuu-filter-types";
2
+ export declare const isNamedFilter: (f?: Filter) => boolean;
3
+ export declare const isSingleValueFilter: (f?: Filter) => f is SingleValueFilterClause<string | number | boolean>;
4
+ export declare const isFilterClause: (f?: Filter) => f is MultiValueFilterClause | SingleValueFilterClause<string | number | boolean>;
5
+ export declare const isMultiValueFilter: (f?: Filter) => f is MultiValueFilterClause;
6
+ export declare const isInFilter: (f: Filter) => f is MultiValueFilterClause;
7
+ export declare const isAndFilter: (f: Filter) => f is AndFilter;
8
+ export declare const isOrFilter: (f: Filter) => f is OrFilter;
9
+ export declare function isMultiClauseFilter(f?: Filter): f is MultiClauseFilter;
@@ -0,0 +1,5 @@
1
+ export * from "./filter-input";
2
+ export * from "./filter-toolbar";
3
+ export * from "./filter-evaluation-utils";
4
+ export * from "./filter-utils";
5
+ export * from "./filterTypes";