@navikt/ds-react 8.5.1 → 8.5.2

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 (95) hide show
  1. package/cjs/data/table/root/DataTableRoot.d.ts +27 -0
  2. package/cjs/data/table/root/DataTableRoot.js +8 -2
  3. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  4. package/cjs/data/table/td/DataTableTd.d.ts +5 -4
  5. package/cjs/data/table/td/DataTableTd.js +2 -2
  6. package/cjs/data/table/td/DataTableTd.js.map +1 -1
  7. package/cjs/data/token-filter/AutoSuggest.d.ts +2 -14
  8. package/cjs/data/token-filter/AutoSuggest.js +16 -89
  9. package/cjs/data/token-filter/AutoSuggest.js.map +1 -1
  10. package/cjs/data/token-filter/AutoSuggest.types.d.ts +12 -0
  11. package/cjs/data/token-filter/AutoSuggest.types.js +3 -0
  12. package/cjs/data/token-filter/AutoSuggest.types.js.map +1 -0
  13. package/cjs/data/token-filter/TokenFilter.js +18 -7
  14. package/cjs/data/token-filter/TokenFilter.js.map +1 -1
  15. package/cjs/data/token-filter/TokenFilter.types.d.ts +8 -2
  16. package/cjs/data/token-filter/helpers/generate-autocomplete-options.d.ts +12 -58
  17. package/cjs/data/token-filter/helpers/generate-autocomplete-options.js +159 -133
  18. package/cjs/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
  19. package/cjs/data/token-filter/helpers/grouping.d.ts +28 -0
  20. package/cjs/data/token-filter/helpers/grouping.js +61 -0
  21. package/cjs/data/token-filter/helpers/grouping.js.map +1 -0
  22. package/cjs/data/token-filter/helpers/operators.d.ts +22 -0
  23. package/cjs/data/token-filter/helpers/operators.js +66 -0
  24. package/cjs/data/token-filter/helpers/operators.js.map +1 -0
  25. package/cjs/data/token-filter/helpers/parse-query-text.d.ts +1 -7
  26. package/cjs/data/token-filter/helpers/parse-query-text.js +5 -50
  27. package/cjs/data/token-filter/helpers/parse-query-text.js.map +1 -1
  28. package/cjs/data/token-filter/helpers/query-builder.d.ts +20 -0
  29. package/cjs/data/token-filter/helpers/query-builder.js +38 -0
  30. package/cjs/data/token-filter/helpers/query-builder.js.map +1 -0
  31. package/cjs/data/token-filter/helpers/text-matching.d.ts +16 -0
  32. package/cjs/data/token-filter/helpers/text-matching.js +47 -0
  33. package/cjs/data/token-filter/helpers/text-matching.js.map +1 -0
  34. package/cjs/form/combobox/Input/InputController.js +1 -1
  35. package/cjs/form/combobox/Input/InputController.js.map +1 -1
  36. package/cjs/form/file-upload/dropzone/FileUploadDropzone.js +1 -1
  37. package/cjs/form/file-upload/dropzone/FileUploadDropzone.js.map +1 -1
  38. package/esm/data/table/root/DataTableRoot.d.ts +27 -0
  39. package/esm/data/table/root/DataTableRoot.js +8 -2
  40. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  41. package/esm/data/table/td/DataTableTd.d.ts +5 -4
  42. package/esm/data/table/td/DataTableTd.js +2 -2
  43. package/esm/data/table/td/DataTableTd.js.map +1 -1
  44. package/esm/data/token-filter/AutoSuggest.d.ts +2 -14
  45. package/esm/data/token-filter/AutoSuggest.js +17 -90
  46. package/esm/data/token-filter/AutoSuggest.js.map +1 -1
  47. package/esm/data/token-filter/AutoSuggest.types.d.ts +12 -0
  48. package/esm/data/token-filter/AutoSuggest.types.js +2 -0
  49. package/esm/data/token-filter/AutoSuggest.types.js.map +1 -0
  50. package/esm/data/token-filter/TokenFilter.js +18 -7
  51. package/esm/data/token-filter/TokenFilter.js.map +1 -1
  52. package/esm/data/token-filter/TokenFilter.types.d.ts +8 -2
  53. package/esm/data/token-filter/helpers/generate-autocomplete-options.d.ts +12 -58
  54. package/esm/data/token-filter/helpers/generate-autocomplete-options.js +159 -133
  55. package/esm/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
  56. package/esm/data/token-filter/helpers/grouping.d.ts +28 -0
  57. package/esm/data/token-filter/helpers/grouping.js +59 -0
  58. package/esm/data/token-filter/helpers/grouping.js.map +1 -0
  59. package/esm/data/token-filter/helpers/operators.d.ts +22 -0
  60. package/esm/data/token-filter/helpers/operators.js +60 -0
  61. package/esm/data/token-filter/helpers/operators.js.map +1 -0
  62. package/esm/data/token-filter/helpers/parse-query-text.d.ts +1 -7
  63. package/esm/data/token-filter/helpers/parse-query-text.js +2 -45
  64. package/esm/data/token-filter/helpers/parse-query-text.js.map +1 -1
  65. package/esm/data/token-filter/helpers/query-builder.d.ts +20 -0
  66. package/esm/data/token-filter/helpers/query-builder.js +34 -0
  67. package/esm/data/token-filter/helpers/query-builder.js.map +1 -0
  68. package/esm/data/token-filter/helpers/text-matching.d.ts +16 -0
  69. package/esm/data/token-filter/helpers/text-matching.js +45 -0
  70. package/esm/data/token-filter/helpers/text-matching.js.map +1 -0
  71. package/esm/form/combobox/Input/InputController.js +1 -1
  72. package/esm/form/combobox/Input/InputController.js.map +1 -1
  73. package/esm/form/file-upload/dropzone/FileUploadDropzone.js +1 -1
  74. package/esm/form/file-upload/dropzone/FileUploadDropzone.js.map +1 -1
  75. package/package.json +3 -3
  76. package/src/data/table/root/DataTableRoot.tsx +30 -1
  77. package/src/data/table/td/DataTableTd.tsx +13 -6
  78. package/src/data/token-filter/AutoSuggest.tsx +38 -162
  79. package/src/data/token-filter/AutoSuggest.types.ts +14 -0
  80. package/src/data/token-filter/TokenFilter.tsx +16 -11
  81. package/src/data/token-filter/TokenFilter.types.ts +8 -2
  82. package/src/data/token-filter/helpers/generate-autocomplete-options.test.ts +896 -0
  83. package/src/data/token-filter/helpers/generate-autocomplete-options.ts +233 -188
  84. package/src/data/token-filter/helpers/grouping.test.ts +206 -0
  85. package/src/data/token-filter/helpers/grouping.ts +73 -0
  86. package/src/data/token-filter/helpers/operators.test.ts +281 -0
  87. package/src/data/token-filter/helpers/operators.ts +91 -0
  88. package/src/data/token-filter/helpers/parse-query-text.test.ts +4 -213
  89. package/src/data/token-filter/helpers/parse-query-text.ts +7 -69
  90. package/src/data/token-filter/helpers/query-builder.test.ts +126 -0
  91. package/src/data/token-filter/helpers/query-builder.ts +41 -0
  92. package/src/data/token-filter/helpers/text-matching.test.ts +125 -0
  93. package/src/data/token-filter/helpers/text-matching.ts +58 -0
  94. package/src/form/combobox/Input/InputController.tsx +0 -1
  95. package/src/form/file-upload/dropzone/FileUploadDropzone.tsx +0 -1
