@lokalise/harmony 1.26.1 → 1.26.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 (404) hide show
  1. package/dist/harmony.cjs +65 -43
  2. package/dist/harmony.cjs.map +1 -1
  3. package/dist/harmony.mjs +37 -15
  4. package/dist/harmony.mjs.map +1 -1
  5. package/dist/harmony100.cjs +60 -12
  6. package/dist/harmony100.cjs.map +1 -1
  7. package/dist/harmony100.mjs +60 -12
  8. package/dist/harmony100.mjs.map +1 -1
  9. package/dist/harmony101.cjs +88 -36
  10. package/dist/harmony101.cjs.map +1 -1
  11. package/dist/harmony101.mjs +88 -36
  12. package/dist/harmony101.mjs.map +1 -1
  13. package/dist/harmony102.cjs +19 -29
  14. package/dist/harmony102.cjs.map +1 -1
  15. package/dist/harmony102.mjs +18 -28
  16. package/dist/harmony102.mjs.map +1 -1
  17. package/dist/harmony103.cjs +95 -12
  18. package/dist/harmony103.cjs.map +1 -1
  19. package/dist/harmony103.mjs +95 -12
  20. package/dist/harmony103.mjs.map +1 -1
  21. package/dist/harmony104.cjs +11 -13
  22. package/dist/harmony104.cjs.map +1 -1
  23. package/dist/harmony104.mjs +11 -13
  24. package/dist/harmony104.mjs.map +1 -1
  25. package/dist/harmony105.cjs +13 -15
  26. package/dist/harmony105.cjs.map +1 -1
  27. package/dist/harmony105.mjs +13 -15
  28. package/dist/harmony105.mjs.map +1 -1
  29. package/dist/harmony106.cjs +36 -7
  30. package/dist/harmony106.cjs.map +1 -1
  31. package/dist/harmony106.mjs +36 -7
  32. package/dist/harmony106.mjs.map +1 -1
  33. package/dist/harmony107.cjs +27 -56
  34. package/dist/harmony107.cjs.map +1 -1
  35. package/dist/harmony107.mjs +27 -56
  36. package/dist/harmony107.mjs.map +1 -1
  37. package/dist/harmony108.cjs +6 -59
  38. package/dist/harmony108.cjs.map +1 -1
  39. package/dist/harmony108.mjs +6 -59
  40. package/dist/harmony108.mjs.map +1 -1
  41. package/dist/harmony109.cjs +57 -18
  42. package/dist/harmony109.cjs.map +1 -1
  43. package/dist/harmony109.mjs +56 -17
  44. package/dist/harmony109.mjs.map +1 -1
  45. package/dist/harmony110.cjs +60 -11
  46. package/dist/harmony110.cjs.map +1 -1
  47. package/dist/harmony110.mjs +60 -11
  48. package/dist/harmony110.mjs.map +1 -1
  49. package/dist/harmony111.cjs +19 -17
  50. package/dist/harmony111.cjs.map +1 -1
  51. package/dist/harmony111.mjs +18 -16
  52. package/dist/harmony111.mjs.map +1 -1
  53. package/dist/harmony112.cjs +12 -20
  54. package/dist/harmony112.cjs.map +1 -1
  55. package/dist/harmony112.mjs +12 -20
  56. package/dist/harmony112.mjs.map +1 -1
  57. package/dist/harmony113.cjs +13 -10
  58. package/dist/harmony113.cjs.map +1 -1
  59. package/dist/harmony113.mjs +13 -10
  60. package/dist/harmony113.mjs.map +1 -1
  61. package/dist/harmony114.cjs +16 -46
  62. package/dist/harmony114.cjs.map +1 -1
  63. package/dist/harmony114.mjs +16 -46
  64. package/dist/harmony114.mjs.map +1 -1
  65. package/dist/harmony115.cjs +12 -13
  66. package/dist/harmony115.cjs.map +1 -1
  67. package/dist/harmony115.mjs +11 -12
  68. package/dist/harmony115.mjs.map +1 -1
  69. package/dist/harmony116.cjs +15 -5
  70. package/dist/harmony116.cjs.map +1 -1
  71. package/dist/harmony116.mjs +15 -5
  72. package/dist/harmony116.mjs.map +1 -1
  73. package/dist/harmony117.cjs +20 -11
  74. package/dist/harmony117.cjs.map +1 -1
  75. package/dist/harmony117.mjs +20 -11
  76. package/dist/harmony117.mjs.map +1 -1
  77. package/dist/harmony118.cjs +10 -30
  78. package/dist/harmony118.cjs.map +1 -1
  79. package/dist/harmony118.mjs +10 -30
  80. package/dist/harmony118.mjs.map +1 -1
  81. package/dist/harmony119.cjs +46 -14
  82. package/dist/harmony119.cjs.map +1 -1
  83. package/dist/harmony119.mjs +46 -14
  84. package/dist/harmony119.mjs.map +1 -1
  85. package/dist/harmony120.cjs +15 -0
  86. package/dist/harmony120.cjs.map +1 -0
  87. package/dist/harmony120.mjs +15 -0
  88. package/dist/harmony120.mjs.map +1 -0
  89. package/dist/harmony121.cjs +9 -0
  90. package/dist/harmony121.cjs.map +1 -0
  91. package/dist/harmony121.mjs +9 -0
  92. package/dist/harmony121.mjs.map +1 -0
  93. package/dist/harmony122.cjs +15 -0
  94. package/dist/harmony122.cjs.map +1 -0
  95. package/dist/harmony122.mjs +15 -0
  96. package/dist/harmony122.mjs.map +1 -0
  97. package/dist/harmony123.cjs +35 -0
  98. package/dist/harmony123.cjs.map +1 -0
  99. package/dist/harmony123.mjs +35 -0
  100. package/dist/harmony123.mjs.map +1 -0
  101. package/dist/harmony124.cjs +17 -0
  102. package/dist/harmony124.cjs.map +1 -0
  103. package/dist/harmony124.mjs +17 -0
  104. package/dist/harmony124.mjs.map +1 -0
  105. package/dist/harmony15.cjs +1 -1
  106. package/dist/harmony15.mjs +1 -1
  107. package/dist/harmony20.cjs +1 -1
  108. package/dist/harmony20.mjs +1 -1
  109. package/dist/harmony21.cjs +1 -1
  110. package/dist/harmony21.mjs +1 -1
  111. package/dist/harmony22.cjs +2 -2
  112. package/dist/harmony22.mjs +2 -2
  113. package/dist/harmony23.cjs +1 -1
  114. package/dist/harmony23.mjs +1 -1
  115. package/dist/harmony24.cjs +1 -1
  116. package/dist/harmony24.mjs +1 -1
  117. package/dist/harmony26.cjs +2 -2
  118. package/dist/harmony26.mjs +2 -2
  119. package/dist/harmony27.cjs +2 -2
  120. package/dist/harmony27.mjs +2 -2
  121. package/dist/harmony28.cjs +10 -37
  122. package/dist/harmony28.cjs.map +1 -1
  123. package/dist/harmony28.mjs +10 -37
  124. package/dist/harmony28.mjs.map +1 -1
  125. package/dist/harmony29.cjs +37 -9
  126. package/dist/harmony29.cjs.map +1 -1
  127. package/dist/harmony29.mjs +37 -9
  128. package/dist/harmony29.mjs.map +1 -1
  129. package/dist/harmony3.cjs +3 -3
  130. package/dist/harmony3.mjs +3 -3
  131. package/dist/harmony30.cjs +10 -13
  132. package/dist/harmony30.cjs.map +1 -1
  133. package/dist/harmony30.mjs +10 -13
  134. package/dist/harmony30.mjs.map +1 -1
  135. package/dist/harmony31.cjs +10 -80
  136. package/dist/harmony31.cjs.map +1 -1
  137. package/dist/harmony31.mjs +9 -79
  138. package/dist/harmony31.mjs.map +1 -1
  139. package/dist/harmony32.cjs +13 -109
  140. package/dist/harmony32.cjs.map +1 -1
  141. package/dist/harmony32.mjs +12 -108
  142. package/dist/harmony32.mjs.map +1 -1
  143. package/dist/harmony33.cjs +14 -8
  144. package/dist/harmony33.cjs.map +1 -1
  145. package/dist/harmony33.mjs +14 -8
  146. package/dist/harmony33.mjs.map +1 -1
  147. package/dist/harmony34.cjs +14 -56
  148. package/dist/harmony34.cjs.map +1 -1
  149. package/dist/harmony34.mjs +14 -56
  150. package/dist/harmony34.mjs.map +1 -1
  151. package/dist/harmony35.cjs +13 -24
  152. package/dist/harmony35.cjs.map +1 -1
  153. package/dist/harmony35.mjs +13 -24
  154. package/dist/harmony35.mjs.map +1 -1
  155. package/dist/harmony36.cjs +17 -18
  156. package/dist/harmony36.cjs.map +1 -1
  157. package/dist/harmony36.mjs +17 -18
  158. package/dist/harmony36.mjs.map +1 -1
  159. package/dist/harmony37.cjs +14 -20
  160. package/dist/harmony37.cjs.map +1 -1
  161. package/dist/harmony37.mjs +14 -20
  162. package/dist/harmony37.mjs.map +1 -1
  163. package/dist/harmony38.cjs +13 -11
  164. package/dist/harmony38.cjs.map +1 -1
  165. package/dist/harmony38.mjs +14 -12
  166. package/dist/harmony38.mjs.map +1 -1
  167. package/dist/harmony39.cjs +9 -9
  168. package/dist/harmony39.cjs.map +1 -1
  169. package/dist/harmony39.mjs +9 -9
  170. package/dist/harmony39.mjs.map +1 -1
  171. package/dist/harmony4.cjs +10 -10
  172. package/dist/harmony4.mjs +10 -10
  173. package/dist/harmony40.cjs +14 -12
  174. package/dist/harmony40.cjs.map +1 -1
  175. package/dist/harmony40.mjs +15 -13
  176. package/dist/harmony40.mjs.map +1 -1
  177. package/dist/harmony42.cjs +1 -1
  178. package/dist/harmony42.mjs +1 -1
  179. package/dist/harmony44.cjs +1 -1
  180. package/dist/harmony44.mjs +1 -1
  181. package/dist/harmony45.cjs +1 -1
  182. package/dist/harmony45.mjs +1 -1
  183. package/dist/harmony46.cjs +56 -14
  184. package/dist/harmony46.cjs.map +1 -1
  185. package/dist/harmony46.mjs +56 -14
  186. package/dist/harmony46.mjs.map +1 -1
  187. package/dist/harmony47.cjs +79 -16
  188. package/dist/harmony47.cjs.map +1 -1
  189. package/dist/harmony47.mjs +79 -16
  190. package/dist/harmony47.mjs.map +1 -1
  191. package/dist/harmony48.cjs +21 -16
  192. package/dist/harmony48.cjs.map +1 -1
  193. package/dist/harmony48.mjs +20 -15
  194. package/dist/harmony48.mjs.map +1 -1
  195. package/dist/harmony49.cjs +111 -19
  196. package/dist/harmony49.cjs.map +1 -1
  197. package/dist/harmony49.mjs +110 -18
  198. package/dist/harmony49.mjs.map +1 -1
  199. package/dist/harmony5.cjs +1 -1
  200. package/dist/harmony5.mjs +1 -1
  201. package/dist/harmony50.cjs +22 -62
  202. package/dist/harmony50.cjs.map +1 -1
  203. package/dist/harmony50.mjs +21 -61
  204. package/dist/harmony50.mjs.map +1 -1
  205. package/dist/harmony51.cjs +27 -7
  206. package/dist/harmony51.cjs.map +1 -1
  207. package/dist/harmony51.mjs +26 -6
  208. package/dist/harmony51.mjs.map +1 -1
  209. package/dist/harmony52.cjs +8 -9
  210. package/dist/harmony52.cjs.map +1 -1
  211. package/dist/harmony52.mjs +8 -9
  212. package/dist/harmony52.mjs.map +1 -1
  213. package/dist/harmony53.cjs +24 -18
  214. package/dist/harmony53.cjs.map +1 -1
  215. package/dist/harmony53.mjs +24 -18
  216. package/dist/harmony53.mjs.map +1 -1
  217. package/dist/harmony54.cjs +18 -23
  218. package/dist/harmony54.cjs.map +1 -1
  219. package/dist/harmony54.mjs +18 -23
  220. package/dist/harmony54.mjs.map +1 -1
  221. package/dist/harmony55.cjs +16 -6
  222. package/dist/harmony55.cjs.map +1 -1
  223. package/dist/harmony55.mjs +15 -5
  224. package/dist/harmony55.mjs.map +1 -1
  225. package/dist/harmony56.cjs +18 -32
  226. package/dist/harmony56.cjs.map +1 -1
  227. package/dist/harmony56.mjs +17 -31
  228. package/dist/harmony56.mjs.map +1 -1
  229. package/dist/harmony57.cjs +61 -32
  230. package/dist/harmony57.cjs.map +1 -1
  231. package/dist/harmony57.mjs +60 -31
  232. package/dist/harmony57.mjs.map +1 -1
  233. package/dist/harmony58.cjs +6 -19
  234. package/dist/harmony58.cjs.map +1 -1
  235. package/dist/harmony58.mjs +5 -18
  236. package/dist/harmony58.mjs.map +1 -1
  237. package/dist/harmony59.cjs +8 -30
  238. package/dist/harmony59.cjs.map +1 -1
  239. package/dist/harmony59.mjs +9 -31
  240. package/dist/harmony59.mjs.map +1 -1
  241. package/dist/harmony6.cjs +4 -4
  242. package/dist/harmony6.mjs +4 -4
  243. package/dist/harmony60.cjs +13 -54
  244. package/dist/harmony60.cjs.map +1 -1
  245. package/dist/harmony60.mjs +15 -56
  246. package/dist/harmony60.mjs.map +1 -1
  247. package/dist/harmony61.cjs +23 -9
  248. package/dist/harmony61.cjs.map +1 -1
  249. package/dist/harmony61.mjs +22 -8
  250. package/dist/harmony61.mjs.map +1 -1
  251. package/dist/harmony62.cjs +4 -7
  252. package/dist/harmony62.cjs.map +1 -1
  253. package/dist/harmony62.mjs +5 -8
  254. package/dist/harmony62.mjs.map +1 -1
  255. package/dist/harmony63.cjs +30 -27
  256. package/dist/harmony63.cjs.map +1 -1
  257. package/dist/harmony63.mjs +32 -29
  258. package/dist/harmony63.mjs.map +1 -1
  259. package/dist/harmony64.cjs +32 -3
  260. package/dist/harmony64.cjs.map +1 -1
  261. package/dist/harmony64.mjs +32 -3
  262. package/dist/harmony64.mjs.map +1 -1
  263. package/dist/harmony65.cjs +19 -6
  264. package/dist/harmony65.cjs.map +1 -1
  265. package/dist/harmony65.mjs +18 -5
  266. package/dist/harmony65.mjs.map +1 -1
  267. package/dist/harmony66.cjs +31 -9
  268. package/dist/harmony66.cjs.map +1 -1
  269. package/dist/harmony66.mjs +30 -8
  270. package/dist/harmony66.mjs.map +1 -1
  271. package/dist/harmony67.cjs +60 -10
  272. package/dist/harmony67.cjs.map +1 -1
  273. package/dist/harmony67.mjs +59 -9
  274. package/dist/harmony67.mjs.map +1 -1
  275. package/dist/harmony68.cjs +9 -57
  276. package/dist/harmony68.cjs.map +1 -1
  277. package/dist/harmony68.mjs +8 -56
  278. package/dist/harmony68.mjs.map +1 -1
  279. package/dist/harmony69.cjs +7 -31
  280. package/dist/harmony69.cjs.map +1 -1
  281. package/dist/harmony69.mjs +8 -32
  282. package/dist/harmony69.mjs.map +1 -1
  283. package/dist/harmony70.cjs +28 -4
  284. package/dist/harmony70.cjs.map +1 -1
  285. package/dist/harmony70.mjs +29 -5
  286. package/dist/harmony70.mjs.map +1 -1
  287. package/dist/harmony71.cjs +4 -10
  288. package/dist/harmony71.cjs.map +1 -1
  289. package/dist/harmony71.mjs +3 -9
  290. package/dist/harmony71.mjs.map +1 -1
  291. package/dist/harmony72.cjs +12 -25
  292. package/dist/harmony72.cjs.map +1 -1
  293. package/dist/harmony72.mjs +11 -24
  294. package/dist/harmony72.mjs.map +1 -1
  295. package/dist/harmony73.cjs +20 -5
  296. package/dist/harmony73.cjs.map +1 -1
  297. package/dist/harmony73.mjs +20 -5
  298. package/dist/harmony73.mjs.map +1 -1
  299. package/dist/harmony74.cjs +6 -21
  300. package/dist/harmony74.cjs.map +1 -1
  301. package/dist/harmony74.mjs +5 -20
  302. package/dist/harmony74.mjs.map +1 -1
  303. package/dist/harmony75.cjs +6 -9
  304. package/dist/harmony75.cjs.map +1 -1
  305. package/dist/harmony75.mjs +6 -9
  306. package/dist/harmony75.mjs.map +1 -1
  307. package/dist/harmony76.cjs +10 -12
  308. package/dist/harmony76.cjs.map +1 -1
  309. package/dist/harmony76.mjs +9 -11
  310. package/dist/harmony76.mjs.map +1 -1
  311. package/dist/harmony77.cjs +57 -21
  312. package/dist/harmony77.cjs.map +1 -1
  313. package/dist/harmony77.mjs +56 -20
  314. package/dist/harmony77.mjs.map +1 -1
  315. package/dist/harmony78.cjs +32 -18
  316. package/dist/harmony78.cjs.map +1 -1
  317. package/dist/harmony78.mjs +32 -18
  318. package/dist/harmony78.mjs.map +1 -1
  319. package/dist/harmony79.cjs +5 -14
  320. package/dist/harmony79.cjs.map +1 -1
  321. package/dist/harmony79.mjs +5 -14
  322. package/dist/harmony79.mjs.map +1 -1
  323. package/dist/harmony80.cjs +10 -27
  324. package/dist/harmony80.cjs.map +1 -1
  325. package/dist/harmony80.mjs +9 -26
  326. package/dist/harmony80.mjs.map +1 -1
  327. package/dist/harmony81.cjs +25 -12
  328. package/dist/harmony81.cjs.map +1 -1
  329. package/dist/harmony81.mjs +24 -11
  330. package/dist/harmony81.mjs.map +1 -1
  331. package/dist/harmony82.cjs +6 -99
  332. package/dist/harmony82.cjs.map +1 -1
  333. package/dist/harmony82.mjs +5 -81
  334. package/dist/harmony82.mjs.map +1 -1
  335. package/dist/harmony83.cjs +21 -21
  336. package/dist/harmony83.cjs.map +1 -1
  337. package/dist/harmony83.mjs +20 -20
  338. package/dist/harmony83.mjs.map +1 -1
  339. package/dist/harmony84.cjs +12 -5
  340. package/dist/harmony84.cjs.map +1 -1
  341. package/dist/harmony84.mjs +11 -4
  342. package/dist/harmony84.mjs.map +1 -1
  343. package/dist/harmony85.cjs +18 -132
  344. package/dist/harmony85.cjs.map +1 -1
  345. package/dist/harmony85.mjs +18 -132
  346. package/dist/harmony85.mjs.map +1 -1
  347. package/dist/harmony86.cjs +14 -12
  348. package/dist/harmony86.cjs.map +1 -1
  349. package/dist/harmony86.mjs +13 -11
  350. package/dist/harmony86.mjs.map +1 -1
  351. package/dist/harmony87.cjs +16 -5
  352. package/dist/harmony87.cjs.map +1 -1
  353. package/dist/harmony87.mjs +16 -5
  354. package/dist/harmony87.mjs.map +1 -1
  355. package/dist/harmony88.cjs +21 -40
  356. package/dist/harmony88.cjs.map +1 -1
  357. package/dist/harmony88.mjs +20 -39
  358. package/dist/harmony88.mjs.map +1 -1
  359. package/dist/harmony89.cjs +4 -59
  360. package/dist/harmony89.cjs.map +1 -1
  361. package/dist/harmony89.mjs +4 -59
  362. package/dist/harmony89.mjs.map +1 -1
  363. package/dist/harmony90.cjs +98 -6
  364. package/dist/harmony90.cjs.map +1 -1
  365. package/dist/harmony90.mjs +81 -6
  366. package/dist/harmony90.mjs.map +1 -1
  367. package/dist/harmony91.cjs +132 -6
  368. package/dist/harmony91.cjs.map +1 -1
  369. package/dist/harmony91.mjs +131 -5
  370. package/dist/harmony91.mjs.map +1 -1
  371. package/dist/harmony92.cjs +12 -5
  372. package/dist/harmony92.cjs.map +1 -1
  373. package/dist/harmony92.mjs +12 -5
  374. package/dist/harmony92.mjs.map +1 -1
  375. package/dist/harmony93.cjs +6 -6
  376. package/dist/harmony93.cjs.map +1 -1
  377. package/dist/harmony93.mjs +5 -5
  378. package/dist/harmony93.mjs.map +1 -1
  379. package/dist/harmony94.cjs +40 -16
  380. package/dist/harmony94.cjs.map +1 -1
  381. package/dist/harmony94.mjs +40 -16
  382. package/dist/harmony94.mjs.map +1 -1
  383. package/dist/harmony95.cjs +57 -59
  384. package/dist/harmony95.cjs.map +1 -1
  385. package/dist/harmony95.mjs +57 -59
  386. package/dist/harmony95.mjs.map +1 -1
  387. package/dist/harmony96.cjs +6 -87
  388. package/dist/harmony96.cjs.map +1 -1
  389. package/dist/harmony96.mjs +6 -87
  390. package/dist/harmony96.mjs.map +1 -1
  391. package/dist/harmony97.cjs +3 -15
  392. package/dist/harmony97.cjs.map +1 -1
  393. package/dist/harmony97.mjs +3 -15
  394. package/dist/harmony97.mjs.map +1 -1
  395. package/dist/harmony98.cjs +6 -97
  396. package/dist/harmony98.cjs.map +1 -1
  397. package/dist/harmony98.mjs +5 -96
  398. package/dist/harmony98.mjs.map +1 -1
  399. package/dist/harmony99.cjs +6 -14
  400. package/dist/harmony99.cjs.map +1 -1
  401. package/dist/harmony99.mjs +5 -13
  402. package/dist/harmony99.mjs.map +1 -1
  403. package/dist/types/src/features/publicApi/node.d.ts +16 -9
  404. package/package.json +1 -1
