@lokalise/harmony 1.34.0 → 1.34.2

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 (240) hide show
  1. package/dist/harmony100.cjs +2 -2
  2. package/dist/harmony100.mjs +2 -2
  3. package/dist/harmony101.cjs +132 -18
  4. package/dist/harmony101.cjs.map +1 -1
  5. package/dist/harmony101.mjs +132 -18
  6. package/dist/harmony101.mjs.map +1 -1
  7. package/dist/harmony102.cjs +12 -14
  8. package/dist/harmony102.cjs.map +1 -1
  9. package/dist/harmony102.mjs +11 -13
  10. package/dist/harmony102.mjs.map +1 -1
  11. package/dist/harmony103.cjs +6 -22
  12. package/dist/harmony103.cjs.map +1 -1
  13. package/dist/harmony103.mjs +5 -21
  14. package/dist/harmony103.mjs.map +1 -1
  15. package/dist/harmony104.cjs +39 -5
  16. package/dist/harmony104.cjs.map +1 -1
  17. package/dist/harmony104.mjs +39 -5
  18. package/dist/harmony104.mjs.map +1 -1
  19. package/dist/harmony105.cjs +61 -6
  20. package/dist/harmony105.cjs.map +1 -1
  21. package/dist/harmony105.mjs +60 -5
  22. package/dist/harmony105.mjs.map +1 -1
  23. package/dist/harmony106.cjs +8 -6
  24. package/dist/harmony106.cjs.map +1 -1
  25. package/dist/harmony106.mjs +7 -5
  26. package/dist/harmony106.mjs.map +1 -1
  27. package/dist/harmony107.cjs +21 -132
  28. package/dist/harmony107.cjs.map +1 -1
  29. package/dist/harmony107.mjs +20 -131
  30. package/dist/harmony107.mjs.map +1 -1
  31. package/dist/harmony108.cjs +6 -12
  32. package/dist/harmony108.cjs.map +1 -1
  33. package/dist/harmony108.mjs +5 -11
  34. package/dist/harmony108.mjs.map +1 -1
  35. package/dist/harmony109.cjs +7 -6
  36. package/dist/harmony109.cjs.map +1 -1
  37. package/dist/harmony109.mjs +6 -5
  38. package/dist/harmony109.mjs.map +1 -1
  39. package/dist/harmony110.cjs +12 -38
  40. package/dist/harmony110.cjs.map +1 -1
  41. package/dist/harmony110.mjs +12 -38
  42. package/dist/harmony110.mjs.map +1 -1
  43. package/dist/harmony111.cjs +18 -60
  44. package/dist/harmony111.cjs.map +1 -1
  45. package/dist/harmony111.mjs +18 -60
  46. package/dist/harmony111.mjs.map +1 -1
  47. package/dist/harmony112.cjs +6 -8
  48. package/dist/harmony112.cjs.map +1 -1
  49. package/dist/harmony112.mjs +5 -7
  50. package/dist/harmony112.mjs.map +1 -1
  51. package/dist/harmony113.cjs +5 -6
  52. package/dist/harmony113.cjs.map +1 -1
  53. package/dist/harmony113.mjs +5 -6
  54. package/dist/harmony114.cjs +61 -95
  55. package/dist/harmony114.cjs.map +1 -1
  56. package/dist/harmony114.mjs +61 -95
  57. package/dist/harmony114.mjs.map +1 -1
  58. package/dist/harmony115.cjs +88 -13
  59. package/dist/harmony115.cjs.map +1 -1
  60. package/dist/harmony115.mjs +88 -13
  61. package/dist/harmony115.mjs.map +1 -1
  62. package/dist/harmony116.cjs +19 -15
  63. package/dist/harmony116.cjs.map +1 -1
  64. package/dist/harmony116.mjs +18 -14
  65. package/dist/harmony116.mjs.map +1 -1
  66. package/dist/harmony117.cjs +94 -34
  67. package/dist/harmony117.cjs.map +1 -1
  68. package/dist/harmony117.mjs +94 -34
  69. package/dist/harmony117.mjs.map +1 -1
  70. package/dist/harmony118.cjs +11 -26
  71. package/dist/harmony118.cjs.map +1 -1
  72. package/dist/harmony118.mjs +11 -26
  73. package/dist/harmony118.mjs.map +1 -1
  74. package/dist/harmony119.cjs +12 -60
  75. package/dist/harmony119.cjs.map +1 -1
  76. package/dist/harmony119.mjs +12 -60
  77. package/dist/harmony119.mjs.map +1 -1
  78. package/dist/harmony120.cjs +36 -88
  79. package/dist/harmony120.cjs.map +1 -1
  80. package/dist/harmony120.mjs +36 -88
  81. package/dist/harmony120.mjs.map +1 -1
  82. package/dist/harmony121.cjs +29 -19
  83. package/dist/harmony121.cjs.map +1 -1
  84. package/dist/harmony121.mjs +28 -18
  85. package/dist/harmony121.mjs.map +1 -1
  86. package/dist/harmony122.cjs +7 -13
  87. package/dist/harmony122.cjs.map +1 -1
  88. package/dist/harmony122.mjs +7 -13
  89. package/dist/harmony122.mjs.map +1 -1
  90. package/dist/harmony123.cjs +57 -15
  91. package/dist/harmony123.cjs.map +1 -1
  92. package/dist/harmony123.mjs +57 -15
  93. package/dist/harmony123.mjs.map +1 -1
  94. package/dist/harmony124.cjs +59 -15
  95. package/dist/harmony124.cjs.map +1 -1
  96. package/dist/harmony124.mjs +59 -15
  97. package/dist/harmony124.mjs.map +1 -1
  98. package/dist/harmony125.cjs +19 -12
  99. package/dist/harmony125.cjs.map +1 -1
  100. package/dist/harmony125.mjs +18 -11
  101. package/dist/harmony125.mjs.map +1 -1
  102. package/dist/harmony126.cjs +12 -15
  103. package/dist/harmony126.cjs.map +1 -1
  104. package/dist/harmony126.mjs +12 -15
  105. package/dist/harmony126.mjs.map +1 -1
  106. package/dist/harmony127.cjs +13 -19
  107. package/dist/harmony127.cjs.map +1 -1
  108. package/dist/harmony127.mjs +13 -19
  109. package/dist/harmony127.mjs.map +1 -1
  110. package/dist/harmony128.cjs +14 -10
  111. package/dist/harmony128.cjs.map +1 -1
  112. package/dist/harmony128.mjs +14 -10
  113. package/dist/harmony128.mjs.map +1 -1
  114. package/dist/harmony129.cjs +11 -7
  115. package/dist/harmony129.cjs.map +1 -1
  116. package/dist/harmony129.mjs +11 -7
  117. package/dist/harmony129.mjs.map +1 -1
  118. package/dist/harmony13.cjs +8 -1
  119. package/dist/harmony13.cjs.map +1 -1
  120. package/dist/harmony13.mjs +8 -1
  121. package/dist/harmony13.mjs.map +1 -1
  122. package/dist/harmony130.cjs +15 -56
  123. package/dist/harmony130.cjs.map +1 -1
  124. package/dist/harmony130.mjs +15 -56
  125. package/dist/harmony130.mjs.map +1 -1
  126. package/dist/harmony131.cjs +20 -59
  127. package/dist/harmony131.cjs.map +1 -1
  128. package/dist/harmony131.mjs +20 -59
  129. package/dist/harmony131.mjs.map +1 -1
  130. package/dist/harmony132.cjs +13 -19
  131. package/dist/harmony132.cjs.map +1 -1
  132. package/dist/harmony132.mjs +12 -18
  133. package/dist/harmony132.mjs.map +1 -1
  134. package/dist/harmony133.cjs +46 -6
  135. package/dist/harmony133.cjs.map +1 -1
  136. package/dist/harmony133.mjs +46 -6
  137. package/dist/harmony133.mjs.map +1 -1
  138. package/dist/harmony134.cjs +13 -13
  139. package/dist/harmony134.cjs.map +1 -1
  140. package/dist/harmony134.mjs +12 -12
  141. package/dist/harmony134.mjs.map +1 -1
  142. package/dist/harmony135.cjs +5 -31
  143. package/dist/harmony135.cjs.map +1 -1
  144. package/dist/harmony135.mjs +5 -31
  145. package/dist/harmony135.mjs.map +1 -1
  146. package/dist/harmony136.cjs +11 -13
  147. package/dist/harmony136.cjs.map +1 -1
  148. package/dist/harmony136.mjs +11 -13
  149. package/dist/harmony136.mjs.map +1 -1
  150. package/dist/harmony137.cjs +31 -45
  151. package/dist/harmony137.cjs.map +1 -1
  152. package/dist/harmony137.mjs +31 -45
  153. package/dist/harmony137.mjs.map +1 -1
  154. package/dist/harmony138.cjs +15 -13
  155. package/dist/harmony138.cjs.map +1 -1
  156. package/dist/harmony138.mjs +14 -12
  157. package/dist/harmony138.mjs.map +1 -1
  158. package/dist/harmony16.cjs +1 -1
  159. package/dist/harmony16.mjs +1 -1
  160. package/dist/harmony23.cjs +1 -1
  161. package/dist/harmony23.mjs +1 -1
  162. package/dist/harmony24.cjs +1 -1
  163. package/dist/harmony24.mjs +1 -1
  164. package/dist/harmony39.cjs +1 -0
  165. package/dist/harmony39.cjs.map +1 -1
  166. package/dist/harmony39.mjs +1 -0
  167. package/dist/harmony39.mjs.map +1 -1
  168. package/dist/harmony71.cjs +1 -1
  169. package/dist/harmony71.mjs +1 -1
  170. package/dist/harmony72.cjs +1 -1
  171. package/dist/harmony72.mjs +1 -1
  172. package/dist/harmony73.cjs +1 -1
  173. package/dist/harmony73.mjs +1 -1
  174. package/dist/harmony74.cjs +2 -2
  175. package/dist/harmony74.mjs +2 -2
  176. package/dist/harmony75.cjs +2 -2
  177. package/dist/harmony75.mjs +2 -2
  178. package/dist/harmony76.cjs +2 -2
  179. package/dist/harmony76.mjs +2 -2
  180. package/dist/harmony77.cjs +2 -2
  181. package/dist/harmony77.mjs +2 -2
  182. package/dist/harmony78.cjs +3 -3
  183. package/dist/harmony78.mjs +3 -3
  184. package/dist/harmony79.cjs +6 -6
  185. package/dist/harmony79.mjs +6 -6
  186. package/dist/harmony82.cjs +2 -2
  187. package/dist/harmony82.mjs +2 -2
  188. package/dist/harmony85.cjs +7 -12
  189. package/dist/harmony85.cjs.map +1 -1
  190. package/dist/harmony85.mjs +6 -11
  191. package/dist/harmony85.mjs.map +1 -1
  192. package/dist/harmony86.cjs +8 -20
  193. package/dist/harmony86.cjs.map +1 -1
  194. package/dist/harmony86.mjs +8 -20
  195. package/dist/harmony86.mjs.map +1 -1
  196. package/dist/harmony87.cjs +6 -3
  197. package/dist/harmony87.cjs.map +1 -1
  198. package/dist/harmony87.mjs +6 -3
  199. package/dist/harmony87.mjs.map +1 -1
  200. package/dist/harmony88.cjs +57 -9
  201. package/dist/harmony88.cjs.map +1 -1
  202. package/dist/harmony88.mjs +56 -8
  203. package/dist/harmony88.mjs.map +1 -1
  204. package/dist/harmony89.cjs +42 -9
  205. package/dist/harmony89.cjs.map +1 -1
  206. package/dist/harmony89.mjs +41 -8
  207. package/dist/harmony89.mjs.map +1 -1
  208. package/dist/harmony90.cjs +5 -57
  209. package/dist/harmony90.cjs.map +1 -1
  210. package/dist/harmony90.mjs +5 -57
  211. package/dist/harmony90.mjs.map +1 -1
  212. package/dist/harmony91.cjs +9 -42
  213. package/dist/harmony91.cjs.map +1 -1
  214. package/dist/harmony91.mjs +8 -41
  215. package/dist/harmony91.mjs.map +1 -1
  216. package/dist/harmony92.cjs +25 -6
  217. package/dist/harmony92.cjs.map +1 -1
  218. package/dist/harmony92.mjs +24 -5
  219. package/dist/harmony92.mjs.map +1 -1
  220. package/dist/harmony93.cjs +3 -6
  221. package/dist/harmony93.cjs.map +1 -1
  222. package/dist/harmony93.mjs +3 -6
  223. package/dist/harmony93.mjs.map +1 -1
  224. package/dist/harmony94.cjs +21 -24
  225. package/dist/harmony94.cjs.map +1 -1
  226. package/dist/harmony94.mjs +20 -23
  227. package/dist/harmony94.mjs.map +1 -1
  228. package/dist/harmony95.cjs +9 -3
  229. package/dist/harmony95.cjs.map +1 -1
  230. package/dist/harmony95.mjs +9 -3
  231. package/dist/harmony95.mjs.map +1 -1
  232. package/dist/harmony96.cjs +9 -19
  233. package/dist/harmony96.cjs.map +1 -1
  234. package/dist/harmony96.mjs +11 -21
  235. package/dist/harmony96.mjs.map +1 -1
  236. package/dist/harmony97.cjs +20 -11
  237. package/dist/harmony97.cjs.map +1 -1
  238. package/dist/harmony97.mjs +20 -11
  239. package/dist/harmony97.mjs.map +1 -1
  240. package/package.json +2 -2
