@lokalise/harmony 4.1.0 → 4.2.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.
Files changed (295) hide show
  1. package/dist/harmony102.cjs +1 -1
  2. package/dist/harmony102.mjs +1 -1
  3. package/dist/harmony103.cjs +7 -7
  4. package/dist/harmony103.mjs +7 -7
  5. package/dist/harmony105.cjs +2 -2
  6. package/dist/harmony105.mjs +2 -2
  7. package/dist/harmony106.cjs +13 -165
  8. package/dist/harmony106.cjs.map +1 -1
  9. package/dist/harmony106.mjs +13 -165
  10. package/dist/harmony106.mjs.map +1 -1
  11. package/dist/harmony107.cjs +11 -43
  12. package/dist/harmony107.cjs.map +1 -1
  13. package/dist/harmony107.mjs +11 -43
  14. package/dist/harmony107.mjs.map +1 -1
  15. package/dist/harmony108.cjs +12 -14
  16. package/dist/harmony108.cjs.map +1 -1
  17. package/dist/harmony108.mjs +11 -13
  18. package/dist/harmony108.mjs.map +1 -1
  19. package/dist/harmony109.cjs +165 -2
  20. package/dist/harmony109.cjs.map +1 -1
  21. package/dist/harmony109.mjs +166 -3
  22. package/dist/harmony109.mjs.map +1 -1
  23. package/dist/harmony110.cjs +42 -16
  24. package/dist/harmony110.cjs.map +1 -1
  25. package/dist/harmony110.mjs +42 -16
  26. package/dist/harmony110.mjs.map +1 -1
  27. package/dist/harmony111.cjs +3 -76
  28. package/dist/harmony111.cjs.map +1 -1
  29. package/dist/harmony111.mjs +3 -76
  30. package/dist/harmony111.mjs.map +1 -1
  31. package/dist/harmony112.cjs +17 -11
  32. package/dist/harmony112.cjs.map +1 -1
  33. package/dist/harmony112.mjs +17 -11
  34. package/dist/harmony112.mjs.map +1 -1
  35. package/dist/harmony113.cjs +76 -34
  36. package/dist/harmony113.cjs.map +1 -1
  37. package/dist/harmony113.mjs +76 -34
  38. package/dist/harmony113.mjs.map +1 -1
  39. package/dist/harmony114.cjs +12 -9
  40. package/dist/harmony114.cjs.map +1 -1
  41. package/dist/harmony114.mjs +12 -9
  42. package/dist/harmony114.mjs.map +1 -1
  43. package/dist/harmony115.cjs +34 -47
  44. package/dist/harmony115.cjs.map +1 -1
  45. package/dist/harmony115.mjs +34 -47
  46. package/dist/harmony115.mjs.map +1 -1
  47. package/dist/harmony116.cjs +10 -10
  48. package/dist/harmony116.cjs.map +1 -1
  49. package/dist/harmony116.mjs +9 -9
  50. package/dist/harmony116.mjs.map +1 -1
  51. package/dist/harmony117.cjs +45 -9
  52. package/dist/harmony117.cjs.map +1 -1
  53. package/dist/harmony117.mjs +47 -11
  54. package/dist/harmony117.mjs.map +1 -1
  55. package/dist/harmony118.cjs +8 -20
  56. package/dist/harmony118.cjs.map +1 -1
  57. package/dist/harmony118.mjs +8 -20
  58. package/dist/harmony118.mjs.map +1 -1
  59. package/dist/harmony119.cjs +9 -10
  60. package/dist/harmony119.cjs.map +1 -1
  61. package/dist/harmony119.mjs +11 -12
  62. package/dist/harmony119.mjs.map +1 -1
  63. package/dist/harmony120.cjs +20 -11
  64. package/dist/harmony120.cjs.map +1 -1
  65. package/dist/harmony120.mjs +20 -11
  66. package/dist/harmony120.mjs.map +1 -1
  67. package/dist/harmony121.cjs +2 -2
  68. package/dist/harmony121.mjs +2 -2
  69. package/dist/harmony123.cjs +7 -86
  70. package/dist/harmony123.cjs.map +1 -1
  71. package/dist/harmony123.mjs +7 -86
  72. package/dist/harmony123.mjs.map +1 -1
  73. package/dist/harmony124.cjs +8 -30
  74. package/dist/harmony124.cjs.map +1 -1
  75. package/dist/harmony124.mjs +8 -30
  76. package/dist/harmony124.mjs.map +1 -1
  77. package/dist/harmony125.cjs +16 -7
  78. package/dist/harmony125.cjs.map +1 -1
  79. package/dist/harmony125.mjs +16 -7
  80. package/dist/harmony125.mjs.map +1 -1
  81. package/dist/harmony126.cjs +86 -7
  82. package/dist/harmony126.cjs.map +1 -1
  83. package/dist/harmony126.mjs +86 -7
  84. package/dist/harmony126.mjs.map +1 -1
  85. package/dist/harmony127.cjs +30 -15
  86. package/dist/harmony127.cjs.map +1 -1
  87. package/dist/harmony127.mjs +30 -15
  88. package/dist/harmony127.mjs.map +1 -1
  89. package/dist/harmony128.cjs +9 -5
  90. package/dist/harmony128.cjs.map +1 -1
  91. package/dist/harmony128.mjs +9 -5
  92. package/dist/harmony128.mjs.map +1 -1
  93. package/dist/harmony129.cjs +13 -6
  94. package/dist/harmony129.cjs.map +1 -1
  95. package/dist/harmony129.mjs +12 -5
  96. package/dist/harmony129.mjs.map +1 -1
  97. package/dist/harmony130.cjs +15 -9
  98. package/dist/harmony130.cjs.map +1 -1
  99. package/dist/harmony130.mjs +14 -8
  100. package/dist/harmony130.mjs.map +1 -1
  101. package/dist/harmony131.cjs +13 -6
  102. package/dist/harmony131.cjs.map +1 -1
  103. package/dist/harmony131.mjs +15 -8
  104. package/dist/harmony131.mjs.map +1 -1
  105. package/dist/harmony132.cjs +7 -12
  106. package/dist/harmony132.cjs.map +1 -1
  107. package/dist/harmony132.mjs +9 -14
  108. package/dist/harmony132.mjs.map +1 -1
  109. package/dist/harmony133.cjs +20 -13
  110. package/dist/harmony133.cjs.map +1 -1
  111. package/dist/harmony133.mjs +22 -15
  112. package/dist/harmony133.mjs.map +1 -1
  113. package/dist/harmony134.cjs +9 -7
  114. package/dist/harmony134.cjs.map +1 -1
  115. package/dist/harmony134.mjs +11 -9
  116. package/dist/harmony134.mjs.map +1 -1
  117. package/dist/harmony135.cjs +30 -18
  118. package/dist/harmony135.cjs.map +1 -1
  119. package/dist/harmony135.mjs +32 -20
  120. package/dist/harmony135.mjs.map +1 -1
  121. package/dist/harmony136.cjs +6 -6
  122. package/dist/harmony136.cjs.map +1 -1
  123. package/dist/harmony136.mjs +6 -6
  124. package/dist/harmony136.mjs.map +1 -1
  125. package/dist/harmony137.cjs +13 -29
  126. package/dist/harmony137.cjs.map +1 -1
  127. package/dist/harmony137.mjs +14 -30
  128. package/dist/harmony137.mjs.map +1 -1
  129. package/dist/harmony138.cjs +31 -7
  130. package/dist/harmony138.cjs.map +1 -1
  131. package/dist/harmony138.mjs +32 -8
  132. package/dist/harmony138.mjs.map +1 -1
  133. package/dist/harmony139.cjs +21 -22
  134. package/dist/harmony139.cjs.map +1 -1
  135. package/dist/harmony139.mjs +20 -21
  136. package/dist/harmony139.mjs.map +1 -1
  137. package/dist/harmony140.cjs +15 -30
  138. package/dist/harmony140.cjs.map +1 -1
  139. package/dist/harmony140.mjs +17 -32
  140. package/dist/harmony140.mjs.map +1 -1
  141. package/dist/harmony141.cjs +3 -18
  142. package/dist/harmony141.cjs.map +1 -1
  143. package/dist/harmony141.mjs +3 -18
  144. package/dist/harmony141.mjs.map +1 -1
  145. package/dist/harmony142.cjs +15 -21
  146. package/dist/harmony142.cjs.map +1 -1
  147. package/dist/harmony142.mjs +14 -20
  148. package/dist/harmony142.mjs.map +1 -1
  149. package/dist/harmony143.cjs +5 -6
  150. package/dist/harmony143.cjs.map +1 -1
  151. package/dist/harmony143.mjs +5 -6
  152. package/dist/harmony144.cjs +5 -15
  153. package/dist/harmony144.cjs.map +1 -1
  154. package/dist/harmony144.mjs +5 -15
  155. package/dist/harmony144.mjs.map +1 -1
  156. package/dist/harmony145.cjs +2 -10
  157. package/dist/harmony145.cjs.map +1 -1
  158. package/dist/harmony145.mjs +2 -10
  159. package/dist/harmony145.mjs.map +1 -1
  160. package/dist/harmony146.cjs +1 -1
  161. package/dist/harmony146.mjs +1 -1
  162. package/dist/harmony147.cjs +1 -1
  163. package/dist/harmony147.mjs +1 -1
  164. package/dist/harmony148.cjs +1 -1
  165. package/dist/harmony148.mjs +1 -1
  166. package/dist/harmony149.cjs +3 -3
  167. package/dist/harmony149.mjs +3 -3
  168. package/dist/harmony150.cjs +1 -1
  169. package/dist/harmony150.mjs +1 -1
  170. package/dist/harmony151.cjs +3 -3
  171. package/dist/harmony151.mjs +3 -3
  172. package/dist/harmony152.cjs +10 -96
  173. package/dist/harmony152.cjs.map +1 -1
  174. package/dist/harmony152.mjs +10 -96
  175. package/dist/harmony152.mjs.map +1 -1
  176. package/dist/harmony153.cjs +94 -11
  177. package/dist/harmony153.cjs.map +1 -1
  178. package/dist/harmony153.mjs +94 -11
  179. package/dist/harmony153.mjs.map +1 -1
  180. package/dist/harmony154.cjs +12 -13
  181. package/dist/harmony154.cjs.map +1 -1
  182. package/dist/harmony154.mjs +12 -13
  183. package/dist/harmony154.mjs.map +1 -1
  184. package/dist/harmony155.cjs +13 -35
  185. package/dist/harmony155.cjs.map +1 -1
  186. package/dist/harmony155.mjs +13 -35
  187. package/dist/harmony155.mjs.map +1 -1
  188. package/dist/harmony156.cjs +32 -24
  189. package/dist/harmony156.cjs.map +1 -1
  190. package/dist/harmony156.mjs +32 -24
  191. package/dist/harmony156.mjs.map +1 -1
  192. package/dist/harmony157.cjs +29 -10
  193. package/dist/harmony157.cjs.map +1 -1
  194. package/dist/harmony157.mjs +28 -9
  195. package/dist/harmony157.mjs.map +1 -1
  196. package/dist/harmony158.cjs +6 -3
  197. package/dist/harmony158.cjs.map +1 -1
  198. package/dist/harmony158.mjs +6 -3
  199. package/dist/harmony158.mjs.map +1 -1
  200. package/dist/harmony159.cjs +3 -6
  201. package/dist/harmony159.cjs.map +1 -1
  202. package/dist/harmony159.mjs +3 -6
  203. package/dist/harmony159.mjs.map +1 -1
  204. package/dist/harmony160.cjs +6 -21
  205. package/dist/harmony160.cjs.map +1 -1
  206. package/dist/harmony160.mjs +6 -21
  207. package/dist/harmony160.mjs.map +1 -1
  208. package/dist/harmony161.cjs +21 -3
  209. package/dist/harmony161.cjs.map +1 -1
  210. package/dist/harmony161.mjs +21 -3
  211. package/dist/harmony161.mjs.map +1 -1
  212. package/dist/harmony162.cjs +3 -9
  213. package/dist/harmony162.cjs.map +1 -1
  214. package/dist/harmony162.mjs +3 -9
  215. package/dist/harmony162.mjs.map +1 -1
  216. package/dist/harmony163.cjs +9 -3
  217. package/dist/harmony163.cjs.map +1 -1
  218. package/dist/harmony163.mjs +9 -3
  219. package/dist/harmony163.mjs.map +1 -1
  220. package/dist/harmony164.cjs +7 -14
  221. package/dist/harmony164.cjs.map +1 -1
  222. package/dist/harmony164.mjs +6 -13
  223. package/dist/harmony164.mjs.map +1 -1
  224. package/dist/harmony165.cjs +31 -14
  225. package/dist/harmony165.cjs.map +1 -1
  226. package/dist/harmony165.mjs +31 -14
  227. package/dist/harmony165.mjs.map +1 -1
  228. package/dist/harmony166.cjs +12 -15
  229. package/dist/harmony166.cjs.map +1 -1
  230. package/dist/harmony166.mjs +12 -15
  231. package/dist/harmony166.mjs.map +1 -1
  232. package/dist/harmony167.cjs +14 -31
  233. package/dist/harmony167.cjs.map +1 -1
  234. package/dist/harmony167.mjs +14 -31
  235. package/dist/harmony167.mjs.map +1 -1
  236. package/dist/harmony168.cjs +15 -10
  237. package/dist/harmony168.cjs.map +1 -1
  238. package/dist/harmony168.mjs +15 -10
  239. package/dist/harmony168.mjs.map +1 -1
  240. package/dist/harmony169.cjs +10 -15
  241. package/dist/harmony169.cjs.map +1 -1
  242. package/dist/harmony169.mjs +10 -15
  243. package/dist/harmony169.mjs.map +1 -1
  244. package/dist/harmony17.cjs +1 -1
  245. package/dist/harmony17.mjs +1 -1
  246. package/dist/harmony170.cjs +13 -18
  247. package/dist/harmony170.cjs.map +1 -1
  248. package/dist/harmony170.mjs +13 -18
  249. package/dist/harmony170.mjs.map +1 -1
  250. package/dist/harmony171.cjs +19 -10
  251. package/dist/harmony171.cjs.map +1 -1
  252. package/dist/harmony171.mjs +19 -10
  253. package/dist/harmony171.mjs.map +1 -1
  254. package/dist/harmony172.cjs +11 -5
  255. package/dist/harmony172.cjs.map +1 -1
  256. package/dist/harmony172.mjs +11 -5
  257. package/dist/harmony172.mjs.map +1 -1
  258. package/dist/harmony173.cjs +4 -12
  259. package/dist/harmony173.cjs.map +1 -1
  260. package/dist/harmony173.mjs +4 -12
  261. package/dist/harmony173.mjs.map +1 -1
  262. package/dist/harmony174.cjs +5 -31
  263. package/dist/harmony174.cjs.map +1 -1
  264. package/dist/harmony174.mjs +5 -31
  265. package/dist/harmony174.mjs.map +1 -1
  266. package/dist/harmony175.cjs +11 -13
  267. package/dist/harmony175.cjs.map +1 -1
  268. package/dist/harmony175.mjs +11 -13
  269. package/dist/harmony175.mjs.map +1 -1
  270. package/dist/harmony176.cjs +32 -4
  271. package/dist/harmony176.cjs.map +1 -1
  272. package/dist/harmony176.mjs +32 -4
  273. package/dist/harmony176.mjs.map +1 -1
  274. package/dist/harmony177.cjs +17 -0
  275. package/dist/harmony177.cjs.map +1 -0
  276. package/dist/harmony177.mjs +17 -0
  277. package/dist/harmony177.mjs.map +1 -0
  278. package/dist/harmony28.cjs +1 -1
  279. package/dist/harmony28.mjs +1 -1
  280. package/dist/harmony29.cjs +1 -1
  281. package/dist/harmony29.mjs +1 -1
  282. package/dist/harmony40.cjs +1 -1
  283. package/dist/harmony40.mjs +1 -1
  284. package/dist/harmony41.cjs +1 -1
  285. package/dist/harmony41.mjs +1 -1
  286. package/dist/harmony42.cjs +1 -1
  287. package/dist/harmony42.mjs +1 -1
  288. package/dist/harmony96.cjs +2 -2
  289. package/dist/harmony96.mjs +2 -2
  290. package/dist/harmony98.cjs +2 -2
  291. package/dist/harmony98.mjs +2 -2
  292. package/dist/types/src/features/permissions/actionResolvers/accessExpertFeatures.d.ts +2 -0
  293. package/dist/types/src/features/permissions/actionResolvers.d.ts +3 -2
  294. package/dist/types/src/features/permissions/types/actionResolverContext.d.ts +1 -0
  295. package/package.json +1 -1
