@lokalise/harmony 1.39.4 → 1.40.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 (207) hide show
  1. package/dist/harmony100.cjs +9 -12
  2. package/dist/harmony100.cjs.map +1 -1
  3. package/dist/harmony100.mjs +8 -11
  4. package/dist/harmony100.mjs.map +1 -1
  5. package/dist/harmony101.cjs +57 -12
  6. package/dist/harmony101.cjs.map +1 -1
  7. package/dist/harmony101.mjs +56 -11
  8. package/dist/harmony101.mjs.map +1 -1
  9. package/dist/harmony102.cjs +42 -6
  10. package/dist/harmony102.cjs.map +1 -1
  11. package/dist/harmony102.mjs +41 -5
  12. package/dist/harmony102.mjs.map +1 -1
  13. package/dist/harmony103.cjs +6 -10
  14. package/dist/harmony103.cjs.map +1 -1
  15. package/dist/harmony103.mjs +5 -9
  16. package/dist/harmony103.mjs.map +1 -1
  17. package/dist/harmony104.cjs +6 -6
  18. package/dist/harmony104.mjs +6 -6
  19. package/dist/harmony105.cjs +24 -57
  20. package/dist/harmony105.cjs.map +1 -1
  21. package/dist/harmony105.mjs +23 -56
  22. package/dist/harmony105.mjs.map +1 -1
  23. package/dist/harmony106.cjs +6 -42
  24. package/dist/harmony106.cjs.map +1 -1
  25. package/dist/harmony106.mjs +5 -41
  26. package/dist/harmony106.mjs.map +1 -1
  27. package/dist/harmony107.cjs +21 -5
  28. package/dist/harmony107.cjs.map +1 -1
  29. package/dist/harmony107.mjs +21 -5
  30. package/dist/harmony107.mjs.map +1 -1
  31. package/dist/harmony108.cjs +7 -4
  32. package/dist/harmony108.cjs.map +1 -1
  33. package/dist/harmony108.mjs +7 -4
  34. package/dist/harmony108.mjs.map +1 -1
  35. package/dist/harmony109.cjs +12 -25
  36. package/dist/harmony109.cjs.map +1 -1
  37. package/dist/harmony109.mjs +11 -24
  38. package/dist/harmony109.mjs.map +1 -1
  39. package/dist/harmony110.cjs +20 -5
  40. package/dist/harmony110.cjs.map +1 -1
  41. package/dist/harmony110.mjs +20 -5
  42. package/dist/harmony110.mjs.map +1 -1
  43. package/dist/harmony111.cjs +164 -19
  44. package/dist/harmony111.cjs.map +1 -1
  45. package/dist/harmony111.mjs +164 -19
  46. package/dist/harmony111.mjs.map +1 -1
  47. package/dist/harmony112.cjs +44 -12
  48. package/dist/harmony112.cjs.map +1 -1
  49. package/dist/harmony112.mjs +43 -11
  50. package/dist/harmony112.mjs.map +1 -1
  51. package/dist/harmony113.cjs +2 -2
  52. package/dist/harmony113.mjs +2 -2
  53. package/dist/harmony114.cjs +13 -86
  54. package/dist/harmony114.cjs.map +1 -1
  55. package/dist/harmony114.mjs +13 -86
  56. package/dist/harmony114.mjs.map +1 -1
  57. package/dist/harmony115.cjs +18 -30
  58. package/dist/harmony115.cjs.map +1 -1
  59. package/dist/harmony115.mjs +18 -30
  60. package/dist/harmony115.mjs.map +1 -1
  61. package/dist/harmony116.cjs +21 -14
  62. package/dist/harmony116.cjs.map +1 -1
  63. package/dist/harmony116.mjs +20 -13
  64. package/dist/harmony116.mjs.map +1 -1
  65. package/dist/harmony117.cjs +6 -18
  66. package/dist/harmony117.cjs.map +1 -1
  67. package/dist/harmony117.mjs +6 -18
  68. package/dist/harmony117.mjs.map +1 -1
  69. package/dist/harmony118.cjs +132 -21
  70. package/dist/harmony118.cjs.map +1 -1
  71. package/dist/harmony118.mjs +131 -20
  72. package/dist/harmony118.mjs.map +1 -1
  73. package/dist/harmony119.cjs +12 -6
  74. package/dist/harmony119.cjs.map +1 -1
  75. package/dist/harmony119.mjs +11 -5
  76. package/dist/harmony119.mjs.map +1 -1
  77. package/dist/harmony120.cjs +5 -132
  78. package/dist/harmony120.cjs.map +1 -1
  79. package/dist/harmony120.mjs +5 -132
  80. package/dist/harmony120.mjs.map +1 -1
  81. package/dist/harmony121.cjs +40 -12
  82. package/dist/harmony121.cjs.map +1 -1
  83. package/dist/harmony121.mjs +39 -11
  84. package/dist/harmony121.mjs.map +1 -1
  85. package/dist/harmony122.cjs +59 -4
  86. package/dist/harmony122.cjs.map +1 -1
  87. package/dist/harmony122.mjs +60 -5
  88. package/dist/harmony122.mjs.map +1 -1
  89. package/dist/harmony123.cjs +6 -39
  90. package/dist/harmony123.cjs.map +1 -1
  91. package/dist/harmony123.mjs +6 -39
  92. package/dist/harmony123.mjs.map +1 -1
  93. package/dist/harmony124.cjs +6 -60
  94. package/dist/harmony124.cjs.map +1 -1
  95. package/dist/harmony124.mjs +5 -59
  96. package/dist/harmony124.mjs.map +1 -1
  97. package/dist/harmony125.cjs +6 -8
  98. package/dist/harmony125.cjs.map +1 -1
  99. package/dist/harmony125.mjs +5 -7
  100. package/dist/harmony125.mjs.map +1 -1
  101. package/dist/harmony126.cjs +4 -4
  102. package/dist/harmony126.mjs +4 -4
  103. package/dist/harmony127.cjs +88 -6
  104. package/dist/harmony127.cjs.map +1 -1
  105. package/dist/harmony127.mjs +87 -5
  106. package/dist/harmony127.mjs.map +1 -1
  107. package/dist/harmony128.cjs +31 -7
  108. package/dist/harmony128.cjs.map +1 -1
  109. package/dist/harmony128.mjs +30 -6
  110. package/dist/harmony128.mjs.map +1 -1
  111. package/dist/harmony129.cjs +96 -10
  112. package/dist/harmony129.cjs.map +1 -1
  113. package/dist/harmony129.mjs +96 -10
  114. package/dist/harmony129.mjs.map +1 -1
  115. package/dist/harmony130.cjs +11 -94
  116. package/dist/harmony130.cjs.map +1 -1
  117. package/dist/harmony130.mjs +11 -94
  118. package/dist/harmony130.mjs.map +1 -1
  119. package/dist/harmony131.cjs +13 -12
  120. package/dist/harmony131.cjs.map +1 -1
  121. package/dist/harmony131.mjs +13 -12
  122. package/dist/harmony131.mjs.map +1 -1
  123. package/dist/harmony132.cjs +35 -13
  124. package/dist/harmony132.cjs.map +1 -1
  125. package/dist/harmony132.mjs +35 -13
  126. package/dist/harmony132.mjs.map +1 -1
  127. package/dist/harmony133.cjs +24 -32
  128. package/dist/harmony133.cjs.map +1 -1
  129. package/dist/harmony133.mjs +24 -32
  130. package/dist/harmony133.mjs.map +1 -1
  131. package/dist/harmony134.cjs +62 -28
  132. package/dist/harmony134.cjs.map +1 -1
  133. package/dist/harmony134.mjs +61 -27
  134. package/dist/harmony134.mjs.map +1 -1
  135. package/dist/harmony135.cjs +87 -61
  136. package/dist/harmony135.cjs.map +1 -1
  137. package/dist/harmony135.mjs +87 -61
  138. package/dist/harmony135.mjs.map +1 -1
  139. package/dist/harmony136.cjs +18 -88
  140. package/dist/harmony136.cjs.map +1 -1
  141. package/dist/harmony136.mjs +17 -87
  142. package/dist/harmony136.mjs.map +1 -1
  143. package/dist/harmony137.cjs +10 -18
  144. package/dist/harmony137.cjs.map +1 -1
  145. package/dist/harmony137.mjs +9 -17
  146. package/dist/harmony137.mjs.map +1 -1
  147. package/dist/harmony14.cjs +1 -1
  148. package/dist/harmony14.mjs +1 -1
  149. package/dist/harmony142.cjs +1 -1
  150. package/dist/harmony142.mjs +1 -1
  151. package/dist/harmony153.cjs +1 -1
  152. package/dist/harmony153.mjs +1 -1
  153. package/dist/harmony17.cjs +1 -1
  154. package/dist/harmony17.mjs +1 -1
  155. package/dist/harmony25.cjs +1 -1
  156. package/dist/harmony25.mjs +1 -1
  157. package/dist/harmony26.cjs +1 -1
  158. package/dist/harmony26.mjs +1 -1
  159. package/dist/harmony67.cjs +2 -1
  160. package/dist/harmony67.cjs.map +1 -1
  161. package/dist/harmony67.mjs +2 -1
  162. package/dist/harmony67.mjs.map +1 -1
  163. package/dist/harmony77.cjs +1 -1
  164. package/dist/harmony77.mjs +1 -1
  165. package/dist/harmony78.cjs +1 -1
  166. package/dist/harmony78.mjs +1 -1
  167. package/dist/harmony79.cjs +1 -1
  168. package/dist/harmony79.mjs +1 -1
  169. package/dist/harmony80.cjs +2 -2
  170. package/dist/harmony80.mjs +2 -2
  171. package/dist/harmony81.cjs +2 -2
  172. package/dist/harmony81.mjs +2 -2
  173. package/dist/harmony82.cjs +2 -2
  174. package/dist/harmony82.mjs +2 -2
  175. package/dist/harmony83.cjs +2 -2
  176. package/dist/harmony83.mjs +2 -2
  177. package/dist/harmony84.cjs +3 -3
  178. package/dist/harmony84.mjs +3 -3
  179. package/dist/harmony85.cjs +6 -6
  180. package/dist/harmony85.mjs +6 -6
  181. package/dist/harmony88.cjs +2 -2
  182. package/dist/harmony88.mjs +2 -2
  183. package/dist/harmony90.cjs +2 -2
  184. package/dist/harmony90.mjs +2 -2
  185. package/dist/harmony92.cjs +2 -2
  186. package/dist/harmony92.mjs +2 -2
  187. package/dist/harmony96.cjs +10 -9
  188. package/dist/harmony96.cjs.map +1 -1
  189. package/dist/harmony96.mjs +12 -11
  190. package/dist/harmony96.mjs.map +1 -1
  191. package/dist/harmony97.cjs +11 -20
  192. package/dist/harmony97.cjs.map +1 -1
  193. package/dist/harmony97.mjs +11 -20
  194. package/dist/harmony97.mjs.map +1 -1
  195. package/dist/harmony98.cjs +6 -166
  196. package/dist/harmony98.cjs.map +1 -1
  197. package/dist/harmony98.mjs +5 -165
  198. package/dist/harmony98.mjs.map +1 -1
  199. package/dist/harmony99.cjs +9 -44
  200. package/dist/harmony99.cjs.map +1 -1
  201. package/dist/harmony99.mjs +8 -43
  202. package/dist/harmony99.mjs.map +1 -1
  203. package/dist/types/src/features/publicApi/hooks/useCreateScoreMutation.d.ts +1 -0
  204. package/dist/types/src/features/publicApi/hooks/useGetScoreQuery.d.ts +1 -0
  205. package/dist/types/src/features/publicApi/score.d.ts +10 -0
  206. package/dist/types/src/features/publicApi/types/scoreTypes.d.ts +13 -0
  207. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"harmony122.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarTasksContextProps } from './types'\n\nexport const TasksContext = createContext({} as SidebarTasksContextProps)\n\nexport const useTasks = () => useContext(TasksContext)\n"],"names":[],"mappings":";AAGa,MAAA,eAAe,cAAc,CAA8B,CAAA;AAE3D,MAAA,WAAW,MAAM,WAAW,YAAY;"}
