@cccsaurora/clue-ui 1.2.3 → 1.2.4-dev.278

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.
Files changed (188) hide show
  1. package/ActionForm-BdW0Za1y.js +5956 -0
  2. package/AnnotationDetails-BHZFzyt-.js +175 -0
  3. package/AnnotationPreview-DGoyoxRb.js +188 -0
  4. package/ClueEnrichContext-CJEJxrgs.js +541 -0
  5. package/FlexOne-BSYAhhtG.js +9 -0
  6. package/_MapCache-WmuDdwuH.js +222 -0
  7. package/_Uint8Array-B7JqpgFX.js +128 -0
  8. package/_baseAssignValue-CGTuELqU.js +25 -0
  9. package/_baseClone-CkNrTyhm.js +283 -0
  10. package/_baseExtremum-kob8QXyt.js +18 -0
  11. package/_baseFlatten-jIR_sN_-.js +92 -0
  12. package/_baseGet-Bx3A4Qfp.js +108 -0
  13. package/_baseIsEqual-C5OTWzTk.js +208 -0
  14. package/_baseIteratee-avi7MX2o.js +126 -0
  15. package/_baseSlice-GAv_YFTT.js +20 -0
  16. package/_baseSum-D0WC1dN0.js +13 -0
  17. package/_baseUniq-BI9GIHMF.js +115 -0
  18. package/_commonjsHelpers-DWwsNxpa.js +8 -0
  19. package/_createAggregator-QD8MzKwe.js +63 -0
  20. package/_getPrototype-CU0j_POw.js +5 -0
  21. package/_getTag-Ckxxfr88.js +126 -0
  22. package/_isIterateeCall-Ds3sw2SF.js +17 -0
  23. package/_setToArray-CaPKQhcz.js +33 -0
  24. package/cloneDeep-DJrLSw8W.js +8 -0
  25. package/components/AnnotationBody.js +49 -35
  26. package/components/AnnotationDetailPopover.js +36 -30
  27. package/components/AnnotationDetails.js +7 -7
  28. package/components/AnnotationEntry.js +35 -35
  29. package/components/AnnotationPreview.js +5 -5
  30. package/components/ClassificationChip.js +44 -23
  31. package/components/CountBadge.js +31 -26
  32. package/components/EnrichedCard.js +110 -97
  33. package/components/EnrichedChip.js +130 -105
  34. package/components/EnrichedTypography.js +133 -107
  35. package/components/ErrorBoundary.js +28 -24
  36. package/components/RetryFailedEnrichments.js +10 -9
  37. package/components/SourcePicker.js +57 -49
  38. package/components/actions/ActionForm.js +4 -4
  39. package/components/actions/ExecutePopover.js +75 -59
  40. package/components/actions/ResultModal.js +4 -4
  41. package/components/actions/form/schemaAdapter.js +39 -23
  42. package/components/actions/formats/FileResult.js +86 -59
  43. package/components/actions/formats/index.js +21 -10
  44. package/components/display/graph/ExpandMoreButton.js +10 -10
  45. package/components/display/graph/elements/NodeCard.js +111 -91
  46. package/components/display/graph/elements/NodeTag.js +15 -13
  47. package/components/display/graph/index.js +261 -202
  48. package/components/display/graph/visualizations/Leaf.js +88 -69
  49. package/components/display/graph/visualizations/cloud/index.js +98 -81
  50. package/components/display/graph/visualizations/icons/BaseIcon.js +26 -21
  51. package/components/display/graph/visualizations/icons/BugIcon.js +12 -12
  52. package/components/display/graph/visualizations/icons/HostIcon.js +12 -12
  53. package/components/display/graph/visualizations/icons/NetworkIcon.js +12 -12
  54. package/components/display/graph/visualizations/icons/ProcessIcon.js +12 -12
  55. package/components/display/graph/visualizations/icons/TargetIcon.js +13 -13
  56. package/components/display/graph/visualizations/icons/index.js +14 -13
  57. package/components/display/graph/visualizations/panels/NodePanel.js +10 -8
  58. package/components/display/graph/visualizations/tree/BundleLine.js +108 -81
  59. package/components/display/graph/visualizations/tree/Triangle.js +13 -13
  60. package/components/display/graph/visualizations/tree/index.js +408 -306
  61. package/components/display/icons/Iconified.js +27 -12
  62. package/components/display/json/index.js +4 -4
  63. package/components/display/markdown/index.js +8678 -5770
  64. package/components/enrichment/EnrichPopover.js +54 -46
  65. package/components/fetchers/Fetcher.js +158 -119
  66. package/components/fetchers/PreviewModal.js +20 -17
  67. package/components/fetchers/StatusChip.js +21 -17
  68. package/components/group/Entry.js +13 -11
  69. package/components/group/Group.js +13 -10
  70. package/components/group/GroupControl.js +76 -65
  71. package/components/stats/QueryStatus.js +43 -33
  72. package/countBy-c6S3dvSW.js +14 -0
  73. package/data/event.js +6 -4
  74. package/database/index.js +2 -2
  75. package/debounce-bV0h5FC5.js +92 -0
  76. package/en/translation.json +1 -1
  77. package/fr/translation.json +1 -1
  78. package/get-DSsNkRQs.js +8 -0
  79. package/groupBy-xqz-n0Vd.js +14 -0
  80. package/hooks/ClueActionContext.js +6 -6
  81. package/hooks/ClueComponentContext.js +29 -23
  82. package/hooks/ClueConfigProvider.js +14 -12
  83. package/hooks/ClueDatabaseContext.js +19 -13
  84. package/hooks/ClueEnrichContext.js +8 -8
  85. package/hooks/ClueFetcherContext.js +83 -56
  86. package/hooks/ClueGroupContext.js +17 -14
  87. package/hooks/CluePopupContext.js +5 -5
  88. package/hooks/ClueProvider.js +12 -10
  89. package/hooks/selectors.js +7 -7
  90. package/hooks/useActionResult.d.ts +1 -0
  91. package/hooks/useActionResult.js +4 -2
  92. package/hooks/useAnnotations.js +47 -31
  93. package/hooks/useClue.js +6 -4
  94. package/hooks/useClueActions.js +3 -3
  95. package/hooks/useClueConfig.js +6 -4
  96. package/hooks/useClueTypeConfig.js +3 -3
  97. package/hooks/useComparator.js +722 -435
  98. package/hooks/useErrors.js +22 -18
  99. package/hooks/useFetcherResult.d.ts +1 -0
  100. package/hooks/useFetcherResult.js +33 -24
  101. package/hooks/useMyHighlights.js +66 -36
  102. package/hooks/useMyLocalStorage.js +66 -37
  103. package/iconify-CXMreGTg.js +1782 -0
  104. package/icons/Action.js +66 -49
  105. package/icons/Assessment.js +85 -69
  106. package/icons/Context.js +77 -63
  107. package/icons/Opinion.js +76 -60
  108. package/icons/iconMap.js +2 -2
  109. package/identity-CPGTqrE4.js +6 -0
  110. package/index-AMfoEg_6.js +696 -0
  111. package/index-B6C2a_Lg.js +1172 -0
  112. package/index-C12gPw2W.js +17698 -0
  113. package/index-DCKkHTvx.js +15750 -0
  114. package/index-JcKyZeoY.js +465 -0
  115. package/isNil-CIubwp4T.js +6 -0
  116. package/isObject-FTY-5JQX.js +7 -0
  117. package/isObjectLike-OAgjjZye.js +48 -0
  118. package/isSymbol-Xd2FsJyp.js +8 -0
  119. package/last-CUCl67Im.js +7 -0
  120. package/main.js +60 -60
  121. package/maxBy-IKHzFrCS.js +8 -0
  122. package/package.json +1 -1
  123. package/sortBy-DfSj8IoJ.js +96 -0
  124. package/sumBy-D-hb_NY-.js +8 -0
  125. package/text/Frequency.js +42 -23
  126. package/toFinite-Bc55msYj.js +16 -0
  127. package/toNumber-DPxy1FBy.js +39 -0
  128. package/types/WithActionData.d.ts +2 -1
  129. package/useClueTypeConfig-Z1LFp01b.js +3289 -0
  130. package/utils/chain.js +92 -65
  131. package/utils/classificationParser.js +519 -256
  132. package/utils/constants.js +35 -10
  133. package/utils/graph.js +72 -45
  134. package/utils/hashUtil.js +7 -7
  135. package/utils/line.js +131 -81
  136. package/utils/loggerUtil.js +5 -3
  137. package/utils/sessionStorage.js +41 -27
  138. package/utils/time.js +423 -423
  139. package/utils/utils.js +9 -9
  140. package/utils/window.js +21 -10
  141. package/utils-HmNPuoDB.js +199 -0
  142. package/ActionForm-DlOXqMUx.js +0 -4460
  143. package/AnnotationDetails-Bk-p0F6h.js +0 -160
  144. package/AnnotationPreview-jzZvkCxJ.js +0 -140
  145. package/ClueEnrichContext-KqRuuWNS.js +0 -418
  146. package/FlexOne-BXWFOd1T.js +0 -6
  147. package/_MapCache-BiTi0iqu.js +0 -180
  148. package/_Uint8Array-BQNOM9Rr.js +0 -101
  149. package/_baseAssignValue-CNMLQZco.js +0 -20
  150. package/_baseClone-BnT-6pyM.js +0 -207
  151. package/_baseExtremum-Ca2EHgy2.js +0 -16
  152. package/_baseFlatten-Bfr_Molw.js +0 -72
  153. package/_baseGet-DSZygzyq.js +0 -79
  154. package/_baseIsEqual-VgvaAFZG.js +0 -147
  155. package/_baseIteratee-Dbfsw5z8.js +0 -95
  156. package/_baseSlice-M5RKzt1A.js +0 -10
  157. package/_baseSum-wEbgNeUs.js +0 -10
  158. package/_baseUniq-BJcj69PL.js +0 -79
  159. package/_commonjsHelpers-DaMA6jEr.js +0 -8
  160. package/_createAggregator-k3TuAnxT.js +0 -53
  161. package/_getPrototype-Cr1Mk7BC.js +0 -5
  162. package/_getTag-CK2Sffaq.js +0 -90
  163. package/_isIterateeCall-DkJP7Rbx.js +0 -13
  164. package/_setToArray-C7yMOeww.js +0 -29
  165. package/cloneDeep-CF8TtLHr.js +0 -8
  166. package/countBy-CdYegFSu.js +0 -8
  167. package/debounce-DryYcbJ4.js +0 -56
  168. package/get-CH7kz5Ix.js +0 -8
  169. package/groupBy-br8xmD2R.js +0 -8
  170. package/iconify-BBckr5AQ.js +0 -1263
  171. package/identity-ByMq8VxU.js +0 -6
  172. package/index-BHAe_V9n.js +0 -12768
  173. package/index-BK-zfYhR.js +0 -358
  174. package/index-CA5CUNZO.js +0 -975
  175. package/index-Dj5C04IX.js +0 -568
  176. package/index-p5_wX7q1.js +0 -11729
  177. package/isNil-CjWwlQS3.js +0 -6
  178. package/isObject-B53jY8Qg.js +0 -7
  179. package/isObjectLike-BatpeCIi.js +0 -29
  180. package/isSymbol-C3_SC0Qp.js +0 -8
  181. package/last-7CdUxN0r.js +0 -7
  182. package/maxBy-Bc0dYHcO.js +0 -8
  183. package/sortBy-DY2JBf9n.js +0 -75
  184. package/sumBy-DuMASLPd.js +0 -8
  185. package/toFinite-BMy6GObD.js +0 -14
  186. package/toNumber-YVhnnJv4.js +0 -31
  187. package/useClueTypeConfig-Ct9Ygter.js +0 -2292
  188. package/utils-DmwSUrum.js +0 -129