@@ -1,24 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const menuContainer = "_menuContainer_1phdw_10";
4
- const profileButton = "_profileButton_1phdw_20";
5
- const profileImage = "_profileImage_1phdw_33";
6
- const profileImageHighlight = "_profileImageHighlight_1phdw_41";
7
- const profileImageUpgradeIcon = "_profileImageUpgradeIcon_1phdw_45";
8
- const userIconWrapper = "_userIconWrapper_1phdw_51";
9
- const styles = {
10
- menuContainer,
11
- profileButton,
12
- profileImage,
13
- profileImageHighlight,
14
- profileImageUpgradeIcon,
15
- userIconWrapper
16
- };
17
- exports.default = styles;
18
- exports.menuContainer = menuContainer;
19
- exports.profileButton = profileButton;
20
- exports.profileImage = profileImage;
21
- exports.profileImageHighlight = profileImageHighlight;
22
- exports.profileImageUpgradeIcon = profileImageUpgradeIcon;
23
- exports.userIconWrapper = userIconWrapper;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const TasksContext = React.createContext({});
5
+ const useTasks = () => React.useContext(TasksContext);
6
+ exports.TasksContext = TasksContext;
7
+ exports.useTasks = useTasks;
24
8
  //# sourceMappingURL=harmony103.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony103.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony103.cjs","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":["createContext","useContext"],"mappings":";;;AAGa,MAAA,eAAeA,MAAc,cAAA,CAA8B,CAAA;AAE3D,MAAA,WAAW,MAAMC,MAAAA,WAAW,YAAY;;;"}