1
+ {"version":3,"file":"harmony122.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksProvider.tsx"],"sourcesContent":["import { useEffectOnce } from '@utils'\nimport { type FC, type PropsWithChildren, useState } from 'react'\nimport { TasksContext } from './TasksContext'\nimport type { SidebarTask, SidebarTasksConfig, SidebarTasksContextProps } from './types'\nimport { TaskEvents } from './utils/taskEvents'\n\ntype TasksProviderProps = PropsWithChildren<{\n\tconfig: SidebarTasksConfig\n}>\n\nexport const TasksProvider = ({ children, config }: TasksProviderProps) => {\n\tconst [tasks, setTasks] = useState<SidebarTask[]>([])\n\tconst [loadingTasks, setLoadingTasks] = useState(true)\n\n\tconst [tasksCount, setTaskCount] = useState(0)\n\n\tconst {\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t} = config\n\n\tconst { getTasks, getTasksCount } = config\n\n\tconst fetchTasks = async () => {\n\t\tsetLoadingTasks(true)\n\t\tconst result = await getTasks()\n\t\tsetTasks(result)\n\t\tsetLoadingTasks(false)\n\t\treturn result\n\t}\n\n\tconst fetchTaskCount = async () => {\n\t\tconst result = await getTasksCount()\n\t\tsetTaskCount(result)\n\t}\n\n\tuseEffectOnce(() => {\n\t\tfetchTaskCount()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTaskCount)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTaskCount)\n\t\t}\n\t})\n\n\tconst providerValue: SidebarTasksContextProps = {\n\t\tfetchTasks,\n\t\ttasks,\n\t\ttasksCount,\n\t\tloadingTasks,\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t}\n\n\treturn <TasksContext.Provider value={providerValue}>{children}</TasksContext.Provider>\n}\n\nexport const withTasksContext = <P extends { config: SidebarTasksConfig }>(\n\tWrappedComponent: FC<Omit<P, 'config'>>,\n) =>\n\tfunction withTasksContextFn(props: P) {\n\t\tconst { config, ...rest } = props\n\n\t\treturn (\n\t\t\t<TasksProvider config={config}>\n\t\t\t\t<WrappedComponent {...rest} />\n\t\t\t</TasksProvider>\n\t\t)\n\t}\n"],"names":[],"mappings":";;;;;AAUO,MAAM,gBAAgB,CAAC,EAAE,UAAU,aAAiC;AAC1E,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,CAAA,CAAE;AACpD,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,IAAI;AAErD,QAAM,CAAC,YAAY,YAAY,IAAI,SAAS,CAAC;AAEvC,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAEE,QAAA,EAAE,UAAU,cAAA,IAAkB;AAEpC,QAAM,aAAa,YAAY;AAC9B,oBAAgB,IAAI;AACd,UAAA,SAAS,MAAM,SAAS;AAC9B,aAAS,MAAM;AACf,oBAAgB,KAAK;AACd,WAAA;AAAA,EACR;AAEA,QAAM,iBAAiB,YAAY;AAC5B,UAAA,SAAS,MAAM,cAAc;AACnC,iBAAa,MAAM;AAAA,EACpB;AAEA,gBAAc,MAAM;AACJ,mBAAA;AAEN,aAAA,iBAAiB,WAAW,eAAe,cAAc;AACzD,aAAA,iBAAiB,WAAW,YAAY,cAAc;AACtD,aAAA,iBAAiB,WAAW,SAAS,cAAc;AAE5D,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,eAAe,cAAc;AAC5D,eAAA,oBAAoB,WAAW,YAAY,cAAc;AACzD,eAAA,oBAAoB,WAAW,SAAS,cAAc;AAAA,IAChE;AAAA,EAAA,CACA;AAED,QAAM,gBAA0C;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,6BAAQ,aAAa,UAAb,EAAsB,OAAO,eAAgB,UAAS;AAC/D;AAEO,MAAM,mBAAmB,CAC/B,qBAEA,SAAS,mBAAmB,OAAU;AACrC,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAE5B,6BACE,eAAc,EAAA,QACd,8BAAC,kBAAkB,EAAA,GAAG,KAAM,CAAA,GAC7B;AAEF;"}
@@ -1,43 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const louis = require("@lokalise/louis");
5
- const useEffectOnce = require("./harmony13.cjs");
6
- const TaskOverview = require("./harmony136.cjs");
7
- const TasksContext = require("./harmony122.cjs");
8
- const taskEvents = require("./harmony125.cjs");
9
- const TasksPopover_module = require("./harmony137.cjs");
10
- const TasksPopover = () => {
11
- const { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = TasksContext.useTasks();
12
- useEffectOnce.useEffectOnce(() => {
13
- const handleTaskPopoverOpen = async () => {
14
- const contextTasks = await fetchTasks();
15
- onTasksWidgetOpen == null ? void 0 : onTasksWidgetOpen({ tasks: contextTasks });
16
- };
17
- handleTaskPopoverOpen();
18
- document.addEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTasks);
19
- document.addEventListener(taskEvents.TaskEvents.TaskClosed, fetchTasks);
20
- document.addEventListener(taskEvents.TaskEvents.Refresh, fetchTasks);
21
- return () => {
22
- document.removeEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTasks);
23
- document.removeEventListener(taskEvents.TaskEvents.TaskClosed, fetchTasks);
24
- document.removeEventListener(taskEvents.TaskEvents.Refresh, fetchTasks);
25
- };
26
- });
27
- if (loadingTasks) {
28
- return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "sidebar-tasks-loading-popover", className: TasksPopover_module.default.loadingContainer, children: /* @__PURE__ */ jsxRuntime.jsx(louis.Loading, {}) });
29
- }
30
- if (tasks.length === 0) {
31
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "sidebar-no-tasks-popover", className: TasksPopover_module.default.noTasksContainer, children: [
32
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: TasksPopover_module.default.noTasksHeading, children: "No tasks" }),
33
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TasksPopover_module.default.noTasksText, children: [
34
- "Your incoming tasks will appear here.",
35
- /* @__PURE__ */ jsxRuntime.jsx("br", {}),
36
- /* @__PURE__ */ jsxRuntime.jsx(louis.Link, { href: "https://docs.lokalise.com/translation-workflow/tasks", target: "_new", children: "Learn more" })
37
- ] })
38
- ] });
39
- }
40
- return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "sidebar-tasks-popover", className: TasksPopover_module.default.tasksContainer, children: tasks.map((task) => /* @__PURE__ */ jsxRuntime.jsx(TaskOverview.TaskOverview, { task }, task.id)) });
3
+ const TaskEvents = {
4
+ TaskCompleted: "task_completed",
5
+ TaskClosed: "task_closed",
6
+ Refresh: "refresh",
7
+ ShowDialog: "show_dialog"
41
8
  };