@@ -1,33 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const navigationItems = [
4
- {
5
- key: "editor",
6
- labelKey: "Editor",
7
- path: ({ projectId }) => `/project/${projectId}/editor`
8
- },
9
- {
10
- key: "dashboard",
11
- labelKey: "Download",
12
- path: ({ projectId }) => `/project/${projectId}/dashboard`
13
- },
14
- {
15
- key: "contributors",
16
- labelKey: "Contributors",
17
- path: ({ projectId }) => `/project/${projectId}/contributors`
18
- },
19
- {
20
- key: "orders",
21
- labelKey: "Human proofreading",
22
- path: ({ projectId }) => `/project/${projectId}/orders`,
23
- shouldShow: ({ flags }) => flags.ap_feature_hraas === "on"
24
- },
25
- {
26
- key: "billing",
27
- labelKey: "Billing",
28
- path: ({ projectId }) => `/project/${projectId}/billing`,
29
- shouldShow: ({ flags }) => flags.ap_feature_billing === "on"
30
- }
31
- ];
32
- exports.navigationItems = navigationItems;
3
+ const has = (seed, ...items) => {
4
+ if (!seed) return false;
5
+ if (items.length === 0) return false;
6
+ const seedArray = Array.isArray(seed) ? seed : [seed];
7
+ if (seedArray.length === 0) return false;
8
+ return items.every((item) => seedArray.includes(item));
9
+ };
10
+ exports.has = has;
33
11
  //# sourceMappingURL=harmony124.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony124.cjs","sources":["../src/features/navigation/schemas/navigationSchema.ts"],"sourcesContent":["import type { DropdownItem, NavItemIcon } from '@features/navigation/types/navigation'\n\nexport type NavKey = 'editor' | 'contributors' | 'orders' | 'billing' | 'settings' | 'dashboard'\n\nexport interface NavigationItem {\n\tkey: NavKey\n\tlabelKey: string // TODO: i18n key inside this package\n\tpath: ({ projectId }: { projectId: string }) => string\n\n\ticon?: NavItemIcon\n\tdropdown?: DropdownItem[][]\n\tbadge?: number | ((ctx: NavCtx) => number)\n\n\tshouldShow?: (ctx: NavCtx) => boolean\n\tdisabled?: boolean | ((ctx: NavCtx) => boolean)\n\tisActive?: (pathname: string) => boolean // custom match, else fallback\n}\n\n/** What the gate functions receive */\nexport interface NavCtx {\n\tflags: Record<string, string>\n\tpathname: string\n\tpermissions?: Array<string> // e.g. contributor admin_rights //TODO: Provide type for permissions\n}\n\n// TODO: Handle Translations on harmony side.\nexport const navigationItems: NavigationItem[] = [\n\t{\n\t\tkey: 'editor',\n\t\tlabelKey: 'Editor',\n\t\tpath: ({ projectId }) => `/project/${projectId}/editor`,\n\t},\n\t{\n\t\tkey: 'dashboard',\n\t\tlabelKey: 'Download',\n\t\tpath: ({ projectId }) => `/project/${projectId}/dashboard`,\n\t},\n\t{\n\t\tkey: 'contributors',\n\t\tlabelKey: 'Contributors',\n\t\tpath: ({ projectId }) => `/project/${projectId}/contributors`,\n\t},\n\n\t{\n\t\tkey: 'orders',\n\t\tlabelKey: 'Human proofreading',\n\t\tpath: ({ projectId }) => `/project/${projectId}/orders`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_hraas === 'on',\n\t},\n\t{\n\t\tkey: 'billing',\n\t\tlabelKey: 'Billing',\n\t\tpath: ({ projectId }) => `/project/${projectId}/billing`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_billing === 'on',\n\t},\n]\n"],"names":[],"mappings":";;AA0BO,MAAM,kBAAoC;AAAA,EAChD;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EAEA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,qBAAqB;AAAA,EACvD;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,uBAAuB;AAAA,EAAA;AAE1D;;"}