@@ -1,24 +1,8 @@
1
- const menuContainer = "_menuContainer_1phdw_10";
2
- const profileButton = "_profileButton_1phdw_20";
3
- const profileImage = "_profileImage_1phdw_33";
4
- const profileImageHighlight = "_profileImageHighlight_1phdw_41";
5
- const profileImageUpgradeIcon = "_profileImageUpgradeIcon_1phdw_45";
6
- const userIconWrapper = "_userIconWrapper_1phdw_51";
7
- const styles = {
8
- menuContainer,
9
- profileButton,
10
- profileImage,
11
- profileImageHighlight,
12
- profileImageUpgradeIcon,
13
- userIconWrapper
14
- };
1
+ import { createContext, useContext } from "react";
2
+ const TasksContext = createContext({});
3
+ const useTasks = () => useContext(TasksContext);
15
4
  export {
16
- styles as default,
17
- menuContainer,
18
- profileButton,
19
- profileImage,
20
- profileImageHighlight,
21
- profileImageUpgradeIcon,
22
- userIconWrapper
5
+ TasksContext,
6
+ useTasks
23
7
  };
24
8
  //# sourceMappingURL=harmony103.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony103.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony103.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,9 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const SidebarTeamRoles = {
4
- admin: "admin",
5
- biller: "biller",
6
- owner: "owner"
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const louis = require("@lokalise/louis");
5
+ const useEffectOnce = require("./harmony12.cjs");
6
+ const TaskOverview = require("./harmony115.cjs");
7
+ const TasksContext = require("./harmony103.cjs");
8
+ const taskEvents = require("./harmony106.cjs");
9
+ const TasksPopover_module = require("./harmony116.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)) });
7
41
  };
