@lokalise/harmony 4.5.2 → 4.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/harmony111.cjs +1 -1
  2. package/dist/harmony111.mjs +1 -1
  3. package/dist/harmony112.cjs +1 -1
  4. package/dist/harmony112.mjs +1 -1
  5. package/dist/harmony126.cjs +99 -20
  6. package/dist/harmony126.cjs.map +1 -1
  7. package/dist/harmony126.mjs +82 -20
  8. package/dist/harmony126.mjs.map +1 -1
  9. package/dist/harmony127.cjs +20 -87
  10. package/dist/harmony127.cjs.map +1 -1
  11. package/dist/harmony127.mjs +20 -87
  12. package/dist/harmony127.mjs.map +1 -1
  13. package/dist/harmony128.cjs +8 -30
  14. package/dist/harmony128.cjs.map +1 -1
  15. package/dist/harmony128.mjs +8 -30
  16. package/dist/harmony128.mjs.map +1 -1
  17. package/dist/harmony129.cjs +8 -21
  18. package/dist/harmony129.cjs.map +1 -1
  19. package/dist/harmony129.mjs +8 -21
  20. package/dist/harmony129.mjs.map +1 -1
  21. package/dist/harmony130.cjs +20 -7
  22. package/dist/harmony130.cjs.map +1 -1
  23. package/dist/harmony130.mjs +20 -7
  24. package/dist/harmony130.mjs.map +1 -1
  25. package/dist/harmony131.cjs +86 -7
  26. package/dist/harmony131.cjs.map +1 -1
  27. package/dist/harmony131.mjs +86 -7
  28. package/dist/harmony131.mjs.map +1 -1
  29. package/dist/harmony132.cjs +30 -19
  30. package/dist/harmony132.cjs.map +1 -1
  31. package/dist/harmony132.mjs +30 -19
  32. package/dist/harmony132.mjs.map +1 -1
  33. package/dist/harmony133.cjs +21 -99
  34. package/dist/harmony133.cjs.map +1 -1
  35. package/dist/harmony133.mjs +21 -82
  36. package/dist/harmony133.mjs.map +1 -1
  37. package/dist/harmony137.cjs +1 -1
  38. package/dist/harmony137.mjs +1 -1
  39. package/dist/harmony138.cjs +1 -1
  40. package/dist/harmony138.mjs +1 -1
  41. package/dist/harmony139.cjs +1 -1
  42. package/dist/harmony139.mjs +1 -1
  43. package/dist/harmony141.cjs +1 -1
  44. package/dist/harmony141.mjs +1 -1
  45. package/dist/harmony143.cjs +1 -1
  46. package/dist/harmony143.mjs +1 -1
  47. package/dist/harmony144.cjs +1 -1
  48. package/dist/harmony144.mjs +1 -1
  49. package/dist/harmony146.cjs +1 -1
  50. package/dist/harmony146.mjs +1 -1
  51. package/dist/harmony149.cjs +6 -11
  52. package/dist/harmony149.cjs.map +1 -1
  53. package/dist/harmony149.mjs +5 -10
  54. package/dist/harmony149.mjs.map +1 -1
  55. package/dist/harmony150.cjs +4 -4
  56. package/dist/harmony150.mjs +4 -4
  57. package/dist/harmony151.cjs +11 -6
  58. package/dist/harmony151.cjs.map +1 -1
  59. package/dist/harmony151.mjs +10 -5
  60. package/dist/harmony151.mjs.map +1 -1
  61. package/dist/harmony152.cjs +2 -2
  62. package/dist/harmony152.mjs +2 -2
  63. package/dist/harmony154.cjs +1 -1
  64. package/dist/harmony154.mjs +1 -1
  65. package/dist/harmony155.cjs +1 -1
  66. package/dist/harmony155.mjs +1 -1
  67. package/dist/harmony156.cjs +1 -1
  68. package/dist/harmony156.mjs +1 -1
  69. package/dist/harmony157.cjs +3 -3
  70. package/dist/harmony157.mjs +3 -3
  71. package/dist/harmony158.cjs +1 -1
  72. package/dist/harmony158.mjs +1 -1
  73. package/dist/harmony159.cjs +3 -14
  74. package/dist/harmony159.cjs.map +1 -1
  75. package/dist/harmony159.mjs +3 -14
  76. package/dist/harmony159.mjs.map +1 -1
  77. package/dist/harmony160.cjs +15 -10
  78. package/dist/harmony160.cjs.map +1 -1
  79. package/dist/harmony160.mjs +14 -9
  80. package/dist/harmony160.mjs.map +1 -1
  81. package/dist/harmony161.cjs +97 -7
  82. package/dist/harmony161.cjs.map +1 -1
  83. package/dist/harmony161.mjs +96 -6
  84. package/dist/harmony161.mjs.map +1 -1
  85. package/dist/harmony162.cjs +14 -10
  86. package/dist/harmony162.cjs.map +1 -1
  87. package/dist/harmony162.mjs +13 -9
  88. package/dist/harmony162.mjs.map +1 -1
  89. package/dist/harmony163.cjs +15 -25
  90. package/dist/harmony163.cjs.map +1 -1
  91. package/dist/harmony163.mjs +14 -24
  92. package/dist/harmony163.mjs.map +1 -1
  93. package/dist/harmony164.cjs +37 -7
  94. package/dist/harmony164.cjs.map +1 -1
  95. package/dist/harmony164.mjs +36 -6
  96. package/dist/harmony164.mjs.map +1 -1
  97. package/dist/harmony165.cjs +29 -13
  98. package/dist/harmony165.cjs.map +1 -1
  99. package/dist/harmony165.mjs +28 -12
  100. package/dist/harmony165.mjs.map +1 -1
  101. package/dist/harmony166.cjs +14 -7
  102. package/dist/harmony166.cjs.map +1 -1
  103. package/dist/harmony166.mjs +13 -6
  104. package/dist/harmony166.mjs.map +1 -1
  105. package/dist/harmony167.cjs +13 -94
  106. package/dist/harmony167.cjs.map +1 -1
  107. package/dist/harmony167.mjs +13 -94
  108. package/dist/harmony167.mjs.map +1 -1
  109. package/dist/harmony168.cjs +14 -11
  110. package/dist/harmony168.cjs.map +1 -1
  111. package/dist/harmony168.mjs +14 -11
  112. package/dist/harmony168.mjs.map +1 -1
  113. package/dist/harmony169.cjs +32 -14
  114. package/dist/harmony169.cjs.map +1 -1
  115. package/dist/harmony169.mjs +32 -14
  116. package/dist/harmony169.mjs.map +1 -1
  117. package/dist/harmony170.cjs +10 -37
  118. package/dist/harmony170.cjs.map +1 -1
  119. package/dist/harmony170.mjs +9 -36
  120. package/dist/harmony170.mjs.map +1 -1
  121. package/dist/harmony171.cjs +7 -29
  122. package/dist/harmony171.cjs.map +1 -1
  123. package/dist/harmony171.mjs +6 -28
  124. package/dist/harmony171.mjs.map +1 -1
  125. package/dist/harmony172.cjs +9 -32
  126. package/dist/harmony172.cjs.map +1 -1
  127. package/dist/harmony172.mjs +8 -31
  128. package/dist/harmony172.mjs.map +1 -1
  129. package/dist/harmony173.cjs +25 -14
  130. package/dist/harmony173.cjs.map +1 -1
  131. package/dist/harmony173.mjs +24 -13
  132. package/dist/harmony173.mjs.map +1 -1
  133. package/dist/harmony174.cjs +7 -16
  134. package/dist/harmony174.cjs.map +1 -1
  135. package/dist/harmony174.mjs +6 -15
  136. package/dist/harmony174.mjs.map +1 -1
  137. package/dist/harmony175.cjs +13 -17
  138. package/dist/harmony175.cjs.map +1 -1
  139. package/dist/harmony175.mjs +12 -16
  140. package/dist/harmony175.mjs.map +1 -1
  141. package/dist/harmony176.cjs +7 -12
  142. package/dist/harmony176.cjs.map +1 -1
  143. package/dist/harmony176.mjs +6 -11
  144. package/dist/harmony176.mjs.map +1 -1
  145. package/dist/harmony177.cjs +10 -15
  146. package/dist/harmony177.cjs.map +1 -1
  147. package/dist/harmony177.mjs +10 -15
  148. package/dist/harmony177.mjs.map +1 -1
  149. package/dist/harmony178.cjs +13 -18
  150. package/dist/harmony178.cjs.map +1 -1
  151. package/dist/harmony178.mjs +13 -18
  152. package/dist/harmony178.mjs.map +1 -1
  153. package/dist/harmony179.cjs +19 -10
  154. package/dist/harmony179.cjs.map +1 -1
  155. package/dist/harmony179.mjs +19 -10
  156. package/dist/harmony179.mjs.map +1 -1
  157. package/dist/harmony180.cjs +12 -4
  158. package/dist/harmony180.cjs.map +1 -1
  159. package/dist/harmony180.mjs +12 -4
  160. package/dist/harmony180.mjs.map +1 -1
  161. package/dist/harmony182.cjs +1 -1
  162. package/dist/harmony182.mjs +1 -1
  163. package/dist/harmony185.cjs +7 -0
  164. package/dist/harmony185.cjs.map +1 -0
  165. package/dist/harmony185.mjs +7 -0
  166. package/dist/harmony185.mjs.map +1 -0
  167. package/dist/harmony20.cjs +1 -1
  168. package/dist/harmony20.mjs +1 -1
  169. package/dist/harmony41.cjs +1 -1
  170. package/dist/harmony41.mjs +1 -1
  171. package/dist/harmony42.cjs +1 -1
  172. package/dist/harmony42.mjs +1 -1
  173. package/dist/harmony43.cjs +1 -1
  174. package/dist/harmony43.mjs +1 -1
  175. package/dist/harmony47.cjs +2 -1
  176. package/dist/harmony47.cjs.map +1 -1
  177. package/dist/harmony47.mjs +2 -1
  178. package/dist/harmony47.mjs.map +1 -1
  179. package/dist/harmony60.cjs +1 -1
  180. package/dist/harmony60.mjs +1 -1
  181. package/dist/harmony70.cjs +1 -1
  182. package/dist/harmony70.mjs +1 -1
  183. package/dist/harmony99.cjs +1 -1
  184. package/dist/harmony99.mjs +1 -1
  185. package/dist/types/src/features/permissions/actionResolvers/testNewProjectSetupFlow.d.ts +2 -0
  186. package/dist/types/src/features/permissions/actionResolvers/testNewProjectSetupFlow.test.d.ts +1 -0
  187. package/dist/types/src/features/permissions/actionResolvers.d.ts +1 -0
  188. package/dist/types/src/features/permissions/types/featureFlagTypes.d.ts +3 -1
  189. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"harmony128.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":"harmony128.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,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 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));
