@vuu-ui/vuu-data-test 0.13.45 → 0.13.46

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 (143) hide show
  1. package/cjs/simul/reference-data/instruments.js +5 -4
  2. package/cjs/simul/reference-data/instruments.js.map +1 -1
  3. package/esm/simul/reference-data/instruments.js +5 -4
  4. package/esm/simul/reference-data/instruments.js.map +1 -1
  5. package/package.json +6 -6
  6. package/types/vuu-context-menu/src/ContextMenu.d.ts +10 -0
  7. package/types/vuu-context-menu/src/ContextMenuProvider.d.ts +16 -0
  8. package/types/vuu-context-menu/src/index.d.ts +3 -0
  9. package/types/vuu-context-menu/src/menu-utils.d.ts +17 -0
  10. package/types/vuu-context-menu/src/useContextMenu.d.ts +10 -0
  11. package/types/{basket → vuu-data-test/src/basket}/BasketModule.d.ts +1 -1
  12. package/types/{simul → vuu-data-test/src/simul}/SimulModule.d.ts +1 -1
  13. package/types/{simul → vuu-data-test/src/simul}/reference-data/instrument-prices.d.ts +8 -2
  14. package/types/{simul → vuu-data-test/src/simul}/reference-data/instruments.d.ts +5 -4
  15. package/types/{test → vuu-data-test/src/test}/TestModule.d.ts +1 -1
  16. package/types/vuu-utils/src/Clock.d.ts +20 -0
  17. package/types/vuu-utils/src/DataWindow.d.ts +39 -0
  18. package/types/vuu-utils/src/ShellContext.d.ts +11 -0
  19. package/types/vuu-utils/src/ThemeProvider.d.ts +32 -0
  20. package/types/vuu-utils/src/array-utils.d.ts +8 -0
  21. package/types/vuu-utils/src/box-utils.d.ts +24 -0
  22. package/types/vuu-utils/src/broadcast-channel.d.ts +16 -0
  23. package/types/vuu-utils/src/column-utils.d.ts +181 -0
  24. package/types/vuu-utils/src/common-types.d.ts +6 -0
  25. package/types/vuu-utils/src/component-registry.d.ts +65 -0
  26. package/types/vuu-utils/src/context-definitions/DataContext.d.ts +18 -0
  27. package/types/vuu-utils/src/context-definitions/DataProvider.d.ts +7 -0
  28. package/types/vuu-utils/src/context-definitions/DataSourceProvider.d.ts +12 -0
  29. package/types/vuu-utils/src/context-definitions/WorkspaceContext.d.ts +17 -0
  30. package/types/vuu-utils/src/cookie-utils.d.ts +1 -0
  31. package/types/vuu-utils/src/css-utils.d.ts +1 -0
  32. package/types/vuu-utils/src/data-utils.d.ts +19 -0
  33. package/types/vuu-utils/src/datasource/BaseDataSource.d.ts +60 -0
  34. package/types/vuu-utils/src/datasource/datasource-action-utils.d.ts +7 -0
  35. package/types/vuu-utils/src/datasource/datasource-filter-utils.d.ts +2 -0
  36. package/types/vuu-utils/src/datasource/datasource-utils.d.ts +49 -0
  37. package/types/vuu-utils/src/date/date-utils.d.ts +36 -0
  38. package/types/vuu-utils/src/date/dateTimePattern.d.ts +8 -0
  39. package/types/vuu-utils/src/date/formatter.d.ts +4 -0
  40. package/types/vuu-utils/src/date/index.d.ts +4 -0
  41. package/types/vuu-utils/src/date/types.d.ts +24 -0
  42. package/types/vuu-utils/src/debug-utils.d.ts +9 -0
  43. package/types/vuu-utils/src/event-emitter.d.ts +21 -0
  44. package/types/vuu-utils/src/feature-utils.d.ts +110 -0
  45. package/types/vuu-utils/src/filters/filter-utils.d.ts +82 -0
  46. package/types/vuu-utils/src/filters/filterAsQuery.d.ts +7 -0
  47. package/types/vuu-utils/src/filters/index.d.ts +2 -0
  48. package/types/vuu-utils/src/form-utils.d.ts +23 -0
  49. package/types/vuu-utils/src/formatting-utils.d.ts +14 -0
  50. package/types/vuu-utils/src/getUniqueId.d.ts +1 -0
  51. package/types/vuu-utils/src/group-utils.d.ts +10 -0
  52. package/types/vuu-utils/src/html-utils.d.ts +21 -0
  53. package/types/vuu-utils/src/index.d.ts +74 -0
  54. package/types/vuu-utils/src/input-utils.d.ts +2 -0
  55. package/types/vuu-utils/src/invariant.d.ts +1 -0
  56. package/types/vuu-utils/src/itemToString.d.ts +2 -0
  57. package/types/vuu-utils/src/json-types.d.ts +52 -0
  58. package/types/vuu-utils/src/json-utils.d.ts +6 -0
  59. package/types/vuu-utils/src/keyboard-utils.d.ts +15 -0
  60. package/types/vuu-utils/src/keyset.d.ts +16 -0
  61. package/types/vuu-utils/src/layout-types.d.ts +22 -0
  62. package/types/vuu-utils/src/list-utils.d.ts +2 -0
  63. package/types/vuu-utils/src/local-storage-utils.d.ts +3 -0
  64. package/types/vuu-utils/src/logging-utils.d.ts +45 -0
  65. package/types/vuu-utils/src/menu-utils.d.ts +6 -0
  66. package/types/vuu-utils/src/module-utils.d.ts +8 -0
  67. package/types/vuu-utils/src/moving-window.d.ts +18 -0
  68. package/types/vuu-utils/src/nanoid/index.d.ts +1 -0
  69. package/types/vuu-utils/src/perf-utils.d.ts +5 -0
  70. package/types/vuu-utils/src/promise-utils.d.ts +8 -0
  71. package/types/vuu-utils/src/protocol-message-utils.d.ts +34 -0
  72. package/types/vuu-utils/src/range-utils.d.ts +31 -0
  73. package/types/vuu-utils/src/react-utils.d.ts +8 -0
  74. package/types/vuu-utils/src/round-decimal.d.ts +1 -0
  75. package/types/vuu-utils/src/row-utils.d.ts +27 -0
  76. package/types/vuu-utils/src/selection-utils.d.ts +4 -0
  77. package/types/vuu-utils/src/shell-layout-types.d.ts +15 -0
  78. package/types/vuu-utils/src/sort-utils.d.ts +11 -0
  79. package/types/vuu-utils/src/table-schema-utils.d.ts +3 -0
  80. package/types/vuu-utils/src/text-utils.d.ts +2 -0
  81. package/types/vuu-utils/src/tree-types.d.ts +9 -0
  82. package/types/vuu-utils/src/tree-utils.d.ts +9 -0
  83. package/types/vuu-utils/src/ts-utils.d.ts +20 -0
  84. package/types/vuu-utils/src/typeahead-utils.d.ts +1 -0
  85. package/types/vuu-utils/src/url-utils.d.ts +2 -0
  86. package/types/vuu-utils/src/useId.d.ts +1 -0
  87. package/types/vuu-utils/src/useLayoutEffectSkipFirst.d.ts +2 -0
  88. package/types/vuu-utils/src/useStateRef.d.ts +2 -0
  89. package/types/vuu-utils/src/user-types.d.ts +4 -0
  90. /package/types/{ArrayProxy.d.ts → vuu-data-test/src/ArrayProxy.d.ts} +0 -0
  91. /package/types/{RuntimeVisualLink.d.ts → vuu-data-test/src/RuntimeVisualLink.d.ts} +0 -0
  92. /package/types/{Table.d.ts → vuu-data-test/src/Table.d.ts} +0 -0
  93. /package/types/{TickingArrayDataSource.d.ts → vuu-data-test/src/TickingArrayDataSource.d.ts} +0 -0
  94. /package/types/{UpdateGenerator.d.ts → vuu-data-test/src/UpdateGenerator.d.ts} +0 -0
  95. /package/types/{basket → vuu-data-test/src/basket}/basket-schemas.d.ts +0 -0
  96. /package/types/{basket → vuu-data-test/src/basket}/index.d.ts +0 -0
  97. /package/types/{basket → vuu-data-test/src/basket}/reference-data/constituents.d.ts +0 -0
  98. /package/types/{basket → vuu-data-test/src/basket}/reference-data/ftse100.d.ts +0 -0
  99. /package/types/{basket → vuu-data-test/src/basket}/reference-data/hsi.d.ts +0 -0
  100. /package/types/{basket → vuu-data-test/src/basket}/reference-data/nasdaq100.d.ts +0 -0
  101. /package/types/{basket → vuu-data-test/src/basket}/reference-data/prices.d.ts +0 -0
  102. /package/types/{basket → vuu-data-test/src/basket}/reference-data/sp500.d.ts +0 -0
  103. /package/types/{core → vuu-data-test/src/core}/module/ModuleContainer.d.ts +0 -0
  104. /package/types/{core → vuu-data-test/src/core}/module/VuuModule.d.ts +0 -0
  105. /package/types/{core → vuu-data-test/src/core}/table/TableContainer.d.ts +0 -0
  106. /package/types/{data-utils.d.ts → vuu-data-test/src/data-utils.d.ts} +0 -0
  107. /package/types/{index.d.ts → vuu-data-test/src/index.d.ts} +0 -0
  108. /package/types/{local-datasource-provider → vuu-data-test/src/local-datasource-provider}/LocalDatasourceProvider.d.ts +0 -0
  109. /package/types/{makeSuggestions.d.ts → vuu-data-test/src/makeSuggestions.d.ts} +0 -0
  110. /package/types/{rowUpdates.d.ts → vuu-data-test/src/rowUpdates.d.ts} +0 -0
  111. /package/types/{schemas.d.ts → vuu-data-test/src/schemas.d.ts} +0 -0
  112. /package/types/{session-table-utils.d.ts → vuu-data-test/src/session-table-utils.d.ts} +0 -0
  113. /package/types/{simul → vuu-data-test/src/simul}/index.d.ts +0 -0
  114. /package/types/{simul → vuu-data-test/src/simul}/reference-data/accounts.d.ts +0 -0
  115. /package/types/{simul → vuu-data-test/src/simul}/reference-data/algos.d.ts +0 -0
  116. /package/types/{simul → vuu-data-test/src/simul}/reference-data/currencies.d.ts +0 -0
  117. /package/types/{simul → vuu-data-test/src/simul}/reference-data/index.d.ts +0 -0
  118. /package/types/{simul → vuu-data-test/src/simul}/reference-data/instruments-extended.d.ts +0 -0
  119. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/convert-string-to-base-ten-number.d.ts +0 -0
  120. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/fixtures/alphabet.d.ts +0 -0
  121. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/fixtures/alphanumeric-values.d.ts +0 -0
  122. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/fixtures/base-ten-numbers.d.ts +0 -0
  123. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-cusip-check-code.d.ts +0 -0
  124. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-cusip-without-check-code.d.ts +0 -0
  125. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-cusip.d.ts +0 -0
  126. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-random-alphanumeric.d.ts +0 -0
  127. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-random-base-ten-number.d.ts +0 -0
  128. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.d.ts +0 -0
  129. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/generate-random-string-of-base-ten-chars.d.ts +0 -0
  130. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/index.d.ts +0 -0
  131. /package/types/{simul → vuu-data-test/src/simul}/reference-data/isin-generator/is-odd.d.ts +0 -0
  132. /package/types/{simul → vuu-data-test/src/simul}/reference-data/locations.d.ts +0 -0
  133. /package/types/{simul → vuu-data-test/src/simul}/reference-data/lotsizes.d.ts +0 -0
  134. /package/types/{simul → vuu-data-test/src/simul}/reference-data/orderStatus.d.ts +0 -0
  135. /package/types/{simul → vuu-data-test/src/simul}/reference-data/orders.d.ts +0 -0
  136. /package/types/{simul → vuu-data-test/src/simul}/reference-data/parent-child-orders.d.ts +0 -0
  137. /package/types/{simul → vuu-data-test/src/simul}/reference-data/priceStrategies.d.ts +0 -0
  138. /package/types/{simul → vuu-data-test/src/simul}/reference-data/prices.d.ts +0 -0
  139. /package/types/{simul → vuu-data-test/src/simul}/reference-data/sides.d.ts +0 -0
  140. /package/types/{simul → vuu-data-test/src/simul}/simul-schemas.d.ts +0 -0
  141. /package/types/{test → vuu-data-test/src/test}/index.d.ts +0 -0
  142. /package/types/{test → vuu-data-test/src/test}/test-schemas.d.ts +0 -0
  143. /package/types/{vuu-row-generator.d.ts → vuu-data-test/src/vuu-row-generator.d.ts} +0 -0