8
- exports.SidebarTeamRoles = SidebarTeamRoles;
42
+ exports.TasksPopover = TasksPopover;
9
43
  //# sourceMappingURL=harmony104.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony104.cjs","sources":["../src/components/Sidebar/types.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const SidebarTeamRoles = {\n\tmember: 'member',\n\tadmin: 'admin',\n\tbiller: 'biller',\n\towner: 'owner',\n} as const\n\nexport type SidebarTeamRole = TypesFromMap<typeof SidebarTeamRoles>\n\nexport type SidebarTeam = {\n\tid: number\n\tname: string\n\trole: SidebarTeamRole\n\tlogoUrl: string\n}\n"],"names":[],"mappings":";;AAEO,MAAM,mBAAmB;AAAA,EAE/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACR;;"}
1
+ {"version":3,"file":"harmony104.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,9 +1,43 @@
1
- const SidebarTeamRoles = {
2
- admin: "admin",
3
- biller: "biller",
4
- owner: "owner"
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Loading, Link } from "@lokalise/louis";
3
+ import { useEffectOnce } from "./harmony12.mjs";
4
+ import { TaskOverview } from "./harmony115.mjs";
5
+ import { useTasks } from "./harmony103.mjs";
6
+ import { TaskEvents } from "./harmony106.mjs";
7
+ import styles from "./harmony116.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)) });
5
39
  };