7
+ };
30
8
  export {
31
- navigationItems
9
+ hasAny
32
10
  };
33
11
  //# sourceMappingURL=harmony128.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony128.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":"harmony128.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,24 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const sharedTypes = require("./harmony91.cjs");
4
- const apiContracts = require("@lokalise/api-contracts");
5
- const aiConfigurationTypes = require("./harmony83.cjs");
6
- const listAiConfigurations = apiContracts.buildGetRoute({
7
- description: "Fetch list of AI configurations for a given team",
8
- requestHeaderSchema: sharedTypes.BASE_API_ENDPOINT_HEADER_SCHEMA,
9
- requestPathParamsSchema: aiConfigurationTypes.AI_CONFIGS_PATH_PARAMS_SCHEMA,
10
- pathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,
11
- successResponseBodySchema: aiConfigurationTypes.LIST_AI_CONFIGS_RESPONSE_SCHEMA
12
- });
13
- const createAiConfiguration = apiContracts.buildPayloadRoute({
14
- description: "Create an AI configuration",
15
- method: "post",
16
- requestHeaderSchema: sharedTypes.BASE_API_ENDPOINT_HEADER_SCHEMA,
17
- requestBodySchema: aiConfigurationTypes.CREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA,
18
- requestPathParamsSchema: aiConfigurationTypes.AI_CONFIGS_PATH_PARAMS_SCHEMA,
19
- pathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,
20
- successResponseBodySchema: aiConfigurationTypes.CREATE_AI_CONFIGS_RESPONSE_SCHEMA
21
- });
22
- exports.createAiConfiguration = createAiConfiguration;
23
- exports.listAiConfigurations = listAiConfigurations;
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;
24
11
  //# sourceMappingURL=harmony129.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony129.cjs","sources":["../src/features/publicApi/aiConfigurations.ts"],"sourcesContent":["import { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { buildGetRoute, buildPayloadRoute } from '@lokalise/api-contracts'\nimport {\n\tAI_CONFIGS_PATH_PARAMS_SCHEMA,\n\tCREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA,\n\tCREATE_AI_CONFIGS_RESPONSE_SCHEMA,\n\tLIST_AI_CONFIGS_RESPONSE_SCHEMA,\n} from './types/aiConfigurationTypes'\n\n/**\n * Public API router definition for getting the list of AI configurations for a given team\n */\nexport const listAiConfigurations = buildGetRoute({\n\tdescription: 'Fetch list of AI configurations for a given team',\n\trequestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,\n\trequestPathParamsSchema: AI_CONFIGS_PATH_PARAMS_SCHEMA,\n\tpathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,\n\tsuccessResponseBodySchema: LIST_AI_CONFIGS_RESPONSE_SCHEMA,\n})\n\n/**\n * Public API router definition for creating an AI configuration for a given team\n */\nexport const createAiConfiguration = buildPayloadRoute({\n\tdescription: 'Create an AI configuration',\n\tmethod: 'post',\n\trequestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,\n\trequestBodySchema: CREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA,\n\trequestPathParamsSchema: AI_CONFIGS_PATH_PARAMS_SCHEMA,\n\tpathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,\n\tsuccessResponseBodySchema: CREATE_AI_CONFIGS_RESPONSE_SCHEMA,\n})\n"],"names":["buildGetRoute","BASE_API_ENDPOINT_HEADER_SCHEMA","AI_CONFIGS_PATH_PARAMS_SCHEMA","LIST_AI_CONFIGS_RESPONSE_SCHEMA","buildPayloadRoute","CREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA","CREATE_AI_CONFIGS_RESPONSE_SCHEMA"],"mappings":";;;;;AAYO,MAAM,uBAAuBA,aAAAA,cAAc;AAAA,EACjD,aAAa;AAAA,EACb,qBAAqBC,YAAA;AAAA,EACrB,yBAAyBC,qBAAA;AAAA,EACzB,cAAc,CAAC,EAAE,OAAO,MAAM,UAAU,MAAM;AAAA,EAC9C,2BAA2BC,qBAAAA;AAC5B,CAAC;AAKM,MAAM,wBAAwBC,aAAAA,kBAAkB;AAAA,EACtD,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,qBAAqBH,YAAA;AAAA,EACrB,mBAAmBI,qBAAA;AAAA,EACnB,yBAAyBH,qBAAA;AAAA,EACzB,cAAc,CAAC,EAAE,OAAO,MAAM,UAAU,MAAM;AAAA,EAC9C,2BAA2BI,qBAAAA;AAC5B,CAAC;;;"}
