@vuu-ui/vuu-filters 0.8.27-debug → 0.8.28-debug

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.
Files changed (40) hide show
  1. package/cjs/index.js +1553 -1089
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +1540 -1059
  4. package/esm/index.js.map +4 -4
  5. package/index.css +48 -81
  6. package/index.css.map +3 -3
  7. package/package.json +9 -9
  8. package/types/FilterModel.d.ts +43 -0
  9. package/types/filter-bar/FilterBar.d.ts +3 -4
  10. package/types/filter-bar/filterBarFocusManagement.d.ts +1 -0
  11. package/types/filter-bar/useFilterBar.d.ts +16 -21
  12. package/types/filter-bar/useFilterState.d.ts +1 -1
  13. package/types/filter-clause/FilterClause.d.ts +18 -0
  14. package/types/filter-clause/FilterMenu.d.ts +0 -1
  15. package/types/filter-clause/filterClauseFocusManagement.d.ts +16 -0
  16. package/types/filter-clause/filterClauseTypes.d.ts +3 -2
  17. package/types/filter-clause/index.d.ts +2 -2
  18. package/types/filter-clause/useFilterClause.d.ts +24 -0
  19. package/types/filter-clause/value-editors/FilterClauseValueEditor.d.ts +13 -0
  20. package/types/filter-clause/value-editors/FilterClauseValueEditorDate.d.ts +10 -0
  21. package/types/filter-clause/value-editors/FilterClauseValueEditorNumber.d.ts +10 -0
  22. package/types/filter-clause/value-editors/FilterClauseValueEditorText.d.ts +11 -0
  23. package/types/filter-editor/FilterClauseCombinator.d.ts +10 -0
  24. package/types/filter-editor/FilterEditor.d.ts +17 -0
  25. package/types/filter-editor/index.d.ts +1 -0
  26. package/types/filter-editor/useFilterEditor.d.ts +31 -0
  27. package/types/filter-pill/FilterPill.d.ts +8 -5
  28. package/types/filter-pill/FilterPillMenuOptions.d.ts +12 -0
  29. package/types/filter-pill/getFilterTooltipText.d.ts +2 -0
  30. package/types/filter-pill-menu/FilterPillMenu.d.ts +1 -1
  31. package/types/filter-utils.d.ts +0 -1
  32. package/types/index.d.ts +2 -1
  33. package/types/filter-builder-menu/FilterBuilderMenu.d.ts +0 -10
  34. package/types/filter-builder-menu/index.d.ts +0 -1
  35. package/types/filter-clause/DateInput.d.ts +0 -9
  36. package/types/filter-clause/FilterClauseEditor.d.ts +0 -17
  37. package/types/filter-clause/FilterClauseTextValueEditor.d.ts +0 -11
  38. package/types/filter-clause/FilterClauseValueEditor.d.ts +0 -9
  39. package/types/filter-clause/NumericInput.d.ts +0 -9
  40. package/types/filter-clause/useFilterClauseEditor.d.ts +0 -32