6
40
  export {
7
- SidebarTeamRoles
41
+ TasksPopover
8
42
  };
9
43
  //# sourceMappingURL=harmony104.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony104.mjs","sources":["../src/components/Sidebar/types.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const SidebarTeamRoles = {\n\tmember: 'member',\n\tadmin: 'admin',\n\tbiller: 'biller',\n\towner: 'owner',\n} as const\n\nexport type SidebarTeamRole = TypesFromMap<typeof SidebarTeamRoles>\n\nexport type SidebarTeam = {\n\tid: number\n\tname: string\n\trole: SidebarTeamRole\n\tlogoUrl: string\n}\n"],"names":[],"mappings":"AAEO,MAAM,mBAAmB;AAAA,EAE/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACR;"}
1
+ {"version":3,"file":"harmony104.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,8 +1,63 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const _commonjsHelpers = require("./harmony133.cjs");
4
- const debounce$1 = require("./harmony114.cjs");
5
- var debounceExports = debounce$1.__require();
6
- const debounce = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(debounceExports);
7
- exports.default = debounce;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useEffectOnce = require("./harmony12.cjs");
5
+ const React = require("react");
6
+ const TasksContext = require("./harmony103.cjs");
7
+ const taskEvents = require("./harmony106.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 });
56
+ };
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;
8
63
  //# sourceMappingURL=harmony105.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony105.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"harmony105.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,8 +1,63 @@
1
- import { getDefaultExportFromCjs } from "./harmony133.mjs";
2
- import { __require as requireDebounce } from "./harmony114.mjs";
3
- var debounceExports = requireDebounce();
4
- const debounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useEffectOnce } from "./harmony12.mjs";
3
+ import { useState } from "react";
4
+ import { TasksContext } from "./harmony103.mjs";
5
+ import { TaskEvents } from "./harmony106.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 }) });
58
+ };
5
59
  export {
6
- debounce as default
60
+ TasksProvider,
61
+ withTasksContext
7
62
  };
