@navikt/ds-react 8.5.2 → 8.7.0
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/drag-and-drop/item/DataDragAndDropItem.d.ts +27 -0
- package/cjs/data/drag-and-drop/item/DataDragAndDropItem.js +91 -0
- package/cjs/data/drag-and-drop/item/DataDragAndDropItem.js.map +1 -0
- package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.d.ts +5 -0
- package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.js +6 -0
- package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.js.map +1 -0
- package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.d.ts +24 -0
- package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.js +111 -0
- package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.js.map +1 -0
- package/cjs/data/table/helpers/table-keyboard.d.ts +1 -0
- package/cjs/data/table/helpers/table-keyboard.js +5 -3
- package/cjs/data/table/helpers/table-keyboard.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.context.d.ts +8 -0
- package/cjs/data/table/root/DataTableRoot.context.js +11 -0
- package/cjs/data/table/root/DataTableRoot.context.js.map +1 -0
- package/cjs/data/table/root/DataTableRoot.js +5 -3
- package/cjs/data/table/root/DataTableRoot.js.map +1 -1
- package/cjs/data/table/th/DataTableTh.d.ts +18 -2
- package/cjs/data/table/th/DataTableTh.js +45 -20
- package/cjs/data/table/th/DataTableTh.js.map +1 -1
- package/cjs/data/table/tr/DataTableTr.js +9 -2
- package/cjs/data/table/tr/DataTableTr.js.map +1 -1
- package/cjs/data/token-filter/AutoSuggest.d.ts +6 -2
- package/cjs/data/token-filter/AutoSuggest.js +46 -14
- package/cjs/data/token-filter/AutoSuggest.js.map +1 -1
- package/cjs/data/token-filter/AutoSuggest.types.d.ts +0 -1
- package/cjs/data/token-filter/TokenFilter.d.ts +10 -5
- package/cjs/data/token-filter/TokenFilter.js +110 -48
- package/cjs/data/token-filter/TokenFilter.js.map +1 -1
- package/cjs/data/token-filter/TokenFilter.types.d.ts +51 -35
- package/cjs/data/token-filter/helpers/generate-autocomplete-options.d.ts +3 -6
- package/cjs/data/token-filter/helpers/generate-autocomplete-options.js +24 -37
- package/cjs/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
- package/cjs/data/token-filter/helpers/operators.d.ts +6 -6
- package/cjs/data/token-filter/helpers/operators.js +3 -4
- package/cjs/data/token-filter/helpers/operators.js.map +1 -1
- package/cjs/data/token-filter/helpers/parse-query-text.d.ts +2 -20
- package/cjs/data/token-filter/helpers/parse-query-text.js +1 -1
- package/cjs/data/token-filter/helpers/parse-query-text.js.map +1 -1
- package/cjs/data/token-filter/helpers/query-builder.d.ts +2 -2
- package/cjs/data/token-filter/helpers/query-builder.js.map +1 -1
- package/cjs/date/Date.Dialog.d.ts +5 -1
- package/cjs/date/Date.Dialog.js +6 -2
- package/cjs/date/Date.Dialog.js.map +1 -1
- package/cjs/date/datepicker/DatePicker.js +3 -2
- package/cjs/date/datepicker/DatePicker.js.map +1 -1
- package/cjs/date/datepicker/hooks/useDatepicker.js +5 -2
- package/cjs/date/datepicker/hooks/useDatepicker.js.map +1 -1
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js +3 -1
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
- package/cjs/date/datepicker/parts/DatePicker.Months.d.ts +2 -1
- package/cjs/date/datepicker/parts/DatePicker.Months.js +3 -3
- package/cjs/date/datepicker/parts/DatePicker.Months.js.map +1 -1
- package/cjs/date/datepicker/parts/DatePicker.RDP.d.ts +5 -1
- package/cjs/date/datepicker/parts/DatePicker.RDP.js +2 -2
- package/cjs/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
- package/cjs/date/monthpicker/MonthPicker.js +3 -2
- package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
- package/cjs/date/monthpicker/hooks/useMonthPicker.js +3 -1
- package/cjs/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.d.ts +4 -1
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.js +3 -2
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -1
- package/cjs/dropdown/Toggle.js +5 -12
- package/cjs/dropdown/Toggle.js.map +1 -1
- package/cjs/form/combobox/Input/Input.js +1 -1
- package/cjs/form/combobox/Input/Input.js.map +1 -1
- package/cjs/inline-message/root/InlineMessage.js +2 -2
- package/cjs/inline-message/root/InlineMessage.js.map +1 -1
- package/cjs/provider/Provider.d.ts +2 -2
- package/cjs/toggle-group/useToggleGroup.js +5 -3
- package/cjs/toggle-group/useToggleGroup.js.map +1 -1
- package/cjs/tooltip/Tooltip.js +1 -3
- package/cjs/tooltip/Tooltip.js.map +1 -1
- package/cjs/utils/components/HighlightText/HighlightText.d.ts +8 -0
- package/cjs/utils/components/HighlightText/HighlightText.js +27 -0
- package/cjs/utils/components/HighlightText/HighlightText.js.map +1 -0
- package/cjs/utils/components/Listbox/group/ListboxGroup.d.ts +7 -0
- package/cjs/utils/components/Listbox/group/ListboxGroup.js +15 -0
- package/cjs/utils/components/Listbox/group/ListboxGroup.js.map +1 -0
- package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.d.ts +7 -0
- package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.js +15 -0
- package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.js.map +1 -0
- package/cjs/utils/components/Listbox/item/ListboxItem.d.ts +24 -0
- package/cjs/utils/components/Listbox/item/ListboxItem.js +33 -0
- package/cjs/utils/components/Listbox/item/ListboxItem.js.map +1 -0
- package/cjs/utils/components/Listbox/list/ListboxList.d.ts +8 -0
- package/cjs/utils/components/Listbox/list/ListboxList.js +32 -0
- package/cjs/utils/components/Listbox/list/ListboxList.js.map +1 -0
- package/cjs/utils/components/Listbox/root/ListboxRoot.d.ts +20 -0
- package/cjs/utils/components/Listbox/root/ListboxRoot.js +84 -0
- package/cjs/utils/components/Listbox/root/ListboxRoot.js.map +1 -0
- package/cjs/utils/components/Listbox/root/domHelpers.d.ts +3 -0
- package/cjs/utils/components/Listbox/root/domHelpers.js +53 -0
- package/cjs/utils/components/Listbox/root/domHelpers.js.map +1 -0
- package/cjs/utils/components/focus-boundary/FocusBoundary.js +9 -64
- package/cjs/utils/components/focus-boundary/FocusBoundary.js.map +1 -1
- package/cjs/utils/helpers/focus.d.ts +14 -0
- package/cjs/utils/helpers/focus.js +63 -0
- package/cjs/utils/helpers/focus.js.map +1 -0
- package/cjs/utils/hooks/useDeferredValue.d.ts +1 -0
- package/cjs/utils/hooks/useDeferredValue.js +14 -0
- package/cjs/utils/hooks/useDeferredValue.js.map +1 -0
- package/esm/data/drag-and-drop/item/DataDragAndDropItem.d.ts +27 -0
- package/esm/data/drag-and-drop/item/DataDragAndDropItem.js +55 -0
- package/esm/data/drag-and-drop/item/DataDragAndDropItem.js.map +1 -0
- package/esm/data/drag-and-drop/root/DataDragAndDrop.context.d.ts +5 -0
- package/esm/data/drag-and-drop/root/DataDragAndDrop.context.js +3 -0
- package/esm/data/drag-and-drop/root/DataDragAndDrop.context.js.map +1 -0
- package/esm/data/drag-and-drop/root/DataDragAndDropRoot.d.ts +24 -0
- package/esm/data/drag-and-drop/root/DataDragAndDropRoot.js +71 -0
- package/esm/data/drag-and-drop/root/DataDragAndDropRoot.js.map +1 -0
- package/esm/data/table/helpers/table-keyboard.d.ts +1 -0
- package/esm/data/table/helpers/table-keyboard.js +5 -3
- package/esm/data/table/helpers/table-keyboard.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.context.d.ts +8 -0
- package/esm/data/table/root/DataTableRoot.context.js +7 -0
- package/esm/data/table/root/DataTableRoot.context.js.map +1 -0
- package/esm/data/table/root/DataTableRoot.js +5 -3
- package/esm/data/table/root/DataTableRoot.js.map +1 -1
- package/esm/data/table/th/DataTableTh.d.ts +18 -2
- package/esm/data/table/th/DataTableTh.js +46 -21
- package/esm/data/table/th/DataTableTh.js.map +1 -1
- package/esm/data/table/tr/DataTableTr.js +9 -2
- package/esm/data/table/tr/DataTableTr.js.map +1 -1
- package/esm/data/token-filter/AutoSuggest.d.ts +6 -2
- package/esm/data/token-filter/AutoSuggest.js +45 -16
- package/esm/data/token-filter/AutoSuggest.js.map +1 -1
- package/esm/data/token-filter/AutoSuggest.types.d.ts +0 -1
- package/esm/data/token-filter/TokenFilter.d.ts +10 -5
- package/esm/data/token-filter/TokenFilter.js +110 -48
- package/esm/data/token-filter/TokenFilter.js.map +1 -1
- package/esm/data/token-filter/TokenFilter.types.d.ts +51 -35
- package/esm/data/token-filter/helpers/generate-autocomplete-options.d.ts +3 -6
- package/esm/data/token-filter/helpers/generate-autocomplete-options.js +24 -37
- package/esm/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
- package/esm/data/token-filter/helpers/operators.d.ts +6 -6
- package/esm/data/token-filter/helpers/operators.js +3 -4
- package/esm/data/token-filter/helpers/operators.js.map +1 -1
- package/esm/data/token-filter/helpers/parse-query-text.d.ts +2 -20
- package/esm/data/token-filter/helpers/parse-query-text.js +1 -1
- package/esm/data/token-filter/helpers/parse-query-text.js.map +1 -1
- package/esm/data/token-filter/helpers/query-builder.d.ts +2 -2
- package/esm/data/token-filter/helpers/query-builder.js.map +1 -1
- package/esm/date/Date.Dialog.d.ts +5 -1
- package/esm/date/Date.Dialog.js +6 -2
- package/esm/date/Date.Dialog.js.map +1 -1
- package/esm/date/datepicker/DatePicker.js +3 -2
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/datepicker/hooks/useDatepicker.js +5 -2
- package/esm/date/datepicker/hooks/useDatepicker.js.map +1 -1
- package/esm/date/datepicker/hooks/useRangeDatepicker.js +3 -1
- package/esm/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
- package/esm/date/datepicker/parts/DatePicker.Months.d.ts +2 -1
- package/esm/date/datepicker/parts/DatePicker.Months.js +3 -3
- package/esm/date/datepicker/parts/DatePicker.Months.js.map +1 -1
- package/esm/date/datepicker/parts/DatePicker.RDP.d.ts +5 -1
- package/esm/date/datepicker/parts/DatePicker.RDP.js +2 -2
- package/esm/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
- package/esm/date/monthpicker/MonthPicker.js +3 -2
- package/esm/date/monthpicker/MonthPicker.js.map +1 -1
- package/esm/date/monthpicker/hooks/useMonthPicker.js +3 -1
- package/esm/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
- package/esm/date/monthpicker/parts/MonthPicker.Caption.d.ts +4 -1
- package/esm/date/monthpicker/parts/MonthPicker.Caption.js +3 -2
- package/esm/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -1
- package/esm/dropdown/Toggle.js +5 -12
- package/esm/dropdown/Toggle.js.map +1 -1
- package/esm/form/combobox/Input/Input.js +1 -1
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/inline-message/root/InlineMessage.js +3 -3
- package/esm/inline-message/root/InlineMessage.js.map +1 -1
- package/esm/provider/Provider.d.ts +2 -2
- package/esm/toggle-group/useToggleGroup.js +6 -4
- package/esm/toggle-group/useToggleGroup.js.map +1 -1
- package/esm/tooltip/Tooltip.js +1 -3
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/esm/utils/components/HighlightText/HighlightText.d.ts +8 -0
- package/esm/utils/components/HighlightText/HighlightText.js +21 -0
- package/esm/utils/components/HighlightText/HighlightText.js.map +1 -0
- package/esm/utils/components/Listbox/group/ListboxGroup.d.ts +7 -0
- package/esm/utils/components/Listbox/group/ListboxGroup.js +10 -0
- package/esm/utils/components/Listbox/group/ListboxGroup.js.map +1 -0
- package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.d.ts +7 -0
- package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.js +9 -0
- package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.js.map +1 -0
- package/esm/utils/components/Listbox/item/ListboxItem.d.ts +24 -0
- package/esm/utils/components/Listbox/item/ListboxItem.js +27 -0
- package/esm/utils/components/Listbox/item/ListboxItem.js.map +1 -0
- package/esm/utils/components/Listbox/list/ListboxList.d.ts +8 -0
- package/esm/utils/components/Listbox/list/ListboxList.js +27 -0
- package/esm/utils/components/Listbox/list/ListboxList.js.map +1 -0
- package/esm/utils/components/Listbox/root/ListboxRoot.d.ts +20 -0
- package/esm/utils/components/Listbox/root/ListboxRoot.js +79 -0
- package/esm/utils/components/Listbox/root/ListboxRoot.js.map +1 -0
- package/esm/utils/components/Listbox/root/domHelpers.d.ts +3 -0
- package/esm/utils/components/Listbox/root/domHelpers.js +50 -0
- package/esm/utils/components/Listbox/root/domHelpers.js.map +1 -0
- package/esm/utils/components/focus-boundary/FocusBoundary.js +8 -63
- package/esm/utils/components/focus-boundary/FocusBoundary.js.map +1 -1
- package/esm/utils/helpers/focus.d.ts +14 -0
- package/esm/utils/helpers/focus.js +60 -0
- package/esm/utils/helpers/focus.js.map +1 -0
- package/esm/utils/hooks/useDeferredValue.d.ts +1 -0
- package/esm/utils/hooks/useDeferredValue.js +7 -0
- package/esm/utils/hooks/useDeferredValue.js.map +1 -0
- package/package.json +7 -7
- package/src/data/drag-and-drop/item/DataDragAndDropItem.tsx +101 -0
- package/src/data/drag-and-drop/root/DataDragAndDrop.context.tsx +9 -0
- package/src/data/drag-and-drop/root/DataDragAndDropRoot.tsx +98 -0
- package/src/data/table/helpers/table-keyboard.ts +7 -3
- package/src/data/table/root/DataTableRoot.context.ts +13 -0
- package/src/data/table/root/DataTableRoot.tsx +16 -13
- package/src/data/table/th/DataTableTh.tsx +110 -54
- package/src/data/table/tr/DataTableTr.tsx +13 -2
- package/src/data/token-filter/AutoSuggest.tsx +142 -35
- package/src/data/token-filter/AutoSuggest.types.ts +0 -1
- package/src/data/token-filter/TokenFilter.tsx +179 -81
- package/src/data/token-filter/TokenFilter.types.ts +70 -44
- package/src/data/token-filter/helpers/generate-autocomplete-options.test.ts +97 -157
- package/src/data/token-filter/helpers/generate-autocomplete-options.ts +56 -53
- package/src/data/token-filter/helpers/operators.test.ts +29 -29
- package/src/data/token-filter/helpers/operators.ts +16 -16
- package/src/data/token-filter/helpers/parse-query-text.test.ts +37 -35
- package/src/data/token-filter/helpers/parse-query-text.ts +7 -26
- package/src/data/token-filter/helpers/query-builder.ts +2 -2
- package/src/date/Date.Dialog.tsx +15 -0
- package/src/date/datepicker/DatePicker.tsx +3 -0
- package/src/date/datepicker/hooks/useDatepicker.tsx +7 -2
- package/src/date/datepicker/hooks/useRangeDatepicker.tsx +5 -1
- package/src/date/datepicker/parts/DatePicker.Months.tsx +9 -1
- package/src/date/datepicker/parts/DatePicker.RDP.tsx +7 -1
- package/src/date/monthpicker/MonthPicker.tsx +3 -1
- package/src/date/monthpicker/hooks/useMonthPicker.tsx +5 -1
- package/src/date/monthpicker/parts/MonthPicker.Caption.tsx +20 -2
- package/src/dropdown/Toggle.tsx +6 -12
- package/src/form/combobox/Input/Input.tsx +2 -2
- package/src/inline-message/root/InlineMessage.tsx +5 -5
- package/src/provider/Provider.tsx +2 -2
- package/src/toggle-group/useToggleGroup.ts +6 -5
- package/src/tooltip/Tooltip.tsx +1 -3
- package/src/utils/components/HighlightText/HighlightText.tsx +34 -0
- package/src/utils/components/Listbox/group/ListboxGroup.tsx +26 -0
- package/src/utils/components/Listbox/input-slot/ListboxInputSlot.tsx +22 -0
- package/src/utils/components/Listbox/item/ListboxItem.tsx +57 -0
- package/src/utils/components/Listbox/list/ListboxList.tsx +38 -0
- package/src/utils/components/Listbox/root/ListboxRoot.tsx +104 -0
- package/src/utils/components/Listbox/root/domHelpers.ts +59 -0
- package/src/utils/components/focus-boundary/FocusBoundary.tsx +8 -78
- package/src/utils/helpers/focus.ts +75 -0
- package/src/utils/hooks/useDeferredValue.ts +12 -0
- package/cjs/data/table/th/DataTableThSortHandle.d.ts +0 -6
- package/cjs/data/table/th/DataTableThSortHandle.js +0 -82
- package/cjs/data/table/th/DataTableThSortHandle.js.map +0 -1
- package/esm/data/table/th/DataTableThSortHandle.d.ts +0 -6
- package/esm/data/table/th/DataTableThSortHandle.js +0 -47
- package/esm/data/table/th/DataTableThSortHandle.js.map +0 -1
- package/src/data/table/th/DataTableThSortHandle.tsx +0 -67
|
@@ -1,52 +1,68 @@
|
|
|
1
|
-
type
|
|
2
|
-
type
|
|
3
|
-
type
|
|
1
|
+
type OperatorT = "<" | "<=" | ">" | ">=" | ":" | "!:" | "=" | "!=" | "^" | "!^" | (string & {});
|
|
2
|
+
type OperationT = "and" | "or";
|
|
3
|
+
type ExternalToken = {
|
|
4
4
|
propertyKey: string;
|
|
5
|
-
operator:
|
|
6
|
-
value:
|
|
5
|
+
operator: OperatorT;
|
|
6
|
+
value: string;
|
|
7
7
|
};
|
|
8
|
-
type
|
|
9
|
-
tokens:
|
|
10
|
-
operation:
|
|
8
|
+
type ExternalQuery = {
|
|
9
|
+
tokens: ExternalToken[];
|
|
10
|
+
operation: OperationT;
|
|
11
11
|
};
|
|
12
|
-
type
|
|
12
|
+
type ExternalOption = {
|
|
13
13
|
propertyKey: string;
|
|
14
|
-
value:
|
|
14
|
+
value: string;
|
|
15
15
|
label?: string;
|
|
16
16
|
tags?: string[];
|
|
17
|
-
filteringTags?: string[];
|
|
18
17
|
disabled?: boolean;
|
|
19
18
|
};
|
|
20
|
-
type
|
|
21
|
-
type
|
|
19
|
+
type ExternalOptions = ExternalOption[];
|
|
20
|
+
type ExternalPropertyGroup = {
|
|
22
21
|
label: string;
|
|
23
|
-
options:
|
|
22
|
+
options: ExternalOptions;
|
|
24
23
|
};
|
|
25
|
-
type
|
|
24
|
+
type ExternalPropertyDefinition = {
|
|
25
|
+
key: string;
|
|
26
|
+
label: string;
|
|
27
|
+
groupLabel?: string;
|
|
28
|
+
group?: string;
|
|
29
|
+
operators?: ExternalPropertyOperator[];
|
|
30
|
+
};
|
|
31
|
+
type ExternalPropertyDefinitions = ExternalPropertyDefinition[];
|
|
32
|
+
type ExternalPropertyOperator = string | {
|
|
26
33
|
operator: string;
|
|
27
|
-
|
|
34
|
+
type: "single" | "multiple";
|
|
28
35
|
};
|
|
29
|
-
type
|
|
36
|
+
export type { ExternalOption, ExternalOptions, ExternalPropertyDefinition, ExternalPropertyDefinitions, ExternalPropertyGroup, ExternalQuery, ExternalToken, OperationT, OperatorT, };
|
|
37
|
+
type InternalPropertyDefinition = {
|
|
30
38
|
key: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
group
|
|
34
|
-
operators
|
|
39
|
+
label: string;
|
|
40
|
+
groupLabel: string;
|
|
41
|
+
group: string;
|
|
42
|
+
operators: ExternalPropertyOperator[];
|
|
43
|
+
externalProperty: ExternalPropertyDefinition;
|
|
35
44
|
};
|
|
36
|
-
type
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
propertyLabel: string;
|
|
40
|
-
groupValuesLabel: string;
|
|
41
|
-
propertyGroup: string;
|
|
42
|
-
operators: QueryFilteringScopedOperator[];
|
|
43
|
-
externalProperty: QueryFilteringProperty;
|
|
44
|
-
};
|
|
45
|
-
type ParsedOption = {
|
|
46
|
-
property: ParsedProperty | null;
|
|
47
|
-
value: any;
|
|
45
|
+
type InternalPropertyOption = {
|
|
46
|
+
property: InternalPropertyDefinition | null;
|
|
47
|
+
value: string;
|
|
48
48
|
label: string;
|
|
49
49
|
tags: string[];
|
|
50
|
-
filteringTags: string[];
|
|
51
50
|
};
|
|
52
|
-
|
|
51
|
+
type InternalParsedTextState = {
|
|
52
|
+
/** User has typed property + complete operator + value (e.g., "Status != active") */
|
|
53
|
+
step: "property";
|
|
54
|
+
property: InternalPropertyDefinition;
|
|
55
|
+
operator: OperatorT;
|
|
56
|
+
value: string;
|
|
57
|
+
} | {
|
|
58
|
+
/** User is typing the operator after property (e.g., "Status !") */
|
|
59
|
+
step: "operator";
|
|
60
|
+
property: InternalPropertyDefinition;
|
|
61
|
+
operatorPrefix: string;
|
|
62
|
+
} | {
|
|
63
|
+
/** No property match; treat as free-text search */
|
|
64
|
+
step: "free-text";
|
|
65
|
+
value: string;
|
|
66
|
+
operator?: OperatorT;
|
|
67
|
+
};
|
|
68
|
+
export type { InternalPropertyDefinition, InternalPropertyOption, InternalParsedTextState, };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { AutoCompleteOption, OptionGroup } from "../AutoSuggest.types.js";
|
|
2
|
-
import type {
|
|
3
|
-
import { type ParsedText } from "./parse-query-text.js";
|
|
2
|
+
import type { InternalParsedTextState, InternalPropertyDefinition, InternalPropertyOption } from "../TokenFilter.types.js";
|
|
4
3
|
/**
|
|
5
4
|
* Generates "options" to be used as autosuggest-ottion based on the current query state.
|
|
6
5
|
*
|
|
@@ -14,11 +13,9 @@ import { type ParsedText } from "./parse-query-text.js";
|
|
|
14
13
|
* Used by the UI to determine cursor position and input replacement.
|
|
15
14
|
* - options: Grouped suggestions to display (properties, operators, or values).
|
|
16
15
|
*/
|
|
17
|
-
|
|
16
|
+
type AutoCompleteResult = {
|
|
18
17
|
value: string;
|
|
19
18
|
options: OptionGroup<AutoCompleteOption>[];
|
|
20
|
-
} | {
|
|
21
|
-
value: string;
|
|
22
|
-
options: OptionGroup<ParsedProperty>[];
|
|
23
19
|
};
|
|
20
|
+
declare function generateAutoCompleteOptions(queryState: InternalParsedTextState, filteringProperties?: InternalPropertyDefinition[], filteringOptions?: InternalPropertyOption[]): AutoCompleteResult;
|
|
24
21
|
export { generateAutoCompleteOptions };
|
|
@@ -2,19 +2,6 @@ import { createGroups } from "./grouping.js";
|
|
|
2
2
|
import { QUERY_OPERATORS } from "./operators.js";
|
|
3
3
|
import { OPERATOR_LABELS, buildQueryString } from "./query-builder.js";
|
|
4
4
|
import { matchesFilterText } from "./text-matching.js";
|
|
5
|
-
/**
|
|
6
|
-
* Generates "options" to be used as autosuggest-ottion based on the current query state.
|
|
7
|
-
*
|
|
8
|
-
* The query parser recognizes three states:
|
|
9
|
-
* - "property": User has selected/matched a property and operator ("Status = active")
|
|
10
|
-
* - "operator": User has matched a property but is typing the operator ("Status" or "Status !")
|
|
11
|
-
* - "free-text": User is typing freely without a property match (e.g., "act" or "!: test")
|
|
12
|
-
*
|
|
13
|
-
* @returns
|
|
14
|
-
* - value: The canonical query string representation for the current state.
|
|
15
|
-
* Used by the UI to determine cursor position and input replacement.
|
|
16
|
-
* - options: Grouped suggestions to display (properties, operators, or values).
|
|
17
|
-
*/
|
|
18
5
|
function generateAutoCompleteOptions(queryState, filteringProperties = [], filteringOptions = []) {
|
|
19
6
|
var _a;
|
|
20
7
|
/* State: Property and operator are matched, suggest values */
|
|
@@ -28,14 +15,11 @@ function generateAutoCompleteOptions(queryState, filteringProperties = [], filte
|
|
|
28
15
|
/* State: Property matched, but operator is incomplete */
|
|
29
16
|
if (queryState.step === "operator") {
|
|
30
17
|
const operators = filterOperatorsByPrefix(getValidOperatorsForProperty(queryState.property), queryState.operatorPrefix);
|
|
31
|
-
const partialQuery = buildQueryString(queryState.property.
|
|
18
|
+
const partialQuery = buildQueryString(queryState.property.label, queryState.operatorPrefix, "");
|
|
32
19
|
/**
|
|
33
20
|
* Edge case: User typed an invalid operator prefix that doesn't match any operators.
|
|
34
21
|
* This can happen when typing characters that don't start any valid operator.
|
|
35
22
|
* Return empty suggestions gracefully - the UI will show "no results".
|
|
36
|
-
*
|
|
37
|
-
* TODO: When per-property operator configuration is implemented,
|
|
38
|
-
* this could also occur when a property restricts which operators are valid.
|
|
39
23
|
*/
|
|
40
24
|
if (operators.length === 0) {
|
|
41
25
|
return {
|
|
@@ -71,7 +55,10 @@ function generateAutoCompleteOptions(queryState, filteringProperties = [], filte
|
|
|
71
55
|
*/
|
|
72
56
|
return {
|
|
73
57
|
value: queryState.value,
|
|
74
|
-
options:
|
|
58
|
+
options: [
|
|
59
|
+
...generatePropertySuggestions(filteringProperties, queryState.value),
|
|
60
|
+
...createValueSuggestions(filteringOptions, (_a = queryState.operator) !== null && _a !== void 0 ? _a : "=", queryState.value),
|
|
61
|
+
],
|
|
75
62
|
};
|
|
76
63
|
}
|
|
77
64
|
/**
|
|
@@ -117,15 +104,18 @@ function generatePropertySuggestions(filteringProperties = [], filterText = "")
|
|
|
117
104
|
if (!property) {
|
|
118
105
|
continue;
|
|
119
106
|
}
|
|
120
|
-
if (matchesFilterText([
|
|
121
|
-
property.propertyLabel,
|
|
122
|
-
property.groupValuesLabel,
|
|
123
|
-
property.propertyGroup,
|
|
124
|
-
].filter(Boolean), filterText)) {
|
|
107
|
+
if (matchesFilterText([property.label, property.groupLabel, property.group].filter(Boolean), filterText)) {
|
|
125
108
|
filteredProperties.push(property);
|
|
126
109
|
}
|
|
127
110
|
}
|
|
128
|
-
|
|
111
|
+
const groups = createGroups(filteredProperties, (property) => property.group, "Properties");
|
|
112
|
+
return groups.map((group) => ({
|
|
113
|
+
label: group.label,
|
|
114
|
+
options: group.options.map((property) => ({
|
|
115
|
+
value: buildQueryString(property.label, "", ""),
|
|
116
|
+
label: property.label,
|
|
117
|
+
})),
|
|
118
|
+
}));
|
|
129
119
|
}
|
|
130
120
|
function generateOperatorSuggestions(property, operatorPrefix = "") {
|
|
131
121
|
const operators = filterOperatorsByPrefix(getValidOperatorsForProperty(property), operatorPrefix);
|
|
@@ -138,8 +128,8 @@ function generateOperatorSuggestions(property, operatorPrefix = "") {
|
|
|
138
128
|
options: operators.map((operator) => {
|
|
139
129
|
var _a;
|
|
140
130
|
return ({
|
|
141
|
-
value: buildQueryString(property.
|
|
142
|
-
label: buildQueryString(property.
|
|
131
|
+
value: buildQueryString(property.label, operator, ""),
|
|
132
|
+
label: buildQueryString(property.label, operator, ""),
|
|
143
133
|
description: (_a = OPERATOR_LABELS[operator]) !== null && _a !== void 0 ? _a : "",
|
|
144
134
|
});
|
|
145
135
|
}),
|
|
@@ -150,9 +140,11 @@ function generateOperatorSuggestions(property, operatorPrefix = "") {
|
|
|
150
140
|
* Creates value suggestions for autocomplete.
|
|
151
141
|
* When scopedProperty is provided, only shows values for that property (single group).
|
|
152
142
|
* When scopedProperty is omitted, searches across all properties (multiple groups).
|
|
143
|
+
* TODO: This could potentially contain an unlimited number of options if there are many values across properties.
|
|
144
|
+
* May need virtualization/async or other filtering mechanism.
|
|
153
145
|
*/
|
|
154
146
|
function createValueSuggestions(filteringOptions = [], operator, filterText = "", scopedProperty) {
|
|
155
|
-
var _a
|
|
147
|
+
var _a;
|
|
156
148
|
const groups = {};
|
|
157
149
|
for (const option of filteringOptions) {
|
|
158
150
|
if (!(option === null || option === void 0 ? void 0 : option.property)) {
|
|
@@ -163,19 +155,15 @@ function createValueSuggestions(filteringOptions = [], operator, filterText = ""
|
|
|
163
155
|
continue;
|
|
164
156
|
}
|
|
165
157
|
/* Build search fields */
|
|
166
|
-
const searchFields = [
|
|
167
|
-
option.label,
|
|
168
|
-
...((_a = option.tags) !== null && _a !== void 0 ? _a : []),
|
|
169
|
-
...((_b = option.filteringTags) !== null && _b !== void 0 ? _b : []),
|
|
170
|
-
];
|
|
158
|
+
const searchFields = [option.label, ...((_a = option.tags) !== null && _a !== void 0 ? _a : [])];
|
|
171
159
|
if (!scopedProperty) {
|
|
172
|
-
searchFields.push(option.property.
|
|
160
|
+
searchFields.push(option.property.label);
|
|
173
161
|
}
|
|
174
162
|
const matches = matchesFilterText(searchFields.filter(Boolean), filterText);
|
|
175
163
|
if (!matches) {
|
|
176
164
|
continue;
|
|
177
165
|
}
|
|
178
|
-
const groupLabel = option.property.
|
|
166
|
+
const groupLabel = option.property.groupLabel || "Values";
|
|
179
167
|
if (!groups[groupLabel]) {
|
|
180
168
|
groups[groupLabel] = {
|
|
181
169
|
label: groupLabel,
|
|
@@ -183,10 +171,9 @@ function createValueSuggestions(filteringOptions = [], operator, filterText = ""
|
|
|
183
171
|
};
|
|
184
172
|
}
|
|
185
173
|
groups[groupLabel].options.push({
|
|
186
|
-
value: buildQueryString(option.property.
|
|
187
|
-
label: option.label,
|
|
174
|
+
value: buildQueryString(option.property.label, operator, option.value),
|
|
175
|
+
label: buildQueryString(option.property.label, operator, option.value),
|
|
188
176
|
tags: option.tags,
|
|
189
|
-
filteringTags: option.filteringTags,
|
|
190
177
|
});
|
|
191
178
|
}
|
|
192
179
|
return Object.values(groups).filter((group) => group.options.length > 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-autocomplete-options.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/generate-autocomplete-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-autocomplete-options.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/generate-autocomplete-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare const QUERY_OPERATORS:
|
|
1
|
+
import type { InternalPropertyDefinition, OperatorT } from "../TokenFilter.types.js";
|
|
2
|
+
declare const QUERY_OPERATORS: OperatorT[];
|
|
3
3
|
/**
|
|
4
4
|
* Match an operator from the input text.
|
|
5
5
|
* Operators are already sorted by specificity, so no re-sorting needed.
|
|
6
6
|
*/
|
|
7
|
-
declare function matchOperator(allowedOperators:
|
|
7
|
+
declare function matchOperator(allowedOperators: OperatorT[], text: string): OperatorT | undefined;
|
|
8
8
|
/**
|
|
9
9
|
* Match a property from the input text by longest property label.
|
|
10
10
|
*
|
|
@@ -13,10 +13,10 @@ declare function matchOperator(allowedOperators: QueryFilterOperator[], text: st
|
|
|
13
13
|
*
|
|
14
14
|
* Result: { propertyLabel: "Instance ID" }
|
|
15
15
|
*/
|
|
16
|
-
declare function matchFilteringProperty(filteringProperties:
|
|
16
|
+
declare function matchFilteringProperty(filteringProperties: InternalPropertyDefinition[], text: string): InternalPropertyDefinition | undefined;
|
|
17
17
|
/**
|
|
18
18
|
* Check if the input text is a valid prefix of any allowed operator.
|
|
19
19
|
* Returns the prefix if valid, null otherwise.
|
|
20
20
|
*/
|
|
21
|
-
declare function matchOperatorPrefix(allowedOperators:
|
|
22
|
-
export {
|
|
21
|
+
declare function matchOperatorPrefix(allowedOperators: OperatorT[], filteringText: string): string | null;
|
|
22
|
+
export { matchFilteringProperty, matchOperator, matchOperatorPrefix, QUERY_OPERATORS, };
|
|
@@ -35,9 +35,8 @@ function matchFilteringProperty(filteringProperties, text) {
|
|
|
35
35
|
const lowerText = text.toLowerCase();
|
|
36
36
|
let bestMatch;
|
|
37
37
|
for (const prop of filteringProperties) {
|
|
38
|
-
if (lowerText.startsWith(prop.
|
|
39
|
-
if (!bestMatch ||
|
|
40
|
-
prop.propertyLabel.length > bestMatch.propertyLabel.length) {
|
|
38
|
+
if (lowerText.startsWith(prop.label.toLowerCase())) {
|
|
39
|
+
if (!bestMatch || prop.label.length > bestMatch.label.length) {
|
|
41
40
|
bestMatch = prop;
|
|
42
41
|
}
|
|
43
42
|
}
|
|
@@ -56,5 +55,5 @@ function matchOperatorPrefix(allowedOperators, filteringText) {
|
|
|
56
55
|
const isValidPrefix = allowedOperators.some((operator) => operator.toLowerCase().startsWith(trimmedText.toLowerCase()));
|
|
57
56
|
return isValidPrefix ? trimmedText : null;
|
|
58
57
|
}
|
|
59
|
-
export {
|
|
58
|
+
export { matchFilteringProperty, matchOperator, matchOperatorPrefix, QUERY_OPERATORS, };
|
|
60
59
|
//# sourceMappingURL=operators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/operators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/operators.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,SAAS,GAA4B;IACzC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,eAAe,GAAgB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE5D;;;GAGG;AACH,SAAS,aAAa,CACpB,gBAA6B,EAC7B,IAAY;IAEZ,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAC7B,mBAAiD,EACjD,IAAY;IAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,SAAiD,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACvC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7D,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,gBAA6B,EAC7B,aAAqB;IAErB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC7D,CAAC;IAEF,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,eAAe,GAChB,CAAC"}
|
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
type ParsedText = {
|
|
3
|
-
/** User has typed property + complete operator + value (e.g., "Status != active") */
|
|
4
|
-
step: "property";
|
|
5
|
-
property: ParsedProperty;
|
|
6
|
-
operator: QueryFilterOperator;
|
|
7
|
-
value: string;
|
|
8
|
-
} | {
|
|
9
|
-
/** User is typing the operator after property (e.g., "Status !") */
|
|
10
|
-
step: "operator";
|
|
11
|
-
property: ParsedProperty;
|
|
12
|
-
operatorPrefix: string;
|
|
13
|
-
} | {
|
|
14
|
-
/** No property match; treat as free-text search */
|
|
15
|
-
step: "free-text";
|
|
16
|
-
value: string;
|
|
17
|
-
operator?: QueryFilterOperator;
|
|
18
|
-
};
|
|
1
|
+
import type { InternalParsedTextState, InternalPropertyDefinition } from "../TokenFilter.types.js";
|
|
19
2
|
/**
|
|
20
3
|
* Parse user input text to extract property, operator, and value components.
|
|
21
4
|
* Handles partial input (e.g., user typing "Status !" to complete the operator).
|
|
22
5
|
*/
|
|
23
|
-
declare function parseQueryText(filteringText: string, filteringProperties:
|
|
6
|
+
declare function parseQueryText(filteringText: string, filteringProperties: InternalPropertyDefinition[]): InternalParsedTextState;
|
|
24
7
|
export { parseQueryText };
|
|
25
|
-
export type { ParsedText };
|
|
@@ -20,7 +20,7 @@ function parseQueryText(filteringText, filteringProperties) {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
const textWithoutProperty = filteringText
|
|
23
|
-
.substring(property.
|
|
23
|
+
.substring(property.label.length)
|
|
24
24
|
.trimStart();
|
|
25
25
|
const operator = matchOperator(QUERY_OPERATORS, textWithoutProperty);
|
|
26
26
|
if (operator) {
|
|
@@ -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":"AAIA,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,SAAS,cAAc,CACrB,aAAqB,EACrB,mBAAiD;IAEjD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,aAAa,CAAC,eAAe,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,KAAK,CAAC,MAAM,CAAC;SAChC,SAAS,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,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,mBAAmB,CACxC,eAAe,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;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OperatorT } from "../TokenFilter.types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Human-readable labels for query filter operators.
|
|
4
4
|
* Used for displaying operator descriptions in autocomplete suggestions.
|
|
5
5
|
* TODO: Support i18n
|
|
6
6
|
*/
|
|
7
|
-
declare const OPERATOR_LABELS: Record<
|
|
7
|
+
declare const OPERATOR_LABELS: Record<OperatorT, string>;
|
|
8
8
|
/**
|
|
9
9
|
* Builds a query string from property label, operator, and value.
|
|
10
10
|
* Only includes non-empty parts, joined by spaces.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/query-builder.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../../src/data/token-filter/helpers/query-builder.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,eAAe,GAA8B;IACjD,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;AAEF;;;;;;;;;;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;AAED,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -13,6 +13,10 @@ type DateWrapperProps = {
|
|
|
13
13
|
id?: string;
|
|
14
14
|
strategy?: "absolute" | "fixed";
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Id for the label of the popup, used for aria-labelledby
|
|
18
|
+
*/
|
|
19
|
+
popupLabelId?: string;
|
|
16
20
|
};
|
|
17
|
-
declare const DateDialog: ({ open, children, onClose, anchor, locale, translate, variant, popoverProps, }: DateWrapperProps) => React.JSX.Element | null;
|
|
21
|
+
declare const DateDialog: ({ open, children, onClose, anchor, locale, translate, variant, popoverProps, popupLabelId, }: DateWrapperProps) => React.JSX.Element | null;
|
|
18
22
|
export { DateDialog };
|
package/esm/date/Date.Dialog.js
CHANGED
|
@@ -5,6 +5,7 @@ import { Modal } from "../modal/index.js";
|
|
|
5
5
|
import { useModalContext } from "../modal/Modal.context.js";
|
|
6
6
|
import { Popover } from "../popover/index.js";
|
|
7
7
|
import { cl } from "../utils/helpers/index.js";
|
|
8
|
+
import { focusElement } from "../utils/helpers/focus.js";
|
|
8
9
|
import { useMedia } from "../utils/hooks/index.js";
|
|
9
10
|
import { useI18n } from "../utils/i18n/i18n.hooks.js";
|
|
10
11
|
import { getGlobalTranslations } from "./Date.locale.js";
|
|
@@ -14,7 +15,7 @@ const variantToLabel = {
|
|
|
14
15
|
range: "chooseDateRange",
|
|
15
16
|
month: "chooseMonth",
|
|
16
17
|
};
|
|
17
|
-
const DateDialog = ({ open, children, onClose, anchor, locale, translate, variant, popoverProps, }) => {
|
|
18
|
+
const DateDialog = ({ open, children, onClose, anchor, locale, translate, variant, popoverProps, popupLabelId, }) => {
|
|
18
19
|
const translateGlobal = useI18n("global", getGlobalTranslations(locale));
|
|
19
20
|
const modalRef = useRef(null);
|
|
20
21
|
const isInModal = useModalContext(false) !== undefined;
|
|
@@ -28,7 +29,7 @@ const DateDialog = ({ open, children, onClose, anchor, locale, translate, varian
|
|
|
28
29
|
if (hideModal) {
|
|
29
30
|
return (React.createElement(Popover, Object.assign({ anchorEl: anchor, open: open, onClose: onClose, placement: "bottom-start", className: cl("aksel-date__popover", {
|
|
30
31
|
"aksel-date": variant === "month",
|
|
31
|
-
}) }, popoverProps), children));
|
|
32
|
+
}) }, popoverProps, { ref: focusPopoverOnOpen, tabIndex: -1, role: "dialog", "aria-labelledby": popupLabelId }), children));
|
|
32
33
|
}
|
|
33
34
|
return (React.createElement(Modal, { ref: modalRef, open: open, onClose: (event) => {
|
|
34
35
|
event.stopPropagation();
|
|
@@ -41,5 +42,8 @@ const DateDialog = ({ open, children, onClose, anchor, locale, translate, varian
|
|
|
41
42
|
children,
|
|
42
43
|
React.createElement(Button, { variant: "tertiary", onClick: () => { var _a; return (_a = modalRef === null || modalRef === void 0 ? void 0 : modalRef.current) === null || _a === void 0 ? void 0 : _a.close(); }, size: "small", type: "button" }, translateGlobal("close")))));
|
|
43
44
|
};
|
|
45
|
+
function focusPopoverOnOpen(element) {
|
|
46
|
+
focusElement(element, { preventScroll: true, sync: false });
|
|
47
|
+
}
|
|
44
48
|
export { DateDialog };
|
|
45
49
|
//# sourceMappingURL=Date.Dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Date.Dialog.js","sourceRoot":"","sources":["../../src/date/Date.Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,aAAa;CACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"Date.Dialog.js","sourceRoot":"","sources":["../../src/date/Date.Dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ export const DatePicker = forwardRef((_a, ref) => {
|
|
|
47
47
|
var { children, locale, translations, selected, id, defaultSelected, wrapperClassName, open: _open, onClose, onOpenToggle, strategy, mode } = _a, rest = __rest(_a, ["children", "locale", "translations", "selected", "id", "defaultSelected", "wrapperClassName", "open", "onClose", "onOpenToggle", "strategy", "mode"]);
|
|
48
48
|
const translate = useI18n("DatePicker", translations, getTranslations(locale));
|
|
49
49
|
const ariaId = useId(id);
|
|
50
|
+
const popupLabelId = useId();
|
|
50
51
|
const [open, setOpen] = useControllableState({
|
|
51
52
|
defaultValue: false,
|
|
52
53
|
value: _open,
|
|
@@ -89,8 +90,8 @@ export const DatePicker = forwardRef((_a, ref) => {
|
|
|
89
90
|
}, locale: locale, translate: translate, variant: mode !== null && mode !== void 0 ? mode : "single", popoverProps: {
|
|
90
91
|
id: ariaId,
|
|
91
92
|
strategy,
|
|
92
|
-
} },
|
|
93
|
-
React.createElement(ReactDayPicker, Object.assign({}, rest, { locale: locale, handleSelect: setValue, selected: value, mode: mode })))))));
|
|
93
|
+
}, popupLabelId: popupLabelId },
|
|
94
|
+
React.createElement(ReactDayPicker, Object.assign({}, rest, { locale: locale, handleSelect: setValue, selected: value, mode: mode, popupLabelId: popupLabelId })))))));
|
|
94
95
|
});
|
|
95
96
|
DatePicker.Standalone = DatePickerStandalone;
|
|
96
97
|
DatePicker.Input = DatePickerInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,wBAAwB,EAExB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,8BAA8B,EAC9B,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,oBAEN,MAAM,+BAA+B,CAAC;AAwBvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAClC,CACE,EAcC,EACD,GAAG,EACH,EAAE;QAhBF,EACE,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,EAAE,EACF,eAAe,EACf,gBAAgB,EAChB,IAAI,EAAE,KAAK,EACX,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,IAAI,OAEL,EADI,IAAI,cAbT,sJAcC,CADQ;IAIT,MAAM,SAAS,GAAG,OAAO,CACvB,YAAY,EACZ,YAAY,EACZ,eAAe,CAAC,MAAM,CAAC,CACxB,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { differenceInCalendarDays, isWeekend } from "date-fns";
|
|
2
2
|
import { useCallback, useState } from "react";
|
|
3
3
|
import { dateMatchModifiers } from "react-day-picker";
|
|
4
|
+
import { focusElement } from "../../../utils/helpers/focus.js";
|
|
4
5
|
import { useDateLocale } from "../../../utils/i18n/i18n.hooks.js";
|
|
5
6
|
import { getLocaleFromString } from "../../Date.locale.js";
|
|
6
7
|
import { formatDateForInput, isValidDate, parseDate } from "../../date-utils/index.js";
|
|
@@ -36,8 +37,9 @@ export const useDatepicker = (opt = {}) => {
|
|
|
36
37
|
const handleOpen = useCallback((newOpen) => {
|
|
37
38
|
var _a, _b;
|
|
38
39
|
setOpen(newOpen);
|
|
39
|
-
newOpen
|
|
40
|
+
if (newOpen) {
|
|
40
41
|
setMonth((_b = (_a = selectedDay !== null && selectedDay !== void 0 ? selectedDay : defaultSelected) !== null && _a !== void 0 ? _a : defaultMonth) !== null && _b !== void 0 ? _b : today);
|
|
42
|
+
}
|
|
41
43
|
}, [defaultMonth, defaultSelected, selectedDay, today]);
|
|
42
44
|
const updateDate = (date) => {
|
|
43
45
|
onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(date);
|
|
@@ -142,7 +144,8 @@ export const useDatepicker = (opt = {}) => {
|
|
|
142
144
|
open,
|
|
143
145
|
onClose: () => {
|
|
144
146
|
handleOpen(false);
|
|
145
|
-
|
|
147
|
+
/* Delay focus to allow "open"-button to update title before focus */
|
|
148
|
+
queueMicrotask(() => focusElement(anchorRef, { sync: false, preventScroll: true }));
|
|
146
149
|
},
|
|
147
150
|
onOpenToggle: () => handleOpen(!open),
|
|
148
151
|
disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../../src/date/datepicker/hooks/useDatepicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAmB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA8F9E,MAAM,oBAAoB,GAAG,CAAC,GAAG,GAAG,EAAE,EAAmB,EAAE,CAAC,iBAC1D,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,KAAK,EACd,WAAW,EAAE,IAAI,IACd,GAAG,EACN,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA4B,EAAE,EACV,EAAE;;IACtB,MAAM,EACJ,MAAM,EAAE,OAAO,EACf,QAAQ,EACR,eAAe,EAAE,gBAAgB,EACjC,KAAK,GAAG,IAAI,IAAI,EAAE,EAClB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,iBAAiB,GAAG,IAAI,GACzB,GAAG,GAAG,CAAC;IAER,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAE3E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEzE,oBAAoB;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAA,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,YAAY,mCAAI,KAAK,CAAC,CAAC;IAC7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,iBAAiB,GAAG,eAAe;QACvC,CAAC,CAAC,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,OAAgB,EAAE,EAAE;;QACnB,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO;
|
|
1
|
+
{"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../../src/date/datepicker/hooks/useDatepicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { differenceInCalendarDays, isSameDay, isWeekend } from "date-fns";
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { dateMatchModifiers } from "react-day-picker";
|
|
4
|
+
import { focusElement } from "../../../utils/helpers/focus.js";
|
|
4
5
|
import { useDateLocale } from "../../../utils/i18n/i18n.hooks.js";
|
|
5
6
|
import { getLocaleFromString } from "../../Date.locale.js";
|
|
6
7
|
import { formatDateForInput, isValidDate, parseDate } from "../../date-utils/index.js";
|
|
@@ -285,7 +286,8 @@ export const useRangeDatepicker = (opt = {}) => {
|
|
|
285
286
|
onOpenToggle: () => setOpen((x) => !x),
|
|
286
287
|
onClose: () => {
|
|
287
288
|
setOpen(false);
|
|
288
|
-
|
|
289
|
+
/* Delay focus to allow "open"-button to update title before focus */
|
|
290
|
+
queueMicrotask(() => focusElement(anchorRef, { sync: false, preventScroll: true }));
|
|
289
291
|
},
|
|
290
292
|
disabled,
|
|
291
293
|
disableWeekends,
|