@@ -1,6 +1,7 @@
1
1
  import React, { forwardRef, useState } from "react";
2
2
  import { Popover } from "../../popover";
3
3
  import { cl } from "../../utils/helpers";
4
+ import { AutoSuggest } from "./AutoSuggest";
4
5
  import type {
5
6
  ParsedOption,
6
7
  ParsedProperty,
@@ -39,9 +40,12 @@ export const TokenFilter = forwardRef<HTMLDivElement, TokenFilterProps>(
39
40
  options,
40
41
  );
41
42
 
42
- /* const handleSelectOption = (value: string) => {
43
+ const handleSelectOption = (value: string) => {
43
44
  setFilterText(value);
44
- }; */
45
+ setCustomOpen(false);
46
+ };
47
+
48
+ const [customOpen, setCustomOpen] = useState(false);
45
49
 
46
50
  return (
47
51
  <div
@@ -56,20 +60,21 @@ export const TokenFilter = forwardRef<HTMLDivElement, TokenFilterProps>(
56
60
  ref={setInputAnchor}
57
61
  value={filterText}
58
62
  onChange={(e) => setFilterText(e.target.value)}
63
+ onFocus={() => setCustomOpen(true)}
59
64
  />
60
65
  <Popover
61
66
  anchorEl={inputAnchor}
62
- open={filterText.length > 0}
63
- onClose={() => setFilterText("")}
67
+ open={customOpen}
68
+ onClose={() => {
69
+ setFilterText("");
70
+ setCustomOpen(false);
71
+ }}
64
72
  >
65
- a
66
- {/* <AutoSuggest
67
-
73
+ <AutoSuggest
74
+ /* @ts-expect-error TODO: handle conversion better */
68
75
  options={autoCompleteOptions.options}
69
- value={filterText}
70
- filterText={autoCompleteOptions.value}
71
76
  onSelect={handleSelectOption}
72
- /> */}
77
+ />
73
78
  </Popover>
74
79
  {query.tokens.map((token, index) => {
75
80
  return (
@@ -106,7 +111,7 @@ function derrivedFilterState(
106
111
  propertyLabel: property?.propertyLabel ?? "",
107
112
  groupValuesLabel: property?.groupValuesLabel ?? "",
108
113
  propertyGroup: property?.group,
109
- /* operators: (property?.operators ?? []).map(op => (typeof op === 'string' ? op : op.operator)), */
114
+ operators: property?.operators ?? [],
110
115
  /* defaultOperator: property?.defaultOperator ?? '=', */
111
116
  externalProperty: property,
112
117
  });
@@ -40,11 +40,16 @@ type QueryFilteringOptionGroup = {
40
40
  options: QueryFilteringOptions;
41
41
  };
42
42
 
43
+ type QueryFilteringScopedOperator =
44
+ | string
45
+ | { operator: string; tokenType: "single" | "multiple" };
46
+
43
47
  type QueryFilteringProperty = {
44
48
  key: string;
45
49
  propertyLabel: string;
46
- groupValuesLabel: string;
47
- group: string;
50
+ groupValuesLabel?: string;
51
+ group?: string;
52
+ operators?: QueryFilteringScopedOperator[];
48
53
  };
49
54
 
50
55
  type QueryFilteringProperties = QueryFilteringProperty[];
@@ -54,6 +59,7 @@ type ParsedProperty = {
54
59
  propertyLabel: string;
55
60
  groupValuesLabel: string;
56
61
  propertyGroup: string;
62
+ operators: QueryFilteringScopedOperator[];
57
63
  externalProperty: QueryFilteringProperty;
58
64
  };
59
65