8
63
  //# sourceMappingURL=harmony105.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony105.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"harmony105.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,8 +1,10 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const _commonjsHelpers = require("./harmony133.cjs");
4
- const throttle$1 = require("./harmony118.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 TaskEvents = {
4
+ TaskCompleted: "task_completed",
5
+ TaskClosed: "task_closed",
6
+ Refresh: "refresh",
7
+ ShowDialog: "show_dialog"
8
+ };
9
+ exports.TaskEvents = TaskEvents;
8
10
  //# sourceMappingURL=harmony106.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony106.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"harmony106.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,8 +1,10 @@
1
- import { getDefaultExportFromCjs } from "./harmony133.mjs";
2
- import { __require as requireThrottle } from "./harmony118.mjs";
3
- var throttleExports = requireThrottle();
4
- const throttle = /* @__PURE__ */ getDefaultExportFromCjs(throttleExports);
1
+ const TaskEvents = {
2
+ TaskCompleted: "task_completed",
3
+ TaskClosed: "task_closed",
4
+ Refresh: "refresh",
5
+ ShowDialog: "show_dialog"
6
+ };
5
7
  export {
6
- throttle as default
8
+ TaskEvents
7
9
  };
8
10
  //# sourceMappingURL=harmony106.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony106.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"harmony106.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,135 +1,24 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const floatingUi_utils = require("./harmony119.cjs");