42
- exports.TasksPopover = TasksPopover;
9
+ exports.TaskEvents = TaskEvents;
43
10
  //# sourceMappingURL=harmony123.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony123.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksPopover/TasksPopover.tsx"],"sourcesContent":["import { Link, Loading } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport { TaskOverview } from '../TaskOverview/TaskOverview'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask } from '../types'\nimport { TaskEvents } from '../utils/taskEvents'\nimport styles from './TasksPopover.module.css'\n\nexport const TasksPopover = () => {\n\tconst { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst handleTaskPopoverOpen = async () => {\n\t\t\tconst contextTasks = await fetchTasks()\n\t\t\tonTasksWidgetOpen?.({ tasks: contextTasks })\n\t\t}\n\n\t\thandleTaskPopoverOpen()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTasks)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTasks)\n\t\t}\n\t})\n\n\tif (loadingTasks) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-tasks-loading-popover\" className={styles.loadingContainer}>\n\t\t\t\t<Loading />\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (tasks.length === 0) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-no-tasks-popover\" className={styles.noTasksContainer}>\n\t\t\t\t<h3 className={styles.noTasksHeading}>No tasks</h3>\n\t\t\t\t<div className={styles.noTasksText}>\n\t\t\t\t\tYour incoming tasks will appear here.\n\t\t\t\t\t<br />\n\t\t\t\t\t<Link href=\"https://docs.lokalise.com/translation-workflow/tasks\" target=\"_new\">\n\t\t\t\t\t\tLearn more\n\t\t\t\t\t</Link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div data-testid=\"sidebar-tasks-popover\" className={styles.tasksContainer}>\n\t\t\t{tasks.map((task: SidebarTask) => (\n\t\t\t\t<TaskOverview key={task.id} task={task} />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["useTasks","useEffectOnce","TaskEvents","jsx","styles","Loading","jsxs","Link","TaskOverview"],"mappings":";;;;;;;;;AAQO,MAAM,eAAe,MAAM;AACjC,QAAM,EAAE,OAAO,mBAAmB,cAAc,WAAA,IAAeA,aAAAA,SAAS;AAExEC,gBAAAA,cAAc,MAAM;AACnB,UAAM,wBAAwB,YAAY;AACnC,YAAA,eAAe,MAAM,WAAW;AAClB,6DAAA,EAAE,OAAO;IAC9B;AAEsB,0BAAA;AAEb,aAAA,iBAAiBC,sBAAW,eAAe,UAAU;AACrD,aAAA,iBAAiBA,sBAAW,YAAY,UAAU;AAClD,aAAA,iBAAiBA,sBAAW,SAAS,UAAU;AAExD,WAAO,MAAM;AACH,eAAA,oBAAoBA,sBAAW,eAAe,UAAU;AACxD,eAAA,oBAAoBA,sBAAW,YAAY,UAAU;AACrD,eAAA,oBAAoBA,sBAAW,SAAS,UAAU;AAAA,IAC5D;AAAA,EAAA,CACA;AAED,MAAI,cAAc;AAEhB,WAAAC,2BAAA,IAAC,SAAI,eAAY,iCAAgC,WAAWC,4BAAO,kBAClE,UAACD,2BAAAA,IAAAE,MAAAA,SAAA,CAAA,CAAQ,EACV,CAAA;AAAA,EAAA;AAIE,MAAA,MAAM,WAAW,GAAG;AACvB,2CACE,OAAI,EAAA,eAAY,4BAA2B,WAAWD,oBAAAA,QAAO,kBAC7D,UAAA;AAAA,MAAAD,2BAAA,IAAC,MAAG,EAAA,WAAWC,oBAAO,QAAA,gBAAgB,UAAQ,YAAA;AAAA,MAC7CE,2BAAA,KAAA,OAAA,EAAI,WAAWF,oBAAAA,QAAO,aAAa,UAAA;AAAA,QAAA;AAAA,uCAElC,MAAG,EAAA;AAAA,uCACHG,MAAAA,MAAK,EAAA,MAAK,wDAAuD,QAAO,QAAO,UAEhF,aAAA,CAAA;AAAA,MAAA,EACD,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAIF,wCACE,OAAI,EAAA,eAAY,yBAAwB,WAAWH,oBAAAA,QAAO,gBACzD,UAAA,MAAM,IAAI,CAAC,SACVD,2BAAA,IAAAK,2BAAA,EAA2B,QAAT,KAAK,EAAgB,CACxC,GACF;AAEF;;"}