@@ -1,290 +1,553 @@
1
- const E = {
1
+ const defaultParts = {
2
2
  lvlIdx: 0,
3
3
  lvl: "",
4
4
  req: [],
5
5
  groups: [],
6
6
  subgroups: []
7
- }, N = {
7
+ };
8
+ const defaultDisabled = {
8
9
  groups: [],
9
10
  levels: []
10
11
  };
11
- class O extends Error {
12
+ class InvalidClassification extends Error {
12
13
  }
13
- const I = (i, s, o, p) => {
14
- let u = null;
15
- return s != null && i != null && (u = s.levels_map[i.toString()]), u === void 0 || u == null ? (console.error(
16
- `[classificationParser] Classification level number '${i}' was not found in your classification definition.`
17
- ), "INVALID") : o === "long" && !p ? s.levels_map_stl[u] : u;
18
- }, T = (i, s) => {
19
- let o = null;
20
- const [p, u, r] = (i == null ? void 0 : i.split(/\/\/(.*)/)) ?? [null, null, null], a = p == null ? void 0 : p.toUpperCase();
21
- return s.levels_map[a] !== void 0 ? o = s.levels_map[a] : s.levels_map_lts[a] !== void 0 ? o = s.levels_map[s.levels_map_lts[a]] : s.levels_aliases[a] !== void 0 ? o = s.levels_map[s.levels_aliases[a]] : (o = -1, console.error(
22
- `[classificationParser] Classification level '${p}' was not found in your classification definition.`
23
- )), typeof o != "number" && (o = parseInt(o)), [o, u];
24
- }, $ = (i, s, o, p) => {
25
- const u = [], r = [];
26
- if (!i)
27
- return [u.sort(), r];
28
- const a = i.toUpperCase().split("/");
29
- for (const m of a)
30
- if (m in s.access_req_map_lts)
31
- u.push(s.access_req_map_lts[m]);
32
- else if (m in s.access_req_map_stl)
33
- u.push(m);
34
- else if (m in s.access_req_aliases)
35
- for (const d of s.access_req_aliases[m])
36
- u.push(d);
37
- else
38
- r.push(m);
39
- if (o === "long" && !p) {
40
- const m = [];
41
- for (const d of u)
42
- m.push(s.access_req_map_stl[d]);
43
- return [m.sort(), r];
44
- }
45
- return [u.sort(), r];
46
- }, U = (i, s, o, p, u = !1) => {
47
- var l, h, e, S;
48
- let r = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), m = /* @__PURE__ */ new Set();
49
- const d = [], _ = [];
50
- for (const t of i) {
51
- if (!t)
14
+ const getLevelText = (lvl, c12nDef, format, isMobile) => {
15
+ let text = null;
16
+ if (c12nDef != null && lvl != null) {
17
+ text = c12nDef.levels_map[lvl.toString()];
18
+ }
19
+ if (text === void 0 || text == null) {
20
+ console.error(
21
+ `[classificationParser] Classification level number '${lvl}' was not found in your classification definition.`
22
+ );
23
+ return "INVALID";
24
+ }
25
+ if (format === "long" && !isMobile) {
26
+ return c12nDef.levels_map_stl[text];
27
+ }
28
+ return text;
29
+ };
30
+ const getLevelIndex = (c12n, c12nDef) => {
31
+ let retIndex = null;
32
+ const [level, unused, _x] = (c12n == null ? void 0 : c12n.split(/\/\/(.*)/)) ?? [null, null, null];
33
+ const c12nLvl = level == null ? void 0 : level.toUpperCase();
34
+ if (c12nDef.levels_map[c12nLvl] !== void 0) {
35
+ retIndex = c12nDef.levels_map[c12nLvl];
36
+ } else if (c12nDef.levels_map_lts[c12nLvl] !== void 0) {
37
+ retIndex = c12nDef.levels_map[c12nDef.levels_map_lts[c12nLvl]];
38
+ } else if (c12nDef.levels_aliases[c12nLvl] !== void 0) {
39
+ retIndex = c12nDef.levels_map[c12nDef.levels_aliases[c12nLvl]];
40
+ } else {
41
+ retIndex = -1;
42
+ console.error(
43
+ `[classificationParser] Classification level '${level}' was not found in your classification definition.`
44
+ );
45
+ }
46
+ if (typeof retIndex !== "number") {
47
+ retIndex = parseInt(retIndex);
48
+ }
49
+ return [retIndex, unused];
50
+ };
51
+ const getRequired = (c12n, c12nDef, format, isMobile) => {
52
+ const returnSet = [];
53
+ const unused = [];
54
+ if (!c12n) {
55
+ return [returnSet.sort(), unused];
56
+ }
57
+ const partSet = c12n.toUpperCase().split("/");
58
+ for (const p of partSet) {
59
+ if (p in c12nDef.access_req_map_lts) {
60
+ returnSet.push(c12nDef.access_req_map_lts[p]);
61
+ } else if (p in c12nDef.access_req_map_stl) {
62
+ returnSet.push(p);
63
+ } else if (p in c12nDef.access_req_aliases) {
64
+ for (const a of c12nDef.access_req_aliases[p]) {
65
+ returnSet.push(a);
66
+ }
67
+ } else {
68
+ unused.push(p);
69
+ }
70
+ }
71
+ if (format === "long" && !isMobile) {
72
+ const out = [];
73
+ for (const r of returnSet) {
74
+ out.push(c12nDef.access_req_map_stl[r]);
75
+ }
76
+ return [out.sort(), unused];
77
+ }
78
+ return [returnSet.sort(), unused];
79
+ };
80
+ const getGroups = (groupParts, c12nDef, format, isMobile, autoSelect = false) => {
81
+ var _a, _b, _c, _d;
82
+ let g1Set = /* @__PURE__ */ new Set();
83
+ let g2Set = /* @__PURE__ */ new Set();
84
+ let others = /* @__PURE__ */ new Set();
85
+ const groups = [];
86
+ const subgroups = [];
87
+ for (const grpPart of groupParts) {
88
+ if (!grpPart) {
52
89
  continue;
53
- const f = t.toUpperCase();
54
- if (f.startsWith("REL ")) {
55
- const g = new Set(f.replace("REL TO ", "").replace("REL ", "").split(","));
56
- for (let c of g) {
57
- c = c.trim();
58
- for (let v of c.split("/"))
59
- v = v.trim(), d.push(v);
90
+ }
91
+ const gp = grpPart.toUpperCase();
92
+ if (gp.startsWith("REL ")) {
93
+ const tempGroups = new Set(gp.replace("REL TO ", "").replace("REL ", "").split(","));
94
+ for (let tg of tempGroups) {
95
+ tg = tg.trim();
96
+ for (let tsg of tg.split("/")) {
97
+ tsg = tsg.trim();
98
+ groups.push(tsg);
99
+ }
60
100
  }
61
- } else
62
- _.push(f);
63
- }
64
- for (const t of d)
65
- if (t in s.groups_map_lts)
66
- r.add(s.groups_map_lts[t]);
67
- else if (t in s.groups_map_stl)
68
- r.add(t);
69
- else if (t in s.groups_aliases)
70
- for (const f of s.groups_aliases[t])
71
- r.add(f);
72
- else
73
- m.add(t);
74
- for (const t of _)
75
- if (t in s.subgroups_map_lts)
76
- a.add(s.subgroups_map_lts[t]);
77
- else if (t in s.subgroups_map_stl)
78
- a.add(t);
79
- else if (t in s.subgroups_aliases)
80
- for (const f of s.subgroups_aliases[t])
81
- a.add(f);
82
- else if (t in s.groups_aliases) {
83
- const f = s.groups_aliases[t];
84
- f.length > 1 && console.error(`[classificationParser] Unclear use of alias ${t}`), r.add(f[0]);
85
- } else
86
- r.add(t), console.error(`[classificationParser] Unknown component ${t}`);
87
- if (s.dynamic_groups) {
88
- for (const t of m)
89
- r.add(t);
90
- m = /* @__PURE__ */ new Set();
91
- }
92
- for (const t of a) {
93
- const f = (h = (l = s.params_map) == null ? void 0 : l[t]) == null ? void 0 : h.require_group;
94
- f && r.add(f);
95
- }
96
- for (const t of a) {
97
- const f = (S = (e = s.params_map) == null ? void 0 : e[t]) == null ? void 0 : S.limited_to_group;
98
- f != null && (r.size > 1 || r.size === 1 && !r.has(f)) && console.error(
99
- `[classificationParser] Subgroup ${t} is limited to group ${f} (found: ${Array.from(
100
- r
101
- ).toString()})`
102
- );
101
+ } else {
102
+ subgroups.push(gp);
103
+ }
104
+ }
105
+ for (const g of groups) {
106
+ if (g in c12nDef.groups_map_lts) {
107
+ g1Set.add(c12nDef.groups_map_lts[g]);
108
+ } else if (g in c12nDef.groups_map_stl) {
109
+ g1Set.add(g);
110
+ } else if (g in c12nDef.groups_aliases) {
111
+ for (const a of c12nDef.groups_aliases[g]) {
112
+ g1Set.add(a);
113
+ }
114
+ } else {
115
+ others.add(g);
116
+ }
117
+ }
118
+ for (const g of subgroups) {
119
+ if (g in c12nDef.subgroups_map_lts) {
120
+ g2Set.add(c12nDef.subgroups_map_lts[g]);
121
+ } else if (g in c12nDef.subgroups_map_stl) {
122
+ g2Set.add(g);
123
+ } else if (g in c12nDef.subgroups_aliases) {
124
+ for (const sa of c12nDef.subgroups_aliases[g]) {
125
+ g2Set.add(sa);
126
+ }
127
+ } else if (g in c12nDef.groups_aliases) {
128
+ const grps = c12nDef.groups_aliases[g];
129
+ if (grps.length > 1) {
130
+ console.error(`[classificationParser] Unclear use of alias ${g}`);
131
+ }
132
+ g1Set.add(grps[0]);
133
+ } else {
134
+ g1Set.add(g);
135
+ console.error(`[classificationParser] Unknown component ${g}`);
136
+ }
137
+ }
138
+ if (c12nDef.dynamic_groups) {
139
+ for (const o of others) {
140
+ g1Set.add(o);
141
+ }
142
+ others = /* @__PURE__ */ new Set();
143
+ }
144
+ for (const subgroup of g2Set) {
145
+ const required = (_b = (_a = c12nDef.params_map) == null ? void 0 : _a[subgroup]) == null ? void 0 : _b.require_group;
146
+ if (!!required) {
147
+ g1Set.add(required);
148
+ }
149
+ }
150
+ for (const subgroup of g2Set) {
151
+ const limitedToGroup = (_d = (_c = c12nDef.params_map) == null ? void 0 : _c[subgroup]) == null ? void 0 : _d.limited_to_group;
152
+ if (limitedToGroup !== null && limitedToGroup !== void 0) {
153
+ if (g1Set.size > 1 || g1Set.size === 1 && !g1Set.has(limitedToGroup)) {
154
+ console.error(
155
+ `[classificationParser] Subgroup ${subgroup} is limited to group ${limitedToGroup} (found: ${Array.from(
156
+ g1Set
157
+ ).toString()})`
158
+ );
159
+ }
160
+ }
161
+ }
162
+ if (!!autoSelect && !!g1Set) {
163
+ g1Set = /* @__PURE__ */ new Set([...g1Set, ...c12nDef.groups_auto_select_short]);
164
+ }
165
+ if (!!autoSelect && !!g2Set) {
166
+ g2Set = /* @__PURE__ */ new Set([...g2Set, ...c12nDef.subgroups_auto_select_short]);
167
+ }
168
+ if (format === "long" && !isMobile) {
169
+ const g1Out = [];
170
+ for (const gr of g1Set) {
171
+ g1Out.push(gr in c12nDef.groups_map_stl ? c12nDef.groups_map_stl[gr] : gr);
172
+ }
173
+ const g2Out = [];
174
+ for (const sgr of g2Set) {
175
+ g2Out.push(c12nDef.subgroups_map_stl[sgr]);
176
+ }
177
+ return { groups: g1Out.sort(), subgroups: g2Out.sort(), others: Array.from(others).sort() };
178
+ }
179
+ return { groups: Array.from(g1Set).sort(), subgroups: Array.from(g2Set).sort(), others: Array.from(others).sort() };
180
+ };
181
+ const getParts = (c12n, c12nDef, format, isMobile) => {
182
+ const [lvlIdx, unused] = getLevelIndex(c12n, c12nDef);
183
+ const [req, unusedParts] = getRequired(unused, c12nDef, format, isMobile);
184
+ const { groups, subgroups, others } = getGroups(unusedParts, c12nDef, format, isMobile);
185
+ if (others.length > 0) {
186
+ console.error(`[classificationParser] Unparsable classification parts: ${others.join(",")}`);
103
187
  }
104
- if (u && r && (r = /* @__PURE__ */ new Set([...r, ...s.groups_auto_select_short])), u && a && (a = /* @__PURE__ */ new Set([...a, ...s.subgroups_auto_select_short])), o === "long" && !p) {
105
- const t = [];
106
- for (const g of r)
107
- t.push(g in s.groups_map_stl ? s.groups_map_stl[g] : g);
108
- const f = [];
109
- for (const g of a)
110
- f.push(s.subgroups_map_stl[g]);
111
- return { groups: t.sort(), subgroups: f.sort(), others: Array.from(m).sort() };
112
- }
113
- return { groups: Array.from(r).sort(), subgroups: Array.from(a).sort(), others: Array.from(m).sort() };
114
- }, b = (i, s, o, p) => {
115
- const [u, r] = T(i, s), [a, m] = $(r, s, o, p), { groups: d, subgroups: _, others: l } = U(m, s, o, p);
116
- return l.length > 0 && console.error(`[classificationParser] Unparsable classification parts: ${l.join(",")}`), {
117
- lvlIdx: u,
118
- lvl: I(u, s, o, p),
119
- req: a,
120
- groups: d,
121
- subgroups: _
188
+ return {
189
+ lvlIdx,
190
+ lvl: getLevelText(lvlIdx, c12nDef, format, isMobile),
191
+ req,
192
+ groups,
193
+ subgroups
122
194
  };
123
- }, z = (i, s) => {
124
- if (s.length <= 0) return !0;
125
- const o = new Set(i), p = new Set(s);
126
- for (const u of p)
127
- if (!o.has(u))
128
- return !1;
129
- return !0;
130
- }, R = (i, s) => {
131
- if (s.length === 0) return !0;
132
- const o = new Set(s), p = new Set(i);
133
- for (const u of o)
134
- if (p.has(u))
135
- return !0;
136
- return !1;
137
- }, x = (i, s, o, p, u = !1) => {
138
- var v, w, y, L, A, C;
139
- if (!s.enforce || s.invalid_mode) return s.UNRESTRICTED;
140
- const r = !(o === "short" || p), a = r ? "REL TO " : "REL ", { lvlIdx: m, lvl: d } = i;
141
- let { groups: _, subgroups: l, req: h } = i;
142
- h = h.map((n) => r ? s.access_req_map_stl[n] || n : s.access_req_map_lts[n] || n), _ = _.map((n) => r ? s.groups_map_stl[n] || n : s.groups_map_lts[n] || n), l = l.map((n) => r ? s.subgroups_map_stl[n] || n : s.subgroups_map_lts[n] || n);
143
- let e = d, S = 0;
144
- for (const n of h) {
145
- const q = (w = (v = s.params_map) == null ? void 0 : v[n]) != null && w.require_lvl ? s.params_map[n].require_lvl : 0;
146
- S = Math.max(S, q);
147
- }
148
- e = I(Math.max(m, S), s, o, p);
149
- const t = /* @__PURE__ */ new Set();
150
- for (const n of h)
151
- (y = s.params_map[n]) != null && y.is_required_group && t.add(n);
152
- const f = Array.from(new Set([...h].filter((n) => !t.has(n))));
153
- f.length > 0 && (e += "//" + f.sort().join("/")), t.size > 0 && (e += "//" + Array.from(t).sort().join("/"));
154
- let g = [...l];
155
- r ? l.length > 0 && s.subgroups_auto_select.length > 0 && !u && (g = Array.from(/* @__PURE__ */ new Set([...l, ...s.subgroups_auto_select])).sort()) : l.length > 0 && s.subgroups_auto_select_short.length > 0 && !u && (g = Array.from(/* @__PURE__ */ new Set([...l, ...s.subgroups_auto_select_short])).sort());
156
- let c = [];
157
- for (const n of g) {
158
- const q = (L = s.params_map[n]) == null ? void 0 : L.require_group;
159
- q && c.push(q);
160
- const P = (A = s.params_map[n]) == null ? void 0 : A.limited_to_group;
161
- P && (P in c ? c = [P] : c = []);
162
- }
163
- for (const n of c)
164
- r ? _.push(s.groups_map_stl[n] || n) : _.push(s.groups_map_lts[n] || n);
165
- if (_ = Array.from(new Set(_)), r ? _.length > 0 && s.groups_auto_select.length > 0 && !u && (_ = Array.from(/* @__PURE__ */ new Set([..._, ...s.groups_auto_select])).sort()) : _.length > 0 && s.groups_auto_select_short.length > 0 && !u && (_ = Array.from(/* @__PURE__ */ new Set([..._, ...s.groups_auto_select_short])).sort()), _.length > 0)
166
- if (_ = _.sort(), e += t.size > 0 ? "/" : "//", _.length === 1) {
167
- const n = _[0], q = ((C = s.params_map[n]) == null ? void 0 : C.solitary_display_name) || n;
168
- e += q !== n ? q : a + n;
195
+ };
196
+ const canSeeRequired = (user_req, req) => {
197
+ if (req.length <= 0) return true;
198
+ const userSet = new Set(user_req);
199
+ const reqSet = new Set(req);
200
+ for (const elem of reqSet) {
201
+ if (!userSet.has(elem)) {
202
+ return false;
203
+ }
204
+ }
205
+ return true;
206
+ };
207
+ const canSeeGroups = (user_groups, groups) => {
208
+ if (groups.length === 0) return true;
209
+ const groupSet = new Set(groups);
210
+ const userSet = new Set(user_groups);
211
+ for (const elem of groupSet) {
212
+ if (userSet.has(elem)) {
213
+ return true;
214
+ }
215
+ }
216
+ return false;
217
+ };
218
+ const normalizedClassification = (parts, c12nDef, format, isMobile, skipAutoSelect = false) => {
219
+ var _a, _b, _c, _d, _e, _f;
220
+ if (!c12nDef.enforce || !!c12nDef.invalid_mode) return c12nDef.UNRESTRICTED;
221
+ const longFormat = format === "short" || !!isMobile ? false : true;
222
+ const groupDelim = !!longFormat ? "REL TO " : "REL ";
223
+ const { lvlIdx, lvl } = parts;
224
+ let { groups, subgroups, req } = parts;
225
+ req = req.map((r) => {
226
+ if (!!longFormat) {
227
+ return c12nDef.access_req_map_stl[r] || r;
228
+ }
229
+ return c12nDef.access_req_map_lts[r] || r;
230
+ });
231
+ groups = groups.map((g) => {
232
+ if (!!longFormat) {
233
+ return c12nDef.groups_map_stl[g] || g;
234
+ }
235
+ return c12nDef.groups_map_lts[g] || g;
236
+ });
237
+ subgroups = subgroups.map((g) => {
238
+ if (!!longFormat) {
239
+ return c12nDef.subgroups_map_stl[g] || g;
240
+ }
241
+ return c12nDef.subgroups_map_lts[g] || g;
242
+ });
243
+ let out = lvl;
244
+ let requiredLvlIdx = 0;
245
+ for (const r of req) {
246
+ const rl = !!((_b = (_a = c12nDef.params_map) == null ? void 0 : _a[r]) == null ? void 0 : _b.require_lvl) ? c12nDef.params_map[r].require_lvl : 0;
247
+ requiredLvlIdx = Math.max(requiredLvlIdx, rl);
248
+ }
249
+ out = getLevelText(Math.max(lvlIdx, requiredLvlIdx), c12nDef, format, isMobile);
250
+ const reqGrp = /* @__PURE__ */ new Set();
251
+ for (const r of req) {
252
+ if (!!((_c = c12nDef.params_map[r]) == null ? void 0 : _c.is_required_group)) {
253
+ reqGrp.add(r);
254
+ }
255
+ }
256
+ const tempReq = Array.from(new Set([...req].filter((x) => !reqGrp.has(x))));
257
+ if (tempReq.length > 0) {
258
+ out += "//" + tempReq.sort().join("/");
259
+ }
260
+ if (reqGrp.size > 0) {
261
+ out += "//" + Array.from(reqGrp).sort().join("/");
262
+ }
263
+ let tempSubGroups = [...subgroups];
264
+ if (!!longFormat) {
265
+ if (subgroups.length > 0 && c12nDef.subgroups_auto_select.length > 0 && !skipAutoSelect) {
266
+ tempSubGroups = Array.from(/* @__PURE__ */ new Set([...subgroups, ...c12nDef.subgroups_auto_select])).sort();
267
+ }
268
+ } else {
269
+ if (subgroups.length > 0 && c12nDef.subgroups_auto_select_short.length > 0 && !skipAutoSelect) {
270
+ tempSubGroups = Array.from(/* @__PURE__ */ new Set([...subgroups, ...c12nDef.subgroups_auto_select_short])).sort();
271
+ }
272
+ }
273
+ let tempGroups = [];
274
+ for (const sg of tempSubGroups) {
275
+ const rGrp = (_d = c12nDef.params_map[sg]) == null ? void 0 : _d.require_group;
276
+ if (!!rGrp) {
277
+ tempGroups.push(rGrp);
278
+ }
279
+ const limToGrp = (_e = c12nDef.params_map[sg]) == null ? void 0 : _e.limited_to_group;
280
+ if (!!limToGrp) {
281
+ if (limToGrp in tempGroups) {
282
+ tempGroups = [limToGrp];
283
+ } else {
284
+ tempGroups = [];
285
+ }
286
+ }
287
+ }
288
+ for (const g of tempGroups) {
289
+ if (!!longFormat) {
290
+ groups.push(c12nDef.groups_map_stl[g] || g);
291
+ } else {
292
+ groups.push(c12nDef.groups_map_lts[g] || g);
293
+ }
294
+ }
295
+ groups = Array.from(new Set(groups));
296
+ if (!!longFormat) {
297
+ if (groups.length > 0 && c12nDef.groups_auto_select.length > 0 && !skipAutoSelect) {
298
+ groups = Array.from(/* @__PURE__ */ new Set([...groups, ...c12nDef.groups_auto_select])).sort();
299
+ }
300
+ } else {
301
+ if (groups.length > 0 && c12nDef.groups_auto_select_short.length > 0 && !skipAutoSelect) {
302
+ groups = Array.from(/* @__PURE__ */ new Set([...groups, ...c12nDef.groups_auto_select_short])).sort();
303
+ }
304
+ }
305
+ if (groups.length > 0) {
306
+ groups = groups.sort();
307
+ out += reqGrp.size > 0 ? "/" : "//";
308
+ if (groups.length === 1) {
309
+ const grp = groups[0];
310
+ const displayName = ((_f = c12nDef.params_map[grp]) == null ? void 0 : _f.solitary_display_name) || grp;
311
+ out += displayName !== grp ? displayName : groupDelim + grp;
312
+ } else {
313
+ if (!longFormat) {
314
+ for (const [alias, values] of Object.entries(c12nDef.groups_aliases)) {
315
+ if (values.length > 1) {
316
+ if (JSON.stringify(values.sort()) === JSON.stringify(groups)) {
317
+ groups = [alias];
318
+ }
319
+ }
320
+ }
321
+ }
322
+ out += groupDelim + groups.sort().join(", ");
323
+ }
324
+ }
325
+ if (tempSubGroups.length > 0) {
326
+ if (groups.length > 0 || reqGrp.size > 0) {
327
+ out += "/";
169
328
  } else {
170
- if (!r)
171
- for (const [n, q] of Object.entries(s.groups_aliases))
172
- q.length > 1 && JSON.stringify(q.sort()) === JSON.stringify(_) && (_ = [n]);
173
- e += a + _.sort().join(", ");
174
- }
175
- return g.length > 0 && (_.length > 0 || t.size > 0 ? e += "/" : e += "//", e += g.sort().join("/")), e;
176
- }, j = (i) => {
177
- const s = [];
178
- for (const o in i.levels_map)
179
- isNaN(parseInt(o)) || s.push(i.levels_map[o]);
180
- return s;
181
- }, F = {
182
- disabled: N,
183
- parts: E
184
- }, J = (i, s, o, p, u = !1) => {
185
- const r = !(o === "short" || p), a = {}, m = {}, d = {}, _ = ["req", "groups", "subgroups"], l = { ...i }, h = {
329
+ out += "//";
330
+ }
331
+ out += tempSubGroups.sort().join("/");
332
+ }
333
+ return out;
334
+ };
335
+ const levelList = (c12nDef) => {
336
+ const out = [];
337
+ for (const i in c12nDef.levels_map) {
338
+ if (!isNaN(parseInt(i))) {
339
+ out.push(c12nDef.levels_map[i]);
340
+ }
341
+ }
342
+ return out;
343
+ };
344
+ const defaultClassificationValidator = {
345
+ disabled: defaultDisabled,
346
+ parts: defaultParts
347
+ };
348
+ const applyClassificationRules = (parts, c12nDef, format, isMobile, userClassification = false) => {
349
+ const longFormat = format === "short" || !!isMobile ? false : true;
350
+ const requireLvl = {};
351
+ const limitedToGroup = {};
352
+ const requireGroup = {};
353
+ const partsToCheck = ["req", "groups", "subgroups"];
354
+ const retParts = { ...parts };
355
+ const disabledList = {
186
356
  levels: [],
187
357
  groups: []
188
358
  };
189
- for (const e in s.params_map)
190
- if ({}.hasOwnProperty.call(s.params_map, e)) {
191
- const S = s.params_map[e];
192
- "require_lvl" in S && (a[e] = S.require_lvl), "limited_to_group" in S && (m[e] = S.limited_to_group), "require_group" in S && (d[e] = S.require_group);
193
- }
194
- for (const e in _)
195
- if ({}.hasOwnProperty.call(_, e)) {
196
- const S = l[_[e]];
197
- for (const t of S) {
198
- let f = !1;
199
- if (t) {
200
- if (t in a) {
201
- l.lvlIdx < a[t] && (l.lvlIdx = a[t], l.lvl = I(a[t], s, o, p));
202
- const g = j(s);
203
- for (const c of g)
204
- s.levels_map[c] < a[t] && h.levels.push(c);
359
+ for (const item in c12nDef.params_map) {
360
+ if ({}.hasOwnProperty.call(c12nDef.params_map, item)) {
361
+ const data = c12nDef.params_map[item];
362
+ if ("require_lvl" in data) {
363
+ requireLvl[item] = data.require_lvl;
364
+ }
365
+ if ("limited_to_group" in data) {
366
+ limitedToGroup[item] = data.limited_to_group;
367
+ }
368
+ if ("require_group" in data) {
369
+ requireGroup[item] = data.require_group;
370
+ }
371
+ }
372
+ }
373
+ for (const partName in partsToCheck) {
374
+ if ({}.hasOwnProperty.call(partsToCheck, partName)) {
375
+ const part = retParts[partsToCheck[partName]];
376
+ for (const value of part) {
377
+ let triggerAutoSelect = false;
378
+ if (value) {
379
+ if (value in requireLvl) {
380
+ if (retParts.lvlIdx < requireLvl[value]) {
381
+ retParts.lvlIdx = requireLvl[value];
382
+ retParts.lvl = getLevelText(requireLvl[value], c12nDef, format, isMobile);
383
+ }
384
+ const levels = levelList(c12nDef);
385
+ for (const l of levels) {
386
+ if (c12nDef.levels_map[l] < requireLvl[value]) {
387
+ disabledList.levels.push(l);
388
+ }
389
+ }
205
390
  }
206
- if (t in d) {
207
- const g = s.groups_map_stl[d[t]] || d[t], c = s.groups_map_lts[d[t]] || d[t];
208
- if (!l.groups.includes(g) && !l.groups.includes(c)) {
209
- l.groups.push(c);
210
- for (const v of s.groups_auto_select) {
211
- const w = s.groups_map_stl[v] || v, y = s.groups_map_lts[v] || v;
212
- !l.groups.includes(y) && !l.groups.includes(w) && l.groups.push(v);
391
+ if (value in requireGroup) {
392
+ const valueLong = c12nDef.groups_map_stl[requireGroup[value]] || requireGroup[value];
393
+ const valueShort = c12nDef.groups_map_lts[requireGroup[value]] || requireGroup[value];
394
+ if (!retParts.groups.includes(valueLong) && !retParts.groups.includes(valueShort)) {
395
+ retParts.groups.push(valueShort);
396
+ for (const group of c12nDef.groups_auto_select) {
397
+ const gLong = c12nDef.groups_map_stl[group] || group;
398
+ const gShort = c12nDef.groups_map_lts[group] || group;
399
+ if (!retParts.groups.includes(gShort) && !retParts.groups.includes(gLong)) {
400
+ retParts.groups.push(group);
401
+ }
213
402
  }
214
403
  }
215
404
  }
216
- if (t in m)
217
- for (const g in s.groups_map_stl) {
218
- const c = s.groups_map_lts[m[t]] || m[t];
219
- if (g !== c) {
220
- const v = s.groups_map_stl[g];
221
- h.groups.push(g), l.groups.includes(g) ? l.groups.splice(l.groups.indexOf(g), 1) : l.groups.includes(v) && l.groups.splice(l.groups.indexOf(v), 1);
405
+ if (value in limitedToGroup) {
406
+ for (const gShort in c12nDef.groups_map_stl) {
407
+ const lgShort = c12nDef.groups_map_lts[limitedToGroup[value]] || limitedToGroup[value];
408
+ if (gShort !== lgShort) {
409
+ const gLong = c12nDef.groups_map_stl[gShort];
410
+ disabledList.groups.push(gShort);
411
+ if (retParts.groups.includes(gShort)) {
412
+ retParts.groups.splice(retParts.groups.indexOf(gShort), 1);
413
+ } else if (retParts.groups.includes(gLong)) {
414
+ retParts.groups.splice(retParts.groups.indexOf(gLong), 1);
415
+ }
222
416
  }
223
417
  }
224
- !u && _[e] === "groups" && (f = !0);
418
+ }
419
+ if (!userClassification && partsToCheck[partName] === "groups") {
420
+ triggerAutoSelect = true;
421
+ }
225
422
  }
226
- if (f)
227
- for (const g of s.groups_auto_select) {
228
- const c = s.groups_map_stl[g] || g, v = s.groups_map_lts[g] || g;
229
- !l.groups.includes(c) && !l.groups.includes(v) && l.groups.push(g);
423
+ if (triggerAutoSelect) {
424
+ for (const group of c12nDef.groups_auto_select) {
425
+ const gLong = c12nDef.groups_map_stl[group] || group;
426
+ const gShort = c12nDef.groups_map_lts[group] || group;
427
+ if (!retParts.groups.includes(gLong) && !retParts.groups.includes(gShort)) {
428
+ retParts.groups.push(group);
429
+ }
230
430
  }
431
+ }
231
432
  }
232
433
  }
233
- return l.req = l.req.sort().map((e) => r ? s.access_req_map_stl[e] || e : s.access_req_map_lts[e] || e), l.groups = l.groups.sort().map((e) => r ? s.groups_map_stl[e] || e : s.groups_map_lts[e] || e), l.subgroups = l.subgroups.sort().map((e) => r ? s.subgroups_map_stl[e] || e : s.subgroups_map_lts[e] || e), h.groups = h.groups.sort().map((e) => r ? s.groups_map_stl[e] || e : s.groups_map_lts[e] || e), h.levels = h.levels.sort().map((e) => r ? s.levels_map_stl[e] || e : s.levels_map_lts[e] || e), r ? l.lvl = s.levels_map_stl[l.lvl] || l.lvl : l.lvl = s.levels_map_lts[l.lvl] || l.lvl, {
234
- disabled: h,
235
- parts: l
434
+ }
435
+ retParts.req = retParts.req.sort().map((r) => {
436
+ if (!!longFormat) {
437
+ return c12nDef.access_req_map_stl[r] || r;
438
+ }
439
+ return c12nDef.access_req_map_lts[r] || r;
440
+ });
441
+ retParts.groups = retParts.groups.sort().map((g) => {
442
+ if (!!longFormat) {
443
+ return c12nDef.groups_map_stl[g] || g;
444
+ }
445
+ return c12nDef.groups_map_lts[g] || g;
446
+ });
447
+ retParts.subgroups = retParts.subgroups.sort().map((sg) => {
448
+ if (!!longFormat) {
449
+ return c12nDef.subgroups_map_stl[sg] || sg;
450
+ }
451
+ return c12nDef.subgroups_map_lts[sg] || sg;
452
+ });
453
+ disabledList.groups = disabledList.groups.sort().map((g) => {
454
+ if (!!longFormat) {
455
+ return c12nDef.groups_map_stl[g] || g;
456
+ }
457
+ return c12nDef.groups_map_lts[g] || g;
458
+ });
459
+ disabledList.levels = disabledList.levels.sort().map((l) => {
460
+ if (!!longFormat) {
461
+ return c12nDef.levels_map_stl[l] || l;
462
+ }
463
+ return c12nDef.levels_map_lts[l] || l;
464
+ });
465
+ if (!!longFormat) {
466
+ retParts.lvl = c12nDef.levels_map_stl[retParts.lvl] || retParts.lvl;
467
+ } else {
468
+ retParts.lvl = c12nDef.levels_map_lts[retParts.lvl] || retParts.lvl;
469
+ }
470
+ return {
471
+ disabled: disabledList,
472
+ parts: retParts
236
473
  };
237
- }, G = (i, s) => {
238
- let o = /* @__PURE__ */ new Set();
239
- if (i.length > 0 && s.length > 0) {
240
- const p = new Set(s);
241
- o = new Set([...i].filter((u) => p.has(u)));
242
- } else
243
- o = /* @__PURE__ */ new Set([...i, ...s]);
244
- return i.length > 0 && s.length > 0 && o.size <= 0 && (o = /* @__PURE__ */ new Set([...i, ...s]), console.error(
245
- `[classificationParser] Could not find any intersection between the groups. ${i.toString()} & ${s.toString()}`
246
- )), Array.from(o);
247
- }, V = (i, s, o, p, u) => {
248
- if (!o.enforce || o.invalid_mode) {
249
- const e = b(o.UNRESTRICTED, o, p, u);
250
- return x(e, o, p, u);
251
- }
252
- const r = b(i, o, p, u), a = b(s, o, p, u);
253
- if (!i)
254
- return x(a, o, p, u);
255
- if (!s)
256
- return x(r, o, p, u);
257
- const m = Array.from(/* @__PURE__ */ new Set([...r.req, ...a.req])), d = G(r.groups, a.groups), _ = G(r.subgroups, a.subgroups), l = Math.max(r.lvlIdx, a.lvlIdx), h = {
258
- lvlIdx: l,
259
- lvl: I(l, o, p, u),
260
- req: m,
261
- groups: d,
262
- subgroups: _
474
+ };
475
+ const getMaxGroups = (grps1, grps2) => {
476
+ let groups = /* @__PURE__ */ new Set();
477
+ if (grps1.length > 0 && grps2.length > 0) {
478
+ const g2 = new Set(grps2);
479
+ groups = new Set([...grps1].filter((x) => g2.has(x)));
480
+ } else {
481
+ groups = /* @__PURE__ */ new Set([...grps1, ...grps2]);
482
+ }
483
+ if (grps1.length > 0 && grps2.length > 0 && groups.size <= 0) {
484
+ groups = /* @__PURE__ */ new Set([...grps1, ...grps2]);
485
+ console.error(
486
+ `[classificationParser] Could not find any intersection between the groups. ${grps1.toString()} & ${grps2.toString()}`
487
+ );
488
+ }
489
+ return Array.from(groups);
490
+ };
491
+ const getMaxClassification = (c12n_1, c12n_2, c12nDef, format, isMobile) => {
492
+ if (!c12nDef.enforce || !!c12nDef.invalid_mode) {
493
+ const noEnforceParts = getParts(c12nDef.UNRESTRICTED, c12nDef, format, isMobile);
494
+ return normalizedClassification(noEnforceParts, c12nDef, format, isMobile);
495
+ }
496
+ const c12n1Parts = getParts(c12n_1, c12nDef, format, isMobile);
497
+ const c12n2Parts = getParts(c12n_2, c12nDef, format, isMobile);
498
+ if (!c12n_1) {
499
+ return normalizedClassification(c12n2Parts, c12nDef, format, isMobile);
500
+ }
501
+ if (!c12n_2) {
502
+ return normalizedClassification(c12n1Parts, c12nDef, format, isMobile);
503
+ }
504
+ const req = Array.from(/* @__PURE__ */ new Set([...c12n1Parts.req, ...c12n2Parts.req]));
505
+ const groups = getMaxGroups(c12n1Parts.groups, c12n2Parts.groups);
506
+ const subgroups = getMaxGroups(c12n1Parts.subgroups, c12n2Parts.subgroups);
507
+ const lvlIdx = Math.max(c12n1Parts.lvlIdx, c12n2Parts.lvlIdx);
508
+ const out = {
509
+ lvlIdx,
510
+ lvl: getLevelText(lvlIdx, c12nDef, format, isMobile),
511
+ req,
512
+ groups,
513
+ subgroups
263
514
  };
264
- return x(h, o, p, u);
265
- }, W = (i, s, o, p = !1, u = !0) => {
266
- if (o.invalid_mode) return !1;
267
- if (!p || !s) return !0;
515
+ return normalizedClassification(out, c12nDef, format, isMobile);
516
+ };
517
+ const isAccessible = (user_c12n, c12n, c12nDef, enforce = false, ignoreInvalid = true) => {
518
+ if (!!c12nDef.invalid_mode) return false;
519
+ if (!enforce) return true;
520
+ if (!c12n) return true;
268
521
  try {
269
- const r = b(i, o, "long", !1), a = b(s, o, "long", !1);
270
- return Number(r.lvlIdx) >= Number(a.lvlIdx) ? !(!z(r.req, a.req) || !R(r.groups, a.groups) || !R(r.subgroups, a.subgroups)) : !1;
271
- } catch (r) {
272
- if (r instanceof O && u)
273
- return !1;
274
- throw r;
522
+ const userParts = getParts(user_c12n, c12nDef, "long", false);
523
+ const parts = getParts(c12n, c12nDef, "long", false);
524
+ if (Number(userParts.lvlIdx) >= Number(parts.lvlIdx)) {
525
+ if (!canSeeRequired(userParts.req, parts.req)) return false;
526
+ if (!canSeeGroups(userParts.groups, parts.groups)) return false;
527
+ if (!canSeeGroups(userParts.subgroups, parts.subgroups)) return false;
528
+ return true;
529
+ }
530
+ return false;
531
+ } catch (e) {
532
+ if (e instanceof InvalidClassification) {
533
+ if (!!ignoreInvalid) {
534
+ return false;
535
+ }
536
+ }
537
+ throw e;
275
538
  }
276
539
  };
277
540
  export {
278
- O as InvalidClassification,
279
- J as applyClassificationRules,
280
- R as canSeeGroups,
281
- z as canSeeRequired,
282
- F as defaultClassificationValidator,
283
- N as defaultDisabled,
284
- E as defaultParts,
285
- I as getLevelText,
286
- V as getMaxClassification,
287
- b as getParts,
288
- W as isAccessible,
289
- x as normalizedClassification
541
+ InvalidClassification,
542
+ applyClassificationRules,
543
+ canSeeGroups,
544
+ canSeeRequired,
545
+ defaultClassificationValidator,
546
+ defaultDisabled,
547
+ defaultParts,
548
+ getLevelText,
549
+ getMaxClassification,
550
+ getParts,
551
+ isAccessible,
552
+ normalizedClassification
290
553
  };