@@ -0,0 +1,65 @@
1
+ import { DataSourceRow, EditRuleValidator } from "@vuu-ui/vuu-data-types";
2
+ import { VuuColumnDataType } from "@vuu-ui/vuu-protocol-types";
3
+ import { ColumnDescriptor, ColumnDescriptorCustomRenderer, ColumnTypeRendering, HeaderCellProps, TableCellRendererProps } from "@vuu-ui/vuu-table-types";
4
+ import { FunctionComponent as FC, HTMLAttributes } from "react";
5
+ import { ColumnMap } from "./column-utils";
6
+ export interface CellConfigPanelProps extends HTMLAttributes<HTMLDivElement> {
7
+ onConfigChange: () => void;
8
+ }
9
+ export type PropertyChangeHandler = (propertyName: string, propertyValue: string | number | boolean) => void;
10
+ export type ColumnRenderPropsChangeHandler = (renderProps: ColumnTypeRendering) => void;
11
+ export interface ConfigurationEditorProps {
12
+ column: ColumnDescriptorCustomRenderer;
13
+ onChangeRendering: ColumnRenderPropsChangeHandler;
14
+ }
15
+ export type RowClassNameGenerator = (row: DataSourceRow, columnMap: ColumnMap) => string | undefined;
16
+ export type RowClassGenerator = {
17
+ id: string;
18
+ fn: RowClassNameGenerator;
19
+ };
20
+ export type ConfigEditorComponent = FC<CellConfigPanelProps>;
21
+ export type layoutComponentType = "container" | "view";
22
+ export type ComponentType = layoutComponentType | "cell-renderer" | "cell-config-panel" | "column-header-content-renderer" | "column-header-label-renderer" | "component" | "data-edit-validator" | "row-class-generator";
23
+ /**
24
+ * The CellRenderer Options provide configuration for the Column Settings panel
25
+ */
26
+ type CellRendererOptions = {
27
+ configEditor?: string;
28
+ description?: string;
29
+ label?: string;
30
+ serverDataType?: VuuColumnDataType | VuuColumnDataType[] | "json" | "private";
31
+ userCanAssign?: boolean;
32
+ };
33
+ export interface CellRendererDescriptor extends CellRendererOptions {
34
+ name: string;
35
+ }
36
+ /**
37
+ * This check is performed during construction of UI from JSON. If component
38
+ * is not registered, it will log a warning.
39
+ */
40
+ export declare const isContainer: (componentType: string) => boolean;
41
+ /**
42
+ * This check is performed during construction of UI from JSON. If component
43
+ * is not registered, it will log a warning.
44
+ */
45
+ export declare const isView: (componentType: string) => boolean;
46
+ /**
47
+ * This check is performed during construction of UI from JSON. If component
48
+ * is not registered, it will log a warning.
49
+ */
50
+ export declare const isLayoutComponent: (componentType: string) => componentType is layoutComponentType;
51
+ export declare function registerComponent(componentName: string, component: RowClassGenerator, componentType: "row-class-generator", options?: CellRendererOptions): void;
52
+ export declare function registerComponent(componentName: string, component: EditRuleValidator, componentType: "data-edit-validator", options?: CellRendererOptions): void;
53
+ export declare function registerComponent(componentName: string, component: FC<any>, componentType: Omit<ComponentType, "data-edit-validator" | "row-class-generator">, options?: CellRendererOptions): void;
54
+ export declare const registerConfigurationEditor: (componentName: string, configurationEditor: FC<ConfigurationEditorProps>) => void;
55
+ export declare const getRegisteredCellRenderers: (serverDataType?: VuuColumnDataType | "json") => CellRendererDescriptor[];
56
+ export declare const getLayoutComponent: (componentName: string) => FC<any>;
57
+ export declare const getCellRendererOptions: (renderName: string) => CellRendererOptions | undefined;
58
+ export declare function getCellRenderer(column: ColumnDescriptor): FC<TableCellRendererProps> | undefined;
59
+ export declare function getColumnHeaderContentRenderer(column: ColumnDescriptor): FC<Omit<HeaderCellProps, "index" | "id">> | undefined;
60
+ export declare function getColumnHeaderLabelRenderer(column: ColumnDescriptor): FC<Omit<HeaderCellProps, "index" | "id">> | undefined;
61
+ export declare const getRowClassNameGenerator: (generatorId: string) => RowClassGenerator | undefined;
62
+ export declare function getConfigurationEditor(configEditor?: string): FC<ConfigurationEditorProps> | undefined;
63
+ export declare function getCellConfigPanelRenderer(name: string): ConfigEditorComponent | undefined;
64
+ export declare function getEditRuleValidator(name: string): EditRuleValidator | undefined;
65
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { DataSource, DataSourceConstructorProps, ServerAPI, TableSchema } from "@vuu-ui/vuu-data-types";
2
+ export type DataSourceConstructor = {
3
+ new (props: DataSourceConstructorProps): DataSource;
4
+ };
5
+ export interface DataContextProps {
6
+ VuuDataSource: DataSourceConstructor;
7
+ isLocalData: boolean;
8
+ getServerAPI: () => Promise<Pick<ServerAPI, "getTableList" | "getTableSchema" | "rpcCall">>;
9
+ /**
10
+ * A tableSchema would normally be requested via the serverAPI.
11
+ * schemas can be injected, in which case these 'local' schemas
12
+ * will be returned from the getTableSchema API call.
13
+ * The key is formed from concatenation of module and tableName
14
+ * from VuuTable e.g 'SIMUL:instruments'
15
+ */
16
+ tableSchemas?: Record<string, TableSchema>;
17
+ }
18
+ export declare const DataContext: import("react").Context<DataContextProps>;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from "react";
2
+ import { DataContextProps } from "./DataContext";
3
+ export declare const DataProvider: ({ children, getServerAPI, isLocalData, VuuDataSource, }: Omit<DataContextProps, "isLocalData"> & {
4
+ children: ReactNode;
5
+ isLocalData?: boolean;
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const useData: () => DataContextProps;
@@ -0,0 +1,12 @@
1
+ import { DataSource } from "@vuu-ui/vuu-data-types";
2
+ import { ReactNode } from "react";
3
+ export interface DataSourceContextProps {
4
+ dataSource?: DataSource;
5
+ }
6
+ export declare const DataSourceContext: import("react").Context<DataSourceContextProps>;
7
+ export declare const DataSourceProvider: ({ children, dataSource, }: {
8
+ children: ReactNode;
9
+ dataSource: DataSource;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare function useDataSource(throwIfNoDataSource: true): DataSource;
12
+ export declare function useDataSource(throwIfNoDataSource: false | undefined): DataSource | undefined;
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { ApplicationSetting, ApplicationSettings, LayoutJSON } from "../json-types";
3
+ import { LayoutMetadata, LayoutMetadataDto } from "../layout-types";
4
+ export interface WorkspaceContextProps {
5
+ layoutMetadata: LayoutMetadata[];
6
+ layoutPlaceholderJSON?: LayoutJSON;
7
+ getApplicationSettings: (key?: keyof ApplicationSettings) => ApplicationSettings | ApplicationSetting | undefined;
8
+ loadLayoutById: (id: string) => void;
9
+ saveApplicationSettings: (settings: ApplicationSettings | ApplicationSetting, key?: keyof ApplicationSettings) => void;
10
+ saveLayout: (n: LayoutMetadataDto) => void;
11
+ saveApplicationLayout: (layout: LayoutJSON) => void;
12
+ workspaceJSON?: LayoutJSON | LayoutJSON[];
13
+ }
14
+ export declare const WorkspaceContext: React.Context<WorkspaceContextProps>;
15
+ export declare const usePlaceholderJSON: () => LayoutJSON<{
16
+ [key: string]: any;
17
+ }> | undefined;
@@ -0,0 +1 @@
1
+ export declare const getCookieValue: (name: string) => string | number | undefined;
@@ -0,0 +1 @@
1
+ export declare const importCSS: (path: string) => Promise<CSSStyleSheet>;
@@ -0,0 +1,19 @@
1
+ export type valueChangeDirection = "up1" | "up2" | "down1" | "down2" | "";
2
+ export declare const UP1 = "up1";
3
+ export declare const UP2 = "up2";
4
+ export declare const DOWN1 = "down1";
5
+ export declare const DOWN2 = "down2";
6
+ export declare const stringIsValidInt: (val: string) => boolean;
7
+ export declare const stringIsValidDecimal: (val: string) => boolean;
8
+ export declare const stringIsValidNumber: (val: string) => boolean;
9
+ export declare const numericTypeOfStringValue: (val: string) => "double" | "int" | "NaN";
10
+ export declare const isValidNumber: (n: unknown) => n is number;
11
+ export declare const shallowEquals: (o1?: {
12
+ [key: string]: unknown;
13
+ }, o2?: {
14
+ [key: string]: unknown;
15
+ }) => boolean;
16
+ export declare function getMovingValueDirection(newValue?: number, direction?: valueChangeDirection, prevValue?: number,
17
+ /** the number of decimal places to take into account when highlighting a change */
18
+ decimalPlaces?: number): valueChangeDirection;
19
+ export declare function asInteger(index: number | string | undefined, defaultValue?: number): number;
@@ -0,0 +1,60 @@
1
+ import type { DataSource, DataSourceConfig, DataSourceConstructorProps, DataSourceEvents, DataSourceFilter, DataSourceSubscribeCallback, DataSourceSubscribeProps, WithBaseFilter, WithFullConfig } from "@vuu-ui/vuu-data-types";
2
+ import { LinkDescriptorWithLabel, VuuAggregation, VuuRange, VuuRpcEditRequest, VuuRpcEditResponse, VuuSort } from "@vuu-ui/vuu-protocol-types";
3
+ import { EventEmitter } from "../event-emitter";
4
+ import { DataSourceConfigChanges } from "./datasource-utils";
5
+ import { Range } from "../range-utils";
6
+ export type RuntimeConfig = WithBaseFilter<WithFullConfig> & {
7
+ visualLink?: LinkDescriptorWithLabel;
8
+ };
9
+ export declare abstract class BaseDataSource extends EventEmitter<DataSourceEvents> implements Pick<DataSource, "config"> {
10
+ #private;
11
+ viewport: string;
12
+ protected _clientCallback: DataSourceSubscribeCallback | undefined;
13
+ protected _config: RuntimeConfig;
14
+ protected _impendingConfig: RuntimeConfig | undefined;
15
+ protected _range: Range;
16
+ protected _size: number;
17
+ protected _title: string | undefined;
18
+ private awaitingConfirmationOfConfigChanges;
19
+ constructor({ aggregations, baseFilterSpec, columns, filterSpec, groupBy, sort, title, viewport, }: Omit<DataSourceConstructorProps, "table">);
20
+ subscribe({ baseFilterSpec, columns, aggregations, range, sort, groupBy, filterSpec, viewport, }: DataSourceSubscribeProps, callback: DataSourceSubscribeCallback): void;
21
+ get aggregations(): VuuAggregation[];
22
+ set aggregations(aggregations: VuuAggregation[]);
23
+ get baseFilter(): DataSourceFilter | undefined;
24
+ set baseFilter(baseFilter: DataSourceFilter | undefined);
25
+ get columns(): string[];
26
+ set columns(columns: string[]);
27
+ get filter(): DataSourceFilter;
28
+ set filter(filter: DataSourceFilter);
29
+ get isAwaitingConfirmationOfConfigChange(): boolean;
30
+ protected confirmConfigChange(): void;
31
+ get config(): WithBaseFilter<WithFullConfig>;
32
+ set config(config: WithBaseFilter<WithFullConfig>);
33
+ get impendingConfig(): undefined | WithBaseFilter<WithFullConfig>;
34
+ /**
35
+ * This can be set by subclass in cases where we want to await ACK of async request
36
+ * before we go ahead and apply change to config.
37
+ * It is set in place of 'config' itself and it is then the responsibility of the client
38
+ * to call 'confirmConfigChange' once confirmation of the change is received.
39
+ * Client can check 'isAwaitingConfirmationOfConfigChange' to see if a change is pending
40
+ * confirmation.
41
+ */
42
+ set impendingConfig(config: undefined | WithBaseFilter<WithFullConfig>);
43
+ get pageCount(): number;
44
+ set pageCount(pageCount: number);
45
+ get range(): Range;
46
+ set range(range: Range);
47
+ get size(): number;
48
+ set size(size: number);
49
+ get sort(): VuuSort;
50
+ set sort(sort: VuuSort);
51
+ get title(): string;
52
+ set title(title: string);
53
+ applyConfig(config: WithBaseFilter<DataSourceConfig>, preserveExistingConfigAttributes?: boolean): DataSourceConfigChanges | undefined;
54
+ freeze(): void;
55
+ unfreeze(): void;
56
+ get freezeTimestamp(): number | undefined;
57
+ get isFrozen(): boolean;
58
+ abstract rangeRequest(range: VuuRange): void;
59
+ editRpcCall(rpcRequest: Omit<VuuRpcEditRequest, "vpId">): Promise<VuuRpcEditResponse>;
60
+ }
@@ -0,0 +1,7 @@
1
+ import { DataSourceMenusMessage, DataSourceVisualLinkCreatedMessage, DataSourceVisualLinkRemovedMessage, DataSourceVisualLinksMessage, VuuFeatureMessage } from "@vuu-ui/vuu-data-types";
2
+ import { GridAction } from "@vuu-ui/vuu-table-types";
3
+ export declare const isVisualLinksAction: (action: GridAction) => action is DataSourceVisualLinksMessage;
4
+ export declare const isVisualLinkCreatedAction: (action: GridAction) => action is DataSourceVisualLinkCreatedMessage;
5
+ export declare const isVisualLinkRemovedAction: (action: GridAction) => action is DataSourceVisualLinkRemovedMessage;
6
+ export declare const isViewportMenusAction: (action: GridAction) => action is DataSourceMenusMessage;
7
+ export declare const isVuuFeatureAction: (action: GridAction) => action is VuuFeatureMessage;
@@ -0,0 +1,2 @@
1
+ import { WithBaseFilter, WithFullConfig } from "@vuu-ui/vuu-data-types";
2
+ export declare const combineFilters: ({ baseFilterSpec, filterSpec, ...config }: WithBaseFilter<WithFullConfig>) => WithFullConfig;
@@ -0,0 +1,49 @@
1
+ import { ConnectionQualityMetrics, DataSourceCallbackMessage, DataSourceConfig, DataSourceDataMessage, DataSourceRow, RpcResponse, TypeaheadSuggestionProvider, VuuUIMessageIn, VuuUIMessageInRPC, VuuUIMessageInTableMeta, VuuUIMessageOutViewport, WithBaseFilter, WithFilter, WithFullConfig, WithGroupBy, WithSort } from "@vuu-ui/vuu-data-types";
2
+ import { LinkDescriptorWithLabel, VuuCreateVisualLink, VuuFilter, VuuRemoveVisualLink, VuuRowDataItemType, VuuRpcEditError, VuuSort } from "@vuu-ui/vuu-protocol-types";
3
+ import { ColumnMap } from "../column-utils";
4
+ export declare const NoFilter: VuuFilter;
5
+ export declare const NoSort: VuuSort;
6
+ export declare const vanillaConfig: WithFullConfig;
7
+ export type DataSourceConfigChanges = {
8
+ aggregationsChanged: boolean;
9
+ baseFilterChanged: boolean;
10
+ columnsChanged: boolean;
11
+ filterChanged: boolean;
12
+ groupByChanged: boolean;
13
+ sortChanged: boolean;
14
+ visualLinkChanged: boolean;
15
+ };
16
+ export type MaybeDataSourceConfigChanges = DataSourceConfigChanges & {
17
+ noChanges: boolean;
18
+ };
19
+ type DataConfigPredicate = (config: WithBaseFilter<DataSourceConfig>, newConfig: WithBaseFilter<DataSourceConfig>) => boolean;
20
+ export declare const isBaseFilterChanged: DataConfigPredicate;
21
+ export declare const isFilterChanged: DataConfigPredicate;
22
+ export declare const isGroupByChanged: DataConfigPredicate;
23
+ export declare const NO_CONFIG_CHANGES: MaybeDataSourceConfigChanges;
24
+ export declare const isConfigChanged: (config: DataSourceConfig | undefined, newConfig: DataSourceConfig | undefined) => MaybeDataSourceConfigChanges;
25
+ export declare const hasGroupBy: (config?: WithBaseFilter<DataSourceConfig>) => config is WithGroupBy;
26
+ export declare const hasBaseFilter: (config?: WithBaseFilter<DataSourceConfig>) => config is WithFilter;
27
+ export declare const hasFilter: (config?: DataSourceConfig) => config is WithFilter;
28
+ export declare const hasSort: (config?: DataSourceConfig) => config is WithSort;
29
+ export declare const isTypeaheadSuggestionProvider: (source: unknown) => source is TypeaheadSuggestionProvider;
30
+ export declare const isTableSchemaMessage: (message: VuuUIMessageIn) => message is VuuUIMessageInTableMeta;
31
+ export declare const isConnectionQualityMetrics: (msg: object) => msg is ConnectionQualityMetrics;
32
+ export declare const messageHasResult: (msg: object) => msg is VuuUIMessageInRPC;
33
+ export declare const isErrorResponse: (response?: Partial<RpcResponse>) => response is VuuRpcEditError;
34
+ export declare const isVisualLinkMessage: (msg: unknown) => msg is VuuCreateVisualLink | VuuRemoveVisualLink;
35
+ export declare const isViewportMessage: (msg: object) => msg is VuuUIMessageOutViewport;
36
+ export type DataSourceDataMessageWithRows = Omit<DataSourceDataMessage, "rows"> & {
37
+ rows: DataSourceRow[];
38
+ };
39
+ export type DataSourceDataMessageWithSize = Omit<DataSourceDataMessage, "size"> & {
40
+ size: number;
41
+ };
42
+ export declare const messageHasDataRows: (message: DataSourceCallbackMessage) => message is DataSourceDataMessageWithRows;
43
+ export declare const messageHasSize: (message: DataSourceCallbackMessage) => message is DataSourceDataMessageWithSize;
44
+ export declare const withConfigDefaults: (config: WithBaseFilter<DataSourceConfig>) => WithBaseFilter<WithFullConfig> & {
45
+ visualLink?: LinkDescriptorWithLabel;
46
+ };
47
+ export type Entity = Record<string, VuuRowDataItemType>;
48
+ export declare const dataSourceRowToEntity: <T extends Entity = Entity>(row: DataSourceRow, columnMap: ColumnMap) => T;
49
+ export {};
@@ -0,0 +1,36 @@
1
+ import { CalendarDate } from "@internationalized/date";
2
+ export declare function toCalendarDate(d: Date): CalendarDate;
3
+ export type oneToFive = 1 | 2 | 3 | 4 | 5;
4
+ export type zeroToFive = 0 | oneToFive;
5
+ export type sixToNine = 6 | 7 | 8 | 9;
6
+ export type zeroToNine = zeroToFive | sixToNine;
7
+ export type oneToNine = oneToFive | sixToNine;
8
+ export type TimeUnit = "hours" | "minutes" | "seconds";
9
+ export type Hours = `${0 | 1}${zeroToNine}` | `2${0 | 1 | 2 | 3}`;
10
+ export type Minutes = `${zeroToFive}${zeroToNine}`;
11
+ export type Seconds = `${zeroToFive}${zeroToNine}`;
12
+ export type TimeUnitValue<T extends TimeUnit> = T extends "hours" ? Hours : T extends "minutes" ? Minutes : Seconds;
13
+ export type TimeString = `${number}${number}:${number}${number}:${number}${number}`;
14
+ type YYYY = `19${zeroToNine}${zeroToNine}` | `20${zeroToNine}${zeroToNine}`;
15
+ type MM = `0${oneToNine}` | `1${0 | 1 | 2}`;
16
+ type DD = `${0}${oneToNine}` | `${1 | 2}${zeroToNine}` | `3${0 | 1}`;
17
+ export type DateStringISO = `${YYYY}-${MM}-${DD}`;
18
+ export declare const zeroTime: TimeString;
19
+ export declare const zeroTimeUnit: TimeUnitValue<TimeUnit>;
20
+ export declare function incrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): Hours | TimeUnitValue<T>;
21
+ export declare function decrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): Hours | TimeUnitValue<T>;
22
+ export declare function updateTimeString<T extends TimeUnit>(timeString: TimeString, unit: T, value: TimeUnitValue<T>): TimeString;
23
+ export declare const isValidTimeString: (value: unknown) => value is TimeString;
24
+ export declare function asTimeString(value: unknown, allowUndefined: false): TimeString;
25
+ export declare function asTimeString(value: unknown, allowUndefined?: true): TimeString | undefined;
26
+ export interface Time {
27
+ hours: number;
28
+ minutes: number;
29
+ seconds: number;
30
+ asDate: (date?: Date | DateStringISO) => Date;
31
+ }
32
+ export declare const Time: {
33
+ (timeString: TimeString): Time;
34
+ millisToTimeString(timestamp: number): TimeString;
35
+ };
36
+ export {};
@@ -0,0 +1,8 @@
1
+ import { DateTimeDataValueDescriptor } from "@vuu-ui/vuu-data-types";
2
+ import { DateTimePattern } from "./types";
3
+ export declare const defaultPatternsByType: {
4
+ readonly time: "hh:mm:ss";
5
+ readonly date: "dd.mm.yyyy";
6
+ };
7
+ export declare const fallbackDateTimePattern: DateTimePattern;
8
+ export declare function dateTimePattern(type: DateTimeDataValueDescriptor["type"]): DateTimePattern;
@@ -0,0 +1,4 @@
1
+ import { DateFormatter } from "@internationalized/date";
2
+ import { DateTimePattern } from "./types";
3
+ export declare function formatDate(pattern: DateTimePattern): (d: Date) => string;
4
+ export declare function getDateFormatter(locale: string, options?: Intl.DateTimeFormatOptions): DateFormatter;
@@ -0,0 +1,4 @@
1
+ export { asTimeString, decrementTimeUnitValue, incrementTimeUnitValue, isValidTimeString, Time, toCalendarDate, type DateStringISO, type Hours, type Minutes, type Seconds, type TimeString, type TimeUnit, type TimeUnitValue, updateTimeString, zeroTime, zeroTimeUnit, } from "./date-utils";
2
+ export { dateTimePattern, defaultPatternsByType, fallbackDateTimePattern, } from "./dateTimePattern";
3
+ export * from "./formatter";
4
+ export { dateTimeLabelByType, isDatePattern, isDateTimePattern, isTimePattern, supportedDateTimePatterns, type DatePattern, type DateTimePattern, type TimePattern, } from "./types";
@@ -0,0 +1,24 @@
1
+ import { ColumnTypeFormatting } from "@vuu-ui/vuu-table-types";
2
+ declare const supportedDatePatterns: readonly ["dd.mm.yyyy", "dd/mm/yyyy", "dd MMM yyyy", "dd MMMM yyyy", "mm/dd/yyyy", "MMM dd, yyyy", "MMMM dd, yyyy"];
3
+ declare const supportedTimePatterns: readonly ["hh:mm:ss", "hh:mm:ss a", "hh:mm:ss.ms"];
4
+ export declare const supportedDateTimePatterns: {
5
+ date: readonly ["dd.mm.yyyy", "dd/mm/yyyy", "dd MMM yyyy", "dd MMMM yyyy", "mm/dd/yyyy", "MMM dd, yyyy", "MMMM dd, yyyy"];
6
+ time: readonly ["hh:mm:ss", "hh:mm:ss a", "hh:mm:ss.ms"];
7
+ };
8
+ export declare const dateTimeLabelByType: {
9
+ readonly date: "Date";
10
+ readonly time: "Time";
11
+ };
12
+ export type DatePattern = (typeof supportedDatePatterns)[number];
13
+ export type TimePattern = (typeof supportedTimePatterns)[number];
14
+ export type DateTimePattern = {
15
+ date?: DatePattern;
16
+ time: TimePattern;
17
+ } | {
18
+ date: DatePattern;
19
+ time?: TimePattern;
20
+ };
21
+ export declare const isDatePattern: (pattern?: string) => pattern is DatePattern;
22
+ export declare const isTimePattern: (pattern?: string) => pattern is TimePattern;
23
+ export declare const isDateTimePattern: (pattern?: ColumnTypeFormatting["pattern"]) => pattern is DateTimePattern;
24
+ export {};
@@ -0,0 +1,9 @@
1
+ import { VuuRange } from "@vuu-ui/vuu-protocol-types";
2
+ export declare class RangeMonitor {
3
+ private source;
4
+ range: VuuRange;
5
+ timestamp: number;
6
+ constructor(source: string);
7
+ isSet(): boolean;
8
+ set({ from, to }: VuuRange): 0 | undefined;
9
+ }
@@ -0,0 +1,21 @@
1
+ type Listener = (...args: any[]) => void;
2
+ export type EmittedEvents = Record<string, Listener>;
3
+ export interface IEventEmitter<Events extends EmittedEvents> {
4
+ addListener<E extends keyof Events>(event: E, listener: Events[E]): void;
5
+ emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): void;
6
+ on<E extends keyof Events>(event: E, listener: Events[E]): void;
7
+ removeListener<E extends keyof Events>(event: E, listener: Events[E]): void;
8
+ removeAllListeners<E extends keyof Events>(event?: E): void;
9
+ }
10
+ export declare class EventEmitter<Events extends EmittedEvents> implements IEventEmitter<Events> {
11
+ #private;
12
+ addListener<E extends keyof Events>(event: E, listener: Events[E]): void;
13
+ removeListener<E extends keyof Events>(event: E, listener: Events[E]): void;
14
+ removeAllListeners<E extends keyof Events>(event?: E): void;
15
+ emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): void;
16
+ once<E extends keyof Events>(event: E, listener: Events[E]): void;
17
+ on<E extends keyof Events>(event: E, listener: Events[E]): void;
18
+ hasListener<E extends keyof Events>(event: E, listener: Events[E]): boolean;
19
+ private invokeHandler;
20
+ }
21
+ export {};
@@ -0,0 +1,110 @@
1
+ import type { TableSchema } from "@vuu-ui/vuu-data-types";
2
+ import type { VuuTable } from "@vuu-ui/vuu-protocol-types";
3
+ import { ListOption } from "@vuu-ui/vuu-table-types";
4
+ import { ReactElement } from "react";
5
+ export type PathMap = {
6
+ [key: string]: Pick<DynamicFeatureDescriptor, "css" | "url">;
7
+ };
8
+ export type Environment = "development" | "production";
9
+ export declare const env: Environment;
10
+ export type LookupTableProvider = (table: VuuTable) => ListOption[];
11
+ export interface ViewConfig {
12
+ allowRename?: boolean;
13
+ closeable?: boolean;
14
+ header?: boolean;
15
+ }
16
+ export interface DynamicFeatureProps<P extends object | undefined = object> {
17
+ /**
18
+ props that will be passed to the lazily loaded component.
19
+ */
20
+ ComponentProps?: P;
21
+ ViewProps?: ViewConfig;
22
+ css?: string;
23
+ height?: number;
24
+ title?: string;
25
+ /**
26
+ The url of javascript bundle to lazily load. Bundle must provide a default export
27
+ and that export must be a React component.
28
+ */
29
+ url: string;
30
+ width?: number;
31
+ }
32
+ declare global {
33
+ const vuuConfig: Promise<VuuConfig>;
34
+ }
35
+ export interface DynamicFeatureDescriptor {
36
+ /**
37
+ * url for css file for feature
38
+ */
39
+ css?: string;
40
+ featureProps?: {
41
+ vuuTables?: "*" | VuuTable[];
42
+ };
43
+ leftNavLocation: "vuu-features" | "vuu-tables";
44
+ name: string;
45
+ title: string;
46
+ /**
47
+ * url for javascript bundle to load feature
48
+ */
49
+ url: string;
50
+ viewProps?: ViewConfig;
51
+ }
52
+ export interface StaticFeatureDescriptor {
53
+ group?: string;
54
+ label: string;
55
+ type: string;
56
+ }
57
+ export declare const isStaticFeatures: (features: unknown) => features is StaticFeatureDescriptor[];
58
+ export interface FilterTableFeatureProps {
59
+ tableSchema: TableSchema;
60
+ }
61
+ export type DynamicFeatures = {
62
+ [key: string]: DynamicFeatureDescriptor;
63
+ };
64
+ export declare function featureFromJson({ type }: {
65
+ type: string;
66
+ }): ReactElement;
67
+ export interface VuuConfig {
68
+ features: DynamicFeatures;
69
+ authUrl?: string;
70
+ websocketUrl: string;
71
+ ssl: boolean;
72
+ }
73
+ /**
74
+ * We currently categorize 'features' simply by the leftNavLocation
75
+ * @param feature
76
+ * @returns
77
+ */
78
+ export declare const isCustomFeature: (feature: DynamicFeatureDescriptor) => boolean;
79
+ export declare const isWildcardSchema: (vuuTables?: "*" | VuuTable[]) => vuuTables is "*";
80
+ export declare const isVuuTables: (vuuTables?: "*" | VuuTable[]) => vuuTables is VuuTable[];
81
+ export interface FeaturePropsWithFilterTableFeature extends Omit<DynamicFeatureProps, "ComponentProps"> {
82
+ ComponentProps: FilterTableFeatureProps;
83
+ }
84
+ export declare const hasFilterTableFeatureProps: (props: DynamicFeatureProps) => props is FeaturePropsWithFilterTableFeature;
85
+ export declare const isSameTable: (t1: VuuTable, t2: VuuTable) => void;
86
+ export declare const byModule: (schema1: TableSchema, schema2: TableSchema) => 0 | 1 | -1;
87
+ export type GetFeaturePaths = (params: {
88
+ env: Environment;
89
+ fileName: string;
90
+ withCss?: boolean;
91
+ }) => DynamicFeatureProps;
92
+ export declare const getFilterTableFeatures: (schemas: TableSchema[], getFeaturePath: GetFeaturePaths) => DynamicFeatureProps<FilterTableFeatureProps>[];
93
+ export type Component = {
94
+ componentName: string;
95
+ component: unknown;
96
+ };
97
+ export declare const assertComponentRegistered: (componentName: string, component: unknown) => void;
98
+ export declare const assertComponentsRegistered: (componentList: Component[]) => void;
99
+ /**
100
+ * Process the DynamicFeature descriptors. Identify
101
+ * the vuu tables required and inject the appropriate TableSchemas
102
+ *
103
+ * @param dynamicFeatures
104
+ * @param tableSchemas
105
+ * @returns
106
+ */
107
+ export declare const getCustomAndTableFeatures: (dynamicFeatures: DynamicFeatureDescriptor[], tableSchemas: TableSchema[]) => {
108
+ dynamicFeatures: DynamicFeatureProps[];
109
+ tableFeatures: DynamicFeatureProps<FilterTableFeatureProps>[];
110
+ };
@@ -0,0 +1,82 @@
1
+ import type { DataSourceFilter } from "@vuu-ui/vuu-data-types";
2
+ import { ColumnFilterOp, ColumnFilterValue, Filter, FilterClauseOp, FilterContainerFilter, FilterWithPartialClause, MultiClauseFilter, MultiValueFilterClause, SingleValueFilterClause } from "@vuu-ui/vuu-filter-types";
3
+ import { ColumnDescriptor, RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
4
+ export declare const isValidFilterClauseOp: (op?: string) => op is FilterClauseOp;
5
+ export declare const isNamedFilter: (f?: Filter) => boolean;
6
+ export declare const isSingleValueFilter: (f?: Partial<Filter>) => f is SingleValueFilterClause;
7
+ export declare const isFilterClause: (f?: Partial<Filter>) => f is SingleValueFilterClause | MultiValueFilterClause;
8
+ export declare const isMultiValueFilter: (f?: Partial<Filter>) => f is MultiValueFilterClause;
9
+ export declare const isInFilter: (f: Partial<Filter>) => f is MultiValueFilterClause;
10
+ export declare const isAndFilter: (f?: Partial<Filter>) => f is MultiClauseFilter<"and">;
11
+ export declare const isBetweenFilter: (f?: Filter) => f is MultiClauseFilter<"and", SingleValueFilterClause>;
12
+ export declare const isOrFilter: (f?: Partial<Filter>) => f is MultiClauseFilter<"or">;
13
+ export declare const isCompleteFilter: (filter: Partial<Filter>) => filter is Filter;
14
+ export declare function isMultiClauseFilter(f?: Partial<Filter> | FilterWithPartialClause): f is MultiClauseFilter;
15
+ export declare const applyFilterToColumns: (columns: RuntimeColumnDescriptor[], { filterStruct }: DataSourceFilter) => RuntimeColumnDescriptor[];
16
+ export declare const isFilteredColumn: (column: RuntimeColumnDescriptor) => boolean;
17
+ export declare const stripFilterFromColumns: (columns: RuntimeColumnDescriptor[]) => {
18
+ align?: "left" | "right";
19
+ ariaColIndex: number;
20
+ CellRenderer?: import("react").FunctionComponent<import("@vuu-ui/vuu-table-types").TableCellRendererProps>;
21
+ HeaderCellLabelRenderer?: import("react").FunctionComponent<Omit<import("@vuu-ui/vuu-table-types").HeaderCellProps, "id" | "index">>;
22
+ HeaderCellContentRenderer?: import("react").FunctionComponent<Omit<import("@vuu-ui/vuu-table-types").HeaderCellProps, "id" | "index">>;
23
+ canStretch?: boolean;
24
+ className?: string;
25
+ clientSideEditValidationCheck?: import("@vuu-ui/vuu-data-types").DataValueValidationChecker;
26
+ endPin?: true | undefined;
27
+ flex?: number;
28
+ heading?: [...string[]];
29
+ isGroup?: boolean;
30
+ isSystemColumn?: boolean;
31
+ label: string;
32
+ locked?: boolean;
33
+ marginLeft?: number;
34
+ moving?: boolean;
35
+ originalIdx?: number;
36
+ pinnedOffset?: number;
37
+ resizeable?: boolean;
38
+ resizing?: boolean;
39
+ sortable?: boolean;
40
+ sorted?: import("@vuu-ui/vuu-table-types").ColumnSort;
41
+ valueFormatter: import("@vuu-ui/vuu-table-types").ValueFormatter;
42
+ width: number;
43
+ aggregate?: import("packages/vuu-protocol-types").VuuAggType;
44
+ allowColumnHeaderMenu?: false;
45
+ colHeaderContentRenderer?: string;
46
+ colHeaderLabelRenderer?: string;
47
+ getIcon?: (row: import("@vuu-ui/vuu-data-types").DataSourceRow) => string | undefined;
48
+ groupable?: boolean;
49
+ hidden?: boolean;
50
+ maxWidth?: number;
51
+ minWidth?: number;
52
+ pin?: import("@vuu-ui/vuu-table-types").PinLocation | false;
53
+ source?: "client" | "server";
54
+ editable?: boolean;
55
+ editableBulk?: import("@vuu-ui/vuu-data-types").BulkEdit;
56
+ name: string;
57
+ serverDataType?: import("packages/vuu-protocol-types").VuuColumnDataType;
58
+ type?: import("@vuu-ui/vuu-data-types").DataValueType;
59
+ }[];
60
+ export declare const extractFilterForColumn: (filter: Filter | undefined, columnName: string) => Filter | undefined;
61
+ export declare const getColumnValueFromFilter: (column: ColumnDescriptor, operator: ColumnFilterOp, filter?: FilterContainerFilter) => ColumnFilterValue;
62
+ /**
63
+ * Manages a filter that can be updated one clause at a time.
64
+ * Works with FilterContainer to aggregate multiple filter
65
+ * clauses edited via individual controls. It is just a wrapper
66
+ * around a Map, does not support switching filters - create a
67
+ * new FilterAggregator for a new filter.
68
+ *
69
+ */
70
+ export declare class FilterAggregator {
71
+ #private;
72
+ constructor(filter?: FilterContainerFilter);
73
+ add(column: ColumnDescriptor, value: ColumnFilterValue): void;
74
+ has({ name }: ColumnDescriptor): boolean;
75
+ get({ name }: ColumnDescriptor): FilterContainerFilter | undefined;
76
+ /**
77
+ * Remove filter for this column. Return false if no filter found, otw true
78
+ */
79
+ remove(column: ColumnDescriptor): boolean;
80
+ get filter(): FilterContainerFilter | undefined;
81
+ }
82
+ export declare const filtersAreEqual: (f1: FilterContainerFilter, f2: FilterContainerFilter) => boolean;
@@ -0,0 +1,7 @@
1
+ import { ColumnDescriptorsByName, Filter, SingleValueFilterClause } from "@vuu-ui/vuu-filter-types";
2
+ import type { RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
+ export declare const filterAsQuery: (f: Filter, opts?: {
4
+ columnsByName?: ColumnDescriptorsByName;
5
+ }) => string;
6
+ export declare function dateFilterAsQuery(f: SingleValueFilterClause<number>): string;
7
+ export declare const removeColumnFromFilter: (column: RuntimeColumnDescriptor, filter: Filter) => [Filter | undefined, string];
@@ -0,0 +1,2 @@
1
+ export * from "./filter-utils";
2
+ export * from "./filterAsQuery";
@@ -0,0 +1,23 @@
1
+ import { VuuColumnDataType, VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
2
+ import { KeyboardEvent, SyntheticEvent } from "react";
3
+ import { DataValueTypeSimple } from "@vuu-ui/vuu-data-types";
4
+ /**
5
+ * Use with the following convention:
6
+ *
7
+ * <FormField data-field="my-field-name">
8
+ */
9
+ export declare const getFieldName: (target: EventTarget | HTMLElement) => string;
10
+ export type InputSource = "typeahead-suggestion" | "text-input";
11
+ export declare const isNumber: (type: string, value: VuuRowDataItemType) => value is number;
12
+ export type CommitHandler<E extends HTMLElement = HTMLInputElement, T = VuuRowDataItemType> = (evt: SyntheticEvent<E> | KeyboardEvent<E>, value: T, source?: InputSource) => void;
13
+ /**
14
+ * Convert a string value to the type appropriate for the associated
15
+ * column or form field. Can be used when processing a string value
16
+ * from an input used for user editing.
17
+ *
18
+ * @param value
19
+ * @param type
20
+ * @param throwIfInvalid
21
+ */
22
+ export declare function getTypedValue(value: string, type: VuuColumnDataType | DataValueTypeSimple, throwIfInvalid?: false): VuuRowDataItemType | undefined;
23
+ export declare function getTypedValue(value: string, type: VuuColumnDataType | DataValueTypeSimple, throwIfInvalid: true): VuuRowDataItemType;
@@ -0,0 +1,14 @@
1
+ import { ColumnDescriptor, ValueFormatter } from "@vuu-ui/vuu-table-types";
2
+ export type ValueFormatters = {
3
+ [key: string]: ValueFormatter;
4
+ };
5
+ export declare const defaultValueFormatter: (value: unknown) => string;
6
+ export declare const numericFormatter: ({ align, type, }: Partial<ColumnDescriptor>) => (value: unknown) => string;
7
+ export declare const getValueFormatter: (column: ColumnDescriptor, serverDataType?: import("packages/vuu-protocol-types").VuuColumnDataType | undefined) => ValueFormatter;
8
+ /**
9
+ * Lowercases a string and returns as Lowercase typescript type
10
+ *
11
+ * @param str the input string
12
+ * @returns str converted to Lowercase
13
+ */
14
+ export declare const lowerCase: (str: string) => Lowercase<string>;