1
+ {"version":3,"file":"harmony123.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/taskEvents.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const TaskEvents = {\n\tTaskCompleted: 'task_completed',\n\tTaskClosed: 'task_closed',\n\tRefresh: 'refresh',\n\tShowDialog: 'show_dialog',\n} as const\n\nexport type TaskEvent = TypesFromMap<typeof TaskEvents>\n\ntype SingleTaskPayload = {\n\ttaskId: string | number\n}\n\ntype DispatchTaskEventPayload =\n\t| {\n\t\t\tname: typeof TaskEvents.TaskCompleted\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.TaskClosed\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.Refresh\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.ShowDialog\n\t }\n\nexport const dispatchTaskEvent = (props: DispatchTaskEventPayload) => {\n\tconst { name } = props\n\tdocument.dispatchEvent(new CustomEvent(name, { detail: 'detail' in props ? props.detail : {} }))\n}\n"],"names":[],"mappings":";;AAEO,MAAM,aAAa;AAAA,EACzB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AACb;;"}
@@ -1,43 +1,10 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Loading, Link } from "@lokalise/louis";
3
- import { useEffectOnce } from "./harmony13.mjs";
4
- import { TaskOverview } from "./harmony136.mjs";
5
- import { useTasks } from "./harmony122.mjs";
6
- import { TaskEvents } from "./harmony125.mjs";
7
- import styles from "./harmony137.mjs";
8
- const TasksPopover = () => {
9
- const { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = useTasks();
10
- useEffectOnce(() => {
11
- const handleTaskPopoverOpen = async () => {
12
- const contextTasks = await fetchTasks();
13
- onTasksWidgetOpen == null ? void 0 : onTasksWidgetOpen({ tasks: contextTasks });
14
- };
15
- handleTaskPopoverOpen();
16
- document.addEventListener(TaskEvents.TaskCompleted, fetchTasks);
17
- document.addEventListener(TaskEvents.TaskClosed, fetchTasks);
18
- document.addEventListener(TaskEvents.Refresh, fetchTasks);
19
- return () => {
20
- document.removeEventListener(TaskEvents.TaskCompleted, fetchTasks);
21
- document.removeEventListener(TaskEvents.TaskClosed, fetchTasks);
22
- document.removeEventListener(TaskEvents.Refresh, fetchTasks);
23
- };
24
- });
25
- if (loadingTasks) {
26
- return /* @__PURE__ */ jsx("div", { "data-testid": "sidebar-tasks-loading-popover", className: styles.loadingContainer, children: /* @__PURE__ */ jsx(Loading, {}) });
27
- }
28
- if (tasks.length === 0) {
29
- return /* @__PURE__ */ jsxs("div", { "data-testid": "sidebar-no-tasks-popover", className: styles.noTasksContainer, children: [
30
- /* @__PURE__ */ jsx("h3", { className: styles.noTasksHeading, children: "No tasks" }),
31
- /* @__PURE__ */ jsxs("div", { className: styles.noTasksText, children: [
32
- "Your incoming tasks will appear here.",
33
- /* @__PURE__ */ jsx("br", {}),
34
- /* @__PURE__ */ jsx(Link, { href: "https://docs.lokalise.com/translation-workflow/tasks", target: "_new", children: "Learn more" })
35
- ] })
36
- ] });
37
- }
38
- return /* @__PURE__ */ jsx("div", { "data-testid": "sidebar-tasks-popover", className: styles.tasksContainer, children: tasks.map((task) => /* @__PURE__ */ jsx(TaskOverview, { task }, task.id)) });
1
+ const TaskEvents = {
2
+ TaskCompleted: "task_completed",
3
+ TaskClosed: "task_closed",
4
+ Refresh: "refresh",
5
+ ShowDialog: "show_dialog"
39
6
  };
40
7
  export {
41
- TasksPopover
8
+ TaskEvents
42
9
  };
43
10
  //# sourceMappingURL=harmony123.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony123.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksPopover/TasksPopover.tsx"],"sourcesContent":["import { Link, Loading } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport { TaskOverview } from '../TaskOverview/TaskOverview'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask } from '../types'\nimport { TaskEvents } from '../utils/taskEvents'\nimport styles from './TasksPopover.module.css'\n\nexport const TasksPopover = () => {\n\tconst { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst handleTaskPopoverOpen = async () => {\n\t\t\tconst contextTasks = await fetchTasks()\n\t\t\tonTasksWidgetOpen?.({ tasks: contextTasks })\n\t\t}\n\n\t\thandleTaskPopoverOpen()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTasks)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTasks)\n\t\t}\n\t})\n\n\tif (loadingTasks) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-tasks-loading-popover\" className={styles.loadingContainer}>\n\t\t\t\t<Loading />\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (tasks.length === 0) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-no-tasks-popover\" className={styles.noTasksContainer}>\n\t\t\t\t<h3 className={styles.noTasksHeading}>No tasks</h3>\n\t\t\t\t<div className={styles.noTasksText}>\n\t\t\t\t\tYour incoming tasks will appear here.\n\t\t\t\t\t<br />\n\t\t\t\t\t<Link href=\"https://docs.lokalise.com/translation-workflow/tasks\" target=\"_new\">\n\t\t\t\t\t\tLearn more\n\t\t\t\t\t</Link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div data-testid=\"sidebar-tasks-popover\" className={styles.tasksContainer}>\n\t\t\t{tasks.map((task: SidebarTask) => (\n\t\t\t\t<TaskOverview key={task.id} task={task} />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,eAAe,MAAM;AACjC,QAAM,EAAE,OAAO,mBAAmB,cAAc,WAAA,IAAe,SAAS;AAExE,gBAAc,MAAM;AACnB,UAAM,wBAAwB,YAAY;AACnC,YAAA,eAAe,MAAM,WAAW;AAClB,6DAAA,EAAE,OAAO;IAC9B;AAEsB,0BAAA;AAEb,aAAA,iBAAiB,WAAW,eAAe,UAAU;AACrD,aAAA,iBAAiB,WAAW,YAAY,UAAU;AAClD,aAAA,iBAAiB,WAAW,SAAS,UAAU;AAExD,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,eAAe,UAAU;AACxD,eAAA,oBAAoB,WAAW,YAAY,UAAU;AACrD,eAAA,oBAAoB,WAAW,SAAS,UAAU;AAAA,IAC5D;AAAA,EAAA,CACA;AAED,MAAI,cAAc;AAEhB,WAAA,oBAAC,SAAI,eAAY,iCAAgC,WAAW,OAAO,kBAClE,UAAC,oBAAA,SAAA,CAAA,CAAQ,EACV,CAAA;AAAA,EAAA;AAIE,MAAA,MAAM,WAAW,GAAG;AACvB,gCACE,OAAI,EAAA,eAAY,4BAA2B,WAAW,OAAO,kBAC7D,UAAA;AAAA,MAAA,oBAAC,MAAG,EAAA,WAAW,OAAO,gBAAgB,UAAQ,YAAA;AAAA,MAC7C,qBAAA,OAAA,EAAI,WAAW,OAAO,aAAa,UAAA;AAAA,QAAA;AAAA,4BAElC,MAAG,EAAA;AAAA,4BACH,MAAK,EAAA,MAAK,wDAAuD,QAAO,QAAO,UAEhF,aAAA,CAAA;AAAA,MAAA,EACD,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAIF,6BACE,OAAI,EAAA,eAAY,yBAAwB,WAAW,OAAO,gBACzD,UAAA,MAAM,IAAI,CAAC,SACV,oBAAA,cAAA,EAA2B,QAAT,KAAK,EAAgB,CACxC,GACF;AAEF;"}
1
+ {"version":3,"file":"harmony123.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/taskEvents.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const TaskEvents = {\n\tTaskCompleted: 'task_completed',\n\tTaskClosed: 'task_closed',\n\tRefresh: 'refresh',\n\tShowDialog: 'show_dialog',\n} as const\n\nexport type TaskEvent = TypesFromMap<typeof TaskEvents>\n\ntype SingleTaskPayload = {\n\ttaskId: string | number\n}\n\ntype DispatchTaskEventPayload =\n\t| {\n\t\t\tname: typeof TaskEvents.TaskCompleted\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.TaskClosed\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.Refresh\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.ShowDialog\n\t }\n\nexport const dispatchTaskEvent = (props: DispatchTaskEventPayload) => {\n\tconst { name } = props\n\tdocument.dispatchEvent(new CustomEvent(name, { detail: 'detail' in props ? props.detail : {} }))\n}\n"],"names":[],"mappings":"AAEO,MAAM,aAAa;AAAA,EACzB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AACb;"}
@@ -1,63 +1,9 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const useEffectOnce = require("./harmony13.cjs");
5
- const React = require("react");
6
- const TasksContext = require("./harmony122.cjs");
7
- const taskEvents = require("./harmony125.cjs");
8
- const TasksProvider = ({ children, config }) => {
9
- const [tasks, setTasks] = React.useState([]);
10
- const [loadingTasks, setLoadingTasks] = React.useState(true);
11
- const [tasksCount, setTaskCount] = React.useState(0);
12
- const {
13
- getProjectUrl,
14
- onLanguageCompleteConfirm,
15
- onTasksWidgetOpen,
16
- langNameOnClick,
17
- langProgressOnClick,
18
- taskTitleOnClick
19
- } = config;
20
- const { getTasks, getTasksCount } = config;
21
- const fetchTasks = async () => {
22
- setLoadingTasks(true);
23
- const result = await getTasks();
24
- setTasks(result);
25
- setLoadingTasks(false);
26
- return result;
27
- };
28
- const fetchTaskCount = async () => {
29
- const result = await getTasksCount();
30
- setTaskCount(result);
31
- };
32
- useEffectOnce.useEffectOnce(() => {
33
- fetchTaskCount();
34
- document.addEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTaskCount);
35
- document.addEventListener(taskEvents.TaskEvents.TaskClosed, fetchTaskCount);
36
- document.addEventListener(taskEvents.TaskEvents.Refresh, fetchTaskCount);
37
- return () => {
38
- document.removeEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTaskCount);
39
- document.removeEventListener(taskEvents.TaskEvents.TaskClosed, fetchTaskCount);
40
- document.removeEventListener(taskEvents.TaskEvents.Refresh, fetchTaskCount);
41
- };
42
- });
43
- const providerValue = {
44
- fetchTasks,
45
- tasks,
46
- tasksCount,
47
- loadingTasks,
48
- getProjectUrl,
49
- onLanguageCompleteConfirm,
50
- onTasksWidgetOpen,
51
- langNameOnClick,
52
- langProgressOnClick,
53
- taskTitleOnClick
54
- };
55
- return /* @__PURE__ */ jsxRuntime.jsx(TasksContext.TasksContext.Provider, { value: providerValue, children });
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const iconContainer = "_iconContainer_nz34m_1";
4
+ const styles = {
5
+ iconContainer
56
6
  };