1
+ {"version":3,"file":"harmony129.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,24 +1,11 @@
1
- import { BASE_API_ENDPOINT_HEADER_SCHEMA } from "./harmony91.mjs";
2
- import { buildPayloadRoute, buildGetRoute } from "@lokalise/api-contracts";
3
- import { CREATE_AI_CONFIGS_RESPONSE_SCHEMA, AI_CONFIGS_PATH_PARAMS_SCHEMA, CREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA, LIST_AI_CONFIGS_RESPONSE_SCHEMA } from "./harmony83.mjs";
4
- const listAiConfigurations = buildGetRoute({
5
- description: "Fetch list of AI configurations for a given team",
6
- requestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,
7
- requestPathParamsSchema: AI_CONFIGS_PATH_PARAMS_SCHEMA,
8
- pathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,
9
- successResponseBodySchema: LIST_AI_CONFIGS_RESPONSE_SCHEMA
10
- });
11
- const createAiConfiguration = buildPayloadRoute({
12
- description: "Create an AI configuration",
13
- method: "post",
14
- requestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,
15
- requestBodySchema: CREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA,
16
- requestPathParamsSchema: AI_CONFIGS_PATH_PARAMS_SCHEMA,
17
- pathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,
18
- successResponseBodySchema: CREATE_AI_CONFIGS_RESPONSE_SCHEMA
19
- });
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
+ };
20
8
  export {
21
- createAiConfiguration,
22
- listAiConfigurations
9
+ has
23
10
  };