@@ -0,0 +1,31 @@
1
+ import type { MenuActionHandler, MenuBuilder } from "@vuu-ui/vuu-data-types";
2
+ import type { ColumnDescriptorsByName } from "@vuu-ui/vuu-filter-types";
3
+ import { KeyboardEventHandler } from "react";
4
+ import { FilterEditorProps } from "./FilterEditor";
5
+ import { FilterModel } from "../FilterModel";
6
+ import { FilterClauseCancelHandler } from "../filter-clause";
7
+ import { FilterClauseCombinatorChangeHandler } from "./FilterClauseCombinator";
8
+ export interface FilterEditorHookProps extends Pick<FilterEditorProps, "columnDescriptors" | "filter" | "onCancel" | "onSave"> {
9
+ label?: string;
10
+ }
11
+ export declare const useFilterEditor: ({ columnDescriptors, filter, onCancel, onSave, }: FilterEditorHookProps) => {
12
+ columnsByName: ColumnDescriptorsByName;
13
+ filterModel: FilterModel;
14
+ isValid: boolean;
15
+ onCancelFilterClause: FilterClauseCancelHandler;
16
+ onCancelFilterEdit: () => void;
17
+ onChangeFilterCombinator: FilterClauseCombinatorChangeHandler;
18
+ onKeyDownCombinator: KeyboardEventHandler<HTMLElement>;
19
+ saveButtonProps: {
20
+ PopupMenuProps: {
21
+ icon: string;
22
+ menuBuilder: MenuBuilder<string, unknown>;
23
+ menuActionHandler: MenuActionHandler;
24
+ menuLocation: string;
25
+ };
26
+ onClick: () => boolean | undefined;
27
+ onKeyDown: KeyboardEventHandler<Element>;
28
+ };
29
+ saveButtonRef: import("react").RefObject<HTMLDivElement>;
30
+ setContainer: (instance: HTMLDivElement | null) => void;
31
+ };
@@ -1,15 +1,18 @@
1
+ /// <reference types="react" />
1
2
  import { MenuActionHandler } from "@vuu-ui/vuu-data-types";
2
3
  import { ColumnDescriptorsByName, Filter } from "@vuu-ui/vuu-filter-types";
3
- import { EditableLabelProps } from "@vuu-ui/vuu-ui-controls";
4
- import { HTMLAttributes } from "react";
4
+ import { EditableLabelProps, SplitStateButtonProps } from "@vuu-ui/vuu-ui-controls";
5
5
  import "./FilterPill.css";