1
+ {"version":3,"file":"harmony124.cjs","sources":["../src/features/permissions/utils/has.ts"],"sourcesContent":["export const has = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.every((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":";;AAAa,MAAA,MAAM,CAAmB,SAA8B,UAAe;AAC9E,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACtD;;"}
@@ -1,33 +1,11 @@
1
- const navigationItems = [
2
- {
3
- key: "editor",
4
- labelKey: "Editor",
5
- path: ({ projectId }) => `/project/${projectId}/editor`
6
- },
7
- {
8
- key: "dashboard",
9
- labelKey: "Download",
10
- path: ({ projectId }) => `/project/${projectId}/dashboard`
11
- },
12
- {
13
- key: "contributors",
14
- labelKey: "Contributors",
15
- path: ({ projectId }) => `/project/${projectId}/contributors`
16
- },
17
- {
18
- key: "orders",
19
- labelKey: "Human proofreading",
20
- path: ({ projectId }) => `/project/${projectId}/orders`,
21
- shouldShow: ({ flags }) => flags.ap_feature_hraas === "on"
22
- },
23
- {
24
- key: "billing",
25
- labelKey: "Billing",
26
- path: ({ projectId }) => `/project/${projectId}/billing`,
27
- shouldShow: ({ flags }) => flags.ap_feature_billing === "on"
28
- }
29
- ];
1
+ const has = (seed, ...items) => {
2
+ if (!seed) return false;
3
+ if (items.length === 0) return false;
4
+ const seedArray = Array.isArray(seed) ? seed : [seed];
5
+ if (seedArray.length === 0) return false;
6
+ return items.every((item) => seedArray.includes(item));
7
+ };
30
8
  export {
31
- navigationItems
9
+ has
32
10
  };
33
11
  //# sourceMappingURL=harmony124.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony124.mjs","sources":["../src/features/navigation/schemas/navigationSchema.ts"],"sourcesContent":["import type { DropdownItem, NavItemIcon } from '@features/navigation/types/navigation'\n\nexport type NavKey = 'editor' | 'contributors' | 'orders' | 'billing' | 'settings' | 'dashboard'\n\nexport interface NavigationItem {\n\tkey: NavKey\n\tlabelKey: string // TODO: i18n key inside this package\n\tpath: ({ projectId }: { projectId: string }) => string\n\n\ticon?: NavItemIcon\n\tdropdown?: DropdownItem[][]\n\tbadge?: number | ((ctx: NavCtx) => number)\n\n\tshouldShow?: (ctx: NavCtx) => boolean\n\tdisabled?: boolean | ((ctx: NavCtx) => boolean)\n\tisActive?: (pathname: string) => boolean // custom match, else fallback\n}\n\n/** What the gate functions receive */\nexport interface NavCtx {\n\tflags: Record<string, string>\n\tpathname: string\n\tpermissions?: Array<string> // e.g. contributor admin_rights //TODO: Provide type for permissions\n}\n\n// TODO: Handle Translations on harmony side.\nexport const navigationItems: NavigationItem[] = [\n\t{\n\t\tkey: 'editor',\n\t\tlabelKey: 'Editor',\n\t\tpath: ({ projectId }) => `/project/${projectId}/editor`,\n\t},\n\t{\n\t\tkey: 'dashboard',\n\t\tlabelKey: 'Download',\n\t\tpath: ({ projectId }) => `/project/${projectId}/dashboard`,\n\t},\n\t{\n\t\tkey: 'contributors',\n\t\tlabelKey: 'Contributors',\n\t\tpath: ({ projectId }) => `/project/${projectId}/contributors`,\n\t},\n\n\t{\n\t\tkey: 'orders',\n\t\tlabelKey: 'Human proofreading',\n\t\tpath: ({ projectId }) => `/project/${projectId}/orders`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_hraas === 'on',\n\t},\n\t{\n\t\tkey: 'billing',\n\t\tlabelKey: 'Billing',\n\t\tpath: ({ projectId }) => `/project/${projectId}/billing`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_billing === 'on',\n\t},\n]\n"],"names":[],"mappings":"AA0BO,MAAM,kBAAoC;AAAA,EAChD;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EAEA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,qBAAqB;AAAA,EACvD;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,uBAAuB;AAAA,EAAA;AAE1D;"}
1
+ {"version":3,"file":"harmony124.mjs","sources":["../src/features/permissions/utils/has.ts"],"sourcesContent":["export const has = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.every((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":"AAAa,MAAA,MAAM,CAAmB,SAA8B,UAAe;AAC9E,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACtD;"}
@@ -1,11 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const hasAny = (seed, ...items) => {
4
- if (!seed) return false;
5
- if (items.length === 0) return false;
6
- const seedArray = Array.isArray(seed) ? seed : [seed];
7
- if (seedArray.length === 0) return false;
8
- return items.some((item) => seedArray.includes(item));
3
+ const accessExpertFeatures = require("./harmony145.cjs");
4
+ const accessMarketingProjects = require("./harmony146.cjs");
5
+ const createProjects = require("./harmony147.cjs");
6
+ const deleteProjects = require("./harmony148.cjs");
7
+ const downloadFiles = require("./harmony149.cjs");
8
+ const manageContributors = require("./harmony150.cjs");
9
+ const uploadFiles = require("./harmony151.cjs");
10
+ const actionResolvers = {
11
+ accessExpertFeatures: accessExpertFeatures.accessExpertFeatures,
12
+ accessMarketingProjects: accessMarketingProjects.accessMarketingProjects,
13
+ createProjects: createProjects.createProjects,
14
+ deleteProjects: deleteProjects.deleteProjects,
15
+ downloadFiles: downloadFiles.downloadFiles,
16
+ manageContributors: manageContributors.manageContributors,
17
+ uploadFiles: uploadFiles.uploadFiles
9
18
  };
10
- exports.hasAny = hasAny;
19
+ exports.actionResolvers = actionResolvers;
11
20
  //# sourceMappingURL=harmony125.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony125.cjs","sources":["../src/features/permissions/utils/hasAny.ts"],"sourcesContent":["export const hasAny = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.some((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":";;AAAa,MAAA,SAAS,CAAmB,SAA8B,UAAe;AACjF,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,KAAK,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACrD;;"}
1
+ {"version":3,"file":"harmony125.cjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { accessExpertFeatures } from './actionResolvers/accessExpertFeatures'\nimport { accessMarketingProjects } from './actionResolvers/accessMarketingProjects'\nimport { createProjects } from './actionResolvers/createProjects'\nimport { deleteProjects } from './actionResolvers/deleteProjects'\nimport { downloadFiles } from './actionResolvers/downloadFiles'\nimport { manageContributors } from './actionResolvers/manageContributors'\nimport { uploadFiles } from './actionResolvers/uploadFiles'\nimport type { ActionResolver } from './types/actionResolver'\n\nexport const actionResolvers = {\n\taccessExpertFeatures,\n\taccessMarketingProjects,\n\tcreateProjects,\n\tdeleteProjects,\n\tdownloadFiles,\n\tmanageContributors,\n\tuploadFiles,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":["accessExpertFeatures","accessMarketingProjects","createProjects","deleteProjects","downloadFiles","manageContributors","uploadFiles"],"mappings":";;;;;;;;;AASO,MAAM,kBAAkB;AAAA,EAAA,sBAC9BA,qBAAA;AAAA,EAAA,yBACAC,wBAAA;AAAA,EAAA,gBACAC,eAAA;AAAA,EAAA,gBACAC,eAAA;AAAA,EAAA,eACAC,cAAA;AAAA,EAAA,oBACAC,mBAAA;AAAA,EACAC,aAAAA,YAAAA;AACD;;"}
@@ -1,11 +1,20 @@
1
- const hasAny = (seed, ...items) => {
2
- if (!seed) return false;
3
- if (items.length === 0) return false;
4
- const seedArray = Array.isArray(seed) ? seed : [seed];
5
- if (seedArray.length === 0) return false;
6
- return items.some((item) => seedArray.includes(item));
1
+ import { accessExpertFeatures } from "./harmony145.mjs";
2
+ import { accessMarketingProjects } from "./harmony146.mjs";
3
+ import { createProjects } from "./harmony147.mjs";
4
+ import { deleteProjects } from "./harmony148.mjs";
5
+ import { downloadFiles } from "./harmony149.mjs";
6
+ import { manageContributors } from "./harmony150.mjs";
7
+ import { uploadFiles } from "./harmony151.mjs";
8
+ const actionResolvers = {
9
+ accessExpertFeatures,
10
+ accessMarketingProjects,
11
+ createProjects,
12
+ deleteProjects,
13
+ downloadFiles,
14
+ manageContributors,
15
+ uploadFiles
7
16
  };
8
17
  export {
9
- hasAny
18
+ actionResolvers
10
19
  };
11
20
  //# sourceMappingURL=harmony125.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony125.mjs","sources":["../src/features/permissions/utils/hasAny.ts"],"sourcesContent":["export const hasAny = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.some((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":"AAAa,MAAA,SAAS,CAAmB,SAA8B,UAAe;AACjF,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,KAAK,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACrD;"}
1
+ {"version":3,"file":"harmony125.mjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { accessExpertFeatures } from './actionResolvers/accessExpertFeatures'\nimport { accessMarketingProjects } from './actionResolvers/accessMarketingProjects'\nimport { createProjects } from './actionResolvers/createProjects'\nimport { deleteProjects } from './actionResolvers/deleteProjects'\nimport { downloadFiles } from './actionResolvers/downloadFiles'\nimport { manageContributors } from './actionResolvers/manageContributors'\nimport { uploadFiles } from './actionResolvers/uploadFiles'\nimport type { ActionResolver } from './types/actionResolver'\n\nexport const actionResolvers = {\n\taccessExpertFeatures,\n\taccessMarketingProjects,\n\tcreateProjects,\n\tdeleteProjects,\n\tdownloadFiles,\n\tmanageContributors,\n\tuploadFiles,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":[],"mappings":";;;;;;;AASO,MAAM,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;"}
@@ -1,11 +1,90 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const has = (seed, ...items) => {
4
- if (!seed) return false;
5
- if (items.length === 0) return false;
6
- const seedArray = Array.isArray(seed) ? seed : [seed];
7
- if (seedArray.length === 0) return false;
8
- return items.every((item) => seedArray.includes(item));
3
+ const permissions = require("./harmony152.cjs");
4
+ const getProjectNavigationVisibilityMap = (project, adminRights, isFeatureEnabled) => {
5
+ var _a, _b;
6
+ return {
7
+ upload: {
8
+ visible: permissions.hasAdminRight(adminRights, "upload"),
9
+ disabled: false
10
+ },
11
+ download: {
12
+ visible: permissions.hasAdminRight(adminRights, "download"),
13
+ disabled: false
14
+ },
15
+ // TODO: HOME-1009, Clean up after permission management
16
+ // -- There is a plan for "Install apps" permission. Right..?
17
+ apps: {
18
+ visible: true,
19
+ disabled: false
20
+ },
21
+ // TODO: HOME-1009, Clean up after permission management
22
+ // -- There is a plan for "Install apps" permission. Right..?
23
+ contentManagement: {
24
+ visible: project.project_type === "content_integration" && permissions.hasAdminRight(adminRights, "keys"),
25
+ disabled: false
26
+ },
27
+ editor: {
28
+ visible: true,
29
+ disabled: false
30
+ },
31
+ files: {
32
+ visible: isFeatureEnabled("lionLfcFilesManagement") && project.project_type === "paged_documents" && permissions.hasAnyAdminRight(adminRights, ["upload", "download"]),
33
+ disabled: false
34
+ },
35
+ tasks: {
36
+ visible: permissions.hasAdminRight(adminRights, "tasks"),
37
+ disabled: false
38
+ },
39
+ contributors: {
40
+ visible: permissions.hasAdminRight(adminRights, "contributors"),
41
+ disabled: false
42
+ },
43
+ workflows: {
44
+ visible: permissions.hasAdminRight(adminRights, "settings"),
45
+ disabled: false
46
+ },
47
+ screenshots: {
48
+ visible: permissions.hasAdminRight(adminRights, "screenshots"),
49
+ disabled: false
50
+ },
51
+ glossary: {
52
+ visible: permissions.hasAdminRight(adminRights, "glossary"),
53
+ disabled: false
54
+ },
55
+ more: {
56
+ visible: true,
57
+ disabled: false
58
+ },
59
+ settings: {
60
+ visible: permissions.hasAdminRight(adminRights, "settings"),
61
+ disabled: false
62
+ },
63
+ branches: {
64
+ visible: !!((_a = project.settings) == null ? void 0 : _a.branching) && permissions.hasAnyAdminRight(adminRights, ["branches_create", "create_branches", "branches_merge"]),
65
+ disabled: false
66
+ },
67
+ otaBundles: {
68
+ visible: permissions.hasAnyAdminRight(adminRights, ["download", "settings", "keys"]) && project.project_type === "localization_files",
69
+ disabled: false
70
+ },
71
+ automations: {
72
+ visible: permissions.hasAdminRight(adminRights, "settings"),
73
+ disabled: false
74
+ },
75
+ duplicateFinder: {
76
+ visible: permissions.hasAdminRight(adminRights, "keys") && project.project_type === "localization_files",
77
+ disabled: false
78
+ },
79
+ activity: {
80
+ visible: !!((_b = project.settings) == null ? void 0 : _b.offline_translation) || permissions.hasAdminRight(adminRights, "activity"),
81
+ disabled: false
82
+ },
83
+ statistics: {
84
+ visible: permissions.hasAdminRight(adminRights, "statistics"),
85
+ disabled: false
86
+ }
87
+ };
9
88
  };
10
- exports.has = has;
89
+ exports.getProjectNavigationVisibilityMap = getProjectNavigationVisibilityMap;
11
90
  //# sourceMappingURL=harmony126.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony126.cjs","sources":["../src/features/permissions/utils/has.ts"],"sourcesContent":["export const has = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.every((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":";;AAAa,MAAA,MAAM,CAAmB,SAA8B,UAAe;AAC9E,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACtD;;"}
1
+ {"version":3,"file":"harmony126.cjs","sources":["../src/features/navigation/utils/toolbarVisibility.ts"],"sourcesContent":["import { hasAdminRight, hasAnyAdminRight } from '@features/auth/utils/permissions'\nimport type { Project } from '@features/node'\n\ntype ToolbarVisibility = {\n\tdisabled: boolean\n\tvisible: boolean\n}\n\nexport type ToolbarVisibilityMap = {\n\tupload: ToolbarVisibility\n\tdownload: ToolbarVisibility\n\tapps: ToolbarVisibility\n\tcontentManagement: ToolbarVisibility\n\teditor: ToolbarVisibility\n\tfiles: ToolbarVisibility\n\ttasks: ToolbarVisibility\n\tworkflows: ToolbarVisibility\n\tcontributors: ToolbarVisibility\n\tscreenshots: ToolbarVisibility\n\tglossary: ToolbarVisibility\n\tmore: ToolbarVisibility\n\tsettings: ToolbarVisibility\n\tbranches: ToolbarVisibility\n\totaBundles: ToolbarVisibility\n\tautomations: ToolbarVisibility\n\tduplicateFinder: ToolbarVisibility\n\tactivity: ToolbarVisibility\n\tstatistics: ToolbarVisibility\n}\n\nexport const getProjectNavigationVisibilityMap = (\n\tproject: Project,\n\tadminRights: string[],\n\tisFeatureEnabled: (key: string) => boolean,\n): ToolbarVisibilityMap => ({\n\tupload: {\n\t\tvisible: hasAdminRight(adminRights, 'upload'),\n\t\tdisabled: false,\n\t},\n\tdownload: {\n\t\tvisible: hasAdminRight(adminRights, 'download'),\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tapps: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tcontentManagement: {\n\t\tvisible: project.project_type === 'content_integration' && hasAdminRight(adminRights, 'keys'),\n\t\tdisabled: false,\n\t},\n\teditor: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tfiles: {\n\t\tvisible:\n\t\t\tisFeatureEnabled('lionLfcFilesManagement') &&\n\t\t\tproject.project_type === 'paged_documents' &&\n\t\t\thasAnyAdminRight(adminRights, ['upload', 'download']),\n\t\tdisabled: false,\n\t},\n\ttasks: {\n\t\tvisible: hasAdminRight(adminRights, 'tasks'),\n\t\tdisabled: false,\n\t},\n\tcontributors: {\n\t\tvisible: hasAdminRight(adminRights, 'contributors'),\n\t\tdisabled: false,\n\t},\n\tworkflows: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tscreenshots: {\n\t\tvisible: hasAdminRight(adminRights, 'screenshots'),\n\t\tdisabled: false,\n\t},\n\tglossary: {\n\t\tvisible: hasAdminRight(adminRights, 'glossary'),\n\t\tdisabled: false,\n\t},\n\tmore: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tsettings: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tbranches: {\n\t\tvisible:\n\t\t\t!!project.settings?.branching &&\n\t\t\thasAnyAdminRight(adminRights, ['branches_create', 'create_branches', 'branches_merge']),\n\t\tdisabled: false,\n\t},\n\totaBundles: {\n\t\tvisible:\n\t\t\thasAnyAdminRight(adminRights, ['download', 'settings', 'keys']) &&\n\t\t\tproject.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tautomations: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tduplicateFinder: {\n\t\tvisible: hasAdminRight(adminRights, 'keys') && project.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tactivity: {\n\t\tvisible: !!project.settings?.offline_translation || hasAdminRight(adminRights, 'activity'),\n\t\tdisabled: false,\n\t},\n\tstatistics: {\n\t\tvisible: hasAdminRight(adminRights, 'statistics'),\n\t\tdisabled: false,\n\t},\n})\n"],"names":["hasAdminRight","hasAnyAdminRight"],"mappings":";;;AA8BO,MAAM,oCAAoC,CAChD,SACA,aACA,qBAC2B;;AAAA;AAAA,IAC3B,QAAQ;AAAA,MACP,SAASA,YAAAA,cAAc,aAAa,QAAQ;AAAA,MAC5C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,mBAAmB;AAAA,MAClB,SAAS,QAAQ,iBAAiB,yBAAyBA,YAAA,cAAc,aAAa,MAAM;AAAA,MAC5F,UAAU;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SACC,iBAAiB,wBAAwB,KACzC,QAAQ,iBAAiB,qBACzBC,YAAAA,iBAAiB,aAAa,CAAC,UAAU,UAAU,CAAC;AAAA,MACrD,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SAASD,YAAAA,cAAc,aAAa,OAAO;AAAA,MAC3C,UAAU;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACb,SAASA,YAAAA,cAAc,aAAa,cAAc;AAAA,MAClD,UAAU;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACV,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAASA,YAAAA,cAAc,aAAa,aAAa;AAAA,MACjD,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SACC,CAAC,GAAC,aAAQ,aAAR,mBAAkB,cACpBC,6BAAiB,aAAa,CAAC,mBAAmB,mBAAmB,gBAAgB,CAAC;AAAA,MACvF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SACCA,YAAAA,iBAAiB,aAAa,CAAC,YAAY,YAAY,MAAM,CAAC,KAC9D,QAAQ,iBAAiB;AAAA,MAC1B,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAASD,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MAChB,SAASA,YAAc,cAAA,aAAa,MAAM,KAAK,QAAQ,iBAAiB;AAAA,MACxE,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,CAAC,GAAC,aAAQ,aAAR,mBAAkB,wBAAuBA,YAAA,cAAc,aAAa,UAAU;AAAA,MACzF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SAASA,YAAAA,cAAc,aAAa,YAAY;AAAA,MAChD,UAAU;AAAA,IAAA;AAAA,EAEZ;AAAA;;"}
@@ -1,11 +1,90 @@
1
- const has = (seed, ...items) => {
2
- if (!seed) return false;
3
- if (items.length === 0) return false;
4
- const seedArray = Array.isArray(seed) ? seed : [seed];
5
- if (seedArray.length === 0) return false;
6
- return items.every((item) => seedArray.includes(item));
1
+ import { hasAdminRight, hasAnyAdminRight } from "./harmony152.mjs";
2
+ const getProjectNavigationVisibilityMap = (project, adminRights, isFeatureEnabled) => {
3
+ var _a, _b;
4
+ return {
5
+ upload: {
6
+ visible: hasAdminRight(adminRights, "upload"),
7
+ disabled: false
8
+ },
9
+ download: {
10
+ visible: hasAdminRight(adminRights, "download"),
11
+ disabled: false
12
+ },
13
+ // TODO: HOME-1009, Clean up after permission management
14
+ // -- There is a plan for "Install apps" permission. Right..?
15
+ apps: {
16
+ visible: true,
17
+ disabled: false
18
+ },
19
+ // TODO: HOME-1009, Clean up after permission management
20
+ // -- There is a plan for "Install apps" permission. Right..?
21
+ contentManagement: {
22
+ visible: project.project_type === "content_integration" && hasAdminRight(adminRights, "keys"),
23
+ disabled: false
24
+ },
25
+ editor: {
26
+ visible: true,
27
+ disabled: false
28
+ },
29
+ files: {
30
+ visible: isFeatureEnabled("lionLfcFilesManagement") && project.project_type === "paged_documents" && hasAnyAdminRight(adminRights, ["upload", "download"]),
31
+ disabled: false
32
+ },
33
+ tasks: {
34
+ visible: hasAdminRight(adminRights, "tasks"),
35
+ disabled: false
36
+ },
37
+ contributors: {
38
+ visible: hasAdminRight(adminRights, "contributors"),
39
+ disabled: false
40
+ },
41
+ workflows: {
42
+ visible: hasAdminRight(adminRights, "settings"),
43
+ disabled: false
44
+ },
45
+ screenshots: {
46
+ visible: hasAdminRight(adminRights, "screenshots"),
47
+ disabled: false
48
+ },
49
+ glossary: {
50
+ visible: hasAdminRight(adminRights, "glossary"),
51
+ disabled: false
52
+ },
53
+ more: {
54
+ visible: true,
55
+ disabled: false
56
+ },
57
+ settings: {
58
+ visible: hasAdminRight(adminRights, "settings"),
59
+ disabled: false
60
+ },
61
+ branches: {
62
+ visible: !!((_a = project.settings) == null ? void 0 : _a.branching) && hasAnyAdminRight(adminRights, ["branches_create", "create_branches", "branches_merge"]),
63
+ disabled: false
64
+ },
65
+ otaBundles: {
66
+ visible: hasAnyAdminRight(adminRights, ["download", "settings", "keys"]) && project.project_type === "localization_files",
67
+ disabled: false
68
+ },
69
+ automations: {
70
+ visible: hasAdminRight(adminRights, "settings"),
71
+ disabled: false
72
+ },
73
+ duplicateFinder: {
74
+ visible: hasAdminRight(adminRights, "keys") && project.project_type === "localization_files",
75
+ disabled: false
76
+ },
77
+ activity: {
78
+ visible: !!((_b = project.settings) == null ? void 0 : _b.offline_translation) || hasAdminRight(adminRights, "activity"),
79
+ disabled: false
80
+ },
81
+ statistics: {
82
+ visible: hasAdminRight(adminRights, "statistics"),
83
+ disabled: false
84
+ }
85
+ };
7
86
  };
8
87
  export {
9
- has
88
+ getProjectNavigationVisibilityMap
10
89
  };
11
90
  //# sourceMappingURL=harmony126.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony126.mjs","sources":["../src/features/permissions/utils/has.ts"],"sourcesContent":["export const has = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.every((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":"AAAa,MAAA,MAAM,CAAmB,SAA8B,UAAe;AAC9E,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACtD;"}
1
+ {"version":3,"file":"harmony126.mjs","sources":["../src/features/navigation/utils/toolbarVisibility.ts"],"sourcesContent":["import { hasAdminRight, hasAnyAdminRight } from '@features/auth/utils/permissions'\nimport type { Project } from '@features/node'\n\ntype ToolbarVisibility = {\n\tdisabled: boolean\n\tvisible: boolean\n}\n\nexport type ToolbarVisibilityMap = {\n\tupload: ToolbarVisibility\n\tdownload: ToolbarVisibility\n\tapps: ToolbarVisibility\n\tcontentManagement: ToolbarVisibility\n\teditor: ToolbarVisibility\n\tfiles: ToolbarVisibility\n\ttasks: ToolbarVisibility\n\tworkflows: ToolbarVisibility\n\tcontributors: ToolbarVisibility\n\tscreenshots: ToolbarVisibility\n\tglossary: ToolbarVisibility\n\tmore: ToolbarVisibility\n\tsettings: ToolbarVisibility\n\tbranches: ToolbarVisibility\n\totaBundles: ToolbarVisibility\n\tautomations: ToolbarVisibility\n\tduplicateFinder: ToolbarVisibility\n\tactivity: ToolbarVisibility\n\tstatistics: ToolbarVisibility\n}\n\nexport const getProjectNavigationVisibilityMap = (\n\tproject: Project,\n\tadminRights: string[],\n\tisFeatureEnabled: (key: string) => boolean,\n): ToolbarVisibilityMap => ({\n\tupload: {\n\t\tvisible: hasAdminRight(adminRights, 'upload'),\n\t\tdisabled: false,\n\t},\n\tdownload: {\n\t\tvisible: hasAdminRight(adminRights, 'download'),\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tapps: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tcontentManagement: {\n\t\tvisible: project.project_type === 'content_integration' && hasAdminRight(adminRights, 'keys'),\n\t\tdisabled: false,\n\t},\n\teditor: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tfiles: {\n\t\tvisible:\n\t\t\tisFeatureEnabled('lionLfcFilesManagement') &&\n\t\t\tproject.project_type === 'paged_documents' &&\n\t\t\thasAnyAdminRight(adminRights, ['upload', 'download']),\n\t\tdisabled: false,\n\t},\n\ttasks: {\n\t\tvisible: hasAdminRight(adminRights, 'tasks'),\n\t\tdisabled: false,\n\t},\n\tcontributors: {\n\t\tvisible: hasAdminRight(adminRights, 'contributors'),\n\t\tdisabled: false,\n\t},\n\tworkflows: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tscreenshots: {\n\t\tvisible: hasAdminRight(adminRights, 'screenshots'),\n\t\tdisabled: false,\n\t},\n\tglossary: {\n\t\tvisible: hasAdminRight(adminRights, 'glossary'),\n\t\tdisabled: false,\n\t},\n\tmore: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tsettings: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tbranches: {\n\t\tvisible:\n\t\t\t!!project.settings?.branching &&\n\t\t\thasAnyAdminRight(adminRights, ['branches_create', 'create_branches', 'branches_merge']),\n\t\tdisabled: false,\n\t},\n\totaBundles: {\n\t\tvisible:\n\t\t\thasAnyAdminRight(adminRights, ['download', 'settings', 'keys']) &&\n\t\t\tproject.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tautomations: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tduplicateFinder: {\n\t\tvisible: hasAdminRight(adminRights, 'keys') && project.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tactivity: {\n\t\tvisible: !!project.settings?.offline_translation || hasAdminRight(adminRights, 'activity'),\n\t\tdisabled: false,\n\t},\n\tstatistics: {\n\t\tvisible: hasAdminRight(adminRights, 'statistics'),\n\t\tdisabled: false,\n\t},\n})\n"],"names":[],"mappings":";AA8BO,MAAM,oCAAoC,CAChD,SACA,aACA,qBAC2B;;AAAA;AAAA,IAC3B,QAAQ;AAAA,MACP,SAAS,cAAc,aAAa,QAAQ;AAAA,MAC5C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,mBAAmB;AAAA,MAClB,SAAS,QAAQ,iBAAiB,yBAAyB,cAAc,aAAa,MAAM;AAAA,MAC5F,UAAU;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SACC,iBAAiB,wBAAwB,KACzC,QAAQ,iBAAiB,qBACzB,iBAAiB,aAAa,CAAC,UAAU,UAAU,CAAC;AAAA,MACrD,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SAAS,cAAc,aAAa,OAAO;AAAA,MAC3C,UAAU;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACb,SAAS,cAAc,aAAa,cAAc;AAAA,MAClD,UAAU;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACV,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAAS,cAAc,aAAa,aAAa;AAAA,MACjD,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SACC,CAAC,GAAC,aAAQ,aAAR,mBAAkB,cACpB,iBAAiB,aAAa,CAAC,mBAAmB,mBAAmB,gBAAgB,CAAC;AAAA,MACvF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SACC,iBAAiB,aAAa,CAAC,YAAY,YAAY,MAAM,CAAC,KAC9D,QAAQ,iBAAiB;AAAA,MAC1B,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MAChB,SAAS,cAAc,aAAa,MAAM,KAAK,QAAQ,iBAAiB;AAAA,MACxE,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,CAAC,GAAC,aAAQ,aAAR,mBAAkB,wBAAuB,cAAc,aAAa,UAAU;AAAA,MACzF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SAAS,cAAc,aAAa,YAAY;AAAA,MAChD,UAAU;AAAA,IAAA;AAAA,EAEZ;AAAA;"}
@@ -1,18 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const accessMarketingProjects = require("./harmony146.cjs");
4
- const createProjects = require("./harmony147.cjs");
5
- const deleteProjects = require("./harmony148.cjs");
6
- const downloadFiles = require("./harmony149.cjs");
7
- const manageContributors = require("./harmony150.cjs");
8
- const uploadFiles = require("./harmony151.cjs");
9
- const actionResolvers = {
10
- accessMarketingProjects: accessMarketingProjects.accessMarketingProjects,
11
- downloadFiles: downloadFiles.downloadFiles,
12
- uploadFiles: uploadFiles.uploadFiles,
13
- createProjects: createProjects.createProjects,
14
- deleteProjects: deleteProjects.deleteProjects,
15
- manageContributors: manageContributors.manageContributors
16
- };
17
- exports.actionResolvers = actionResolvers;
3
+ const navigationItems = [
4
+ {
5
+ key: "editor",
6
+ labelKey: "Editor",
7
+ path: ({ projectId }) => `/project/${projectId}/editor`
8
+ },
9
+ {
10
+ key: "dashboard",
11
+ labelKey: "Download",
12
+ path: ({ projectId }) => `/project/${projectId}/dashboard`
13
+ },
14
+ {
15
+ key: "contributors",
16
+ labelKey: "Contributors",
17
+ path: ({ projectId }) => `/project/${projectId}/contributors`
18
+ },
19
+ {
20
+ key: "orders",
21
+ labelKey: "Human proofreading",
22
+ path: ({ projectId }) => `/project/${projectId}/orders`,
23
+ shouldShow: ({ flags }) => flags.ap_feature_hraas === "on"
24
+ },
25
+ {
26
+ key: "billing",
27
+ labelKey: "Billing",
28
+ path: ({ projectId }) => `/project/${projectId}/billing`,
29
+ shouldShow: ({ flags }) => flags.ap_feature_billing === "on"
30
+ }
31
+ ];
32
+ exports.navigationItems = navigationItems;
18
33
  //# sourceMappingURL=harmony127.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony127.cjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { accessMarketingProjects } from './actionResolvers/accessMarketingProjects'\nimport { createProjects } from './actionResolvers/createProjects'\nimport { deleteProjects } from './actionResolvers/deleteProjects'\nimport { downloadFiles } from './actionResolvers/downloadFiles'\nimport { manageContributors } from './actionResolvers/manageContributors'\nimport { uploadFiles } from './actionResolvers/uploadFiles'\nimport type { ActionResolver } from './types/actionResolver'\n\nexport const actionResolvers = {\n\taccessMarketingProjects,\n\tdownloadFiles,\n\tuploadFiles,\n\tcreateProjects,\n\tdeleteProjects,\n\tmanageContributors,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":["accessMarketingProjects","downloadFiles","uploadFiles","createProjects","deleteProjects","manageContributors"],"mappings":";;;;;;;;AAQO,MAAM,kBAAkB;AAAA,EAAA,yBAC9BA,wBAAA;AAAA,EAAA,eACAC,cAAA;AAAA,EAAA,aACAC,YAAA;AAAA,EAAA,gBACAC,eAAA;AAAA,EAAA,gBACAC,eAAA;AAAA,EACAC,oBAAAA,mBAAAA;AACD;;"}
1
+ {"version":3,"file":"harmony127.cjs","sources":["../src/features/navigation/schemas/navigationSchema.ts"],"sourcesContent":["import type { DropdownItem, NavItemIcon } from '@features/navigation/types/navigation'\n\nexport type NavKey = 'editor' | 'contributors' | 'orders' | 'billing' | 'settings' | 'dashboard'\n\nexport interface NavigationItem {\n\tkey: NavKey\n\tlabelKey: string // TODO: i18n key inside this package\n\tpath: ({ projectId }: { projectId: string }) => string\n\n\ticon?: NavItemIcon\n\tdropdown?: DropdownItem[][]\n\tbadge?: number | ((ctx: NavCtx) => number)\n\n\tshouldShow?: (ctx: NavCtx) => boolean\n\tdisabled?: boolean | ((ctx: NavCtx) => boolean)\n\tisActive?: (pathname: string) => boolean // custom match, else fallback\n}\n\n/** What the gate functions receive */\nexport interface NavCtx {\n\tflags: Record<string, string>\n\tpathname: string\n\tpermissions?: Array<string> // e.g. contributor admin_rights //TODO: Provide type for permissions\n}\n\n// TODO: Handle Translations on harmony side.\nexport const navigationItems: NavigationItem[] = [\n\t{\n\t\tkey: 'editor',\n\t\tlabelKey: 'Editor',\n\t\tpath: ({ projectId }) => `/project/${projectId}/editor`,\n\t},\n\t{\n\t\tkey: 'dashboard',\n\t\tlabelKey: 'Download',\n\t\tpath: ({ projectId }) => `/project/${projectId}/dashboard`,\n\t},\n\t{\n\t\tkey: 'contributors',\n\t\tlabelKey: 'Contributors',\n\t\tpath: ({ projectId }) => `/project/${projectId}/contributors`,\n\t},\n\n\t{\n\t\tkey: 'orders',\n\t\tlabelKey: 'Human proofreading',\n\t\tpath: ({ projectId }) => `/project/${projectId}/orders`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_hraas === 'on',\n\t},\n\t{\n\t\tkey: 'billing',\n\t\tlabelKey: 'Billing',\n\t\tpath: ({ projectId }) => `/project/${projectId}/billing`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_billing === 'on',\n\t},\n]\n"],"names":[],"mappings":";;AA0BO,MAAM,kBAAoC;AAAA,EAChD;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EAEA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,qBAAqB;AAAA,EACvD;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,uBAAuB;AAAA,EAAA;AAE1D;;"}
@@ -1,18 +1,33 @@
1
- import { accessMarketingProjects } from "./harmony146.mjs";
2
- import { createProjects } from "./harmony147.mjs";
3
- import { deleteProjects } from "./harmony148.mjs";
4
- import { downloadFiles } from "./harmony149.mjs";
5
- import { manageContributors } from "./harmony150.mjs";
6
- import { uploadFiles } from "./harmony151.mjs";
7
- const actionResolvers = {
8
- accessMarketingProjects,
9
- downloadFiles,
10
- uploadFiles,
11
- createProjects,
12
- deleteProjects,
13
- manageContributors
14
- };
1
+ const navigationItems = [
2
+ {
3
+ key: "editor",
4
+ labelKey: "Editor",
5
+ path: ({ projectId }) => `/project/${projectId}/editor`
6
+ },
7
+ {
8
+ key: "dashboard",
9
+ labelKey: "Download",
10
+ path: ({ projectId }) => `/project/${projectId}/dashboard`
11
+ },
12
+ {
13
+ key: "contributors",
14
+ labelKey: "Contributors",
15
+ path: ({ projectId }) => `/project/${projectId}/contributors`
16
+ },
17
+ {
18
+ key: "orders",
19
+ labelKey: "Human proofreading",
20
+ path: ({ projectId }) => `/project/${projectId}/orders`,
21
+ shouldShow: ({ flags }) => flags.ap_feature_hraas === "on"
22
+ },
23
+ {
24
+ key: "billing",
25
+ labelKey: "Billing",
26
+ path: ({ projectId }) => `/project/${projectId}/billing`,
27
+ shouldShow: ({ flags }) => flags.ap_feature_billing === "on"
28
+ }
29
+ ];
15
30
  export {
16
- actionResolvers
31
+ navigationItems
17
32
  };
18
33
  //# sourceMappingURL=harmony127.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony127.mjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { accessMarketingProjects } from './actionResolvers/accessMarketingProjects'\nimport { createProjects } from './actionResolvers/createProjects'\nimport { deleteProjects } from './actionResolvers/deleteProjects'\nimport { downloadFiles } from './actionResolvers/downloadFiles'\nimport { manageContributors } from './actionResolvers/manageContributors'\nimport { uploadFiles } from './actionResolvers/uploadFiles'\nimport type { ActionResolver } from './types/actionResolver'\n\nexport const actionResolvers = {\n\taccessMarketingProjects,\n\tdownloadFiles,\n\tuploadFiles,\n\tcreateProjects,\n\tdeleteProjects,\n\tmanageContributors,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":[],"mappings":";;;;;;AAQO,MAAM,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;"}
1
+ {"version":3,"file":"harmony127.mjs","sources":["../src/features/navigation/schemas/navigationSchema.ts"],"sourcesContent":["import type { DropdownItem, NavItemIcon } from '@features/navigation/types/navigation'\n\nexport type NavKey = 'editor' | 'contributors' | 'orders' | 'billing' | 'settings' | 'dashboard'\n\nexport interface NavigationItem {\n\tkey: NavKey\n\tlabelKey: string // TODO: i18n key inside this package\n\tpath: ({ projectId }: { projectId: string }) => string\n\n\ticon?: NavItemIcon\n\tdropdown?: DropdownItem[][]\n\tbadge?: number | ((ctx: NavCtx) => number)\n\n\tshouldShow?: (ctx: NavCtx) => boolean\n\tdisabled?: boolean | ((ctx: NavCtx) => boolean)\n\tisActive?: (pathname: string) => boolean // custom match, else fallback\n}\n\n/** What the gate functions receive */\nexport interface NavCtx {\n\tflags: Record<string, string>\n\tpathname: string\n\tpermissions?: Array<string> // e.g. contributor admin_rights //TODO: Provide type for permissions\n}\n\n// TODO: Handle Translations on harmony side.\nexport const navigationItems: NavigationItem[] = [\n\t{\n\t\tkey: 'editor',\n\t\tlabelKey: 'Editor',\n\t\tpath: ({ projectId }) => `/project/${projectId}/editor`,\n\t},\n\t{\n\t\tkey: 'dashboard',\n\t\tlabelKey: 'Download',\n\t\tpath: ({ projectId }) => `/project/${projectId}/dashboard`,\n\t},\n\t{\n\t\tkey: 'contributors',\n\t\tlabelKey: 'Contributors',\n\t\tpath: ({ projectId }) => `/project/${projectId}/contributors`,\n\t},\n\n\t{\n\t\tkey: 'orders',\n\t\tlabelKey: 'Human proofreading',\n\t\tpath: ({ projectId }) => `/project/${projectId}/orders`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_hraas === 'on',\n\t},\n\t{\n\t\tkey: 'billing',\n\t\tlabelKey: 'Billing',\n\t\tpath: ({ projectId }) => `/project/${projectId}/billing`,\n\t\tshouldShow: ({ flags }) => flags.ap_feature_billing === 'on',\n\t},\n]\n"],"names":[],"mappings":"AA0BO,MAAM,kBAAoC;AAAA,EAChD;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,EAC/C;AAAA,EAEA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,qBAAqB;AAAA,EACvD;AAAA,EACA;AAAA,IACC,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM,CAAC,EAAE,UAAU,MAAM,YAAY,SAAS;AAAA,IAC9C,YAAY,CAAC,EAAE,YAAY,MAAM,uBAAuB;AAAA,EAAA;AAE1D;"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const _commonjsHelpers = require("./harmony172.cjs");
4
- const debounce$1 = require("./harmony152.cjs");
5
- var debounceExports = debounce$1.__require();
6
- const debounce = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(debounceExports);
7
- exports.default = debounce;
3
+ const link = "_link_18vhx_1";
4
+ const active = "_active_18vhx_18";
5
+ const styles = {
6
+ link,
7
+ active
8
+ };
9
+ exports.active = active;
10
+ exports.default = styles;
11
+ exports.link = link;
8
12
  //# sourceMappingURL=harmony128.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony128.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"harmony128.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,8 +1,12 @@
1
- import { getDefaultExportFromCjs } from "./harmony172.mjs";
2
- import { __require as requireDebounce } from "./harmony152.mjs";
3
- var debounceExports = requireDebounce();
4
- const debounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
1
+ const link = "_link_18vhx_1";
2
+ const active = "_active_18vhx_18";
3
+ const styles = {
4
+ link,
5
+ active
6
+ };
5
7
  export {
6
- debounce as default
8
+ active,
9
+ styles as default,
10
+ link
7
11
  };
8
12
  //# sourceMappingURL=harmony128.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony128.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"harmony128.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}