24
11
  //# sourceMappingURL=harmony129.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony129.mjs","sources":["../src/features/publicApi/aiConfigurations.ts"],"sourcesContent":["import { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { buildGetRoute, buildPayloadRoute } from '@lokalise/api-contracts'\nimport {\n\tAI_CONFIGS_PATH_PARAMS_SCHEMA,\n\tCREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA,\n\tCREATE_AI_CONFIGS_RESPONSE_SCHEMA,\n\tLIST_AI_CONFIGS_RESPONSE_SCHEMA,\n} from './types/aiConfigurationTypes'\n\n/**\n * Public API router definition for getting the list of AI configurations for a given team\n */\nexport const listAiConfigurations = buildGetRoute({\n\tdescription: 'Fetch list of AI configurations for a given team',\n\trequestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,\n\trequestPathParamsSchema: AI_CONFIGS_PATH_PARAMS_SCHEMA,\n\tpathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,\n\tsuccessResponseBodySchema: LIST_AI_CONFIGS_RESPONSE_SCHEMA,\n})\n\n/**\n * Public API router definition for creating an AI configuration for a given team\n */\nexport const createAiConfiguration = buildPayloadRoute({\n\tdescription: 'Create an AI configuration',\n\tmethod: 'post',\n\trequestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,\n\trequestBodySchema: CREATE_AI_CONFIGS_REQUEST_BODY_SCHEMA,\n\trequestPathParamsSchema: AI_CONFIGS_PATH_PARAMS_SCHEMA,\n\tpathResolver: ({ teamId }) => `/teams/${teamId}/ai-configurations`,\n\tsuccessResponseBodySchema: CREATE_AI_CONFIGS_RESPONSE_SCHEMA,\n})\n"],"names":[],"mappings":";;;AAYO,MAAM,uBAAuB,cAAc;AAAA,EACjD,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,cAAc,CAAC,EAAE,OAAO,MAAM,UAAU,MAAM;AAAA,EAC9C,2BAA2B;AAC5B,CAAC;AAKM,MAAM,wBAAwB,kBAAkB;AAAA,EACtD,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,yBAAyB;AAAA,EACzB,cAAc,CAAC,EAAE,OAAO,MAAM,UAAU,MAAM;AAAA,EAC9C,2BAA2B;AAC5B,CAAC;"}