57
- const withTasksContext = (WrappedComponent) => function withTasksContextFn(props) {
58
- const { config, ...rest } = props;
59
- return /* @__PURE__ */ jsxRuntime.jsx(TasksProvider, { config, children: /* @__PURE__ */ jsxRuntime.jsx(WrappedComponent, { ...rest }) });
60
- };
61
- exports.TasksProvider = TasksProvider;
62
- exports.withTasksContext = withTasksContext;
7
+ exports.default = styles;
8
+ exports.iconContainer = iconContainer;
63
9
  //# sourceMappingURL=harmony124.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony124.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksProvider.tsx"],"sourcesContent":["import { useEffectOnce } from '@utils'\nimport { type FC, type PropsWithChildren, useState } from 'react'\nimport { TasksContext } from './TasksContext'\nimport type { SidebarTask, SidebarTasksConfig, SidebarTasksContextProps } from './types'\nimport { TaskEvents } from './utils/taskEvents'\n\ntype TasksProviderProps = PropsWithChildren<{\n\tconfig: SidebarTasksConfig\n}>\n\nexport const TasksProvider = ({ children, config }: TasksProviderProps) => {\n\tconst [tasks, setTasks] = useState<SidebarTask[]>([])\n\tconst [loadingTasks, setLoadingTasks] = useState(true)\n\n\tconst [tasksCount, setTaskCount] = useState(0)\n\n\tconst {\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t} = config\n\n\tconst { getTasks, getTasksCount } = config\n\n\tconst fetchTasks = async () => {\n\t\tsetLoadingTasks(true)\n\t\tconst result = await getTasks()\n\t\tsetTasks(result)\n\t\tsetLoadingTasks(false)\n\t\treturn result\n\t}\n\n\tconst fetchTaskCount = async () => {\n\t\tconst result = await getTasksCount()\n\t\tsetTaskCount(result)\n\t}\n\n\tuseEffectOnce(() => {\n\t\tfetchTaskCount()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTaskCount)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTaskCount)\n\t\t}\n\t})\n\n\tconst providerValue: SidebarTasksContextProps = {\n\t\tfetchTasks,\n\t\ttasks,\n\t\ttasksCount,\n\t\tloadingTasks,\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t}\n\n\treturn <TasksContext.Provider value={providerValue}>{children}</TasksContext.Provider>\n}\n\nexport const withTasksContext = <P extends { config: SidebarTasksConfig }>(\n\tWrappedComponent: FC<Omit<P, 'config'>>,\n) =>\n\tfunction withTasksContextFn(props: P) {\n\t\tconst { config, ...rest } = props\n\n\t\treturn (\n\t\t\t<TasksProvider config={config}>\n\t\t\t\t<WrappedComponent {...rest} />\n\t\t\t</TasksProvider>\n\t\t)\n\t}\n"],"names":["useState","useEffectOnce","TaskEvents","TasksContext"],"mappings":";;;;;;;AAUO,MAAM,gBAAgB,CAAC,EAAE,UAAU,aAAiC;AAC1E,QAAM,CAAC,OAAO,QAAQ,IAAIA,MAAAA,SAAwB,CAAA,CAAE;AACpD,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,IAAI;AAErD,QAAM,CAAC,YAAY,YAAY,IAAIA,MAAAA,SAAS,CAAC;AAEvC,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAEE,QAAA,EAAE,UAAU,cAAA,IAAkB;AAEpC,QAAM,aAAa,YAAY;AAC9B,oBAAgB,IAAI;AACd,UAAA,SAAS,MAAM,SAAS;AAC9B,aAAS,MAAM;AACf,oBAAgB,KAAK;AACd,WAAA;AAAA,EACR;AAEA,QAAM,iBAAiB,YAAY;AAC5B,UAAA,SAAS,MAAM,cAAc;AACnC,iBAAa,MAAM;AAAA,EACpB;AAEAC,gBAAAA,cAAc,MAAM;AACJ,mBAAA;AAEN,aAAA,iBAAiBC,sBAAW,eAAe,cAAc;AACzD,aAAA,iBAAiBA,sBAAW,YAAY,cAAc;AACtD,aAAA,iBAAiBA,sBAAW,SAAS,cAAc;AAE5D,WAAO,MAAM;AACH,eAAA,oBAAoBA,sBAAW,eAAe,cAAc;AAC5D,eAAA,oBAAoBA,sBAAW,YAAY,cAAc;AACzD,eAAA,oBAAoBA,sBAAW,SAAS,cAAc;AAAA,IAChE;AAAA,EAAA,CACA;AAED,QAAM,gBAA0C;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,wCAAQC,aAAAA,aAAa,UAAb,EAAsB,OAAO,eAAgB,UAAS;AAC/D;AAEO,MAAM,mBAAmB,CAC/B,qBAEA,SAAS,mBAAmB,OAAU;AACrC,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAE5B,wCACE,eAAc,EAAA,QACd,yCAAC,kBAAkB,EAAA,GAAG,KAAM,CAAA,GAC7B;AAEF;;;"}
