@vuu-ui/vuu-table 2.1.13 → 2.1.16

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 (39) hide show
  1. package/cjs/{useHighlighting.js → applyHighlighting.js} +3 -3
  2. package/cjs/applyHighlighting.js.map +1 -0
  3. package/cjs/cell-renderers/input-cell/InputCell.js +4 -3
  4. package/cjs/cell-renderers/input-cell/InputCell.js.map +1 -1
  5. package/cjs/cell-renderers/input-cell/useInputCell.js +211 -0
  6. package/cjs/cell-renderers/input-cell/useInputCell.js.map +1 -0
  7. package/cjs/index.js +2 -2
  8. package/cjs/table-cell/TableCell.js +12 -13
  9. package/cjs/table-cell/TableCell.js.map +1 -1
  10. package/cjs/table-cell/TableGroupCell.js +2 -2
  11. package/cjs/table-cell/TableGroupCell.js.map +1 -1
  12. package/cjs/table-data-source/DataRowMovingWindow.js +3 -3
  13. package/cjs/table-data-source/DataRowMovingWindow.js.map +1 -1
  14. package/cjs/table-data-source/useDataSource.js +1 -1
  15. package/cjs/table-data-source/useDataSource.js.map +1 -1
  16. package/esm/{useHighlighting.js → applyHighlighting.js} +3 -3
  17. package/esm/applyHighlighting.js.map +1 -0
  18. package/esm/cell-renderers/input-cell/InputCell.js +5 -4
  19. package/esm/cell-renderers/input-cell/InputCell.js.map +1 -1
  20. package/esm/cell-renderers/input-cell/useInputCell.js +209 -0
  21. package/esm/cell-renderers/input-cell/useInputCell.js.map +1 -0
  22. package/esm/index.js +1 -1
  23. package/esm/table-cell/TableCell.js +13 -14
  24. package/esm/table-cell/TableCell.js.map +1 -1
  25. package/esm/table-cell/TableGroupCell.js +2 -2
  26. package/esm/table-cell/TableGroupCell.js.map +1 -1
  27. package/esm/table-data-source/DataRowMovingWindow.js +3 -3
  28. package/esm/table-data-source/DataRowMovingWindow.js.map +1 -1
  29. package/esm/table-data-source/useDataSource.js +2 -2
  30. package/esm/table-data-source/useDataSource.js.map +1 -1
  31. package/package.json +10 -10
  32. package/types/applyHighlighting.d.ts +2 -0
  33. package/types/cell-renderers/input-cell/InputCell.d.ts +1 -1
  34. package/types/cell-renderers/input-cell/useInputCell.d.ts +21 -0
  35. package/types/index.d.ts +1 -1
  36. package/types/table-data-source/DataRowMovingWindow.d.ts +1 -1
  37. package/cjs/useHighlighting.js.map +0 -1
  38. package/esm/useHighlighting.js.map +0 -1
  39. package/types/useHighlighting.d.ts +0 -2
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
- "version": "2.1.13",
2
+ "version": "2.1.16",
3
3
  "author": "heswell",
4
4
  "license": "Apache-2.0",
5
5
  "devDependencies": {
6
- "@vuu-ui/vuu-data-types": "2.1.13",
7
- "@vuu-ui/vuu-table-types": "2.1.13",
8
- "@vuu-ui/vuu-protocol-types": "2.1.13"
6
+ "@vuu-ui/vuu-data-types": "2.1.16",
7
+ "@vuu-ui/vuu-table-types": "2.1.16",
8
+ "@vuu-ui/vuu-protocol-types": "2.1.16"
9
9
  },
