@altinn/altinn-components 0.19.2 → 0.19.3
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.
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
2
2
|
import { createElement as t } from "react";
|
|
3
3
|
import "../../index-L8X2o7IH.js";
|
|
4
|
-
import { useMenu as
|
|
4
|
+
import { useMenu as l } from "../../hooks/useMenu.js";
|
|
5
5
|
import "../RootProvider/RootProvider.js";
|
|
6
|
-
import { DialogListGroup as
|
|
7
|
-
import { DialogListItem as
|
|
6
|
+
import { DialogListGroup as y } from "./DialogListGroup.js";
|
|
7
|
+
import { DialogListItem as d } from "./DialogListItem.js";
|
|
8
8
|
import "../Search/AutocompleteBase.js";
|
|
9
9
|
import "../Snackbar/useSnackbar.js";
|
|
10
|
-
import { Section as
|
|
11
|
-
const
|
|
12
|
-
const { menu: r } =
|
|
10
|
+
import { Section as g } from "../Page/Section.js";
|
|
11
|
+
const j = ({ items: i, groups: m = {}, sortGroupBy: e }) => {
|
|
12
|
+
const { menu: r } = l({
|
|
13
13
|
items: i,
|
|
14
14
|
groups: m,
|
|
15
15
|
groupByKey: "groupId",
|
|
16
|
-
keyboardEvents: !1
|
|
16
|
+
keyboardEvents: !1,
|
|
17
|
+
sortGroupBy: e
|
|
17
18
|
});
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
-
const
|
|
20
|
-
return /* @__PURE__ */ t(
|
|
21
|
-
const
|
|
22
|
-
return /* @__PURE__ */ t(
|
|
19
|
+
return /* @__PURE__ */ f(g, { spacing: 3, margin: "section", children: r == null ? void 0 : r.map((o, p) => {
|
|
20
|
+
const s = o.props || {};
|
|
21
|
+
return /* @__PURE__ */ t(y, { ...s, key: p }, o == null ? void 0 : o.items.map((n, a) => {
|
|
22
|
+
const c = n.props || {};
|
|
23
|
+
return /* @__PURE__ */ t(d, { ...c, key: a });
|
|
23
24
|
}));
|
|
24
25
|
}) });
|
|
25
26
|
};
|
|
26
27
|
export {
|
|
27
|
-
|
|
28
|
+
j as DialogList
|
|
28
29
|
};
|
package/dist/hooks/useMenu.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useState as
|
|
3
|
-
const
|
|
2
|
+
import { useState as w, useMemo as x, useCallback as i, useEffect as k } from "react";
|
|
3
|
+
const I = ({
|
|
4
4
|
items: n,
|
|
5
5
|
groups: f,
|
|
6
6
|
groupByKey: u,
|
|
7
|
-
keyboardEvents: a = !1
|
|
7
|
+
keyboardEvents: a = !1,
|
|
8
|
+
sortGroupBy: p
|
|
8
9
|
}) => {
|
|
9
|
-
const [l, d] =
|
|
10
|
+
const [l, d] = w(-1), h = x(() => {
|
|
10
11
|
const r = n.reduce(
|
|
11
12
|
(o, s) => {
|
|
12
13
|
const e = u && s[u] ? s[u] : "ungrouped";
|
|
@@ -14,7 +15,7 @@ const v = ({
|
|
|
14
15
|
},
|
|
15
16
|
{}
|
|
16
17
|
), t = Object.values(r).flat();
|
|
17
|
-
return Object.entries(r).map(([o, s]) => ({
|
|
18
|
+
return Object.entries(r).sort(p || (() => 0)).map(([o, s]) => ({
|
|
18
19
|
items: s.map((e) => ({
|
|
19
20
|
menuIndex: t.indexOf(e),
|
|
20
21
|
active: l === t.indexOf(e),
|
|
@@ -22,19 +23,19 @@ const v = ({
|
|
|
22
23
|
})),
|
|
23
24
|
props: f[o] || {}
|
|
24
25
|
}));
|
|
25
|
-
}, [n, u, l, f]), c =
|
|
26
|
+
}, [n, u, l, f]), c = i(
|
|
26
27
|
(r) => {
|
|
27
28
|
r.key === "ArrowDown" ? d((t) => (t + 1) % n.length) : r.key === "ArrowUp" && d((t) => (t - 1 + n.length) % n.length);
|
|
28
29
|
},
|
|
29
30
|
[n.length]
|
|
30
31
|
);
|
|
31
|
-
return
|
|
32
|
+
return k(() => {
|
|
32
33
|
if (a)
|
|
33
34
|
return d(0), document.addEventListener("keydown", c), () => {
|
|
34
35
|
document.removeEventListener("keydown", c);
|
|
35
36
|
};
|
|
36
|
-
}, [c, a]), { menu:
|
|
37
|
+
}, [c, a]), { menu: h, activeIndex: l, setActiveIndex: d };
|
|
37
38
|
};
|
|
38
39
|
export {
|
|
39
|
-
|
|
40
|
+
I as useMenu
|
|
40
41
|
};
|
|
@@ -2,5 +2,6 @@ import { DialogListGroupProps, DialogListItemProps } from '../';
|
|
|
2
2
|
export interface DialogListProps {
|
|
3
3
|
items: DialogListItemProps[];
|
|
4
4
|
groups?: Record<string, DialogListGroupProps>;
|
|
5
|
+
sortGroupBy?: (a: [string, DialogListItemProps[]], b: [string, DialogListItemProps[]]) => number;
|
|
5
6
|
}
|
|
6
|
-
export declare const DialogList: ({ items, groups }: DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const DialogList: ({ items, groups, sortGroupBy }: DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StoryObj } from '@storybook/react';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ items, groups }: import('./DialogList').DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
component: ({ items, groups, sortGroupBy }: import('./DialogList').DialogListProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
tags: string[];
|
|
6
6
|
parameters: {
|
|
7
7
|
layout: string;
|
|
@@ -12,4 +12,5 @@ declare const meta: {
|
|
|
12
12
|
};
|
|
13
13
|
export default meta;
|
|
14
14
|
type Story = StoryObj<typeof meta>;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const GroupedByDate: Story;
|
|
16
|
+
export declare const GroupedByRoute: Story;
|
|
@@ -17,5 +17,6 @@ export interface UseMenuInput<T, V> {
|
|
|
17
17
|
groups: Record<string, V>;
|
|
18
18
|
groupByKey?: keyof T;
|
|
19
19
|
keyboardEvents?: boolean;
|
|
20
|
+
sortGroupBy?: (a: [string, T[]], b: [string, T[]]) => number;
|
|
20
21
|
}
|
|
21
|
-
export declare const useMenu: <T, V>({ items, groups, groupByKey, keyboardEvents, }: UseMenuInput<T, V>) => UseMenuOutput<T, V>;
|
|
22
|
+
export declare const useMenu: <T, V>({ items, groups, groupByKey, keyboardEvents, sortGroupBy, }: UseMenuInput<T, V>) => UseMenuOutput<T, V>;
|