1
+ {"version":3,"file":"harmony129.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,24 @@
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 manageManagementPermissions = require("./harmony152.cjs");
4
+ const accessExpertFeatures = require("./harmony153.cjs");
5
+ const accessMarketingProjects = require("./harmony154.cjs");
6
+ const createProjects = require("./harmony155.cjs");
7
+ const deleteProjects = require("./harmony156.cjs");
8
+ const downloadFiles = require("./harmony157.cjs");
9
+ const manageContributors = require("./harmony158.cjs");
10
+ const testNewProjectSetupFlow = require("./harmony159.cjs");
11
+ const uploadFiles = require("./harmony160.cjs");
12
+ const actionResolvers = {
13
+ accessExpertFeatures: accessExpertFeatures.accessExpertFeatures,
14
+ accessMarketingProjects: accessMarketingProjects.accessMarketingProjects,
15
+ createProjects: createProjects.createProjects,
16
+ deleteProjects: deleteProjects.deleteProjects,
17
+ downloadFiles: downloadFiles.downloadFiles,
18
+ manageContributors: manageContributors.manageContributors,
19
+ manageManagementPermissions: manageManagementPermissions.manageManagementPermissions,
20
+ testNewProjectSetupFlow: testNewProjectSetupFlow.testNewProjectSetupFlow,
21
+ uploadFiles: uploadFiles.uploadFiles
9
22
  };
10
- exports.hasAny = hasAny;
23
+ exports.actionResolvers = actionResolvers;
11
24
  //# sourceMappingURL=harmony130.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony130.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":"harmony130.cjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { manageManagementPermissions } from '@features/permissions/actionResolvers/manageManagementPermissions'\nimport { 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 { testNewProjectSetupFlow } from './actionResolvers/testNewProjectSetupFlow'\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\tmanageManagementPermissions,\n\ttestNewProjectSetupFlow,\n\tuploadFiles,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":["accessExpertFeatures","accessMarketingProjects","createProjects","deleteProjects","downloadFiles","manageContributors","manageManagementPermissions","testNewProjectSetupFlow","uploadFiles"],"mappings":";;;;;;;;;;;AAWO,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,EAAA,6BACAC,4BAAA;AAAA,EAAA,yBACAC,wBAAA;AAAA,EACAC,aAAAA,YAAAA;AACD;;"}
@@ -1,11 +1,24 @@
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 { manageManagementPermissions } from "./harmony152.mjs";
2
+ import { accessExpertFeatures } from "./harmony153.mjs";
3
+ import { accessMarketingProjects } from "./harmony154.mjs";
4
+ import { createProjects } from "./harmony155.mjs";
5
+ import { deleteProjects } from "./harmony156.mjs";
6
+ import { downloadFiles } from "./harmony157.mjs";
7
+ import { manageContributors } from "./harmony158.mjs";
8
+ import { testNewProjectSetupFlow } from "./harmony159.mjs";
9
+ import { uploadFiles } from "./harmony160.mjs";
10
+ const actionResolvers = {
11
+ accessExpertFeatures,
12
+ accessMarketingProjects,
13
+ createProjects,
14
+ deleteProjects,
15
+ downloadFiles,
16
+ manageContributors,
17
+ manageManagementPermissions,
18
+ testNewProjectSetupFlow,
19
+ uploadFiles
7
20
  };
8
21
  export {
9
- hasAny
22
+ actionResolvers
10
23
  };
11
24
  //# sourceMappingURL=harmony130.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony130.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":"harmony130.mjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { manageManagementPermissions } from '@features/permissions/actionResolvers/manageManagementPermissions'\nimport { 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 { testNewProjectSetupFlow } from './actionResolvers/testNewProjectSetupFlow'\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\tmanageManagementPermissions,\n\ttestNewProjectSetupFlow,\n\tuploadFiles,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":[],"mappings":";;;;;;;;;AAWO,MAAM,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;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("./harmony151.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=harmony131.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony131.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":"harmony131.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 "./harmony151.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=harmony131.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony131.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":"harmony131.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,22 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const manageManagementPermissions = require("./harmony152.cjs");
4
- const accessExpertFeatures = require("./harmony153.cjs");
5
- const accessMarketingProjects = require("./harmony154.cjs");
6
- const createProjects = require("./harmony155.cjs");
7
- const deleteProjects = require("./harmony156.cjs");
8
- const downloadFiles = require("./harmony157.cjs");
9
- const manageContributors = require("./harmony158.cjs");
10
- const uploadFiles = require("./harmony159.cjs");
11
- const actionResolvers = {
12
- accessExpertFeatures: accessExpertFeatures.accessExpertFeatures,
13
- accessMarketingProjects: accessMarketingProjects.accessMarketingProjects,
14
- createProjects: createProjects.createProjects,
15
- deleteProjects: deleteProjects.deleteProjects,
16
- downloadFiles: downloadFiles.downloadFiles,
17
- manageContributors: manageContributors.manageContributors,
18
- manageManagementPermissions: manageManagementPermissions.manageManagementPermissions,
19
- uploadFiles: uploadFiles.uploadFiles
20
- };
21
- 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;
22
33
  //# sourceMappingURL=harmony132.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony132.cjs","sources":["../src/features/permissions/actionResolvers.ts"],"sourcesContent":["import { manageManagementPermissions } from '@features/permissions/actionResolvers/manageManagementPermissions'\nimport { 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\tmanageManagementPermissions,\n\tuploadFiles,\n} satisfies Record<string, ActionResolver>\n\nexport type Action = keyof typeof actionResolvers\n"],"names":["accessExpertFeatures","accessMarketingProjects","createProjects","deleteProjects","downloadFiles","manageContributors","manageManagementPermissions","uploadFiles"],"mappings":";;;;;;;;;;AAUO,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,EAAA,6BACAC,4BAAA;AAAA,EACAC,aAAAA,YAAAA;AACD;;"}
1
+ {"version":3,"file":"harmony132.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;;"}