namirasoft-site-react 1.5.2 → 1.5.4
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.
|
@@ -5,6 +5,7 @@ import { useEffect, useState } from "react";
|
|
|
5
5
|
import { NSCard } from "./NSCard";
|
|
6
6
|
import { NSSection } from "./NSSection";
|
|
7
7
|
export function NSListMenu(props) {
|
|
8
|
+
var _a;
|
|
8
9
|
const [state, setState] = useState({ filters: [] });
|
|
9
10
|
useEffect(() => {
|
|
10
11
|
var _a;
|
|
@@ -14,6 +15,7 @@ export function NSListMenu(props) {
|
|
|
14
15
|
setState({ filters: filters.rows });
|
|
15
16
|
}).catch(() => { });
|
|
16
17
|
}, []);
|
|
18
|
+
const byId = new Map(((_a = state.filters) !== null && _a !== void 0 ? _a : []).map(f => [f.id, f]));
|
|
17
19
|
const pathOf = (url) => {
|
|
18
20
|
if (!url)
|
|
19
21
|
return "";
|
|
@@ -25,6 +27,36 @@ export function NSListMenu(props) {
|
|
|
25
27
|
}
|
|
26
28
|
};
|
|
27
29
|
const baseOf = (path) => path.replace(/\/[^/]*$/, "");
|
|
30
|
+
const parentOf = (f) => f.parent_id != null ? byId.get(f.parent_id) : undefined;
|
|
31
|
+
const nameOf = (f) => { var _a, _b, _c; return (_c = (_a = f.name) !== null && _a !== void 0 ? _a : (_b = f.link) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : ""; };
|
|
32
|
+
const isListChild = (f) => { var _a; return pathOf((_a = f.link) === null || _a === void 0 ? void 0 : _a.url).endsWith("/list") && parentOf(f) != null; };
|
|
33
|
+
const isSupport = (f) => {
|
|
34
|
+
var _a, _b, _c;
|
|
35
|
+
let text = [f.name, (_a = f.link) === null || _a === void 0 ? void 0 : _a.name, (_b = parentOf(f)) === null || _b === void 0 ? void 0 : _b.name].filter(Boolean).join(" ").toLowerCase();
|
|
36
|
+
return text.includes("support") || pathOf((_c = f.link) === null || _c === void 0 ? void 0 : _c.url).includes("support");
|
|
37
|
+
};
|
|
38
|
+
const displayOf = (f) => isListChild(f) ? parentOf(f) : f;
|
|
39
|
+
const chainOf = (f) => {
|
|
40
|
+
let chain = [];
|
|
41
|
+
let current = f;
|
|
42
|
+
while (current != null && chain.length < 100) {
|
|
43
|
+
chain.unshift(current);
|
|
44
|
+
current = parentOf(current);
|
|
45
|
+
}
|
|
46
|
+
return chain;
|
|
47
|
+
};
|
|
48
|
+
const titleOf = (f) => chainOf(displayOf(f)).map(nameOf).join(" / ");
|
|
49
|
+
const descriptionOf = (f) => { var _a, _b; return (_b = (_a = displayOf(f).link) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : ""; };
|
|
50
|
+
const orderPathOf = (f) => chainOf(displayOf(f)).map(n => n.order);
|
|
51
|
+
const compareOrderPath = (a, b) => {
|
|
52
|
+
let pa = orderPathOf(a);
|
|
53
|
+
let pb = orderPathOf(b);
|
|
54
|
+
let len = Math.min(pa.length, pb.length);
|
|
55
|
+
for (let i = 0; i < len; i++)
|
|
56
|
+
if (pa[i] !== pb[i])
|
|
57
|
+
return pa[i] - pb[i];
|
|
58
|
+
return pa.length - pb.length;
|
|
59
|
+
};
|
|
28
60
|
const getMenuItems = () => {
|
|
29
61
|
var _a, _b, _c, _d, _e;
|
|
30
62
|
let loggedin = (_b = (_a = props.isLoggedIn) === null || _a === void 0 ? void 0 : _a.call(props)) !== null && _b !== void 0 ? _b : false;
|
|
@@ -37,6 +69,7 @@ export function NSListMenu(props) {
|
|
|
37
69
|
return true;
|
|
38
70
|
})) !== null && _d !== void 0 ? _d : [];
|
|
39
71
|
ans = ans.filter(f => { var _a; return (_a = f.link) === null || _a === void 0 ? void 0 : _a.url; });
|
|
72
|
+
ans = ans.filter(f => !isSupport(f));
|
|
40
73
|
let listedBases = new Set();
|
|
41
74
|
for (let f of ans) {
|
|
42
75
|
let path = pathOf((_e = f.link) === null || _e === void 0 ? void 0 : _e.url);
|
|
@@ -46,19 +79,17 @@ export function NSListMenu(props) {
|
|
|
46
79
|
ans = ans.filter(f => {
|
|
47
80
|
var _a;
|
|
48
81
|
let path = pathOf((_a = f.link) === null || _a === void 0 ? void 0 : _a.url);
|
|
49
|
-
if (listedBases.has(baseOf(path)))
|
|
50
|
-
return
|
|
82
|
+
if (path.endsWith("/new") && listedBases.has(baseOf(path)))
|
|
83
|
+
return false;
|
|
51
84
|
return true;
|
|
52
85
|
});
|
|
53
|
-
ans.sort(
|
|
86
|
+
ans.sort(compareOrderPath);
|
|
54
87
|
return ans;
|
|
55
88
|
};
|
|
56
89
|
let items = getMenuItems();
|
|
57
90
|
return (_jsx(NSSection, { style: { gap: "16px" }, children: items.map((filter) => {
|
|
58
|
-
var _a, _b
|
|
59
|
-
|
|
60
|
-
let logo = (_f = (_d = filter.logo) !== null && _d !== void 0 ? _d : (_e = filter.link) === null || _e === void 0 ? void 0 : _e.logo) !== null && _f !== void 0 ? _f : "";
|
|
61
|
-
return (_jsx(NSCard, { link: { href: (_h = (_g = filter.link) === null || _g === void 0 ? void 0 : _g.url) !== null && _h !== void 0 ? _h : "" }, title: title, description: (_k = (_j = filter.link) === null || _j === void 0 ? void 0 : _j.description) !== null && _k !== void 0 ? _k : "", image: logo ? { src: logo, alt: title } : undefined }, filter.id));
|
|
91
|
+
var _a, _b;
|
|
92
|
+
return _jsx(NSCard, { link: { href: (_b = (_a = filter.link) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : "" }, title: titleOf(filter), description: descriptionOf(filter) }, filter.id);
|
|
62
93
|
}) }));
|
|
63
94
|
}
|
|
64
95
|
//# sourceMappingURL=NSListMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSListMenu.js","sourceRoot":"","sources":["../../src/components/NSListMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAqB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAexC,MAAM,UAAU,UAAU,CAAC,KAAsB
|
|
1
|
+
{"version":3,"file":"NSListMenu.js","sourceRoot":"","sources":["../../src/components/NSListMenu.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -32,6 +32,8 @@ export function NSListMenu(props: NSListMenuProps)
|
|
|
32
32
|
// eslint-disable-next-line
|
|
33
33
|
}, []);
|
|
34
34
|
|
|
35
|
+
const byId = new Map<number, FilterLinkFullRow>((state.filters ?? []).map(f => [f.id, f]));
|
|
36
|
+
|
|
35
37
|
const pathOf = (url: string | null | undefined): string =>
|
|
36
38
|
{
|
|
37
39
|
if (!url)
|
|
@@ -45,7 +47,58 @@ export function NSListMenu(props: NSListMenuProps)
|
|
|
45
47
|
return url.replace(/[?#].*$/, "").replace(/\/+$/, "").toLowerCase();
|
|
46
48
|
}
|
|
47
49
|
};
|
|
50
|
+
|
|
48
51
|
const baseOf = (path: string): string => path.replace(/\/[^/]*$/, "");
|
|
52
|
+
|
|
53
|
+
const parentOf = (f: FilterLinkFullRow): FilterLinkFullRow | undefined =>
|
|
54
|
+
f.parent_id != null ? byId.get(f.parent_id) : undefined;
|
|
55
|
+
|
|
56
|
+
const nameOf = (f: FilterLinkFullRow): string => f.name ?? f.link?.name ?? "";
|
|
57
|
+
|
|
58
|
+
const isListChild = (f: FilterLinkFullRow): boolean =>
|
|
59
|
+
pathOf(f.link?.url).endsWith("/list") && parentOf(f) != null;
|
|
60
|
+
|
|
61
|
+
const isSupport = (f: FilterLinkFullRow): boolean =>
|
|
62
|
+
{
|
|
63
|
+
let text = [f.name, f.link?.name, parentOf(f)?.name].filter(Boolean).join(" ").toLowerCase();
|
|
64
|
+
return text.includes("support") || pathOf(f.link?.url).includes("support");
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const displayOf = (f: FilterLinkFullRow): FilterLinkFullRow =>
|
|
68
|
+
isListChild(f) ? parentOf(f)! : f;
|
|
69
|
+
|
|
70
|
+
const chainOf = (f: FilterLinkFullRow): FilterLinkFullRow[] =>
|
|
71
|
+
{
|
|
72
|
+
let chain: FilterLinkFullRow[] = [];
|
|
73
|
+
let current: FilterLinkFullRow | undefined = f;
|
|
74
|
+
while (current != null && chain.length < 100)
|
|
75
|
+
{
|
|
76
|
+
chain.unshift(current);
|
|
77
|
+
current = parentOf(current);
|
|
78
|
+
}
|
|
79
|
+
return chain;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const titleOf = (f: FilterLinkFullRow): string =>
|
|
83
|
+
chainOf(displayOf(f)).map(nameOf).join(" / ");
|
|
84
|
+
|
|
85
|
+
const descriptionOf = (f: FilterLinkFullRow): string =>
|
|
86
|
+
displayOf(f).link?.description ?? "";
|
|
87
|
+
|
|
88
|
+
const orderPathOf = (f: FilterLinkFullRow): number[] =>
|
|
89
|
+
chainOf(displayOf(f)).map(n => n.order);
|
|
90
|
+
|
|
91
|
+
const compareOrderPath = (a: FilterLinkFullRow, b: FilterLinkFullRow): number =>
|
|
92
|
+
{
|
|
93
|
+
let pa = orderPathOf(a);
|
|
94
|
+
let pb = orderPathOf(b);
|
|
95
|
+
let len = Math.min(pa.length, pb.length);
|
|
96
|
+
for (let i = 0; i < len; i++)
|
|
97
|
+
if (pa[i] !== pb[i])
|
|
98
|
+
return pa[i] - pb[i];
|
|
99
|
+
return pa.length - pb.length;
|
|
100
|
+
};
|
|
101
|
+
|
|
49
102
|
const getMenuItems = (): FilterLinkFullRow[] =>
|
|
50
103
|
{
|
|
51
104
|
let loggedin = props.isLoggedIn?.() ?? false;
|
|
@@ -61,6 +114,7 @@ export function NSListMenu(props: NSListMenuProps)
|
|
|
61
114
|
}) ?? [];
|
|
62
115
|
|
|
63
116
|
ans = ans.filter(f => f.link?.url);
|
|
117
|
+
ans = ans.filter(f => !isSupport(f));
|
|
64
118
|
|
|
65
119
|
let listedBases = new Set<string>();
|
|
66
120
|
for (let f of ans)
|
|
@@ -73,11 +127,11 @@ export function NSListMenu(props: NSListMenuProps)
|
|
|
73
127
|
ans = ans.filter(f =>
|
|
74
128
|
{
|
|
75
129
|
let path = pathOf(f.link?.url);
|
|
76
|
-
if (listedBases.has(baseOf(path)))
|
|
77
|
-
return
|
|
130
|
+
if (path.endsWith("/new") && listedBases.has(baseOf(path)))
|
|
131
|
+
return false;
|
|
78
132
|
return true;
|
|
79
133
|
});
|
|
80
|
-
ans.sort(
|
|
134
|
+
ans.sort(compareOrderPath);
|
|
81
135
|
return ans;
|
|
82
136
|
};
|
|
83
137
|
|
|
@@ -87,19 +141,13 @@ export function NSListMenu(props: NSListMenuProps)
|
|
|
87
141
|
<NSSection style={{ gap: "16px" }}>
|
|
88
142
|
{
|
|
89
143
|
items.map((filter: FilterLinkFullRow) =>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
title={title}
|
|
98
|
-
description={filter.link?.description ?? ""}
|
|
99
|
-
image={logo ? { src: logo, alt: title } : undefined}
|
|
100
|
-
/>
|
|
101
|
-
);
|
|
102
|
-
})
|
|
144
|
+
<NSCard
|
|
145
|
+
key={filter.id}
|
|
146
|
+
link={{ href: filter.link?.url ?? "" }}
|
|
147
|
+
title={titleOf(filter)}
|
|
148
|
+
description={descriptionOf(filter)}
|
|
149
|
+
/>
|
|
150
|
+
)
|
|
103
151
|
}
|
|
104
152
|
</NSSection>
|
|
105
153
|
);
|