4
- async function detectOverflow(state, options) {
5
- var _await$platform$isEle;
6
- if (options === void 0) {
7
- options = {};
8
- }
9
- const {
10
- x,
11
- y,
12
- platform,
13
- rects,
14
- elements,
15
- strategy
16
- } = state;
17
- const {
18
- boundary = "clippingAncestors",
19
- rootBoundary = "viewport",
20
- elementContext = "floating",
21
- altBoundary = false,
22
- padding = 0
23
- } = floatingUi_utils.evaluate(options, state);
24
- const paddingObject = floatingUi_utils.getPaddingObject(padding);
25
- const altContext = elementContext === "floating" ? "reference" : "floating";
26
- const element = elements[altBoundary ? altContext : elementContext];
27
- const clippingClientRect = floatingUi_utils.rectToClientRect(await platform.getClippingRect({
28
- element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)),
29
- boundary,
30
- rootBoundary,
31
- strategy
32
- }));
33
- const rect = elementContext === "floating" ? {
34
- x,
35
- y,
36
- width: rects.floating.width,
37
- height: rects.floating.height
38
- } : rects.reference;
39
- const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
40
- const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || {
41
- x: 1,
42
- y: 1
43
- } : {
44
- x: 1,
45
- y: 1
46
- };
47
- const elementClientRect = floatingUi_utils.rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
48
- elements,
49
- rect,
50
- offsetParent,
51
- strategy
52
- }) : rect);
53
- return {
54
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
55
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
56
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
57
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
58
- };
59
- }
60
- const shift = function(options) {
61
- if (options === void 0) {
62
- options = {};
63
- }
64
- return {
65
- name: "shift",
66
- options,
67
- async fn(state) {
68
- const {
69
- x,
70
- y,
71
- placement
72
- } = state;
73
- const {
74
- mainAxis: checkMainAxis = true,
75
- crossAxis: checkCrossAxis = false,
76
- limiter = {
77
- fn: (_ref) => {
78
- let {
79
- x: x2,
80
- y: y2
81
- } = _ref;
82
- return {
83
- x: x2,
84
- y: y2
85
- };
86
- }
87
- },
88
- ...detectOverflowOptions
89
- } = floatingUi_utils.evaluate(options, state);
90
- const coords = {
91
- x,
92
- y
93
- };
94
- const overflow = await detectOverflow(state, detectOverflowOptions);
95
- const crossAxis = floatingUi_utils.getSideAxis(floatingUi_utils.getSide(placement));
96
- const mainAxis = floatingUi_utils.getOppositeAxis(crossAxis);
97
- let mainAxisCoord = coords[mainAxis];
98
- let crossAxisCoord = coords[crossAxis];
99
- if (checkMainAxis) {
100
- const minSide = mainAxis === "y" ? "top" : "left";
101
- const maxSide = mainAxis === "y" ? "bottom" : "right";
102
- const min = mainAxisCoord + overflow[minSide];
103
- const max = mainAxisCoord - overflow[maxSide];
104
- mainAxisCoord = floatingUi_utils.clamp(min, mainAxisCoord, max);
105
- }
106
- if (checkCrossAxis) {
107
- const minSide = crossAxis === "y" ? "top" : "left";
108
- const maxSide = crossAxis === "y" ? "bottom" : "right";
109
- const min = crossAxisCoord + overflow[minSide];
110
- const max = crossAxisCoord - overflow[maxSide];
111
- crossAxisCoord = floatingUi_utils.clamp(min, crossAxisCoord, max);
112
- }
113
- const limitedCoords = limiter.fn({
114
- ...state,
115
- [mainAxis]: mainAxisCoord,
116
- [crossAxis]: crossAxisCoord
117
- });
118
- return {
119
- ...limitedCoords,
120
- data: {
121
- x: limitedCoords.x - x,
122
- y: limitedCoords.y - y,
123
- enabled: {
124
- [mainAxis]: checkMainAxis,
125
- [crossAxis]: checkCrossAxis
126
- }
127
- }
128
- };
129
- }
130
- };
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const menuContainer = "_menuContainer_1phdw_10";
4
+ const profileButton = "_profileButton_1phdw_20";
5
+ const profileImage = "_profileImage_1phdw_33";
6
+ const profileImageHighlight = "_profileImageHighlight_1phdw_41";
7
+ const profileImageUpgradeIcon = "_profileImageUpgradeIcon_1phdw_45";
8
+ const userIconWrapper = "_userIconWrapper_1phdw_51";
9
+ const styles = {
10
+ menuContainer,
11
+ profileButton,
12
+ profileImage,
13
+ profileImageHighlight,
14
+ profileImageUpgradeIcon,
15
+ userIconWrapper
131
16
  };
132
- exports.rectToClientRect = floatingUi_utils.rectToClientRect;
133
- exports.detectOverflow = detectOverflow;
134
- exports.shift = shift;
17
+ exports.default = styles;
18
+ exports.menuContainer = menuContainer;
19
+ exports.profileButton = profileButton;
20
+ exports.profileImage = profileImage;
21
+ exports.profileImageHighlight = profileImageHighlight;
22
+ exports.profileImageUpgradeIcon = profileImageUpgradeIcon;
23
+ exports.userIconWrapper = userIconWrapper;
135
24
  //# sourceMappingURL=harmony107.cjs.map