6
- export interface FilterPillProps extends Pick<Partial<EditableLabelProps>, "onExitEditMode">, HTMLAttributes<HTMLDivElement> {
6
+ export interface FilterPillProps extends SplitStateButtonProps, Pick<Partial<EditableLabelProps>, "editing" | "editLabelApiRef" | "onExitEditMode"> {
7
+ allowClose?: boolean;
8
+ allowDelete?: boolean;
9
+ allowEdit?: boolean;
10
+ allowRename?: boolean;
7
11
  columnsByName?: ColumnDescriptorsByName;
8
12
  editable?: boolean;
9
13
  filter: Filter;
10
14
  index?: number;
11
15
  onBeginEdit?: (filter: Filter) => void;
12
16
  onMenuAction?: MenuActionHandler;
13
- showMenu?: boolean;
14
17
  }
15
- export declare const FilterPill: ({ className: classNameProp, columnsByName, editable, filter, id: idProp, onBeginEdit, onExitEditMode, onMenuAction, showMenu, ...htmlAttributes }: FilterPillProps) => JSX.Element;
18
+ export declare const FilterPill: ({ allowClose, allowDelete, allowEdit, allowRename, className: classNameProp, columnsByName, editable, editing, editLabelApiRef, filter, id: idProp, onBeginEdit, onExitEditMode, onMenuAction, ...htmlAttributes }: FilterPillProps) => JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { ContextMenuItemDescriptor } from "@vuu-ui/vuu-data-types";
2
+ export type MenuOptions = {
3
+ [key: string]: unknown;
4
+ };
5
+ export interface FilterPillMenuOptions {
6
+ tabIndex: number;
7
+ }
8
+ export declare const isFilterPillMenuOptions: (options: unknown) => options is FilterPillMenuOptions;
9
+ export declare const closeCommand: (options?: MenuOptions) => ContextMenuItemDescriptor;
10
+ export declare const deleteCommand: (options?: MenuOptions) => ContextMenuItemDescriptor;
11
+ export declare const renameCommand: (options?: MenuOptions) => ContextMenuItemDescriptor;
12
+ export declare const editCommand: (options?: MenuOptions) => ContextMenuItemDescriptor;
@@ -0,0 +1,2 @@
1
+ import { ColumnDescriptorsByName, Filter } from "@vuu-ui/vuu-filter-types";
2
+ export declare const getFilterTooltipText: (columnsByName?: ColumnDescriptorsByName) => (filter: Filter) => string;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { MenuActionHandler } from "@vuu-ui/vuu-data-types";
3
3
  import "./FilterPillMenu.css";
4
- import { MenuOptions } from "./FilterPillMenuOptions";
4
+ import { MenuOptions } from "../filter-pill/FilterPillMenuOptions";
5
5
  import { Filter } from "@vuu-ui/vuu-filter-types";
6
6
  export interface FilterMenuOptions extends MenuOptions {
7
7
  filter: Filter;
@@ -19,7 +19,6 @@ export declare const removeLastClause: (filter: MultiClauseFilter) => Filter;
19
19
  in filter editing UI only.
20
20
  */
21
21
  export declare const addClause: (existingFilter: Filter, clause: Partial<Filter>, { combineWith }?: AddFilterOptions) => FilterWithPartialClause;
22
- export declare const replaceClause: (existingFilter: FilterWithPartialClause | Partial<Filter> | undefined, clause: Partial<FilterClause>, idx: number) => Filter | Partial<Filter>;
23
22
  export declare const addFilter: (existingFilter: Filter | undefined, filter: Filter, { combineWith }?: AddFilterOptions) => Filter | undefined;
24
23
  interface CommonFilter {
25
24
  colName?: string;
package/types/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ export * from "./FilterModel";
1
2
  export * from "./filter-bar";
2
- export * from "./filter-builder-menu";
3
3
  export * from "./filter-clause";
4
+ export * from "./filter-editor";
4
5
  export * from "./filter-input";
5
6
  export * from "./filter-pill";
6
7
  export * from "./filter-utils";
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { ContextMenuProps } from "@vuu-ui/vuu-popups";
3
- import { MenuActionHandler } from "@vuu-ui/vuu-data-types";
4
- import { ListProps } from "@vuu-ui/vuu-ui-controls";
5
- import "./FilterBuilderMenu.css";
6
- export interface FilterBuilderMenuProps extends Omit<ContextMenuProps, "children"> {
7
- ListProps?: Pick<ListProps, "onKeyDownCapture">;
8
- onMenuAction: MenuActionHandler;
9
- }
10
- export declare const FilterBuilderMenu: ({ ListProps, onMenuAction, }: FilterBuilderMenuProps) => JSX.Element;
@@ -1 +0,0 @@
1
- export * from "./FilterBuilderMenu";
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- import { NumericFilterClauseOp } from "@vuu-ui/vuu-filter-types";
3
- import { FilterClauseValueEditor } from "./filterClauseTypes";
4
- interface Props extends Pick<FilterClauseValueEditor<number>, "onInputComplete"> {
5
- value: number | undefined;
6
- operator: NumericFilterClauseOp;
7
- }
8
- export declare const DateInput: React.FC<Props>;
9
- export {};
@@ -1,17 +0,0 @@
1
- import { SuggestionFetcher, TableSchema } from "@vuu-ui/vuu-data-types";
2
- import { ColumnDescriptorsByName, FilterClause } from "@vuu-ui/vuu-filter-types";
3
- import { CloseReason } from "@vuu-ui/vuu-ui-controls";
4
- import { HTMLAttributes } from "react";
5
- import { FilterClauseCancelHandler } from "./useFilterClauseEditor";
6
- import "./FilterClauseEditor.css";
7
- export interface FilterClauseEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
8
- columnsByName: ColumnDescriptorsByName;
9
- filterClause: Partial<FilterClause>;
10
- onCancel?: FilterClauseCancelHandler;
11
- onChange: (filterClause: Partial<FilterClause>) => void;
12
- onDropdownClose?: (closeReason: CloseReason) => void;
13
- onDropdownOpen?: () => void;
14
- suggestionProvider?: () => SuggestionFetcher;
15
- tableSchema?: TableSchema;
16
- }
17
- export declare const FilterClauseEditor: ({ className, columnsByName, onCancel, onChange, onDropdownClose, onDropdownOpen, filterClause, suggestionProvider, tableSchema, ...htmlAttributes }: FilterClauseEditorProps) => JSX.Element;
@@ -1,11 +0,0 @@
1
- import { HTMLAttributes, RefObject } from "react";
2
- import { FilterClauseValueEditor } from "./filterClauseTypes";
3
- import { SuggestionFetcher } from "@vuu-ui/vuu-data-types";
4
- export interface TextInputProps extends FilterClauseValueEditor, HTMLAttributes<HTMLDivElement> {
5
- "data-field"?: string;
6
- ref: RefObject<HTMLDivElement>;
7
- operator: string;
8
- suggestionProvider?: () => SuggestionFetcher;
9
- value: string | string[];
10
- }
11
- export declare const FilterClauseTextValueEditor: import("react").ForwardRefExoticComponent<Omit<TextInputProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- import { TableSchema } from "@vuu-ui/vuu-data-types";
3
- import { useFilterClauseEditor } from "./useFilterClauseEditor";
4
- import { FilterClauseEditorProps } from "./FilterClauseEditor";
5
- type InputElementProps = Pick<ReturnType<typeof useFilterClauseEditor>, "selectedColumn" | "operator" | "InputProps" | "onChangeValue" | "onDeselectValue" | "value"> & Pick<FilterClauseEditorProps, "suggestionProvider"> & {
6
- table?: TableSchema["table"];
7
- };
8
- export declare const FilterClauseValueEditor: React.FC<InputElementProps>;
9
- export {};
@@ -1,9 +0,0 @@
1
- import { HTMLAttributes, RefObject } from "react";
2
- import { FilterClauseValueEditor } from "./filterClauseTypes";
3
- export interface NumericInputProps extends FilterClauseValueEditor<number>, HTMLAttributes<HTMLDivElement> {
4
- operatorInputRef?: RefObject<HTMLInputElement>;
5
- operator: string;
6
- ref: RefObject<HTMLDivElement>;
7
- value?: number;
8
- }
9
- export declare const NumericInput: import("react").ForwardRefExoticComponent<Omit<NumericInputProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,32 +0,0 @@
1
- import { ColumnDescriptorsByName, FilterClause, FilterClauseOp } from "@vuu-ui/vuu-filter-types";
2
- import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
- import { SingleSelectionHandler } from "@vuu-ui/vuu-ui-controls";
4
- import { KeyboardEvent, KeyboardEventHandler } from "react";
5
- type FilterClauseValue = boolean | boolean[] | string | string[] | number | number[];
6
- export type FilterClauseCancelType = "Backspace";
7
- export type FilterClauseCancelHandler = (reason: FilterClauseCancelType) => void;
8
- export interface FilterClauseEditorHookProps {
9
- columnsByName: ColumnDescriptorsByName;
10
- filterClause: Partial<FilterClause>;
11
- onCancel?: FilterClauseCancelHandler;
12
- onChange: (filterClause: Partial<FilterClause>) => void;
13
- }
14
- export declare const useFilterClauseEditor: ({ filterClause, onCancel, onChange, columnsByName, }: FilterClauseEditorHookProps) => {
15
- InputProps: {
16
- inputProps: {
17
- onKeyDownCapture: (evt: KeyboardEvent<HTMLInputElement>) => void;
18
- };
19
- };
20
- columnRef: import("react").RefObject<HTMLDivElement>;
21
- onChangeValue: (value: string | string[] | number | number[]) => void;
22
- onClear: (e: any) => void;
23
- onClearKeyDown: KeyboardEventHandler<Element>;
24
- onDeselectValue: () => void;
25
- onColumnSelect: SingleSelectionHandler<ColumnDescriptor>;
26
- onOperatorSelect: SingleSelectionHandler<string>;
27
- operator: FilterClauseOp | undefined;
28
- operatorRef: import("react").RefObject<HTMLDivElement>;
29
- selectedColumn: ColumnDescriptor | undefined;
30
- value: FilterClauseValue | undefined;
31
- };
32
- export {};