@@ -1,65 +1,63 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const min = Math.min;
4
- const max = Math.max;
5
- function clamp(start, value, end) {
6
- return max(start, min(value, end));
7
- }
8
- function evaluate(value, param) {
9
- return typeof value === "function" ? value(param) : value;
10
- }
11
- function getSide(placement) {
12
- return placement.split("-")[0];
13
- }
14
- function getOppositeAxis(axis) {
15
- return axis === "x" ? "y" : "x";
16
- }
17
- function getSideAxis(placement) {
18
- return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x";
19
- }
20
- function expandPaddingObject(padding) {
21
- return {
22
- top: 0,
23
- right: 0,
24
- bottom: 0,
25
- left: 0,
26
- ...padding
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useEffectOnce = require("./harmony11.cjs");
5
+ const React = require("react");
6
+ const TasksContext = require("./harmony93.cjs");
7
+ const taskEvents = require("./harmony96.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
27
  };
28
- }
29
- function getPaddingObject(padding) {
30
- return typeof padding !== "number" ? expandPaddingObject(padding) : {
31
- top: padding,
32
- right: padding,
33
- bottom: padding,
34
- left: padding
28
+ const fetchTaskCount = async () => {
29
+ const result = await getTasksCount();
30
+ setTaskCount(result);
35
31
  };
36
- }
37
- function rectToClientRect(rect) {
38
- const {
39
- x,
40
- y,
41
- width,
42
- height
43
- } = rect;
44
- return {
45
- width,
46
- height,
47
- top: y,
48
- left: x,
49
- right: x + width,
50
- bottom: y + height,
51
- x,
52
- y
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
53
54
  };
54
- }
55
- exports.clamp = clamp;
56
- exports.evaluate = evaluate;
57
- exports.expandPaddingObject = expandPaddingObject;
58
- exports.getOppositeAxis = getOppositeAxis;
59
- exports.getPaddingObject = getPaddingObject;
60
- exports.getSide = getSide;
61
- exports.getSideAxis = getSideAxis;
62
- exports.max = max;
63
- exports.min = min;
64
- exports.rectToClientRect = rectToClientRect;
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;
65
63
  //# sourceMappingURL=harmony95.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony95.cjs","sources":["../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"],"sourcesContent":["/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n"],"names":[],"mappings":";;AAQK,MAAC,MAAM,KAAK;AACZ,MAAC,MAAM,KAAK;AAiBjB,SAAS,MAAM,OAAO,OAAO,KAAK;AAChC,SAAO,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC;AACnC;AACA,SAAS,SAAS,OAAO,OAAO;AAC9B,SAAO,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AACtD;AACA,SAAS,QAAQ,WAAW;AAC1B,SAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AAIA,SAAS,gBAAgB,MAAM;AAC7B,SAAO,SAAS,MAAM,MAAM;AAC9B;AAIA,SAAS,YAAY,WAAW;AAC9B,SAAO,CAAC,OAAO,QAAQ,EAAE,SAAS,QAAQ,SAAS,CAAC,IAAI,MAAM;AAChE;AAuDA,SAAS,oBAAoB,SAAS;AACpC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,GAAG;AAAA,EACJ;AACH;AACA,SAAS,iBAAiB,SAAS;AACjC,SAAO,OAAO,YAAY,WAAW,oBAAoB,OAAO,IAAI;AAAA,IAClE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACP;AACH;AACA,SAAS,iBAAiB,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO,IAAI;AAAA,IACX,QAAQ,IAAI;AAAA,IACZ;AAAA,IACA;AAAA,EACD;AACH;;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony95.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,65 +1,63 @@
1
- const min = Math.min;
2
- const max = Math.max;
3
- function clamp(start, value, end) {
4
- return max(start, min(value, end));
5
- }
6
- function evaluate(value, param) {
7
- return typeof value === "function" ? value(param) : value;
8
- }
9
- function getSide(placement) {
10
- return placement.split("-")[0];
11
- }
12
- function getOppositeAxis(axis) {
13
- return axis === "x" ? "y" : "x";
14
- }
15
- function getSideAxis(placement) {
16
- return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x";
17
- }
18
- function expandPaddingObject(padding) {
19
- return {
20
- top: 0,
21
- right: 0,
22
- bottom: 0,
23
- left: 0,
24
- ...padding
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useEffectOnce } from "./harmony11.mjs";
3
+ import { useState } from "react";
4
+ import { TasksContext } from "./harmony93.mjs";
5
+ import { TaskEvents } from "./harmony96.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
25
  };
26
- }
27
- function getPaddingObject(padding) {
28
- return typeof padding !== "number" ? expandPaddingObject(padding) : {
29
- top: padding,
30
- right: padding,
31
- bottom: padding,
32
- left: padding
26
+ const fetchTaskCount = async () => {
27
+ const result = await getTasksCount();
28
+ setTaskCount(result);
33
29
  };
34
- }
35
- function rectToClientRect(rect) {
36
- const {
37
- x,
38
- y,
39
- width,
40
- height
41
- } = rect;
42
- return {
43
- width,
44
- height,
45
- top: y,
46
- left: x,
47
- right: x + width,
48
- bottom: y + height,
49
- x,
50
- y
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
51
52
  };
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
+ };
53
59
  export {
54
- clamp,
55
- evaluate,
56
- expandPaddingObject,
57
- getOppositeAxis,
58
- getPaddingObject,
59
- getSide,
60
- getSideAxis,
61
- max,
62
- min,
63
- rectToClientRect
60
+ TasksProvider,
61
+ withTasksContext
64
62
  };
65
63
  //# sourceMappingURL=harmony95.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony95.mjs","sources":["../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"],"sourcesContent":["/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n"],"names":[],"mappings":"AAQK,MAAC,MAAM,KAAK;AACZ,MAAC,MAAM,KAAK;AAiBjB,SAAS,MAAM,OAAO,OAAO,KAAK;AAChC,SAAO,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC;AACnC;AACA,SAAS,SAAS,OAAO,OAAO;AAC9B,SAAO,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AACtD;AACA,SAAS,QAAQ,WAAW;AAC1B,SAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AAIA,SAAS,gBAAgB,MAAM;AAC7B,SAAO,SAAS,MAAM,MAAM;AAC9B;AAIA,SAAS,YAAY,WAAW;AAC9B,SAAO,CAAC,OAAO,QAAQ,EAAE,SAAS,QAAQ,SAAS,CAAC,IAAI,MAAM;AAChE;AAuDA,SAAS,oBAAoB,SAAS;AACpC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,GAAG;AAAA,EACJ;AACH;AACA,SAAS,iBAAiB,SAAS;AACjC,SAAO,OAAO,YAAY,WAAW,oBAAoB,OAAO,IAAI;AAAA,IAClE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACP;AACH;AACA,SAAS,iBAAiB,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO,IAAI;AAAA,IACX,QAAQ,IAAI;AAAA,IACZ;AAAA,IACA;AAAA,EACD;AACH;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony95.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,91 +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 text = require("./harmony8.cjs");
6
- const url = require("./harmony9.cjs");
7
- const date = require("./harmony10.cjs");
8
- const dateFns = require("date-fns");
9
- const index = require("./harmony106.cjs");
10
- const TaskLanguage = require("./harmony107.cjs");
11
- const TasksContext = require("./harmony87.cjs");
12
- const content = require("./harmony108.cjs");
13
- const TaskOverview_module = require("./harmony109.cjs");
14
- const TaskOverview = ({ task }) => {
15
- const { getProjectUrl, taskTitleOnClick } = TasksContext.useTasks();
16
- const taskLanguages = content.getTaskLanguages(task.langs);
17
- const handleDownloadStyleGuide = (styleGuide) => {
18
- window.open(
19
- `/style-guide/${task.team_id}/download/${styleGuide.id}/link`,
20
- "_blank",
21
- "noopener,noreferrer"
22
- );
23
- };
24
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TaskOverview_module.default.taskContainer, children: [
25
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-row gap-1 items-center", children: [
26
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-row gap-1 items-start flex-wrap", children: [
27
- /* @__PURE__ */ jsxRuntime.jsx(louis.Tag, { color: content.tagColor[task.task_type], variant: "solid", children: task.task_type.toLocaleUpperCase() }),
28
- task.due_date && /* @__PURE__ */ jsxRuntime.jsxs(louis.Tag, { color: "#EAB308", children: [
29
- "DUE ",
30
- date.formatDate(dateFns.parseISO(task.due_date), "yyyy-MM-dd")
31
- ] })
32
- ] }),
33
- task.style_guides.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-row", children: task.style_guides.length === 1 ? /* @__PURE__ */ jsxRuntime.jsx(
34
- louis.Button,
35
- {
36
- size: "sm",
37
- variant: "secondary",
38
- onClick: () => handleDownloadStyleGuide(task.style_guides[0]),
39
- children: "Download style guide"
40
- }
41
- ) : /* @__PURE__ */ jsxRuntime.jsx(
42
- louis.Menu,
43
- {
44
- menuButton: /* @__PURE__ */ jsxRuntime.jsx(louis.Button, { variant: "secondary", size: "sm", children: "Download style guide" }),
45
- children: /* @__PURE__ */ jsxRuntime.jsx(louis.MenuList, { children: task.style_guides.map((styleGuide) => /* @__PURE__ */ jsxRuntime.jsx(
46
- louis.MenuItem,
47
- {
48
- onClick: () => handleDownloadStyleGuide(styleGuide),
49
- children: index.splitFileName(styleGuide.name).name
50
- },
51
- styleGuide.id
52
- )) })
53
- }
54
- ) })
55
- ] }),
56
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: TaskOverview_module.default.taskTitle, children: /* @__PURE__ */ jsxRuntime.jsx(
57
- louis.Link,
58
- {
59
- href: getProjectUrl({ task, view: "multi" }),
60
- onClick: () => {
61
- taskTitleOnClick == null ? void 0 : taskTitleOnClick({ task });
62
- },
63
- children: task.title
64
- }
65
- ) }),
66
- task.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TaskOverview_module.default.taskDescription, children: text.convertNewLineToBreakTag(url.makeUrlClickable(task.description)) }),
67
- /* @__PURE__ */ jsxRuntime.jsxs("table", { className: TaskOverview_module.default.languagesTable, children: [
68
- /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
69
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Languages" }),
70
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Words to do" }),
71
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Progress" }),
72
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Status" })
73
- ] }) }),
74
- /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: taskLanguages.map((language) => /* @__PURE__ */ jsxRuntime.jsx(TaskLanguage.TaskLanguage, { language, task }, language.lang_id)) })
75
- ] }),
76
- /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "sidebar-task-overview-metadata", className: TaskOverview_module.default.metadata, children: [
77
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
78
- "Source: ",
79
- task.source_lang_name
80
- ] }),
81
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: task.created_by_fullname }),
82
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
83
- "In ",
84
- task.project_name,
85
- task.master_branching_enabled === "1" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TaskOverview_module.default.tag, children: task.branch_name ? task.branch_name : "master" })
86
- ] })
87
- ] })
88
- ] });
3
+ const TaskEvents = {
4
+ TaskCompleted: "task_completed",
5
+ TaskClosed: "task_closed",
6
+ Refresh: "refresh",
7
+ ShowDialog: "show_dialog"
89
8
  };