10
10
  "dependencies": {
11
11
  "@salt-ds/core": "1.54.1",
12
12
  "@salt-ds/styles": "0.2.1",
13
13
  "@salt-ds/window": "0.1.1",
14
- "@vuu-ui/vuu-context-menu": "2.1.13",
15
- "@vuu-ui/vuu-data-react": "2.1.13",
16
- "@vuu-ui/vuu-popups": "2.1.13",
17
- "@vuu-ui/vuu-table-extras": "2.1.13",
18
- "@vuu-ui/vuu-ui-controls": "2.1.13",
19
- "@vuu-ui/vuu-utils": "2.1.13"
14
+ "@vuu-ui/vuu-context-menu": "2.1.16",
15
+ "@vuu-ui/vuu-data-react": "2.1.16",
16
+ "@vuu-ui/vuu-popups": "2.1.16",
17
+ "@vuu-ui/vuu-table-extras": "2.1.16",
18
+ "@vuu-ui/vuu-ui-controls": "2.1.16",
19
+ "@vuu-ui/vuu-utils": "2.1.16"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "clsx": "^2.0.0",
@@ -0,0 +1,2 @@
1
+ import { ReactElement } from "react";
2
+ export declare const applyHighlighting: (value: string, pattern: Lowercase<string>) => string | ReactElement;
@@ -1,2 +1,2 @@
1
1
  import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
2
- export declare const InputCell: ({ column, dataRow, onEdit, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const InputCell: ({ column, dataRow, editedDuringCurrentSession, onEdit, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
2
+ import type { RuntimeColumnDescriptor, TableCellEditHandler } from "@vuu-ui/vuu-table-types";
3
+ import { FocusEventHandler, FormEventHandler, KeyboardEvent } from "react";
4
+ export interface InputCellHookProps<T extends VuuRowDataItemType = VuuRowDataItemType> {
5
+ column: Pick<RuntimeColumnDescriptor, "clientSideEditValidationCheck" | "label" | "name">;
6
+ value?: T;
7
+ onEdit?: TableCellEditHandler;
8
+ type?: "string" | "number" | "boolean";
9
+ }
10
+ export declare const useInputCell: <T extends string | number | boolean = string>({ column, value, onEdit, type, }: InputCellHookProps<T>) => {
11
+ editing: boolean;
12
+ inputProps: {
13
+ onBlur: FocusEventHandler<HTMLElement>;
14
+ onFocus: FocusEventHandler<HTMLElement>;
15
+ onKeyDown: (evt: KeyboardEvent<HTMLElement>) => Promise<void>;
16
+ };
17
+ onChange: FormEventHandler;
18
+ previousValue: string | undefined;
19
+ value: string;
20
+ warningMessage: string | undefined;
21
+ };
package/types/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export { useTableConfig } from "./table-config/useTableConfig";
11
11
  export * from "./table-header";
12
12
  export * from "./useControlledTableNavigation";
13
13
  export * from "./useEditableCell";
14
- export * from "./useHighlighting";
14
+ export * from "./applyHighlighting";
15
15
  export * from "./useKeyboardNavigation";
16
16
  export * from "./useTableContextMenu";
17
17
  export * from "./useTableModel";
@@ -1,7 +1,7 @@
1
1
  import { VuuRange } from "@vuu-ui/vuu-protocol-types";
2
2
  import { DataRow } from "@vuu-ui/vuu-table-types";
3
3
  import { WindowRange } from "@vuu-ui/vuu-utils";
4
- export declare class MovingDataRowWindow {
4
+ export declare class DataRowMovingWindow {
5
5
  #private;
6
6
  data: DataRow[];
7
7
  rowCount: number;
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHighlighting.js","sources":["../../../packages/vuu-table/src/useHighlighting.tsx"],"sourcesContent":["import { ReactElement } from \"react\";\n\nexport const useHighlighting = (\n value: string,\n pattern: Lowercase<string>,\n): string | ReactElement => {\n if (pattern === \"\") {\n return value;\n }\n // eslint-disable-next-line react/display-name\n const lowercaseValue = value.toLowerCase();\n let start = 0;\n let end = lowercaseValue.indexOf(pattern);\n if (end === -1) {\n return value;\n }\n const results = [];\n\n while (end !== -1) {\n results.push(value.slice(start, end));\n start = end;\n end = start + pattern.length;\n results.push(\n <span className=\"vuuHighlight\" key={start}>\n {value.slice(start, end)}\n </span>,\n );\n start = end;\n end = lowercaseValue.indexOf(pattern, start);\n if (end === -1 && start < lowercaseValue.length) {\n results.push(value.slice(start));\n }\n }\n\n return <span style={{ whiteSpace: \"pre\" }}>{results}</span>;\n};\n"],"names":["jsx"],"mappings":";;;;AAEa,MAAA,eAAA,GAAkB,CAC7B,KAAA,EACA,OAC0B,KAAA;AAC1B,EAAA,IAAI,YAAY,EAAI,EAAA;AAClB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAM,MAAA,cAAA,GAAiB,MAAM,WAAY,EAAA;AACzC,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAI,IAAA,GAAA,GAAM,cAAe,CAAA,OAAA,CAAQ,OAAO,CAAA;AACxC,EAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACd,IAAO,OAAA,KAAA;AAAA;AAET,EAAA,MAAM,UAAU,EAAC;AAEjB,EAAA,OAAO,QAAQ,CAAI,CAAA,EAAA;AACjB,IAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,KAAA,EAAO,GAAG,CAAC,CAAA;AACpC,IAAQ,KAAA,GAAA,GAAA;AACR,IAAA,GAAA,GAAM,QAAQ,OAAQ,CAAA,MAAA;AACtB,IAAQ,OAAA,CAAA,IAAA;AAAA,sBACNA,cAAA,CAAC,UAAK,SAAU,EAAA,cAAA,EACb,gBAAM,KAAM,CAAA,KAAA,EAAO,GAAG,CAAA,EAAA,EADW,KAEpC;AAAA,KACF;AACA,IAAQ,KAAA,GAAA,GAAA;AACR,IAAM,GAAA,GAAA,cAAA,CAAe,OAAQ,CAAA,OAAA,EAAS,KAAK,CAAA;AAC3C,IAAA,IAAI,GAAQ,KAAA,CAAA,CAAA,IAAM,KAAQ,GAAA,cAAA,CAAe,MAAQ,EAAA;AAC/C,MAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,KAAK,CAAC,CAAA;AAAA;AACjC;AAGF,EAAA,sCAAQ,MAAK,EAAA,EAAA,KAAA,EAAO,EAAE,UAAY,EAAA,KAAA,IAAU,QAAQ,EAAA,OAAA,EAAA,CAAA;AACtD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHighlighting.js","sources":["../../../packages/vuu-table/src/useHighlighting.tsx"],"sourcesContent":["import { ReactElement } from \"react\";\n\nexport const useHighlighting = (\n value: string,\n pattern: Lowercase<string>,\n): string | ReactElement => {\n if (pattern === \"\") {\n return value;\n }\n // eslint-disable-next-line react/display-name\n const lowercaseValue = value.toLowerCase();\n let start = 0;\n let end = lowercaseValue.indexOf(pattern);\n if (end === -1) {\n return value;\n }\n const results = [];\n\n while (end !== -1) {\n results.push(value.slice(start, end));\n start = end;\n end = start + pattern.length;\n results.push(\n <span className=\"vuuHighlight\" key={start}>\n {value.slice(start, end)}\n </span>,\n );\n start = end;\n end = lowercaseValue.indexOf(pattern, start);\n if (end === -1 && start < lowercaseValue.length) {\n results.push(value.slice(start));\n }\n }\n\n return <span style={{ whiteSpace: \"pre\" }}>{results}</span>;\n};\n"],"names":[],"mappings":";;AAEa,MAAA,eAAA,GAAkB,CAC7B,KAAA,EACA,OAC0B,KAAA;AAC1B,EAAA,IAAI,YAAY,EAAI,EAAA;AAClB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAM,MAAA,cAAA,GAAiB,MAAM,WAAY,EAAA;AACzC,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAI,IAAA,GAAA,GAAM,cAAe,CAAA,OAAA,CAAQ,OAAO,CAAA;AACxC,EAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACd,IAAO,OAAA,KAAA;AAAA;AAET,EAAA,MAAM,UAAU,EAAC;AAEjB,EAAA,OAAO,QAAQ,CAAI,CAAA,EAAA;AACjB,IAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,KAAA,EAAO,GAAG,CAAC,CAAA;AACpC,IAAQ,KAAA,GAAA,GAAA;AACR,IAAA,GAAA,GAAM,QAAQ,OAAQ,CAAA,MAAA;AACtB,IAAQ,OAAA,CAAA,IAAA;AAAA,sBACN,GAAA,CAAC,UAAK,SAAU,EAAA,cAAA,EACb,gBAAM,KAAM,CAAA,KAAA,EAAO,GAAG,CAAA,EAAA,EADW,KAEpC;AAAA,KACF;AACA,IAAQ,KAAA,GAAA,GAAA;AACR,IAAM,GAAA,GAAA,cAAA,CAAe,OAAQ,CAAA,OAAA,EAAS,KAAK,CAAA;AAC3C,IAAA,IAAI,GAAQ,KAAA,CAAA,CAAA,IAAM,KAAQ,GAAA,cAAA,CAAe,MAAQ,EAAA;AAC/C,MAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,KAAK,CAAC,CAAA;AAAA;AACjC;AAGF,EAAA,2BAAQ,MAAK,EAAA,EAAA,KAAA,EAAO,EAAE,UAAY,EAAA,KAAA,IAAU,QAAQ,EAAA,OAAA,EAAA,CAAA;AACtD;;;;"}
@@ -1,2 +0,0 @@
1
- import { ReactElement } from "react";
2
- export declare const useHighlighting: (value: string, pattern: Lowercase<string>) => string | ReactElement;