1
+ {"version":3,"file":"harmony124.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,63 +1,9 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useEffectOnce } from "./harmony13.mjs";
3
- import { useState } from "react";
4
- import { TasksContext } from "./harmony122.mjs";
5
- import { TaskEvents } from "./harmony125.mjs";
6
- const TasksProvider = ({ children, config }) => {
7
- const [tasks, setTasks] = useState([]);
8
- const [loadingTasks, setLoadingTasks] = useState(true);
9
- const [tasksCount, setTaskCount] = useState(0);
10
- const {
11
- getProjectUrl,
12
- onLanguageCompleteConfirm,
13
- onTasksWidgetOpen,
14
- langNameOnClick,
15
- langProgressOnClick,
16
- taskTitleOnClick
17
- } = config;
18
- const { getTasks, getTasksCount } = config;
19
- const fetchTasks = async () => {
20
- setLoadingTasks(true);
21
- const result = await getTasks();
22
- setTasks(result);
23
- setLoadingTasks(false);
24
- return result;
25
- };
26
- const fetchTaskCount = async () => {
27
- const result = await getTasksCount();
28
- setTaskCount(result);
29
- };
30
- useEffectOnce(() => {
31
- fetchTaskCount();
32
- document.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount);
33
- document.addEventListener(TaskEvents.TaskClosed, fetchTaskCount);
34
- document.addEventListener(TaskEvents.Refresh, fetchTaskCount);
35
- return () => {
36
- document.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount);
37
- document.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount);
38
- document.removeEventListener(TaskEvents.Refresh, fetchTaskCount);
39
- };
40
- });
41
- const providerValue = {
42
- fetchTasks,
43
- tasks,
44
- tasksCount,
45
- loadingTasks,
46
- getProjectUrl,
47
- onLanguageCompleteConfirm,
48
- onTasksWidgetOpen,
49
- langNameOnClick,
50
- langProgressOnClick,
51
- taskTitleOnClick
52
- };
53
- return /* @__PURE__ */ jsx(TasksContext.Provider, { value: providerValue, children });
54
- };
55
- const withTasksContext = (WrappedComponent) => function withTasksContextFn(props) {
56
- const { config, ...rest } = props;
57
- return /* @__PURE__ */ jsx(TasksProvider, { config, children: /* @__PURE__ */ jsx(WrappedComponent, { ...rest }) });
1
+ const iconContainer = "_iconContainer_nz34m_1";
2
+ const styles = {
3
+ iconContainer
58
4
  };
59
5
  export {
60
- TasksProvider,
61
- withTasksContext
6
+ styles as default,
7
+ iconContainer
62
8
  };
63
9
  //# sourceMappingURL=harmony124.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony124.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksProvider.tsx"],"sourcesContent":["import { useEffectOnce } from '@utils'\nimport { type FC, type PropsWithChildren, useState } from 'react'\nimport { TasksContext } from './TasksContext'\nimport type { SidebarTask, SidebarTasksConfig, SidebarTasksContextProps } from './types'\nimport { TaskEvents } from './utils/taskEvents'\n\ntype TasksProviderProps = PropsWithChildren<{\n\tconfig: SidebarTasksConfig\n}>\n\nexport const TasksProvider = ({ children, config }: TasksProviderProps) => {\n\tconst [tasks, setTasks] = useState<SidebarTask[]>([])\n\tconst [loadingTasks, setLoadingTasks] = useState(true)\n\n\tconst [tasksCount, setTaskCount] = useState(0)\n\n\tconst {\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t} = config\n\n\tconst { getTasks, getTasksCount } = config\n\n\tconst fetchTasks = async () => {\n\t\tsetLoadingTasks(true)\n\t\tconst result = await getTasks()\n\t\tsetTasks(result)\n\t\tsetLoadingTasks(false)\n\t\treturn result\n\t}\n\n\tconst fetchTaskCount = async () => {\n\t\tconst result = await getTasksCount()\n\t\tsetTaskCount(result)\n\t}\n\n\tuseEffectOnce(() => {\n\t\tfetchTaskCount()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTaskCount)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTaskCount)\n\t\t}\n\t})\n\n\tconst providerValue: SidebarTasksContextProps = {\n\t\tfetchTasks,\n\t\ttasks,\n\t\ttasksCount,\n\t\tloadingTasks,\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t}\n\n\treturn <TasksContext.Provider value={providerValue}>{children}</TasksContext.Provider>\n}\n\nexport const withTasksContext = <P extends { config: SidebarTasksConfig }>(\n\tWrappedComponent: FC<Omit<P, 'config'>>,\n) =>\n\tfunction withTasksContextFn(props: P) {\n\t\tconst { config, ...rest } = props\n\n\t\treturn (\n\t\t\t<TasksProvider config={config}>\n\t\t\t\t<WrappedComponent {...rest} />\n\t\t\t</TasksProvider>\n\t\t)\n\t}\n"],"names":[],"mappings":";;;;;AAUO,MAAM,gBAAgB,CAAC,EAAE,UAAU,aAAiC;AAC1E,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,CAAA,CAAE;AACpD,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,IAAI;AAErD,QAAM,CAAC,YAAY,YAAY,IAAI,SAAS,CAAC;AAEvC,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAEE,QAAA,EAAE,UAAU,cAAA,IAAkB;AAEpC,QAAM,aAAa,YAAY;AAC9B,oBAAgB,IAAI;AACd,UAAA,SAAS,MAAM,SAAS;AAC9B,aAAS,MAAM;AACf,oBAAgB,KAAK;AACd,WAAA;AAAA,EACR;AAEA,QAAM,iBAAiB,YAAY;AAC5B,UAAA,SAAS,MAAM,cAAc;AACnC,iBAAa,MAAM;AAAA,EACpB;AAEA,gBAAc,MAAM;AACJ,mBAAA;AAEN,aAAA,iBAAiB,WAAW,eAAe,cAAc;AACzD,aAAA,iBAAiB,WAAW,YAAY,cAAc;AACtD,aAAA,iBAAiB,WAAW,SAAS,cAAc;AAE5D,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,eAAe,cAAc;AAC5D,eAAA,oBAAoB,WAAW,YAAY,cAAc;AACzD,eAAA,oBAAoB,WAAW,SAAS,cAAc;AAAA,IAChE;AAAA,EAAA,CACA;AAED,QAAM,gBAA0C;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,6BAAQ,aAAa,UAAb,EAAsB,OAAO,eAAgB,UAAS;AAC/D;AAEO,MAAM,mBAAmB,CAC/B,qBAEA,SAAS,mBAAmB,OAAU;AACrC,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAE5B,6BACE,eAAc,EAAA,QACd,8BAAC,kBAAkB,EAAA,GAAG,KAAM,CAAA,GAC7B;AAEF;"}
1
+ {"version":3,"file":"harmony124.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const TaskEvents = {
4
- TaskCompleted: "task_completed",
5
- TaskClosed: "task_closed",
6
- Refresh: "refresh",
7
- ShowDialog: "show_dialog"
8
- };
9
- exports.TaskEvents = TaskEvents;
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const _commonjsHelpers = require("./harmony149.cjs");
4
+ const debounce$1 = require("./harmony129.cjs");
5
+ var debounceExports = debounce$1.__require();
6
+ const debounce = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(debounceExports);
7
+ exports.default = debounce;
10
8
  //# sourceMappingURL=harmony125.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony125.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/taskEvents.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const TaskEvents = {\n\tTaskCompleted: 'task_completed',\n\tTaskClosed: 'task_closed',\n\tRefresh: 'refresh',\n\tShowDialog: 'show_dialog',\n} as const\n\nexport type TaskEvent = TypesFromMap<typeof TaskEvents>\n\ntype SingleTaskPayload = {\n\ttaskId: string | number\n}\n\ntype DispatchTaskEventPayload =\n\t| {\n\t\t\tname: typeof TaskEvents.TaskCompleted\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.TaskClosed\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.Refresh\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.ShowDialog\n\t }\n\nexport const dispatchTaskEvent = (props: DispatchTaskEventPayload) => {\n\tconst { name } = props\n\tdocument.dispatchEvent(new CustomEvent(name, { detail: 'detail' in props ? props.detail : {} }))\n}\n"],"names":[],"mappings":";;AAEO,MAAM,aAAa;AAAA,EACzB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AACb;;"}
1
+ {"version":3,"file":"harmony125.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,10 +1,8 @@
1
- const TaskEvents = {
2
- TaskCompleted: "task_completed",
3
- TaskClosed: "task_closed",
4
- Refresh: "refresh",
5
- ShowDialog: "show_dialog"
6
- };
1
+ import { getDefaultExportFromCjs } from "./harmony149.mjs";
2
+ import { __require as requireDebounce } from "./harmony129.mjs";
3
+ var debounceExports = requireDebounce();
4
+ const debounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
7
5
  export {
8
- TaskEvents
6
+ debounce as default
9
7
  };
10
8
  //# sourceMappingURL=harmony125.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony125.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/taskEvents.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const TaskEvents = {\n\tTaskCompleted: 'task_completed',\n\tTaskClosed: 'task_closed',\n\tRefresh: 'refresh',\n\tShowDialog: 'show_dialog',\n} as const\n\nexport type TaskEvent = TypesFromMap<typeof TaskEvents>\n\ntype SingleTaskPayload = {\n\ttaskId: string | number\n}\n\ntype DispatchTaskEventPayload =\n\t| {\n\t\t\tname: typeof TaskEvents.TaskCompleted\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.TaskClosed\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.Refresh\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.ShowDialog\n\t }\n\nexport const dispatchTaskEvent = (props: DispatchTaskEventPayload) => {\n\tconst { name } = props\n\tdocument.dispatchEvent(new CustomEvent(name, { detail: 'detail' in props ? props.detail : {} }))\n}\n"],"names":[],"mappings":"AAEO,MAAM,aAAa;AAAA,EACzB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AACb;"}
1
+ {"version":3,"file":"harmony125.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const _commonjsHelpers = require("./harmony149.cjs");
4
- const debounce$1 = require("./harmony130.cjs");
5
- var debounceExports = debounce$1.__require();
6
- const debounce = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(debounceExports);
7
- exports.default = debounce;
4
+ const throttle$1 = require("./harmony133.cjs");
5
+ var throttleExports = throttle$1.__require();
6
+ const throttle = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(throttleExports);
7
+ exports.default = throttle;
8
8
  //# sourceMappingURL=harmony126.cjs.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs } from "./harmony149.mjs";
2
- import { __require as requireDebounce } from "./harmony130.mjs";
3
- var debounceExports = requireDebounce();
4
- const debounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
2
+ import { __require as requireThrottle } from "./harmony133.mjs";
3
+ var throttleExports = requireThrottle();
4
+ const throttle = /* @__PURE__ */ getDefaultExportFromCjs(throttleExports);
5
5
  export {
6
- debounce as default
6
+ throttle as default
7
7
  };
8
8
  //# sourceMappingURL=harmony126.mjs.map
@@ -1,8 +1,90 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const _commonjsHelpers = require("./harmony149.cjs");
4
- const throttle$1 = require("./harmony134.cjs");
5
- var throttleExports = throttle$1.__require();
6
- const throttle = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(throttleExports);
7
- exports.default = throttle;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const permissions = require("./harmony137.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
+ };
88
+ };
89
+ exports.getProjectNavigationVisibilityMap = getProjectNavigationVisibilityMap;
8
90
  //# sourceMappingURL=harmony127.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony127.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"harmony127.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,8 +1,90 @@
1
- import { getDefaultExportFromCjs } from "./harmony149.mjs";
2
- import { __require as requireThrottle } from "./harmony134.mjs";
3
- var throttleExports = requireThrottle();
4
- const throttle = /* @__PURE__ */ getDefaultExportFromCjs(throttleExports);
1
+ import { hasAdminRight, hasAnyAdminRight } from "./harmony137.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
+ };
86
+ };
5
87
  export {
6
- throttle as default
88
+ getProjectNavigationVisibilityMap
7
89
  };
8
90
  //# sourceMappingURL=harmony127.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony127.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"harmony127.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;"}