@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.
- package/cjs/data/table/root/DataTableRoot.d.ts +27 -0
- package/cjs/data/table/root/DataTableRoot.js +8 -2
- package/cjs/data/table/root/DataTableRoot.js.map +1 -1
- package/cjs/data/table/td/DataTableTd.d.ts +5 -4
- package/cjs/data/table/td/DataTableTd.js +2 -2
- package/cjs/data/table/td/DataTableTd.js.map +1 -1
- package/cjs/data/token-filter/AutoSuggest.d.ts +2 -14
- package/cjs/data/token-filter/AutoSuggest.js +16 -89
- package/cjs/data/token-filter/AutoSuggest.js.map +1 -1
- package/cjs/data/token-filter/AutoSuggest.types.d.ts +12 -0
- package/cjs/data/token-filter/AutoSuggest.types.js +3 -0
- package/cjs/data/token-filter/AutoSuggest.types.js.map +1 -0
- package/cjs/data/token-filter/TokenFilter.js +18 -7
- package/cjs/data/token-filter/TokenFilter.js.map +1 -1
- package/cjs/data/token-filter/TokenFilter.types.d.ts +8 -2
- package/cjs/data/token-filter/helpers/generate-autocomplete-options.d.ts +12 -58
- package/cjs/data/token-filter/helpers/generate-autocomplete-options.js +159 -133
- package/cjs/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
- package/cjs/data/token-filter/helpers/grouping.d.ts +28 -0
- package/cjs/data/token-filter/helpers/grouping.js +61 -0
- package/cjs/data/token-filter/helpers/grouping.js.map +1 -0
- package/cjs/data/token-filter/helpers/operators.d.ts +22 -0
- package/cjs/data/token-filter/helpers/operators.js +66 -0
- package/cjs/data/token-filter/helpers/operators.js.map +1 -0
- package/cjs/data/token-filter/helpers/parse-query-text.d.ts +1 -7
- package/cjs/data/token-filter/helpers/parse-query-text.js +5 -50
- package/cjs/data/token-filter/helpers/parse-query-text.js.map +1 -1
- package/cjs/data/token-filter/helpers/query-builder.d.ts +20 -0
- package/cjs/data/token-filter/helpers/query-builder.js +38 -0
- package/cjs/data/token-filter/helpers/query-builder.js.map +1 -0
- package/cjs/data/token-filter/helpers/text-matching.d.ts +16 -0
- package/cjs/data/token-filter/helpers/text-matching.js +47 -0
- package/cjs/data/token-filter/helpers/text-matching.js.map +1 -0
- package/cjs/form/combobox/Input/InputController.js +1 -1
- package/cjs/form/combobox/Input/InputController.js.map +1 -1
- package/cjs/form/file-upload/dropzone/FileUploadDropzone.js +1 -1
- package/cjs/form/file-upload/dropzone/FileUploadDropzone.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.d.ts +27 -0
- package/esm/data/table/root/DataTableRoot.js +8 -2
- package/esm/data/table/root/DataTableRoot.js.map +1 -1
- package/esm/data/table/td/DataTableTd.d.ts +5 -4
- package/esm/data/table/td/DataTableTd.js +2 -2
- package/esm/data/table/td/DataTableTd.js.map +1 -1
- package/esm/data/token-filter/AutoSuggest.d.ts +2 -14
- package/esm/data/token-filter/AutoSuggest.js +17 -90
- package/esm/data/token-filter/AutoSuggest.js.map +1 -1
- package/esm/data/token-filter/AutoSuggest.types.d.ts +12 -0
- package/esm/data/token-filter/AutoSuggest.types.js +2 -0
- package/esm/data/token-filter/AutoSuggest.types.js.map +1 -0
- package/esm/data/token-filter/TokenFilter.js +18 -7
- package/esm/data/token-filter/TokenFilter.js.map +1 -1
- package/esm/data/token-filter/TokenFilter.types.d.ts +8 -2
- package/esm/data/token-filter/helpers/generate-autocomplete-options.d.ts +12 -58
- package/esm/data/token-filter/helpers/generate-autocomplete-options.js +159 -133
- package/esm/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
- package/esm/data/token-filter/helpers/grouping.d.ts +28 -0
- package/esm/data/token-filter/helpers/grouping.js +59 -0
- package/esm/data/token-filter/helpers/grouping.js.map +1 -0
- package/esm/data/token-filter/helpers/operators.d.ts +22 -0
- package/esm/data/token-filter/helpers/operators.js +60 -0
- package/esm/data/token-filter/helpers/operators.js.map +1 -0
- package/esm/data/token-filter/helpers/parse-query-text.d.ts +1 -7
- package/esm/data/token-filter/helpers/parse-query-text.js +2 -45
- package/esm/data/token-filter/helpers/parse-query-text.js.map +1 -1
- package/esm/data/token-filter/helpers/query-builder.d.ts +20 -0
- package/esm/data/token-filter/helpers/query-builder.js +34 -0
- package/esm/data/token-filter/helpers/query-builder.js.map +1 -0
- package/esm/data/token-filter/helpers/text-matching.d.ts +16 -0
- package/esm/data/token-filter/helpers/text-matching.js +45 -0
- package/esm/data/token-filter/helpers/text-matching.js.map +1 -0
- package/esm/form/combobox/Input/InputController.js +1 -1
- package/esm/form/combobox/Input/InputController.js.map +1 -1
- package/esm/form/file-upload/dropzone/FileUploadDropzone.js +1 -1
- package/esm/form/file-upload/dropzone/FileUploadDropzone.js.map +1 -1
- package/package.json +3 -3
- package/src/data/table/root/DataTableRoot.tsx +30 -1
- package/src/data/table/td/DataTableTd.tsx +13 -6
- package/src/data/token-filter/AutoSuggest.tsx +38 -162
- package/src/data/token-filter/AutoSuggest.types.ts +14 -0
- package/src/data/token-filter/TokenFilter.tsx +16 -11
- package/src/data/token-filter/TokenFilter.types.ts +8 -2
- package/src/data/token-filter/helpers/generate-autocomplete-options.test.ts +896 -0
- package/src/data/token-filter/helpers/generate-autocomplete-options.ts +233 -188
- package/src/data/token-filter/helpers/grouping.test.ts +206 -0
- package/src/data/token-filter/helpers/grouping.ts +73 -0
- package/src/data/token-filter/helpers/operators.test.ts +281 -0
- package/src/data/token-filter/helpers/operators.ts +91 -0
- package/src/data/token-filter/helpers/parse-query-text.test.ts +4 -213
- package/src/data/token-filter/helpers/parse-query-text.ts +7 -69
- package/src/data/token-filter/helpers/query-builder.test.ts +126 -0
- package/src/data/token-filter/helpers/query-builder.ts +41 -0
- package/src/data/token-filter/helpers/text-matching.test.ts +125 -0
- package/src/data/token-filter/helpers/text-matching.ts +58 -0
- package/src/form/combobox/Input/InputController.tsx +0 -1
- package/src/form/file-upload/dropzone/FileUploadDropzone.tsx +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-query-text.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/parse-query-text.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-query-text.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/parse-query-text.ts"],"names":[],"mappings":";;AAoFS,wCAAc;AAnFvB,2CAKqB;AAuBrB;;;GAGG;AACH,SAAS,cAAc,CACrB,aAAqB,EACrB,mBAAqC;IAErC,MAAM,QAAQ,GAAG,IAAA,kCAAsB,EAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,IAAA,yBAAa,EAAC,2BAAe,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;aACpE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,aAAa;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,aAAa;SACtC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC,SAAS,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,2BAAe,EAAE,mBAAmB,CAAC,CAAC;IAErE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ;YACR,QAAQ;YACR,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,+BAAmB,EACxC,2BAAe,EACf,mBAAmB,CACpB,CAAC;IAEF,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IACxD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { QueryFilterOperator } from "../TokenFilter.types";
|
|
2
|
+
/**
|
|
3
|
+
* Human-readable labels for query filter operators.
|
|
4
|
+
* Used for displaying operator descriptions in autocomplete suggestions.
|
|
5
|
+
* TODO: Support i18n
|
|
6
|
+
*/
|
|
7
|
+
declare const OPERATOR_LABELS: Record<QueryFilterOperator, string>;
|
|
8
|
+
/**
|
|
9
|
+
* Builds a query string from property label, operator, and value.
|
|
10
|
+
* Only includes non-empty parts, joined by spaces.
|
|
11
|
+
* @returns Space-joined query string
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* buildQueryString("Status", "=", "active") // "Status = active"
|
|
15
|
+
* buildQueryString("Status", "=", "") // "Status ="
|
|
16
|
+
* buildQueryString("Status", "", "") // "Status"
|
|
17
|
+
* buildQueryString("", "", "") // ""
|
|
18
|
+
*/
|
|
19
|
+
declare function buildQueryString(propertyLabel: string, operator: string, value: string): string;
|
|
20
|
+
export { buildQueryString, OPERATOR_LABELS };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OPERATOR_LABELS = void 0;
|
|
4
|
+
exports.buildQueryString = buildQueryString;
|
|
5
|
+
/**
|
|
6
|
+
* Human-readable labels for query filter operators.
|
|
7
|
+
* Used for displaying operator descriptions in autocomplete suggestions.
|
|
8
|
+
* TODO: Support i18n
|
|
9
|
+
*/
|
|
10
|
+
const OPERATOR_LABELS = {
|
|
11
|
+
":": "contains",
|
|
12
|
+
"!:": "does not contain",
|
|
13
|
+
"=": "is",
|
|
14
|
+
"!=": "is not",
|
|
15
|
+
"^": "starts with",
|
|
16
|
+
"!^": "does not start with",
|
|
17
|
+
">=": "is greater than or equal to",
|
|
18
|
+
"<=": "is less than or equal to",
|
|
19
|
+
">": "is greater than",
|
|
20
|
+
"<": "is less than",
|
|
21
|
+
};
|
|
22
|
+
exports.OPERATOR_LABELS = OPERATOR_LABELS;
|
|
23
|
+
/**
|
|
24
|
+
* Builds a query string from property label, operator, and value.
|
|
25
|
+
* Only includes non-empty parts, joined by spaces.
|
|
26
|
+
* @returns Space-joined query string
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* buildQueryString("Status", "=", "active") // "Status = active"
|
|
30
|
+
* buildQueryString("Status", "=", "") // "Status ="
|
|
31
|
+
* buildQueryString("Status", "", "") // "Status"
|
|
32
|
+
* buildQueryString("", "", "") // ""
|
|
33
|
+
*/
|
|
34
|
+
function buildQueryString(propertyLabel, operator, value) {
|
|
35
|
+
const parts = [propertyLabel, operator, value].filter(Boolean);
|
|
36
|
+
return parts.join(" ");
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/query-builder.ts"],"names":[],"mappings":";;;AAwCS,4CAAgB;AAtCzB;;;;GAIG;AACH,MAAM,eAAe,GAAwC;IAC3D,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,0BAA0B;IAChC,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,cAAc;CACpB,CAAC;AAsByB,0CAAe;AApB1C;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CACvB,aAAqB,EACrB,QAAgB,EAChB,KAAa;IAEb,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if search field values match the given filter text.
|
|
3
|
+
*
|
|
4
|
+
* @param searchFieldValues - Array of strings to search within (e.g., labels, tags, descriptions)
|
|
5
|
+
* @param filterText - The search text to match against
|
|
6
|
+
* @returns true if all space-separated parts of filterText are found in at least one searchFieldValue
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* matchesFilterText(['Hello World', 'foo'], 'hello') // true
|
|
10
|
+
* matchesFilterText(['Hello World', 'foo'], 'hello bar') // false
|
|
11
|
+
* matchesFilterText(['Hello World', 'bar'], 'hello bar') // true
|
|
12
|
+
* matchesFilterText([], 'test') // false
|
|
13
|
+
* matchesFilterText(['test'], '') // true (empty filter matches all)
|
|
14
|
+
*/
|
|
15
|
+
declare function matchesFilterText(searchFieldValues: string[], filterText: string): boolean;
|
|
16
|
+
export { matchesFilterText };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchesFilterText = matchesFilterText;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if search field values match the given filter text.
|
|
6
|
+
*
|
|
7
|
+
* @param searchFieldValues - Array of strings to search within (e.g., labels, tags, descriptions)
|
|
8
|
+
* @param filterText - The search text to match against
|
|
9
|
+
* @returns true if all space-separated parts of filterText are found in at least one searchFieldValue
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* matchesFilterText(['Hello World', 'foo'], 'hello') // true
|
|
13
|
+
* matchesFilterText(['Hello World', 'foo'], 'hello bar') // false
|
|
14
|
+
* matchesFilterText(['Hello World', 'bar'], 'hello bar') // true
|
|
15
|
+
* matchesFilterText([], 'test') // false
|
|
16
|
+
* matchesFilterText(['test'], '') // true (empty filter matches all)
|
|
17
|
+
*/
|
|
18
|
+
function matchesFilterText(searchFieldValues, filterText) {
|
|
19
|
+
/* Guard against null/undefined inputs */
|
|
20
|
+
if (!searchFieldValues || !Array.isArray(searchFieldValues)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (filterText === null || filterText === undefined) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
const normalizedFilter = filterText.trim().toLowerCase();
|
|
27
|
+
/* Empty filter matches everything */
|
|
28
|
+
if (!normalizedFilter) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
/* Split filter into parts ("nord land" -> ["nord", "land"]) */
|
|
32
|
+
const parts = normalizedFilter.split(/\s+/).filter(Boolean);
|
|
33
|
+
if (parts.length === 0) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
/* Normalize and filter out nullish values */
|
|
37
|
+
const normalizedFields = searchFieldValues
|
|
38
|
+
.map((value) => value === null || value === void 0 ? void 0 : value.toLowerCase())
|
|
39
|
+
.filter(Boolean);
|
|
40
|
+
/* If no valid fields to search, no match */
|
|
41
|
+
if (normalizedFields.length === 0) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
/* Every part of the filter must be found in at least one field */
|
|
45
|
+
return parts.every((part) => normalizedFields.some((field) => field.includes(part)));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=text-matching.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-matching.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/text-matching.ts"],"names":[],"mappings":";;AAyDS,8CAAiB;AAzD1B;;;;;;;;;;;;;GAaG;AACH,SAAS,iBAAiB,CACxB,iBAA2B,EAC3B,UAAkB;IAElB,yCAAyC;IACzC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEzD,qCAAqC;IACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,iBAAiB;SACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,EAAE,CAAC;SACpC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,4CAA4C;IAC5C,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kEAAkE;IAClE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1B,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
3
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
3
|
if (k2 === undefined) k2 = k;
|
|
5
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -49,6 +48,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
49
48
|
};
|
|
50
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
50
|
exports.InputController = void 0;
|
|
51
|
+
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
52
52
|
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
53
53
|
const react_1 = __importStar(require("react"));
|
|
54
54
|
const Floating_1 = require("../../../utils/components/floating/Floating");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputController.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/InputController.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputController.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/InputController.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA0D;AAC1D,4DAA4D;AAC5D,+CAA0C;AAC1C,0EAAuE;AACvE,oDAA4C;AAC5C,gDAAoD;AACpD,sFAAsF;AACtF,yFAAiE;AACjE,sFAAsF;AAEtF,oDAA4B;AAC5B,mDAAkD;AAClD,0EAAkD;AAErC,QAAA,eAAe,GAAG,IAAA,kBAAU,EAcvC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,MAAM;IACJ,sHAAsH;IACtH,WAAW;IACX,sHAAsH;IACtH,gBAAgB,EAChB,gBAAgB,GAAG,IAAI,EACvB,cAAc,EACd,yBAAyB,GAAG,IAAI,KAG9B,KAAK,EADJ,IAAI,UACL,KAAK,EAVH,sGAUL,CAAQ,CAAC;IAEV,MAAM,EACJ,UAAU,EACV,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,mBAAmB,EACnB,QAAQ,EACR,YAAY,GACb,GAAG,IAAA,+BAAe,GAAE,CAAC;IAEtB,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;IAC5E,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;IAExD,MAAM,cAAc,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,CACL,8BAAC,mBAAQ,CAAC,MAAM,IAAC,OAAO,QAAC,GAAG,EAAE,YAAY;QAExC,uCACE,SAAS,EAAE,IAAA,YAAE,EAAC,uDAAuD,EAAE;gBACrE,oDAAoD,EAClD,iBAAiB,KAAK,SAAS;aAClC,CAAC,EACF,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,UAAU,EAAE,CAAC;YACf,CAAC;YAEA,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAC5B,8BAAC,eAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,yBAAe,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI;gBAC3D,8BAAC,eAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,yBAAyB,EACpD,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACc,CACnB;YACA,gBAAgB,IAAI,8BAAC,0BAAgB,IAAC,GAAG,EAAE,mBAAmB,GAAI,CAC/D,CACU,CACnB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
3
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
3
|
if (k2 === undefined) k2 = k;
|
|
5
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -46,6 +45,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
46
45
|
};
|
|
47
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
47
|
exports.FileUploadDropzone = void 0;
|
|
48
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
49
49
|
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
50
50
|
const react_1 = __importStar(require("react"));
|
|
51
51
|
const aksel_icons_1 = require("@navikt/aksel-icons");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadDropzone.js","sourceRoot":"","sources":["../../../../src/form/file-upload/dropzone/FileUploadDropzone.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileUploadDropzone.js","sourceRoot":"","sources":["../../../../src/form/file-upload/dropzone/FileUploadDropzone.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA4D;AAC5D,0DAA0D;AAC1D,+CAA0C;AAC1C,qDAAmE;AACnE,4CAAyC;AACzC,oDAAqE;AACrE,4DAAsD;AACtD,oDAAkE;AAClE,+DAAyD;AACzD,qDAAkD;AAClD,0DAAuD;AACvD,2EAA0E;AAE1E,+CAA4C;AAE5C,MAAM,kBAAkB,GAAG,IAAA,kBAAU,EAGnC,CAAC,KAA8B,EAAE,GAAG,EAAE,EAAE;IACxC,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,MAAM,EACN,SAAS,EACT,cAAc,EACd,SAAS,EACT,IAAI,EAAE,YAAY,GAAG,yBAAW,EAChC,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,EAAE,EAAE,QAAQ,EACZ,YAAY,EAAE,KAAK,KAEjB,KAAK,EADJ,IAAI,UACL,KAAK,EAlBH,+LAkBL,CAAQ,CAAC;IAEV,MAAM,OAAO,GAAG,IAAA,iDAAwB,EAAC,KAAK,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,oBAAO,EACvB,YAAY,EACZ,EAAE,QAAQ,EAAE,YAAY,EAAE,EAC1B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CACtB,CAAC;IAEF,MAAM,gBAAgB,GACpB,SAAS,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAA,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,IAAG,CAAC,CAAC;IAE1E,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,gBAAgB,CAAC;IAE/C,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GACvE,IAAA,2BAAY,kCAAM,IAAA,qBAAI,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,KAAE,QAAQ,EAAE,SAAS,KAAI,YAAY,CAAC,CAAC;IAC9E,MAAM,EACJ,EAAE,EAAE,OAAO,EACX,kBAAkB,EAAE,eAAe,KAEjC,UAAU,EADT,cAAc,UACf,UAAU,EAJR,0BAIL,CAAa,CAAC;IACf,MAAM,OAAO,GAAG,IAAA,sBAAK,GAAE,CAAC;IAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAA,6BAAa,EAAC;QAC9D,GAAG;QACH,QAAQ;QACR,SAAS;QACT,MAAM;QACN,cAAc;QACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC;QAC9B,MAAM;QACN,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC,CAAC;IAEH,OAAO,CACL,uCACE,SAAS,EAAE,IAAA,YAAE,EAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE;YAC7D,uBAAuB,EAAE,QAAQ;YACjC,0BAA0B,EAAE,WAAW,CAAC,cAAc;YACtD,0BAA0B,EAAE,UAAU,CAAC,QAAQ;SAChD,CAAC;QAEF,8BAAC,kBAAK,IAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,yBAAyB,IACtE,KAAK,CACA;QACP,CAAC,CAAC,WAAW,IAAI,CAChB,8BAAC,sBAAS,IACR,EAAE,EAAE,kBAAkB,EACtB,SAAS,EAAC,+BAA+B,EACzC,EAAE,EAAC,KAAK,IAEP,WAAW,CACF,CACb;QAED,uCACE,SAAS,EAAC,sBAAsB,EAChC,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,UAAU,EAAE,WAAW,CAAC,UAAU,EAClC,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,OAAO,EAAE,IAAA,8BAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,CAAC,mBACxD,UAAU,CAAC,QAAQ,gBACtB,KAAK;YAEhB,CAAC,UAAU,CAAC,QAAQ,IAAI,CACvB;gBACE,uCAAK,SAAS,EAAC,2BAA2B;oBACxC,8BAAC,YAAY,IAAC,QAAQ,EAAC,QAAQ,wBAAe,CAC1C;gBACN,uCAAK,SAAS,EAAC,8BAA8B;oBAC3C,uCAAK,SAAS,EAAC,oCAAoC;wBACjD,8BAAC,YAAY,0BAAe,CACxB;oBACN,uDACe,CAAC,WAAW,CAAC,cAAc,EACxC,SAAS,EAAC,oCAAoC,IAE7C,SAAS,CAAC,eAAe,CAAC,CACtB,CACH;gBACN;oBACE,8BAAC,sBAAS,IAAC,EAAE,EAAC,KAAK,EAAC,OAAO,UACxB,QAAQ;wBACP,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC;wBAC3C,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAC3B;oBACZ,8BAAC,sBAAS,IAAC,EAAE,EAAC,KAAK,IAAE,SAAS,CAAC,aAAa,CAAC,CAAa,CACtD;gBACN,8BAAC,eAAM,oBACD,IAAA,qBAAI,EAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EACvB,cAAc,IAClB,EAAE,EAAE,QAAQ,sBACM,IAAA,YAAE,EAAC,OAAO,EAAE,eAAe,CAAC,EAC9C,SAAS,EAAC,6BAA6B,EACvC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,WAAW,KAElB,QAAQ;oBACP,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC;oBACtC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CACzB,CACR,CACJ;YAEA,UAAU,CAAC,QAAQ,IAAI,CACtB,uCAAK,SAAS,EAAC,+BAA+B;gBAC5C,8BAAC,6BAAe,yBAAa,QAAQ,EAAC,SAAS,GAAG;gBAClD,8BAAC,sBAAS,IAAC,EAAE,EAAC,KAAK,IAChB,gBAAgB;oBACf,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC;oBACzC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CACxB,CACR,CACP;YAED,yCACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAC7B,CACE;QACN,uCACE,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAE,OAAO,mBACG,oBAAoB,eACxB,QAAQ,IAEjB,YAAY,IAAI,8BAAC,yBAAY,IAAC,QAAQ,UAAE,KAAK,CAAgB,CAC1D,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAGM,gDAAkB;AAD3B,kBAAe,kBAAkB,CAAC"}
|
|
@@ -8,6 +8,10 @@ import { DataTableThead, type DataTableTheadProps } from "../thead/DataTableThea
|
|
|
8
8
|
import { DataTableTr, type DataTableTrProps } from "../tr/DataTableTr.js";
|
|
9
9
|
interface DataTableProps extends React.HTMLAttributes<HTMLTableElement> {
|
|
10
10
|
children: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Controls vertical cell padding.
|
|
13
|
+
* @default "normal"
|
|
14
|
+
*/
|
|
11
15
|
rowDensity?: "condensed" | "normal" | "spacious";
|
|
12
16
|
/**
|
|
13
17
|
* Zebra striped table
|
|
@@ -16,6 +20,8 @@ interface DataTableProps extends React.HTMLAttributes<HTMLTableElement> {
|
|
|
16
20
|
zebraStripes?: boolean;
|
|
17
21
|
/**
|
|
18
22
|
* Truncate content in cells and show ellipsis for overflowed text.
|
|
23
|
+
*
|
|
24
|
+
* **NB:** When using `layout="auto"`, you have to manually set a `maxWidth` on columns that should be truncated.
|
|
19
25
|
* @default true
|
|
20
26
|
*/
|
|
21
27
|
truncateContent?: boolean;
|
|
@@ -30,6 +36,21 @@ interface DataTableProps extends React.HTMLAttributes<HTMLTableElement> {
|
|
|
30
36
|
* Requires `withKeyboardNav` to be `true`.
|
|
31
37
|
*/
|
|
32
38
|
shouldBlockNavigation?: (event: KeyboardEvent) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Controls table layout.
|
|
41
|
+
*
|
|
42
|
+
* ### fixed
|
|
43
|
+
* Gives you full control of column widths. This is required for resizable columns.
|
|
44
|
+
*
|
|
45
|
+
* ### auto
|
|
46
|
+
* Makes the columns resize automatically based on the content.
|
|
47
|
+
* The table will take up at least 100% of available width.
|
|
48
|
+
*
|
|
49
|
+
* **NB:** When using this with `truncateContent`, you have to manually
|
|
50
|
+
* set a `contentMaxWidth` on cells that should be truncated.
|
|
51
|
+
* @default "fixed"
|
|
52
|
+
*/
|
|
53
|
+
layout?: "fixed" | "auto";
|
|
33
54
|
}
|
|
34
55
|
interface DataTableRootComponent extends React.ForwardRefExoticComponent<DataTableProps & React.RefAttributes<HTMLTableElement>> {
|
|
35
56
|
/**
|
|
@@ -123,6 +144,12 @@ interface DataTableRootComponent extends React.ForwardRefExoticComponent<DataTab
|
|
|
123
144
|
*/
|
|
124
145
|
Tfoot: typeof DataTableTfoot;
|
|
125
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* TODO Component description etc.
|
|
149
|
+
*
|
|
150
|
+
* **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
|
|
151
|
+
* TODO example
|
|
152
|
+
*/
|
|
126
153
|
declare const DataTable: DataTableRootComponent;
|
|
127
154
|
export { DataTable, DataTableCaption, DataTableTbody, DataTableTd, DataTableTfoot, DataTableTh, DataTableThead, DataTableTr, };
|
|
128
155
|
export default DataTable;
|
|
@@ -20,8 +20,14 @@ import { DataTableTh } from "../th/DataTableTh.js";
|
|
|
20
20
|
import { DataTableThead, } from "../thead/DataTableThead.js";
|
|
21
21
|
import { DataTableTr } from "../tr/DataTableTr.js";
|
|
22
22
|
import { useTableKeyboardNav } from "./useTableKeyboardNav.js";
|
|
23
|
+
/**
|
|
24
|
+
* TODO Component description etc.
|
|
25
|
+
*
|
|
26
|
+
* **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
|
|
27
|
+
* TODO example
|
|
28
|
+
*/
|
|
23
29
|
const DataTable = forwardRef((_a, forwardedRef) => {
|
|
24
|
-
var { className, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation } = _a, rest = __rest(_a, ["className", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation"]);
|
|
30
|
+
var { className, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed" } = _a, rest = __rest(_a, ["className", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout"]);
|
|
25
31
|
const [tableRef, setTableRef] = useState(null);
|
|
26
32
|
const mergedRef = useMergeRefs(forwardedRef, setTableRef);
|
|
27
33
|
const { tabIndex } = useTableKeyboardNav(tableRef, {
|
|
@@ -30,7 +36,7 @@ const DataTable = forwardRef((_a, forwardedRef) => {
|
|
|
30
36
|
});
|
|
31
37
|
return (React.createElement("div", { className: "aksel-data-table__border-wrapper" },
|
|
32
38
|
React.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
|
|
33
|
-
React.createElement("table", Object.assign({}, rest, { ref: mergedRef, className: cl("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, tabIndex: tabIndex })))));
|
|
39
|
+
React.createElement("table", Object.assign({}, rest, { ref: mergedRef, className: cl("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, "data-layout": layout, tabIndex: tabIndex })))));
|
|
34
40
|
});
|
|
35
41
|
DataTable.Caption = DataTableCaption;
|
|
36
42
|
DataTable.Thead = DataTableThead;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAgJ5D;;;;;GAKG;AACH,MAAM,SAAS,GAAG,UAAU,CAC1B,CACE,EASC,EACD,YAAY,EACZ,EAAE;QAXF,EACE,SAAS,EACT,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,KAAK,EACvB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,IAAI,EACtB,qBAAqB,EACrB,MAAM,GAAG,OAAO,OAEjB,EADI,IAAI,cART,oHASC,CADQ;IAIT,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE1D,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE;QACjD,OAAO,EAAE,eAAe;QACxB,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO,CACL,6BAAK,SAAS,EAAC,kCAAkC;QAC/C,6BAAK,SAAS,EAAC,kCAAkC;YAC/C,+CACM,IAAI,IACR,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,wBACxB,YAAY,2BACT,eAAe,kBACxB,UAAU,iBACX,MAAM,EACnB,QAAQ,EAAE,QAAQ,IAClB,CACE,CACF,CACP,CAAC;AACJ,CAAC,CACwB,CAAC;AAE5B,SAAS,CAAC,OAAO,GAAG,gBAAgB,CAAC;AACrC,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC;AACjC,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC;AACjC,SAAS,CAAC,EAAE,GAAG,WAAW,CAAC;AAC3B,SAAS,CAAC,EAAE,GAAG,WAAW,CAAC;AAC3B,SAAS,CAAC,EAAE,GAAG,WAAW,CAAC;AAC3B,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,GACZ,CAAC;AACF,eAAe,SAAS,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
interface DataTableTdProps extends React.
|
|
2
|
+
interface DataTableTdProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Sets a max-width on the content wrapper div inside the cell.
|
|
5
|
+
* This is only needed when using `layout="auto"` together with
|
|
6
|
+
* `truncateContent` on `<DataTable>` and you want the cell to be truncated.
|
|
5
7
|
*/
|
|
6
|
-
|
|
7
|
-
rowSpan?: number;
|
|
8
|
+
contentMaxWidth?: number | `${number}${string}`;
|
|
8
9
|
}
|
|
9
10
|
declare const DataTableTd: React.ForwardRefExoticComponent<DataTableTdProps & React.RefAttributes<HTMLTableCellElement>>;
|
|
10
11
|
export { DataTableTd };
|
|
@@ -12,9 +12,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import React, { forwardRef } from "react";
|
|
13
13
|
import { cl } from "../../../utils/helpers/index.js";
|
|
14
14
|
const DataTableTd = forwardRef((_a, forwardedRef) => {
|
|
15
|
-
var { className, children } = _a, rest = __rest(_a, ["className", "children"]);
|
|
15
|
+
var { className, children, contentMaxWidth } = _a, rest = __rest(_a, ["className", "children", "contentMaxWidth"]);
|
|
16
16
|
return (React.createElement("td", Object.assign({}, rest, { ref: forwardedRef, className: cl("aksel-data-table__td", className) }),
|
|
17
|
-
React.createElement("div",
|
|
17
|
+
React.createElement("div", { style: { maxWidth: contentMaxWidth } }, children)));
|
|
18
18
|
});
|
|
19
19
|
export { DataTableTd };
|
|
20
20
|
//# sourceMappingURL=DataTableTd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableTd.js","sourceRoot":"","sources":["../../../../src/data/table/td/DataTableTd.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTableTd.js","sourceRoot":"","sources":["../../../../src/data/table/td/DataTableTd.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAiB5C,MAAM,WAAW,GAAG,UAAU,CAC5B,CAAC,EAAiD,EAAE,YAAY,EAAE,EAAE;QAAnE,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,OAAW,EAAN,IAAI,cAA/C,4CAAiD,CAAF;IAC9C,OAAO,CACL,4CACM,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC;QAEhD,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAG,QAAQ,CAAO,CACxD,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
3
|
-
value: string;
|
|
4
|
-
label: string;
|
|
5
|
-
tags?: string[];
|
|
6
|
-
filteringTags?: string[];
|
|
7
|
-
description?: string;
|
|
8
|
-
}
|
|
9
|
-
interface AutoSuggestGroup {
|
|
10
|
-
label: string;
|
|
11
|
-
options: AutoSuggestOption[];
|
|
12
|
-
}
|
|
2
|
+
import type { AutoCompleteOption, OptionGroup } from "./AutoSuggest.types.js";
|
|
13
3
|
interface AutoSuggestProps {
|
|
14
|
-
options:
|
|
15
|
-
value: string;
|
|
16
|
-
filterText: string;
|
|
4
|
+
options: OptionGroup<AutoCompleteOption>[];
|
|
17
5
|
onSelect: (value: string) => void;
|
|
18
6
|
className?: string;
|
|
19
7
|
}
|
|
@@ -1,93 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const filteredGroups = options
|
|
20
|
-
.map((group) => ({
|
|
21
|
-
...group,
|
|
22
|
-
options: group.options.filter((option) => {
|
|
23
|
-
const searchableText = [
|
|
24
|
-
option.label,
|
|
25
|
-
option.description,
|
|
26
|
-
...(option.filteringTags ?? []),
|
|
27
|
-
...(option.tags ?? []),
|
|
28
|
-
]
|
|
29
|
-
.filter(Boolean)
|
|
30
|
-
.join(" ")
|
|
31
|
-
.toLowerCase();
|
|
32
|
-
return searchableText.includes(filterValue);
|
|
33
|
-
}),
|
|
34
|
-
}))
|
|
35
|
-
.filter((group) => group.options.length > 0); */
|
|
36
|
-
const { items } = useAutosuggestItems({ options, filterValue: filterText });
|
|
37
|
-
console.info({ items });
|
|
38
|
-
return (React.createElement("div", { ref: ref, className: cl("aksel-auto-suggest", className) }, options.map((group) => (React.createElement("div", { key: group.label, className: "aksel-auto-suggest__group" },
|
|
39
|
-
React.createElement("div", { className: "aksel-auto-suggest__group-label" }, group.label),
|
|
40
|
-
React.createElement("ul", { className: "aksel-auto-suggest__list" }, group.options.map((option) => (React.createElement("li", { key: option.value, className: "aksel-auto-suggest__item" },
|
|
41
|
-
React.createElement("button", { type: "button", className: "aksel-auto-suggest__button", onClick: () => onSelect(option.value) },
|
|
42
|
-
React.createElement("span", { className: "aksel-auto-suggest__label" }, option.label),
|
|
43
|
-
option.description && (React.createElement("span", { className: "aksel-auto-suggest__description" }, option.description)),
|
|
44
|
-
option.tags && option.tags.length > 0 && (React.createElement("div", { className: "aksel-auto-suggest__tags" }, option.tags.map((tag) => (React.createElement("span", { key: tag, className: "aksel-auto-suggest__tag" }, tag)))))))))))))));
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { Box } from "../../primitives/box/index.js";
|
|
3
|
+
import { VStack } from "../../primitives/stack/index.js";
|
|
4
|
+
import { Label } from "../../typography/index.js";
|
|
5
|
+
const AutoSuggest = forwardRef(({ options, onSelect }, ref) => {
|
|
6
|
+
return (React.createElement(Box, { ref: ref, padding: "space-6" }, options.map((group) => (React.createElement("div", { key: group.label },
|
|
7
|
+
React.createElement(Label, { as: "div" }, group.label),
|
|
8
|
+
React.createElement(VStack, { gap: "space-4" }, group.options.map((option) => {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
return (React.createElement("div", { key: option.value },
|
|
11
|
+
React.createElement("button", { type: "button", onClick: () => { var _a;
|
|
12
|
+
/* @ts-expect-error TODO: We need to convert the data properly */
|
|
13
|
+
return onSelect((_a = option.value) !== null && _a !== void 0 ? _a : option.propertyKey); } },
|
|
14
|
+
React.createElement("span", null, (_b = (_a = option.value) !== null && _a !== void 0 ? _a : option.label) !== null && _b !== void 0 ? _b : option.propertyLabel),
|
|
15
|
+
option.description && React.createElement("span", null, option.description),
|
|
16
|
+
option.tags && option.tags.length > 0 && (React.createElement("div", null, option.tags.map((tag) => (React.createElement("span", { key: tag }, tag))))))));
|
|
17
|
+
})))))));
|
|
45
18
|
});
|
|
46
|
-
function useAutosuggestItems({ options, filterValue }) {
|
|
47
|
-
const { items } = useMemo(() => createItems(options), [options]);
|
|
48
|
-
const filteredItems = useMemo(() => {
|
|
49
|
-
const localFilteredItems = items;
|
|
50
|
-
if (filterValue) {
|
|
51
|
-
localFilteredItems.unshift({
|
|
52
|
-
value: filterValue,
|
|
53
|
-
type: "use-entered",
|
|
54
|
-
label: `Use "${filterValue}"`,
|
|
55
|
-
option: { value: filterValue },
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
return localFilteredItems;
|
|
59
|
-
}, [items, filterValue]);
|
|
60
|
-
return { items: filteredItems };
|
|
61
|
-
}
|
|
62
|
-
function createItems(options) {
|
|
63
|
-
const items = [];
|
|
64
|
-
const itemToGroup = new WeakMap();
|
|
65
|
-
for (const option of options) {
|
|
66
|
-
if (isGroup(option)) {
|
|
67
|
-
for (const item of flattenGroup(option, itemToGroup)) {
|
|
68
|
-
items.push(item);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
items.push(Object.assign(Object.assign({}, option), { option }));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return { items };
|
|
76
|
-
}
|
|
77
|
-
function flattenGroup(group, map) {
|
|
78
|
-
var _a;
|
|
79
|
-
const { options } = group, rest = __rest(group, ["options"]);
|
|
80
|
-
const groupItem = Object.assign(Object.assign({}, rest), { type: "parent", option: group });
|
|
81
|
-
const items = [groupItem];
|
|
82
|
-
for (const option of options) {
|
|
83
|
-
const childOption = Object.assign(Object.assign({}, option), { type: "child", disabled: (_a = option.disabled) !== null && _a !== void 0 ? _a : false, option, parent: group });
|
|
84
|
-
items.push(childOption);
|
|
85
|
-
map.set(childOption, groupItem);
|
|
86
|
-
}
|
|
87
|
-
return items;
|
|
88
|
-
}
|
|
89
|
-
function isGroup(optionOrGroup) {
|
|
90
|
-
return "options" in optionOrGroup;
|
|
91
|
-
}
|
|
92
19
|
export { AutoSuggest };
|
|
93
20
|
//# sourceMappingURL=AutoSuggest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoSuggest.js","sourceRoot":"","sources":["../../../src/data/token-filter/AutoSuggest.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AutoSuggest.js","sourceRoot":"","sources":["../../../src/data/token-filter/AutoSuggest.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASzC,MAAM,WAAW,GAAG,UAAU,CAC5B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;IAC7B,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAC,SAAS,IAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtB,6BAAK,GAAG,EAAE,KAAK,CAAC,KAAK;QACnB,oBAAC,KAAK,IAAC,EAAE,EAAC,KAAK,IAAE,KAAK,CAAC,KAAK,CAAS;QACrC,oBAAC,MAAM,IAAC,GAAG,EAAC,SAAS,IAClB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;;YAC5B,OAAO,CACL,6BAAK,GAAG,EAAE,MAAM,CAAC,KAAK;gBACpB,gCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;oBACZ,iEAAiE;oBACjE,OAAA,QAAQ,CAAC,MAAA,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,WAAW,CAAC,CAAA,EAAA;oBAG9C,kCAEG,MAAA,MAAA,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,aAAa,CAChD;oBACN,MAAM,CAAC,WAAW,IAAI,kCAAO,MAAM,CAAC,WAAW,CAAQ;oBACvD,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CACxC,iCACG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACxB,8BAAM,GAAG,EAAE,GAAG,IAAG,GAAG,CAAQ,CAC7B,CAAC,CACE,CACP,CACM,CACL,CACP,CAAC;QACJ,CAAC,CAAC,CACK,CACL,CACP,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface OptionGroup<T> {
|
|
2
|
+
label: string;
|
|
3
|
+
options: T[];
|
|
4
|
+
}
|
|
5
|
+
interface AutoCompleteOption {
|
|
6
|
+
value: string;
|
|
7
|
+
label: string;
|
|
8
|
+
tags?: string[];
|
|
9
|
+
filteringTags?: string[];
|
|
10
|
+
description?: string;
|
|
11
|
+
}
|
|
12
|
+
export type { AutoCompleteOption, OptionGroup };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoSuggest.types.js","sourceRoot":"","sources":["../../../src/data/token-filter/AutoSuggest.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { forwardRef, useState } from "react";
|
|
2
2
|
import { Popover } from "../../popover/index.js";
|
|
3
3
|
import { cl } from "../../utils/helpers/index.js";
|
|
4
|
+
import { AutoSuggest } from "./AutoSuggest.js";
|
|
4
5
|
import { generateAutoCompleteOptions } from "./helpers/generate-autocomplete-options.js";
|
|
5
6
|
import { parseQueryText } from "./helpers/parse-query-text.js";
|
|
6
7
|
export const TokenFilter = forwardRef(({ query, className, filteringProperties, filteringOptions }, ref) => {
|
|
@@ -9,12 +10,22 @@ export const TokenFilter = forwardRef(({ query, className, filteringProperties,
|
|
|
9
10
|
const { properties, options } = derrivedFilterState(filteringProperties, filteringOptions);
|
|
10
11
|
const queryState = parseQueryText(filterText, properties);
|
|
11
12
|
const autoCompleteOptions = generateAutoCompleteOptions(queryState, properties, options);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const handleSelectOption = (value) => {
|
|
14
|
+
setFilterText(value);
|
|
15
|
+
setCustomOpen(false);
|
|
16
|
+
};
|
|
17
|
+
const [customOpen, setCustomOpen] = useState(false);
|
|
15
18
|
return (React.createElement("div", { ref: ref, className: cl("aksel-property-filter", className), role: "search" },
|
|
16
|
-
React.createElement("input", { type: "text", className: "aksel-property-filter__input", placeholder: "Type to filter...", ref: setInputAnchor, value: filterText, onChange: (e) => setFilterText(e.target.value) }),
|
|
17
|
-
React.createElement(Popover, { anchorEl: inputAnchor, open:
|
|
19
|
+
React.createElement("input", { type: "text", className: "aksel-property-filter__input", placeholder: "Type to filter...", ref: setInputAnchor, value: filterText, onChange: (e) => setFilterText(e.target.value), onFocus: () => setCustomOpen(true) }),
|
|
20
|
+
React.createElement(Popover, { anchorEl: inputAnchor, open: customOpen, onClose: () => {
|
|
21
|
+
setFilterText("");
|
|
22
|
+
setCustomOpen(false);
|
|
23
|
+
} },
|
|
24
|
+
React.createElement(AutoSuggest
|
|
25
|
+
/* @ts-expect-error TODO: handle conversion better */
|
|
26
|
+
, {
|
|
27
|
+
/* @ts-expect-error TODO: handle conversion better */
|
|
28
|
+
options: autoCompleteOptions.options, onSelect: handleSelectOption })),
|
|
18
29
|
query.tokens.map((token, index) => {
|
|
19
30
|
return (React.createElement("div", { key: index, className: "aksel-property-filter__token" },
|
|
20
31
|
React.createElement("strong", null, token.propertyKey),
|
|
@@ -27,7 +38,7 @@ export const TokenFilter = forwardRef(({ query, className, filteringProperties,
|
|
|
27
38
|
React.createElement("pre", null, JSON.stringify(autoCompleteOptions, null, 2))));
|
|
28
39
|
});
|
|
29
40
|
function derrivedFilterState(filteringProperties, filteringOptions) {
|
|
30
|
-
var _a, _b;
|
|
41
|
+
var _a, _b, _c;
|
|
31
42
|
const propertyMap = new Map();
|
|
32
43
|
for (const property of filteringProperties) {
|
|
33
44
|
propertyMap.set(property.key, {
|
|
@@ -35,7 +46,7 @@ function derrivedFilterState(filteringProperties, filteringOptions) {
|
|
|
35
46
|
propertyLabel: (_a = property === null || property === void 0 ? void 0 : property.propertyLabel) !== null && _a !== void 0 ? _a : "",
|
|
36
47
|
groupValuesLabel: (_b = property === null || property === void 0 ? void 0 : property.groupValuesLabel) !== null && _b !== void 0 ? _b : "",
|
|
37
48
|
propertyGroup: property === null || property === void 0 ? void 0 : property.group,
|
|
38
|
-
|
|
49
|
+
operators: (_c = property === null || property === void 0 ? void 0 : property.operators) !== null && _c !== void 0 ? _c : [],
|
|
39
50
|
/* defaultOperator: property?.defaultOperator ?? '=', */
|
|
40
51
|
externalProperty: property,
|
|
41
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenFilter.js","sourceRoot":"","sources":["../../../src/data/token-filter/TokenFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenFilter.js","sourceRoot":"","sources":["../../../src/data/token-filter/TokenFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -22,11 +22,16 @@ type QueryFilteringOptionGroup = {
|
|
|
22
22
|
label: string;
|
|
23
23
|
options: QueryFilteringOptions;
|
|
24
24
|
};
|
|
25
|
+
type QueryFilteringScopedOperator = string | {
|
|
26
|
+
operator: string;
|
|
27
|
+
tokenType: "single" | "multiple";
|
|
28
|
+
};
|
|
25
29
|
type QueryFilteringProperty = {
|
|
26
30
|
key: string;
|
|
27
31
|
propertyLabel: string;
|
|
28
|
-
groupValuesLabel
|
|
29
|
-
group
|
|
32
|
+
groupValuesLabel?: string;
|
|
33
|
+
group?: string;
|
|
34
|
+
operators?: QueryFilteringScopedOperator[];
|
|
30
35
|
};
|
|
31
36
|
type QueryFilteringProperties = QueryFilteringProperty[];
|
|
32
37
|
type ParsedProperty = {
|
|
@@ -34,6 +39,7 @@ type ParsedProperty = {
|
|
|
34
39
|
propertyLabel: string;
|
|
35
40
|
groupValuesLabel: string;
|
|
36
41
|
propertyGroup: string;
|
|
42
|
+
operators: QueryFilteringScopedOperator[];
|
|
37
43
|
externalProperty: QueryFilteringProperty;
|
|
38
44
|
};
|
|
39
45
|
type ParsedOption = {
|