90
- exports.TaskOverview = TaskOverview;
9
+ exports.TaskEvents = TaskEvents;
91
10
  //# sourceMappingURL=harmony96.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony96.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TaskOverview/TaskOverview.tsx"],"sourcesContent":["import { Button, Link, Menu, MenuItem, MenuList, Tag } from '@lokalise/louis'\nimport { convertNewLineToBreakTag, formatDate, makeUrlClickable } from '@utils'\nimport { parseISO } from 'date-fns'\nimport { splitFileName } from '../../../utils'\nimport { TaskLanguage } from '../TaskLanguage/TaskLanguage'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask, SidebarTaskStyleGuide } from '../types'\nimport { getTaskLanguages, tagColor } from '../utils/content'\nimport styles from './TaskOverview.module.css'\n\nexport type TaskProps = {\n\ttask: SidebarTask\n}\n\nexport const TaskOverview = ({ task }: TaskProps) => {\n\tconst { getProjectUrl, taskTitleOnClick } = useTasks()\n\n\tconst taskLanguages = getTaskLanguages(task.langs)\n\n\tconst handleDownloadStyleGuide = (styleGuide: SidebarTaskStyleGuide) => {\n\t\twindow.open(\n\t\t\t`/style-guide/${task.team_id}/download/${styleGuide.id}/link`,\n\t\t\t'_blank',\n\t\t\t'noopener,noreferrer',\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className={styles.taskContainer}>\n\t\t\t<div className=\"flex-row gap-1 items-center\">\n\t\t\t\t<div className=\"flex-row gap-1 items-start flex-wrap\">\n\t\t\t\t\t<Tag color={tagColor[task.task_type]} variant=\"solid\">\n\t\t\t\t\t\t{task.task_type.toLocaleUpperCase()}\n\t\t\t\t\t</Tag>\n\t\t\t\t\t{task.due_date && (\n\t\t\t\t\t\t<Tag color={'#EAB308'}>DUE {formatDate(parseISO(task.due_date), 'yyyy-MM-dd')}</Tag>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{task.style_guides.length > 0 && (\n\t\t\t\t\t<div className=\"flex-row\">\n\t\t\t\t\t\t{task.style_guides.length === 1 ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => handleDownloadStyleGuide(task.style_guides[0])}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDownload style guide\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Menu\n\t\t\t\t\t\t\t\tmenuButton={\n\t\t\t\t\t\t\t\t\t<Button variant=\"secondary\" size=\"sm\">\n\t\t\t\t\t\t\t\t\t\tDownload style guide\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MenuList>\n\t\t\t\t\t\t\t\t\t{task.style_guides.map((styleGuide) => (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={styleGuide.id}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleDownloadStyleGuide(styleGuide)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{splitFileName(styleGuide.name).name}\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</MenuList>\n\t\t\t\t\t\t\t</Menu>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<h4 className={styles.taskTitle}>\n\t\t\t\t<Link\n\t\t\t\t\thref={getProjectUrl({ task, view: 'multi' })}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\ttaskTitleOnClick?.({ task })\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{task.title}\n\t\t\t\t</Link>\n\t\t\t</h4>\n\n\t\t\t{task.description && (\n\t\t\t\t<div className={styles.taskDescription}>\n\t\t\t\t\t{convertNewLineToBreakTag(makeUrlClickable(task.description))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<table className={styles.languagesTable}>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Languages</th>\n\t\t\t\t\t\t<th>Words to do</th>\n\t\t\t\t\t\t<th>Progress</th>\n\t\t\t\t\t\t<th>Status</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{taskLanguages.map((language) => (\n\t\t\t\t\t\t<TaskLanguage key={language.lang_id} language={language} task={task} />\n\t\t\t\t\t))}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div data-testid=\"sidebar-task-overview-metadata\" className={styles.metadata}>\n\t\t\t\t<span>Source: {task.source_lang_name}</span>\n\t\t\t\t<span>{task.created_by_fullname}</span>\n\t\t\t\t<span>\n\t\t\t\t\tIn {task.project_name}\n\t\t\t\t\t{task.master_branching_enabled === '1' && (\n\t\t\t\t\t\t<div className={styles.tag}>{task.branch_name ? task.branch_name : 'master'}</div>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["useTasks","getTaskLanguages","jsxs","styles","jsx","Tag","tagColor","formatDate","parseISO","Button","Menu","MenuList","MenuItem","splitFileName","Link","convertNewLineToBreakTag","makeUrlClickable","TaskLanguage"],"mappings":"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"}
