namirasoft-site-react 1.5.3 → 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.
@@ -27,21 +27,35 @@ export function NSListMenu(props) {
27
27
  }
28
28
  };
29
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; };
30
33
  const isSupport = (f) => {
31
- var _a, _b;
32
- let parent = f.parent_id != null ? byId.get(f.parent_id) : undefined;
33
- let text = [f.name, (_a = f.link) === null || _a === void 0 ? void 0 : _a.name, parent === null || parent === void 0 ? void 0 : parent.name].filter(Boolean).join(" ").toLowerCase();
34
- return text.includes("support") || pathOf((_b = f.link) === null || _b === void 0 ? void 0 : _b.url).includes("support");
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");
35
37
  };
36
- const titleOf = (f) => {
37
- var _a, _b, _c, _d;
38
- let own = (_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 : "";
39
- if (pathOf((_d = f.link) === null || _d === void 0 ? void 0 : _d.url).endsWith("/list") && f.parent_id != null) {
40
- let parent = byId.get(f.parent_id);
41
- if (parent === null || parent === void 0 ? void 0 : parent.name)
42
- return parent.name;
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);
43
45
  }
44
- return own;
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;
45
59
  };
46
60
  const getMenuItems = () => {
47
61
  var _a, _b, _c, _d, _e;
@@ -65,17 +79,17 @@ export function NSListMenu(props) {
65
79
  ans = ans.filter(f => {
66
80
  var _a;
67
81
  let path = pathOf((_a = f.link) === null || _a === void 0 ? void 0 : _a.url);
68
- if (listedBases.has(baseOf(path)))
69
- return path.endsWith("/list");
82
+ if (path.endsWith("/new") && listedBases.has(baseOf(path)))
83
+ return false;
70
84
  return true;
71
85
  });
72
- ans.sort((a, b) => a.order - b.order);
86
+ ans.sort(compareOrderPath);
73
87
  return ans;
74
88
  };
75
89
  let items = getMenuItems();
76
90
  return (_jsx(NSSection, { style: { gap: "16px" }, children: items.map((filter) => {
77
- var _a, _b, _c, _d;
78
- 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: (_d = (_c = filter.link) === null || _c === void 0 ? void 0 : _c.description) !== null && _d !== void 0 ? _d : "" }, 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);
79
93
  }) }));
80
94
  }
81
95
  //# sourceMappingURL=NSListMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSListMenu.js","sourceRoot":"","sources":["../../src/components/NSListMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NSListMenu.js","sourceRoot":"","sources":["../../src/components/NSListMenu.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.5.3",
11
+ "version": "1.5.4",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
@@ -50,23 +50,53 @@ export function NSListMenu(props: NSListMenuProps)
50
50
 
51
51
  const baseOf = (path: string): string => path.replace(/\/[^/]*$/, "");
52
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
+
53
61
  const isSupport = (f: FilterLinkFullRow): boolean =>
54
62
  {
55
- let parent = f.parent_id != null ? byId.get(f.parent_id) : undefined;
56
- let text = [f.name, f.link?.name, parent?.name].filter(Boolean).join(" ").toLowerCase();
63
+ let text = [f.name, f.link?.name, parentOf(f)?.name].filter(Boolean).join(" ").toLowerCase();
57
64
  return text.includes("support") || pathOf(f.link?.url).includes("support");
58
65
  };
59
66
 
60
- const titleOf = (f: FilterLinkFullRow): string =>
67
+ const displayOf = (f: FilterLinkFullRow): FilterLinkFullRow =>
68
+ isListChild(f) ? parentOf(f)! : f;
69
+
70
+ const chainOf = (f: FilterLinkFullRow): FilterLinkFullRow[] =>
61
71
  {
62
- let own = f.name ?? f.link?.name ?? "";
63
- if (pathOf(f.link?.url).endsWith("/list") && f.parent_id != null)
72
+ let chain: FilterLinkFullRow[] = [];
73
+ let current: FilterLinkFullRow | undefined = f;
74
+ while (current != null && chain.length < 100)
64
75
  {
65
- let parent = byId.get(f.parent_id);
66
- if (parent?.name)
67
- return parent.name;
76
+ chain.unshift(current);
77
+ current = parentOf(current);
68
78
  }
69
- return own;
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;
70
100
  };
71
101
 
72
102
  const getMenuItems = (): FilterLinkFullRow[] =>
@@ -97,11 +127,11 @@ export function NSListMenu(props: NSListMenuProps)
97
127
  ans = ans.filter(f =>
98
128
  {
99
129
  let path = pathOf(f.link?.url);
100
- if (listedBases.has(baseOf(path)))
101
- return path.endsWith("/list");
130
+ if (path.endsWith("/new") && listedBases.has(baseOf(path)))
131
+ return false;
102
132
  return true;
103
133
  });
104
- ans.sort((a, b) => a.order - b.order);
134
+ ans.sort(compareOrderPath);
105
135
  return ans;
106
136
  };
107
137
 
@@ -115,7 +145,7 @@ export function NSListMenu(props: NSListMenuProps)
115
145
  key={filter.id}
116
146
  link={{ href: filter.link?.url ?? "" }}
117
147
  title={titleOf(filter)}
118
- description={filter.link?.description ?? ""}
148
+ description={descriptionOf(filter)}
119
149
  />
120
150
  )
121
151
  }