1
+ {"version":3,"file":"harmony96.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,91 +1,10 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { Tag, Button, Menu, MenuList, MenuItem, Link } from "@lokalise/louis";
3
- import { convertNewLineToBreakTag } from "./harmony8.mjs";
4
- import { makeUrlClickable } from "./harmony9.mjs";
5
- import { formatDate } from "./harmony10.mjs";
6
- import { parseISO } from "date-fns";
7
- import { splitFileName } from "./harmony106.mjs";
8
- import { TaskLanguage } from "./harmony107.mjs";
9
- import { useTasks } from "./harmony87.mjs";
10
- import { getTaskLanguages, tagColor } from "./harmony108.mjs";
11
- import styles from "./harmony109.mjs";
12
- const TaskOverview = ({ task }) => {
13
- const { getProjectUrl, taskTitleOnClick } = useTasks();
14
- const taskLanguages = getTaskLanguages(task.langs);
15
- const handleDownloadStyleGuide = (styleGuide) => {
16
- window.open(
17
- `/style-guide/${task.team_id}/download/${styleGuide.id}/link`,
18
- "_blank",
19
- "noopener,noreferrer"
20
- );
21
- };
22
- return /* @__PURE__ */ jsxs("div", { className: styles.taskContainer, children: [
23
- /* @__PURE__ */ jsxs("div", { className: "flex-row gap-1 items-center", children: [
24
- /* @__PURE__ */ jsxs("div", { className: "flex-row gap-1 items-start flex-wrap", children: [
25
- /* @__PURE__ */ jsx(Tag, { color: tagColor[task.task_type], variant: "solid", children: task.task_type.toLocaleUpperCase() }),
26
- task.due_date && /* @__PURE__ */ jsxs(Tag, { color: "#EAB308", children: [
27
- "DUE ",
28
- formatDate(parseISO(task.due_date), "yyyy-MM-dd")
29
- ] })
30
- ] }),
31
- task.style_guides.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex-row", children: task.style_guides.length === 1 ? /* @__PURE__ */ jsx(
32
- Button,
33
- {
34
- size: "sm",
35
- variant: "secondary",
36
- onClick: () => handleDownloadStyleGuide(task.style_guides[0]),
37
- children: "Download style guide"
38
- }
39
- ) : /* @__PURE__ */ jsx(
40
- Menu,
41
- {
42
- menuButton: /* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", children: "Download style guide" }),
43
- children: /* @__PURE__ */ jsx(MenuList, { children: task.style_guides.map((styleGuide) => /* @__PURE__ */ jsx(
44
- MenuItem,
45
- {
46
- onClick: () => handleDownloadStyleGuide(styleGuide),
47
- children: splitFileName(styleGuide.name).name
48
- },
49
- styleGuide.id
50
- )) })
51
- }
52
- ) })
53
- ] }),
54
- /* @__PURE__ */ jsx("h4", { className: styles.taskTitle, children: /* @__PURE__ */ jsx(
55
- Link,
56
- {
57
- href: getProjectUrl({ task, view: "multi" }),
58
- onClick: () => {
59
- taskTitleOnClick == null ? void 0 : taskTitleOnClick({ task });
60
- },
61
- children: task.title
62
- }
63
- ) }),
64
- task.description && /* @__PURE__ */ jsx("div", { className: styles.taskDescription, children: convertNewLineToBreakTag(makeUrlClickable(task.description)) }),
65
- /* @__PURE__ */ jsxs("table", { className: styles.languagesTable, children: [
66
- /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
67
- /* @__PURE__ */ jsx("th", { children: "Languages" }),
68
- /* @__PURE__ */ jsx("th", { children: "Words to do" }),
69
- /* @__PURE__ */ jsx("th", { children: "Progress" }),
70
- /* @__PURE__ */ jsx("th", { children: "Status" })
71
- ] }) }),
72
- /* @__PURE__ */ jsx("tbody", { children: taskLanguages.map((language) => /* @__PURE__ */ jsx(TaskLanguage, { language, task }, language.lang_id)) })
73
- ] }),
74
- /* @__PURE__ */ jsxs("div", { "data-testid": "sidebar-task-overview-metadata", className: styles.metadata, children: [
75
- /* @__PURE__ */ jsxs("span", { children: [
76
- "Source: ",
77
- task.source_lang_name
78
- ] }),
79
- /* @__PURE__ */ jsx("span", { children: task.created_by_fullname }),
80
- /* @__PURE__ */ jsxs("span", { children: [
81
- "In ",
82
- task.project_name,
83
- task.master_branching_enabled === "1" && /* @__PURE__ */ jsx("div", { className: styles.tag, children: task.branch_name ? task.branch_name : "master" })
84
- ] })
85
- ] })
86
- ] });
1
+ const TaskEvents = {
2
+ TaskCompleted: "task_completed",
3
+ TaskClosed: "task_closed",
4
+ Refresh: "refresh",
5
+ ShowDialog: "show_dialog"
87
6
  };
88
7
  export {
89
- TaskOverview
8
+ TaskEvents
90
9
  };
91
10
  //# sourceMappingURL=harmony96.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony96.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TaskOverview/TaskOverview.tsx"],"sourcesContent":["import { Button, Link, Menu, MenuItem, MenuList, Tag } from '@lokalise/louis'\nimport { convertNewLineToBreakTag, formatDate, makeUrlClickable } from '@utils'\nimport { parseISO } from 'date-fns'\nimport { splitFileName } from '../../../utils'\nimport { TaskLanguage } from '../TaskLanguage/TaskLanguage'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask, SidebarTaskStyleGuide } from '../types'\nimport { getTaskLanguages, tagColor } from '../utils/content'\nimport styles from './TaskOverview.module.css'\n\nexport type TaskProps = {\n\ttask: SidebarTask\n}\n\nexport const TaskOverview = ({ task }: TaskProps) => {\n\tconst { getProjectUrl, taskTitleOnClick } = useTasks()\n\n\tconst taskLanguages = getTaskLanguages(task.langs)\n\n\tconst handleDownloadStyleGuide = (styleGuide: SidebarTaskStyleGuide) => {\n\t\twindow.open(\n\t\t\t`/style-guide/${task.team_id}/download/${styleGuide.id}/link`,\n\t\t\t'_blank',\n\t\t\t'noopener,noreferrer',\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className={styles.taskContainer}>\n\t\t\t<div className=\"flex-row gap-1 items-center\">\n\t\t\t\t<div className=\"flex-row gap-1 items-start flex-wrap\">\n\t\t\t\t\t<Tag color={tagColor[task.task_type]} variant=\"solid\">\n\t\t\t\t\t\t{task.task_type.toLocaleUpperCase()}\n\t\t\t\t\t</Tag>\n\t\t\t\t\t{task.due_date && (\n\t\t\t\t\t\t<Tag color={'#EAB308'}>DUE {formatDate(parseISO(task.due_date), 'yyyy-MM-dd')}</Tag>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{task.style_guides.length > 0 && (\n\t\t\t\t\t<div className=\"flex-row\">\n\t\t\t\t\t\t{task.style_guides.length === 1 ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => handleDownloadStyleGuide(task.style_guides[0])}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDownload style guide\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Menu\n\t\t\t\t\t\t\t\tmenuButton={\n\t\t\t\t\t\t\t\t\t<Button variant=\"secondary\" size=\"sm\">\n\t\t\t\t\t\t\t\t\t\tDownload style guide\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MenuList>\n\t\t\t\t\t\t\t\t\t{task.style_guides.map((styleGuide) => (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={styleGuide.id}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleDownloadStyleGuide(styleGuide)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{splitFileName(styleGuide.name).name}\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</MenuList>\n\t\t\t\t\t\t\t</Menu>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<h4 className={styles.taskTitle}>\n\t\t\t\t<Link\n\t\t\t\t\thref={getProjectUrl({ task, view: 'multi' })}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\ttaskTitleOnClick?.({ task })\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{task.title}\n\t\t\t\t</Link>\n\t\t\t</h4>\n\n\t\t\t{task.description && (\n\t\t\t\t<div className={styles.taskDescription}>\n\t\t\t\t\t{convertNewLineToBreakTag(makeUrlClickable(task.description))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<table className={styles.languagesTable}>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Languages</th>\n\t\t\t\t\t\t<th>Words to do</th>\n\t\t\t\t\t\t<th>Progress</th>\n\t\t\t\t\t\t<th>Status</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{taskLanguages.map((language) => (\n\t\t\t\t\t\t<TaskLanguage key={language.lang_id} language={language} task={task} />\n\t\t\t\t\t))}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div data-testid=\"sidebar-task-overview-metadata\" className={styles.metadata}>\n\t\t\t\t<span>Source: {task.source_lang_name}</span>\n\t\t\t\t<span>{task.created_by_fullname}</span>\n\t\t\t\t<span>\n\t\t\t\t\tIn {task.project_name}\n\t\t\t\t\t{task.master_branching_enabled === '1' && (\n\t\t\t\t\t\t<div className={styles.tag}>{task.branch_name ? task.branch_name : 'master'}</div>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harmony96.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,21 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const loadingContainer = "_loadingContainer_19d6m_1";
4
- const noTasksContainer = "_noTasksContainer_19d6m_7";
5
- const noTasksHeading = "_noTasksHeading_19d6m_14";
6
- const noTasksText = "_noTasksText_19d6m_18";
7
- const tasksContainer = "_tasksContainer_19d6m_23";
3
+ const iconContainer = "_iconContainer_nz34m_1";
8
4
  const styles = {
9
- loadingContainer,
10
- noTasksContainer,
11
- noTasksHeading,
12
- noTasksText,
13
- tasksContainer
5
+ iconContainer
14
6
  };
15
7
  exports.default = styles;
16
- exports.loadingContainer = loadingContainer;
17
- exports.noTasksContainer = noTasksContainer;
18
- exports.noTasksHeading = noTasksHeading;
19
- exports.noTasksText = noTasksText;
20
- exports.tasksContainer = tasksContainer;
8
+ exports.iconContainer = iconContainer;
21
9
  //# sourceMappingURL=harmony97.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony97.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony97.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}