@lokalise/harmony 2.1.0-exp-testingContracts.6 → 2.1.0-exp-testingContracts.7

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 (699) hide show
  1. package/dist/harmony.cjs +69 -73
  2. package/dist/harmony.cjs.map +1 -1
  3. package/dist/harmony.mjs +69 -73
  4. package/dist/harmony.mjs.map +1 -1
  5. package/dist/harmony10.cjs +1 -1
  6. package/dist/harmony10.mjs +1 -1
  7. package/dist/harmony100.cjs +42 -65
  8. package/dist/harmony100.cjs.map +1 -1
  9. package/dist/harmony100.mjs +42 -65
  10. package/dist/harmony100.mjs.map +1 -1
  11. package/dist/harmony101.cjs +39 -3
  12. package/dist/harmony101.cjs.map +1 -1
  13. package/dist/harmony101.mjs +39 -3
  14. package/dist/harmony101.mjs.map +1 -1
  15. package/dist/harmony102.cjs +38 -43
  16. package/dist/harmony102.cjs.map +1 -1
  17. package/dist/harmony102.mjs +38 -43
  18. package/dist/harmony102.mjs.map +1 -1
  19. package/dist/harmony103.cjs +9 -39
  20. package/dist/harmony103.cjs.map +1 -1
  21. package/dist/harmony103.mjs +8 -38
  22. package/dist/harmony103.mjs.map +1 -1
  23. package/dist/harmony104.cjs +30 -35
  24. package/dist/harmony104.cjs.map +1 -1
  25. package/dist/harmony104.mjs +32 -37
  26. package/dist/harmony104.mjs.map +1 -1
  27. package/dist/harmony105.cjs +166 -9
  28. package/dist/harmony105.cjs.map +1 -1
  29. package/dist/harmony105.mjs +165 -8
  30. package/dist/harmony105.mjs.map +1 -1
  31. package/dist/harmony106.cjs +44 -33
  32. package/dist/harmony106.cjs.map +1 -1
  33. package/dist/harmony106.mjs +44 -33
  34. package/dist/harmony106.mjs.map +1 -1
  35. package/dist/harmony107.cjs +13 -165
  36. package/dist/harmony107.cjs.map +1 -1
  37. package/dist/harmony107.mjs +13 -165
  38. package/dist/harmony107.mjs.map +1 -1
  39. package/dist/harmony108.cjs +2 -43
  40. package/dist/harmony108.cjs.map +1 -1
  41. package/dist/harmony108.mjs +3 -44
  42. package/dist/harmony108.mjs.map +1 -1
  43. package/dist/harmony109.cjs +16 -9
  44. package/dist/harmony109.cjs.map +1 -1
  45. package/dist/harmony109.mjs +18 -11
  46. package/dist/harmony109.mjs.map +1 -1
  47. package/dist/harmony110.cjs +76 -21
  48. package/dist/harmony110.cjs.map +1 -1
  49. package/dist/harmony110.mjs +75 -20
  50. package/dist/harmony110.mjs.map +1 -1
  51. package/dist/harmony111.cjs +10 -12
  52. package/dist/harmony111.cjs.map +1 -1
  53. package/dist/harmony111.mjs +10 -12
  54. package/dist/harmony111.mjs.map +1 -1
  55. package/dist/harmony112.cjs +34 -3
  56. package/dist/harmony112.cjs.map +1 -1
  57. package/dist/harmony112.mjs +34 -3
  58. package/dist/harmony112.mjs.map +1 -1
  59. package/dist/harmony113.cjs +8 -17
  60. package/dist/harmony113.cjs.map +1 -1
  61. package/dist/harmony113.mjs +8 -17
  62. package/dist/harmony113.mjs.map +1 -1
  63. package/dist/harmony114.cjs +37 -66
  64. package/dist/harmony114.cjs.map +1 -1
  65. package/dist/harmony114.mjs +38 -67
  66. package/dist/harmony114.mjs.map +1 -1
  67. package/dist/harmony115.cjs +9 -12
  68. package/dist/harmony115.cjs.map +1 -1
  69. package/dist/harmony115.mjs +8 -11
  70. package/dist/harmony115.mjs.map +1 -1
  71. package/dist/harmony116.cjs +12 -34
  72. package/dist/harmony116.cjs.map +1 -1
  73. package/dist/harmony116.mjs +12 -34
  74. package/dist/harmony116.mjs.map +1 -1
  75. package/dist/harmony117.cjs +13 -10
  76. package/dist/harmony117.cjs.map +1 -1
  77. package/dist/harmony117.mjs +12 -9
  78. package/dist/harmony117.mjs.map +1 -1
  79. package/dist/harmony118.cjs +9 -45
  80. package/dist/harmony118.cjs.map +1 -1
  81. package/dist/harmony118.mjs +11 -47
  82. package/dist/harmony118.mjs.map +1 -1
  83. package/dist/harmony119.cjs +20 -8
  84. package/dist/harmony119.cjs.map +1 -1
  85. package/dist/harmony119.mjs +20 -8
  86. package/dist/harmony119.mjs.map +1 -1
  87. package/dist/harmony120.cjs +96 -9
  88. package/dist/harmony120.cjs.map +1 -1
  89. package/dist/harmony120.mjs +79 -9
  90. package/dist/harmony120.mjs.map +1 -1
  91. package/dist/harmony121.cjs +21 -13
  92. package/dist/harmony121.cjs.map +1 -1
  93. package/dist/harmony121.mjs +20 -12
  94. package/dist/harmony121.mjs.map +1 -1
  95. package/dist/harmony122.cjs +7 -87
  96. package/dist/harmony122.cjs.map +1 -1
  97. package/dist/harmony122.mjs +7 -87
  98. package/dist/harmony122.mjs.map +1 -1
  99. package/dist/harmony123.cjs +17 -30
  100. package/dist/harmony123.cjs.map +1 -1
  101. package/dist/harmony123.mjs +17 -30
  102. package/dist/harmony123.mjs.map +1 -1
  103. package/dist/harmony124.cjs +8 -20
  104. package/dist/harmony124.cjs.map +1 -1
  105. package/dist/harmony124.mjs +8 -20
  106. package/dist/harmony124.mjs.map +1 -1
  107. package/dist/harmony125.cjs +8 -7
  108. package/dist/harmony125.cjs.map +1 -1
  109. package/dist/harmony125.mjs +8 -7
  110. package/dist/harmony125.mjs.map +1 -1
  111. package/dist/harmony126.cjs +14 -16
  112. package/dist/harmony126.cjs.map +1 -1
  113. package/dist/harmony126.mjs +14 -16
  114. package/dist/harmony126.mjs.map +1 -1
  115. package/dist/harmony127.cjs +86 -7
  116. package/dist/harmony127.cjs.map +1 -1
  117. package/dist/harmony127.mjs +86 -7
  118. package/dist/harmony127.mjs.map +1 -1
  119. package/dist/harmony128.cjs +30 -8
  120. package/dist/harmony128.cjs.map +1 -1
  121. package/dist/harmony128.mjs +30 -8
  122. package/dist/harmony128.mjs.map +1 -1
  123. package/dist/harmony129.cjs +9 -15
  124. package/dist/harmony129.cjs.map +1 -1
  125. package/dist/harmony129.mjs +8 -14
  126. package/dist/harmony129.mjs.map +1 -1
  127. package/dist/harmony130.cjs +11 -98
  128. package/dist/harmony130.cjs.map +1 -1
  129. package/dist/harmony130.mjs +11 -81
  130. package/dist/harmony130.mjs.map +1 -1
  131. package/dist/harmony131.cjs +15 -9
  132. package/dist/harmony131.cjs.map +1 -1
  133. package/dist/harmony131.mjs +14 -8
  134. package/dist/harmony131.mjs.map +1 -1
  135. package/dist/harmony132.cjs +13 -6
  136. package/dist/harmony132.cjs.map +1 -1
  137. package/dist/harmony132.mjs +15 -8
  138. package/dist/harmony132.mjs.map +1 -1
  139. package/dist/harmony133.cjs +7 -12
  140. package/dist/harmony133.cjs.map +1 -1
  141. package/dist/harmony133.mjs +9 -14
  142. package/dist/harmony133.mjs.map +1 -1
  143. package/dist/harmony134.cjs +20 -13
  144. package/dist/harmony134.cjs.map +1 -1
  145. package/dist/harmony134.mjs +22 -15
  146. package/dist/harmony134.mjs.map +1 -1
  147. package/dist/harmony135.cjs +9 -7
  148. package/dist/harmony135.cjs.map +1 -1
  149. package/dist/harmony135.mjs +11 -9
  150. package/dist/harmony135.mjs.map +1 -1
  151. package/dist/harmony136.cjs +30 -18
  152. package/dist/harmony136.cjs.map +1 -1
  153. package/dist/harmony136.mjs +32 -20
  154. package/dist/harmony136.mjs.map +1 -1
  155. package/dist/harmony137.cjs +6 -6
  156. package/dist/harmony137.cjs.map +1 -1
  157. package/dist/harmony137.mjs +6 -6
  158. package/dist/harmony137.mjs.map +1 -1
  159. package/dist/harmony138.cjs +13 -29
  160. package/dist/harmony138.cjs.map +1 -1
  161. package/dist/harmony138.mjs +14 -30
  162. package/dist/harmony138.mjs.map +1 -1
  163. package/dist/harmony139.cjs +31 -7
  164. package/dist/harmony139.cjs.map +1 -1
  165. package/dist/harmony139.mjs +32 -8
  166. package/dist/harmony139.mjs.map +1 -1
  167. package/dist/harmony140.cjs +21 -22
  168. package/dist/harmony140.cjs.map +1 -1
  169. package/dist/harmony140.mjs +20 -21
  170. package/dist/harmony140.mjs.map +1 -1
  171. package/dist/harmony141.cjs +15 -30
  172. package/dist/harmony141.cjs.map +1 -1
  173. package/dist/harmony141.mjs +17 -32
  174. package/dist/harmony141.mjs.map +1 -1
  175. package/dist/harmony142.cjs +3 -18
  176. package/dist/harmony142.cjs.map +1 -1
  177. package/dist/harmony142.mjs +3 -18
  178. package/dist/harmony142.mjs.map +1 -1
  179. package/dist/harmony143.cjs +15 -21
  180. package/dist/harmony143.cjs.map +1 -1
  181. package/dist/harmony143.mjs +14 -20
  182. package/dist/harmony143.mjs.map +1 -1
  183. package/dist/harmony144.cjs +5 -6
  184. package/dist/harmony144.cjs.map +1 -1
  185. package/dist/harmony144.mjs +5 -6
  186. package/dist/harmony145.cjs +5 -15
  187. package/dist/harmony145.cjs.map +1 -1
  188. package/dist/harmony145.mjs +5 -15
  189. package/dist/harmony145.mjs.map +1 -1
  190. package/dist/harmony146.cjs +3 -10
  191. package/dist/harmony146.cjs.map +1 -1
  192. package/dist/harmony146.mjs +3 -10
  193. package/dist/harmony146.mjs.map +1 -1
  194. package/dist/harmony147.cjs +4 -6
  195. package/dist/harmony147.cjs.map +1 -1
  196. package/dist/harmony147.mjs +3 -5
  197. package/dist/harmony147.mjs.map +1 -1
  198. package/dist/harmony148.cjs +4 -6
  199. package/dist/harmony148.cjs.map +1 -1
  200. package/dist/harmony148.mjs +3 -5
  201. package/dist/harmony148.mjs.map +1 -1
  202. package/dist/harmony149.cjs +14 -3
  203. package/dist/harmony149.cjs.map +1 -1
  204. package/dist/harmony149.mjs +14 -3
  205. package/dist/harmony149.mjs.map +1 -1
  206. package/dist/harmony150.cjs +14 -3
  207. package/dist/harmony150.cjs.map +1 -1
  208. package/dist/harmony150.mjs +14 -3
  209. package/dist/harmony150.mjs.map +1 -1
  210. package/dist/harmony151.cjs +3 -3
  211. package/dist/harmony151.cjs.map +1 -1
  212. package/dist/harmony151.mjs +3 -3
  213. package/dist/harmony151.mjs.map +1 -1
  214. package/dist/harmony152.cjs +10 -14
  215. package/dist/harmony152.cjs.map +1 -1
  216. package/dist/harmony152.mjs +10 -14
  217. package/dist/harmony152.mjs.map +1 -1
  218. package/dist/harmony153.cjs +10 -15
  219. package/dist/harmony153.cjs.map +1 -1
  220. package/dist/harmony153.mjs +9 -14
  221. package/dist/harmony153.mjs.map +1 -1
  222. package/dist/harmony154.cjs +7 -4
  223. package/dist/harmony154.cjs.map +1 -1
  224. package/dist/harmony154.mjs +6 -3
  225. package/dist/harmony154.mjs.map +1 -1
  226. package/dist/harmony155.cjs +10 -97
  227. package/dist/harmony155.cjs.map +1 -1
  228. package/dist/harmony155.mjs +9 -96
  229. package/dist/harmony155.mjs.map +1 -1
  230. package/dist/harmony156.cjs +25 -14
  231. package/dist/harmony156.cjs.map +1 -1
  232. package/dist/harmony156.mjs +24 -13
  233. package/dist/harmony156.mjs.map +1 -1
  234. package/dist/harmony157.cjs +7 -15
  235. package/dist/harmony157.cjs.map +1 -1
  236. package/dist/harmony157.mjs +6 -14
  237. package/dist/harmony157.mjs.map +1 -1
  238. package/dist/harmony158.cjs +13 -37
  239. package/dist/harmony158.cjs.map +1 -1
  240. package/dist/harmony158.mjs +12 -36
  241. package/dist/harmony158.mjs.map +1 -1
  242. package/dist/harmony159.cjs +7 -29
  243. package/dist/harmony159.cjs.map +1 -1
  244. package/dist/harmony159.mjs +6 -28
  245. package/dist/harmony159.mjs.map +1 -1
  246. package/dist/harmony160.cjs +97 -10
  247. package/dist/harmony160.cjs.map +1 -1
  248. package/dist/harmony160.mjs +96 -9
  249. package/dist/harmony160.mjs.map +1 -1
  250. package/dist/harmony161.cjs +14 -7
  251. package/dist/harmony161.cjs.map +1 -1
  252. package/dist/harmony161.mjs +13 -6
  253. package/dist/harmony161.mjs.map +1 -1
  254. package/dist/harmony162.cjs +15 -10
  255. package/dist/harmony162.cjs.map +1 -1
  256. package/dist/harmony162.mjs +14 -9
  257. package/dist/harmony162.mjs.map +1 -1
  258. package/dist/harmony163.cjs +37 -25
  259. package/dist/harmony163.cjs.map +1 -1
  260. package/dist/harmony163.mjs +36 -24
  261. package/dist/harmony163.mjs.map +1 -1
  262. package/dist/harmony164.cjs +29 -7
  263. package/dist/harmony164.cjs.map +1 -1
  264. package/dist/harmony164.mjs +28 -6
  265. package/dist/harmony164.mjs.map +1 -1
  266. package/dist/harmony165.cjs +32 -12
  267. package/dist/harmony165.cjs.map +1 -1
  268. package/dist/harmony165.mjs +31 -11
  269. package/dist/harmony165.mjs.map +1 -1
  270. package/dist/harmony166.cjs +14 -7
  271. package/dist/harmony166.cjs.map +1 -1
  272. package/dist/harmony166.mjs +13 -6
  273. package/dist/harmony166.mjs.map +1 -1
  274. package/dist/harmony167.cjs +14 -31
  275. package/dist/harmony167.cjs.map +1 -1
  276. package/dist/harmony167.mjs +14 -31
  277. package/dist/harmony167.mjs.map +1 -1
  278. package/dist/harmony168.cjs +15 -12
  279. package/dist/harmony168.cjs.map +1 -1
  280. package/dist/harmony168.mjs +15 -12
  281. package/dist/harmony168.mjs.map +1 -1
  282. package/dist/harmony169.cjs +10 -14
  283. package/dist/harmony169.cjs.map +1 -1
  284. package/dist/harmony169.mjs +10 -14
  285. package/dist/harmony169.mjs.map +1 -1
  286. package/dist/harmony17.cjs +3 -3
  287. package/dist/harmony17.cjs.map +1 -1
  288. package/dist/harmony17.mjs +2 -2
  289. package/dist/harmony17.mjs.map +1 -1
  290. package/dist/harmony170.cjs +14 -14
  291. package/dist/harmony170.cjs.map +1 -1
  292. package/dist/harmony170.mjs +14 -14
  293. package/dist/harmony170.mjs.map +1 -1
  294. package/dist/harmony171.cjs +20 -10
  295. package/dist/harmony171.cjs.map +1 -1
  296. package/dist/harmony171.mjs +20 -10
  297. package/dist/harmony171.mjs.map +1 -1
  298. package/dist/harmony172.cjs +10 -14
  299. package/dist/harmony172.cjs.map +1 -1
  300. package/dist/harmony172.mjs +10 -14
  301. package/dist/harmony172.mjs.map +1 -1
  302. package/dist/harmony173.cjs +4 -21
  303. package/dist/harmony173.cjs.map +1 -1
  304. package/dist/harmony173.mjs +4 -21
  305. package/dist/harmony173.mjs.map +1 -1
  306. package/dist/harmony174.cjs +5 -11
  307. package/dist/harmony174.cjs.map +1 -1
  308. package/dist/harmony174.mjs +5 -11
  309. package/dist/harmony174.mjs.map +1 -1
  310. package/dist/harmony175.cjs +12 -4
  311. package/dist/harmony175.cjs.map +1 -1
  312. package/dist/harmony175.mjs +12 -4
  313. package/dist/harmony175.mjs.map +1 -1
  314. package/dist/harmony176.cjs +31 -5
  315. package/dist/harmony176.cjs.map +1 -1
  316. package/dist/harmony176.mjs +31 -5
  317. package/dist/harmony176.mjs.map +1 -1
  318. package/dist/harmony177.cjs +13 -11
  319. package/dist/harmony177.cjs.map +1 -1
  320. package/dist/harmony177.mjs +13 -11
  321. package/dist/harmony177.mjs.map +1 -1
  322. package/dist/harmony18.cjs +2 -2
  323. package/dist/harmony18.cjs.map +1 -1
  324. package/dist/harmony18.mjs +1 -1
  325. package/dist/harmony18.mjs.map +1 -1
  326. package/dist/harmony2.cjs +3 -3
  327. package/dist/harmony2.mjs +3 -3
  328. package/dist/harmony20.cjs +1 -1
  329. package/dist/harmony20.mjs +1 -1
  330. package/dist/harmony22.cjs +20 -16
  331. package/dist/harmony22.cjs.map +1 -1
  332. package/dist/harmony22.mjs +20 -16
  333. package/dist/harmony22.mjs.map +1 -1
  334. package/dist/harmony23.cjs +13 -141
  335. package/dist/harmony23.cjs.map +1 -1
  336. package/dist/harmony23.mjs +13 -141
  337. package/dist/harmony23.mjs.map +1 -1
  338. package/dist/harmony24.cjs +17 -20
  339. package/dist/harmony24.cjs.map +1 -1
  340. package/dist/harmony24.mjs +17 -20
  341. package/dist/harmony24.mjs.map +1 -1
  342. package/dist/harmony25.cjs +16 -12
  343. package/dist/harmony25.cjs.map +1 -1
  344. package/dist/harmony25.mjs +16 -12
  345. package/dist/harmony25.mjs.map +1 -1
  346. package/dist/harmony26.cjs +18 -15
  347. package/dist/harmony26.cjs.map +1 -1
  348. package/dist/harmony26.mjs +18 -15
  349. package/dist/harmony26.mjs.map +1 -1
  350. package/dist/harmony27.cjs +18 -16
  351. package/dist/harmony27.cjs.map +1 -1
  352. package/dist/harmony27.mjs +18 -16
  353. package/dist/harmony27.mjs.map +1 -1
  354. package/dist/harmony28.cjs +8 -18
  355. package/dist/harmony28.cjs.map +1 -1
  356. package/dist/harmony28.mjs +8 -18
  357. package/dist/harmony28.mjs.map +1 -1
  358. package/dist/harmony29.cjs +10 -19
  359. package/dist/harmony29.cjs.map +1 -1
  360. package/dist/harmony29.mjs +10 -19
  361. package/dist/harmony29.mjs.map +1 -1
  362. package/dist/harmony3.cjs +4 -4
  363. package/dist/harmony3.mjs +4 -4
  364. package/dist/harmony30.cjs +9 -10
  365. package/dist/harmony30.cjs.map +1 -1
  366. package/dist/harmony30.mjs +9 -10
  367. package/dist/harmony30.mjs.map +1 -1
  368. package/dist/harmony31.cjs +9 -11
  369. package/dist/harmony31.cjs.map +1 -1
  370. package/dist/harmony31.mjs +9 -11
  371. package/dist/harmony31.mjs.map +1 -1
  372. package/dist/harmony32.cjs +11 -5
  373. package/dist/harmony32.cjs.map +1 -1
  374. package/dist/harmony32.mjs +11 -5
  375. package/dist/harmony32.mjs.map +1 -1
  376. package/dist/harmony33.cjs +8 -7
  377. package/dist/harmony33.cjs.map +1 -1
  378. package/dist/harmony33.mjs +9 -8
  379. package/dist/harmony33.mjs.map +1 -1
  380. package/dist/harmony34.cjs +9 -11
  381. package/dist/harmony34.cjs.map +1 -1
  382. package/dist/harmony34.mjs +10 -12
  383. package/dist/harmony34.mjs.map +1 -1
  384. package/dist/harmony35.cjs +5 -5
  385. package/dist/harmony35.cjs.map +1 -1
  386. package/dist/harmony35.mjs +5 -5
  387. package/dist/harmony35.mjs.map +1 -1
  388. package/dist/harmony36.cjs +11 -10
  389. package/dist/harmony36.cjs.map +1 -1
  390. package/dist/harmony36.mjs +11 -10
  391. package/dist/harmony36.mjs.map +1 -1
  392. package/dist/harmony37.cjs +7 -9
  393. package/dist/harmony37.cjs.map +1 -1
  394. package/dist/harmony37.mjs +7 -9
  395. package/dist/harmony37.mjs.map +1 -1
  396. package/dist/harmony38.cjs +10 -13
  397. package/dist/harmony38.cjs.map +1 -1
  398. package/dist/harmony38.mjs +10 -13
  399. package/dist/harmony38.mjs.map +1 -1
  400. package/dist/harmony39.cjs +8 -5
  401. package/dist/harmony39.cjs.map +1 -1
  402. package/dist/harmony39.mjs +8 -5
  403. package/dist/harmony39.mjs.map +1 -1
  404. package/dist/harmony4.cjs +2 -2
  405. package/dist/harmony4.mjs +2 -2
  406. package/dist/harmony40.cjs +7 -9
  407. package/dist/harmony40.cjs.map +1 -1
  408. package/dist/harmony40.mjs +7 -9
  409. package/dist/harmony40.mjs.map +1 -1
  410. package/dist/harmony41.cjs +7 -9
  411. package/dist/harmony41.cjs.map +1 -1
  412. package/dist/harmony41.mjs +7 -9
  413. package/dist/harmony41.mjs.map +1 -1
  414. package/dist/harmony42.cjs +9 -9
  415. package/dist/harmony42.cjs.map +1 -1
  416. package/dist/harmony42.mjs +9 -9
  417. package/dist/harmony42.mjs.map +1 -1
  418. package/dist/harmony43.cjs +88 -9
  419. package/dist/harmony43.cjs.map +1 -1
  420. package/dist/harmony43.mjs +88 -9
  421. package/dist/harmony43.mjs.map +1 -1
  422. package/dist/harmony44.cjs +55 -9
  423. package/dist/harmony44.cjs.map +1 -1
  424. package/dist/harmony44.mjs +55 -9
  425. package/dist/harmony44.mjs.map +1 -1
  426. package/dist/harmony45.cjs +31 -88
  427. package/dist/harmony45.cjs.map +1 -1
  428. package/dist/harmony45.mjs +31 -88
  429. package/dist/harmony45.mjs.map +1 -1
  430. package/dist/harmony46.cjs +10 -54
  431. package/dist/harmony46.cjs.map +1 -1
  432. package/dist/harmony46.mjs +10 -54
  433. package/dist/harmony46.mjs.map +1 -1
  434. package/dist/harmony47.cjs +50 -26
  435. package/dist/harmony47.cjs.map +1 -1
  436. package/dist/harmony47.mjs +51 -27
  437. package/dist/harmony47.mjs.map +1 -1
  438. package/dist/harmony48.cjs +27 -8
  439. package/dist/harmony48.cjs.map +1 -1
  440. package/dist/harmony48.mjs +28 -9
  441. package/dist/harmony48.mjs.map +1 -1
  442. package/dist/harmony49.cjs +15 -52
  443. package/dist/harmony49.cjs.map +1 -1
  444. package/dist/harmony49.mjs +16 -53
  445. package/dist/harmony49.mjs.map +1 -1
  446. package/dist/harmony5.cjs +5 -5
  447. package/dist/harmony5.mjs +5 -5
  448. package/dist/harmony50.cjs +24 -26
  449. package/dist/harmony50.cjs.map +1 -1
  450. package/dist/harmony50.mjs +25 -27
  451. package/dist/harmony50.mjs.map +1 -1
  452. package/dist/harmony51.cjs +12 -16
  453. package/dist/harmony51.cjs.map +1 -1
  454. package/dist/harmony51.mjs +13 -17
  455. package/dist/harmony51.mjs.map +1 -1
  456. package/dist/harmony52.cjs +14 -28
  457. package/dist/harmony52.cjs.map +1 -1
  458. package/dist/harmony52.mjs +14 -28
  459. package/dist/harmony52.mjs.map +1 -1
  460. package/dist/harmony53.cjs +14 -14
  461. package/dist/harmony53.cjs.map +1 -1
  462. package/dist/harmony53.mjs +14 -14
  463. package/dist/harmony53.mjs.map +1 -1
  464. package/dist/harmony54.cjs +6 -6
  465. package/dist/harmony54.cjs.map +1 -1
  466. package/dist/harmony54.mjs +6 -6
  467. package/dist/harmony54.mjs.map +1 -1
  468. package/dist/harmony55.cjs +6 -6
  469. package/dist/harmony55.cjs.map +1 -1
  470. package/dist/harmony55.mjs +6 -6
  471. package/dist/harmony55.mjs.map +1 -1
  472. package/dist/harmony56.cjs +4 -5
  473. package/dist/harmony56.cjs.map +1 -1
  474. package/dist/harmony56.mjs +4 -5
  475. package/dist/harmony56.mjs.map +1 -1
  476. package/dist/harmony57.cjs +15 -7
  477. package/dist/harmony57.cjs.map +1 -1
  478. package/dist/harmony57.mjs +16 -8
  479. package/dist/harmony57.mjs.map +1 -1
  480. package/dist/harmony58.cjs +6 -6
  481. package/dist/harmony58.cjs.map +1 -1
  482. package/dist/harmony58.mjs +7 -7
  483. package/dist/harmony58.mjs.map +1 -1
  484. package/dist/harmony59.cjs +7 -16
  485. package/dist/harmony59.cjs.map +1 -1
  486. package/dist/harmony59.mjs +7 -16
  487. package/dist/harmony59.mjs.map +1 -1
  488. package/dist/harmony6.cjs +2 -2
  489. package/dist/harmony6.mjs +2 -2
  490. package/dist/harmony60.cjs +11 -7
  491. package/dist/harmony60.cjs.map +1 -1
  492. package/dist/harmony60.mjs +13 -9
  493. package/dist/harmony60.mjs.map +1 -1
  494. package/dist/harmony61.cjs +10 -6
  495. package/dist/harmony61.cjs.map +1 -1
  496. package/dist/harmony61.mjs +12 -8
  497. package/dist/harmony61.mjs.map +1 -1
  498. package/dist/harmony62.cjs +12 -14
  499. package/dist/harmony62.cjs.map +1 -1
  500. package/dist/harmony62.mjs +12 -14
  501. package/dist/harmony62.mjs.map +1 -1
  502. package/dist/harmony63.cjs +12 -14
  503. package/dist/harmony63.cjs.map +1 -1
  504. package/dist/harmony63.mjs +13 -15
  505. package/dist/harmony63.mjs.map +1 -1
  506. package/dist/harmony64.cjs +9 -9
  507. package/dist/harmony64.cjs.map +1 -1
  508. package/dist/harmony64.mjs +9 -9
  509. package/dist/harmony64.mjs.map +1 -1
  510. package/dist/harmony65.cjs +14 -12
  511. package/dist/harmony65.cjs.map +1 -1
  512. package/dist/harmony65.mjs +15 -13
  513. package/dist/harmony65.mjs.map +1 -1
  514. package/dist/harmony66.cjs +14 -12
  515. package/dist/harmony66.cjs.map +1 -1
  516. package/dist/harmony66.mjs +14 -12
  517. package/dist/harmony66.mjs.map +1 -1
  518. package/dist/harmony67.cjs +10 -10
  519. package/dist/harmony67.cjs.map +1 -1
  520. package/dist/harmony67.mjs +10 -10
  521. package/dist/harmony67.mjs.map +1 -1
  522. package/dist/harmony68.cjs +8 -8
  523. package/dist/harmony68.cjs.map +1 -1
  524. package/dist/harmony68.mjs +8 -8
  525. package/dist/harmony68.mjs.map +1 -1
  526. package/dist/harmony69.cjs +8 -8
  527. package/dist/harmony69.cjs.map +1 -1
  528. package/dist/harmony69.mjs +8 -8
  529. package/dist/harmony69.mjs.map +1 -1
  530. package/dist/harmony7.cjs +2 -2
  531. package/dist/harmony7.mjs +2 -2
  532. package/dist/harmony70.cjs +12 -14
  533. package/dist/harmony70.cjs.map +1 -1
  534. package/dist/harmony70.mjs +12 -14
  535. package/dist/harmony70.mjs.map +1 -1
  536. package/dist/harmony71.cjs +8 -8
  537. package/dist/harmony71.cjs.map +1 -1
  538. package/dist/harmony71.mjs +8 -8
  539. package/dist/harmony71.mjs.map +1 -1
  540. package/dist/harmony72.cjs +14 -12
  541. package/dist/harmony72.cjs.map +1 -1
  542. package/dist/harmony72.mjs +14 -12
  543. package/dist/harmony72.mjs.map +1 -1
  544. package/dist/harmony73.cjs +9 -8
  545. package/dist/harmony73.cjs.map +1 -1
  546. package/dist/harmony73.mjs +10 -9
  547. package/dist/harmony73.mjs.map +1 -1
  548. package/dist/harmony74.cjs +7 -10
  549. package/dist/harmony74.cjs.map +1 -1
  550. package/dist/harmony74.mjs +9 -12
  551. package/dist/harmony74.mjs.map +1 -1
  552. package/dist/harmony75.cjs +7 -11
  553. package/dist/harmony75.cjs.map +1 -1
  554. package/dist/harmony75.mjs +8 -12
  555. package/dist/harmony75.mjs.map +1 -1
  556. package/dist/harmony76.cjs +123 -13
  557. package/dist/harmony76.cjs.map +1 -1
  558. package/dist/harmony76.mjs +123 -13
  559. package/dist/harmony76.mjs.map +1 -1
  560. package/dist/harmony77.cjs +81 -13
  561. package/dist/harmony77.cjs.map +1 -1
  562. package/dist/harmony77.mjs +81 -13
  563. package/dist/harmony77.mjs.map +1 -1
  564. package/dist/harmony78.cjs +4 -122
  565. package/dist/harmony78.cjs.map +1 -1
  566. package/dist/harmony78.mjs +4 -122
  567. package/dist/harmony78.mjs.map +1 -1
  568. package/dist/harmony79.cjs +27 -81
  569. package/dist/harmony79.cjs.map +1 -1
  570. package/dist/harmony79.mjs +26 -80
  571. package/dist/harmony79.mjs.map +1 -1
  572. package/dist/harmony80.cjs +22 -4
  573. package/dist/harmony80.cjs.map +1 -1
  574. package/dist/harmony80.mjs +22 -4
  575. package/dist/harmony80.mjs.map +1 -1
  576. package/dist/harmony81.cjs +129 -16
  577. package/dist/harmony81.cjs.map +1 -1
  578. package/dist/harmony81.mjs +129 -16
  579. package/dist/harmony81.mjs.map +1 -1
  580. package/dist/harmony82.cjs +35 -22
  581. package/dist/harmony82.cjs.map +1 -1
  582. package/dist/harmony82.mjs +35 -22
  583. package/dist/harmony82.mjs.map +1 -1
  584. package/dist/harmony83.cjs +25 -140
  585. package/dist/harmony83.cjs.map +1 -1
  586. package/dist/harmony83.mjs +25 -140
  587. package/dist/harmony83.mjs.map +1 -1
  588. package/dist/harmony84.cjs +3 -36
  589. package/dist/harmony84.cjs.map +1 -1
  590. package/dist/harmony84.mjs +3 -36
  591. package/dist/harmony84.mjs.map +1 -1
  592. package/dist/harmony85.cjs +82 -24
  593. package/dist/harmony85.cjs.map +1 -1
  594. package/dist/harmony85.mjs +82 -24
  595. package/dist/harmony85.mjs.map +1 -1
  596. package/dist/harmony86.cjs +57 -3
  597. package/dist/harmony86.cjs.map +1 -1
  598. package/dist/harmony86.mjs +57 -3
  599. package/dist/harmony86.mjs.map +1 -1
  600. package/dist/harmony87.cjs +16 -82
  601. package/dist/harmony87.cjs.map +1 -1
  602. package/dist/harmony87.mjs +16 -82
  603. package/dist/harmony87.mjs.map +1 -1
  604. package/dist/harmony88.cjs +8 -58
  605. package/dist/harmony88.cjs.map +1 -1
  606. package/dist/harmony88.mjs +7 -57
  607. package/dist/harmony88.mjs.map +1 -1
  608. package/dist/harmony89.cjs +3 -19
  609. package/dist/harmony89.cjs.map +1 -1
  610. package/dist/harmony89.mjs +2 -18
  611. package/dist/harmony89.mjs.map +1 -1
  612. package/dist/harmony9.cjs +1 -1
  613. package/dist/harmony9.mjs +1 -1
  614. package/dist/harmony90.cjs +3 -9
  615. package/dist/harmony90.cjs.map +1 -1
  616. package/dist/harmony90.mjs +2 -8
  617. package/dist/harmony90.mjs.map +1 -1
  618. package/dist/harmony91.cjs +15 -2
  619. package/dist/harmony91.cjs.map +1 -1
  620. package/dist/harmony91.mjs +15 -2
  621. package/dist/harmony91.mjs.map +1 -1
  622. package/dist/harmony92.cjs +18 -2
  623. package/dist/harmony92.cjs.map +1 -1
  624. package/dist/harmony92.mjs +18 -2
  625. package/dist/harmony92.mjs.map +1 -1
  626. package/dist/harmony93.cjs +60 -14
  627. package/dist/harmony93.cjs.map +1 -1
  628. package/dist/harmony93.mjs +60 -14
  629. package/dist/harmony93.mjs.map +1 -1
  630. package/dist/harmony94.cjs +9 -19
  631. package/dist/harmony94.cjs.map +1 -1
  632. package/dist/harmony94.mjs +8 -18
  633. package/dist/harmony94.mjs.map +1 -1
  634. package/dist/harmony95.cjs +28 -60
  635. package/dist/harmony95.cjs.map +1 -1
  636. package/dist/harmony95.mjs +28 -60
  637. package/dist/harmony95.mjs.map +1 -1
  638. package/dist/harmony96.cjs +3 -8
  639. package/dist/harmony96.cjs.map +1 -1
  640. package/dist/harmony96.mjs +3 -8
  641. package/dist/harmony96.mjs.map +1 -1
  642. package/dist/harmony97.cjs +27 -27
  643. package/dist/harmony97.cjs.map +1 -1
  644. package/dist/harmony97.mjs +28 -28
  645. package/dist/harmony97.mjs.map +1 -1
  646. package/dist/harmony98.cjs +66 -3
  647. package/dist/harmony98.cjs.map +1 -1
  648. package/dist/harmony98.mjs +66 -3
  649. package/dist/harmony98.mjs.map +1 -1
  650. package/dist/harmony99.cjs +3 -29
  651. package/dist/harmony99.cjs.map +1 -1
  652. package/dist/harmony99.mjs +3 -29
  653. package/dist/harmony99.mjs.map +1 -1
  654. package/dist/types/src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.d.ts +1 -1
  655. package/dist/types/src/features/auth/core/middleware/publicApiHeaderBuilderMiddleware.d.ts +1 -1
  656. package/dist/types/src/features/auth/factories/headerBuilderFactories.d.ts +1 -1
  657. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedProjectContributor.d.ts +1 -1
  658. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +1 -1
  659. package/dist/types/src/features/auth/frontend/hooks/useGetPromotedClassicSessionJwtQuery.d.ts +1 -1
  660. package/dist/types/src/features/auth/node.d.ts +0 -2
  661. package/dist/types/src/features/publicApi/TESTING_CONTRACTS.d.ts +1 -1
  662. package/dist/types/src/features/publicApi/hooks/useAddContributorsMutation.d.ts +1 -1
  663. package/dist/types/src/features/publicApi/hooks/useAddLanguagesToProjectMutation.d.ts +1 -1
  664. package/dist/types/src/features/publicApi/hooks/useBulkUpdateProjectLanguagesMutation.d.ts +1 -1
  665. package/dist/types/src/features/publicApi/hooks/useCreateProjectMutation.d.ts +1 -1
  666. package/dist/types/src/features/publicApi/hooks/useCreateScoreMutation.d.ts +1 -1
  667. package/dist/types/src/features/publicApi/hooks/useDeleteContributorMutation.d.ts +1 -1
  668. package/dist/types/src/features/publicApi/hooks/useDeleteProjectMutation.d.ts +1 -1
  669. package/dist/types/src/features/publicApi/hooks/useDeleteScoreMutation.d.ts +1 -1
  670. package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +1 -1
  671. package/dist/types/src/features/publicApi/hooks/useGetScoreQuery.d.ts +1 -1
  672. package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +1 -1
  673. package/dist/types/src/features/publicApi/hooks/useGetUserTokenQuery.d.ts +1 -1
  674. package/dist/types/src/features/publicApi/hooks/useListContributorsQuery.d.ts +1 -1
  675. package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +1 -1
  676. package/dist/types/src/features/publicApi/hooks/useListProjectLanguagesQuery.d.ts +1 -1
  677. package/dist/types/src/features/publicApi/hooks/useListProjectsQuery.d.ts +1 -1
  678. package/dist/types/src/features/publicApi/hooks/useListTeamUsersQuery.d.ts +1 -1
  679. package/dist/types/src/features/publicApi/hooks/useListTeamsQuery.d.ts +1 -1
  680. package/dist/types/src/features/publicApi/hooks/useRetrieveContributorQuery.d.ts +1 -1
  681. package/dist/types/src/features/publicApi/hooks/useRetrieveProjectQuery.d.ts +1 -1
  682. package/dist/types/src/features/publicApi/hooks/useRetrieveTeamQuery.d.ts +1 -1
  683. package/dist/types/src/features/publicApi/hooks/useRetrieveUserPermissions.d.ts +1 -1
  684. package/dist/types/src/features/publicApi/hooks/useUpdateContributorMutation.d.ts +1 -1
  685. package/dist/types/src/features/publicApi/hooks/useUpdateProjectMutation.d.ts +1 -1
  686. package/dist/types/tests/utils/apiHelpers.d.ts +1 -1
  687. package/package.json +1 -1
  688. package/dist/harmony178.cjs +0 -35
  689. package/dist/harmony178.cjs.map +0 -1
  690. package/dist/harmony178.mjs +0 -35
  691. package/dist/harmony178.mjs.map +0 -1
  692. package/dist/harmony179.cjs +0 -17
  693. package/dist/harmony179.cjs.map +0 -1
  694. package/dist/harmony179.mjs +0 -17
  695. package/dist/harmony179.mjs.map +0 -1
  696. package/dist/types/src/features/auth/core/headers/createHeaderBuilderMiddleware.d.ts +0 -32
  697. package/dist/types/src/features/auth/core/headers/createHeaderBuilderMiddleware.test.d.ts +0 -1
  698. package/dist/types/src/features/auth/core/headers/headerBuilder.d.ts +0 -171
  699. package/dist/types/src/features/auth/core/headers/headerBuilder.test.d.ts +0 -1
@@ -1,41 +1,36 @@
1
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { IconLink } from "./harmony113.mjs";
3
- import { ProfileMenu } from "./harmony114.mjs";
4
- import { useSidebar } from "./harmony115.mjs";
5
- import { Skeleton, Rectangle, ProjectIcon, ShoppingBagIcon, StyleguideIcon, ChartLineIcon } from "@lokalise/louis";
6
- import { canAccessStyleGuide, canAccessReporting } from "./harmony116.mjs";
7
- import { Avatar } from "./harmony117.mjs";
8
- import { HelpMenu } from "./harmony118.mjs";
9
- import styles from "./harmony119.mjs";
10
- const SidebarContent = ({ widgetsConfig, children, ...navProps }) => {
11
- const sidebarContextProps = useSidebar();
12
- const { jwt } = sidebarContextProps;
13
- const { avatar, styleGuide } = widgetsConfig;
14
- return /* @__PURE__ */ jsxs("nav", { ...navProps, className: styles.sidebarContainer, children: [
15
- /* @__PURE__ */ jsxs("div", { children: [
16
- /* @__PURE__ */ jsx(Avatar, { ...avatar }),
17
- !jwt ? /* @__PURE__ */ jsx(Skeleton, { description: "Top Section Loader", animated: true, className: styles.sidebarSkeleton, children: Array.from({ length: 3 }).map(() => /* @__PURE__ */ jsx(
18
- Rectangle,
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { TableHeaderCell as TableHeaderCell$1 } from "@lokalise/louis";
3
+ import { flexRender } from "@tanstack/react-table";
4
+ import { clsx } from "./harmony91.mjs";
5
+ import { SortingIcon } from "./harmony116.mjs";
6
+ import styles from "./harmony117.mjs";
7
+ const TableHeaderCell = ({
8
+ header,
9
+ align = "left",
10
+ className,
11
+ ...rest
12
+ }) => /* @__PURE__ */ jsxs(
13
+ TableHeaderCell$1,
14
+ {
15
+ className: clsx(className, {
16
+ [styles.centeredCell]: align === "center",
17
+ [styles.rightAlignedCell]: align === "right"
18
+ }),
19
+ ...rest,
20
+ children: [
21
+ flexRender(header.column.columnDef.header, header.getContext()),
22
+ header.column.getCanSort() && /* @__PURE__ */ jsx(
23
+ SortColumnButton,
19
24
  {
20
- height: 40,
21
- width: 40
22
- },
23
- `sidebar-top-widget-loader-${crypto.randomUUID()}`
24
- )) }) : /* @__PURE__ */ jsx(Fragment, { children: jwt && !jwt.isEndOfTrialActive && !jwt.isTeamSuspended && /* @__PURE__ */ jsxs(Fragment, { children: [
25
- /* @__PURE__ */ jsx(IconLink, { to: "/projects", label: "Projects", icon: ProjectIcon }),
26
- /* @__PURE__ */ jsx(IconLink, { to: "/order", label: "Order", icon: ShoppingBagIcon }),
27
- (styleGuide == null ? void 0 : styleGuide.enabled) && canAccessStyleGuide(jwt) && /* @__PURE__ */ jsx(IconLink, { to: "/style-guide", label: "Style Guide", icon: StyleguideIcon }),
28
- canAccessReporting(jwt) && /* @__PURE__ */ jsx(IconLink, { to: "/analytics", label: "Analytics", icon: ChartLineIcon })
29
- ] }) }),
30
- /* @__PURE__ */ jsx(HelpMenu, { ...widgetsConfig.helpMenu })
31
- ] }),
32
- /* @__PURE__ */ jsxs("div", { children: [
33
- children && typeof children === "function" ? children(sidebarContextProps) : children,
34
- /* @__PURE__ */ jsx(ProfileMenu, { config: widgetsConfig.profileMenu })
35
- ] })
36
- ] });
37
- };
25
+ direction: header.column.getIsSorted(),
26
+ onSortToggle: header.column.getToggleSortingHandler()
27
+ }
28
+ )
29
+ ]
30
+ }
31
+ );
32
+ const SortColumnButton = ({ direction, onSortToggle }) => /* @__PURE__ */ jsx("button", { type: "button", onClick: onSortToggle, className: styles.headerSortButton, children: /* @__PURE__ */ jsx(SortingIcon, { direction }) });
38
33
  export {
39
- SidebarContent
34
+ TableHeaderCell
40
35
  };
41
36
  //# sourceMappingURL=harmony104.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony104.mjs","sources":["../src/components/Sidebar/SidebarContent/SidebarContent.tsx"],"sourcesContent":["import { IconLink } from '@components/Sidebar/Widgets/IconLink/IconLink'\nimport { ProfileMenu } from '@components/Sidebar/Widgets/ProfileMenu/ProfileMenu'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarWidgetsConfig } from '@components/Sidebar/types'\nimport type { SidebarContextProps } from '@components/Sidebar/types'\nimport {\n\tChartLineIcon,\n\tProjectIcon,\n\tRectangle,\n\tShoppingBagIcon,\n\tSkeleton,\n\tStyleguideIcon,\n} from '@lokalise/louis'\nimport { canAccessReporting, canAccessStyleGuide } from '@utils/user/permissions'\nimport type { HTMLProps, ReactNode } from 'react'\nimport { Avatar } from '../Widgets/Avatar/Avatar'\nimport { HelpMenu } from '../Widgets/HelpMenu/HelpMenu'\nimport styles from './SidebarContent.module.css'\n\nexport type SidebarContentProps = Omit<HTMLProps<HTMLElement>, 'children'> & {\n\twidgetsConfig: SidebarWidgetsConfig\n\tchildren?: ((props: SidebarContextProps) => ReactNode) | ReactNode\n}\n\nexport const SidebarContent = ({ widgetsConfig, children, ...navProps }: SidebarContentProps) => {\n\tconst sidebarContextProps = useSidebar()\n\n\tconst { jwt } = sidebarContextProps\n\n\tconst { avatar, styleGuide } = widgetsConfig\n\n\treturn (\n\t\t<nav {...navProps} className={styles.sidebarContainer}>\n\t\t\t<div>\n\t\t\t\t<Avatar {...avatar} />\n\n\t\t\t\t{!jwt ? (\n\t\t\t\t\t<Skeleton description={'Top Section Loader'} animated className={styles.sidebarSkeleton}>\n\t\t\t\t\t\t{Array.from({ length: 3 }).map(() => (\n\t\t\t\t\t\t\t<Rectangle\n\t\t\t\t\t\t\t\tkey={`sidebar-top-widget-loader-${crypto.randomUUID()}`}\n\t\t\t\t\t\t\t\theight={40}\n\t\t\t\t\t\t\t\twidth={40}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Skeleton>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{jwt && !jwt.isEndOfTrialActive && !jwt.isTeamSuspended && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{/** TODO - All URLs should be pointing to Expert here. We need resolve URL function to deal with this */}\n\t\t\t\t\t\t\t\t<IconLink to=\"/projects\" label={'Projects'} icon={ProjectIcon} />\n\t\t\t\t\t\t\t\t<IconLink to=\"/order\" label=\"Order\" icon={ShoppingBagIcon} />\n\n\t\t\t\t\t\t\t\t{styleGuide?.enabled && canAccessStyleGuide(jwt) && (\n\t\t\t\t\t\t\t\t\t<IconLink to=\"/style-guide\" label=\"Style Guide\" icon={StyleguideIcon} />\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{canAccessReporting(jwt) && (\n\t\t\t\t\t\t\t\t\t<IconLink to=\"/analytics\" label=\"Analytics\" icon={ChartLineIcon} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t<HelpMenu {...widgetsConfig.helpMenu} />\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t{children && typeof children === 'function' ? children(sidebarContextProps) : children}\n\t\t\t\t<ProfileMenu config={widgetsConfig.profileMenu} />\n\t\t\t</div>\n\t\t</nav>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;;;AAwBO,MAAM,iBAAiB,CAAC,EAAE,eAAe,UAAU,GAAG,eAAoC;AAChG,QAAM,sBAAsB,WAAW;AAEjC,QAAA,EAAE,QAAQ;AAEV,QAAA,EAAE,QAAQ,WAAA,IAAe;AAE/B,8BACE,OAAK,EAAA,GAAG,UAAU,WAAW,OAAO,kBACpC,UAAA;AAAA,IAAA,qBAAC,OACA,EAAA,UAAA;AAAA,MAAC,oBAAA,QAAA,EAAQ,GAAG,QAAQ;AAAA,MAEnB,CAAC,MACD,oBAAC,YAAS,aAAa,sBAAsB,UAAQ,MAAC,WAAW,OAAO,iBACtE,UAAA,MAAM,KAAK,EAAE,QAAQ,EAAG,CAAA,EAAE,IAAI,MAC9B;AAAA,QAAC;AAAA,QAAA;AAAA,UAEA,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,QAFF,6BAA6B,OAAO,YAAY;AAAA,MAAA,CAItD,EACF,CAAA,IAGE,oBAAA,UAAA,EAAA,UAAA,OAAO,CAAC,IAAI,sBAAsB,CAAC,IAAI,mBAGtC,qBAAA,UAAA,EAAA,UAAA;AAAA,QAAA,oBAAC,YAAS,IAAG,aAAY,OAAO,YAAY,MAAM,aAAa;AAAA,4BAC9D,UAAS,EAAA,IAAG,UAAS,OAAM,SAAQ,MAAM,iBAAiB;AAAA,SAE1D,yCAAY,YAAW,oBAAoB,GAAG,KAC9C,oBAAC,UAAS,EAAA,IAAG,gBAAe,OAAM,eAAc,MAAM,eAAgB,CAAA;AAAA,QAGtE,mBAAmB,GAAG,KACrB,oBAAA,UAAA,EAAS,IAAG,cAAa,OAAM,aAAY,MAAM,cAAe,CAAA;AAAA,MAAA,EAAA,CAEnE,EAEF,CAAA;AAAA,MAEA,oBAAA,UAAA,EAAU,GAAG,cAAc,SAAU,CAAA;AAAA,IAAA,GACvC;AAAA,yBACC,OACC,EAAA,UAAA;AAAA,MAAA,YAAY,OAAO,aAAa,aAAa,SAAS,mBAAmB,IAAI;AAAA,MAC7E,oBAAA,aAAA,EAAY,QAAQ,cAAc,YAAa,CAAA;AAAA,IAAA,EACjD,CAAA;AAAA,EAAA,GACD;AAEF;"}
1
+ {"version":3,"file":"harmony104.mjs","sources":["../src/components/Table/components/TableHeaderCell.tsx"],"sourcesContent":["import {\n\tTableHeaderCell as LouisTableHeaderCell,\n\ttype TableHeaderCellProps as LouisTableHeaderCellProps,\n} from '@lokalise/louis'\nimport { type Header, type SortDirection, flexRender } from '@tanstack/react-table'\nimport cx from 'clsx'\nimport { SortingIcon } from './SortingIcon'\nimport styles from './TableHeaderCell.module.css'\n\ntype TableHeaderProps<T> = LouisTableHeaderCellProps & {\n\theader: Header<T, unknown>\n}\n\nexport const TableHeaderCell = <T,>({\n\theader,\n\talign = 'left',\n\tclassName,\n\t...rest\n}: TableHeaderProps<T>) => (\n\t<LouisTableHeaderCell\n\t\tclassName={cx(className, {\n\t\t\t[styles.centeredCell]: align === 'center',\n\t\t\t[styles.rightAlignedCell]: align === 'right',\n\t\t})}\n\t\t{...rest}\n\t>\n\t\t{flexRender(header.column.columnDef.header, header.getContext())}\n\t\t{header.column.getCanSort() && (\n\t\t\t<SortColumnButton\n\t\t\t\tdirection={header.column.getIsSorted()}\n\t\t\t\tonSortToggle={header.column.getToggleSortingHandler()}\n\t\t\t/>\n\t\t)}\n\t</LouisTableHeaderCell>\n)\n\ntype SortColumnButtonProps = {\n\tdirection: SortDirection | false\n\tonSortToggle?: (event: unknown) => void\n}\n\nconst SortColumnButton = ({ direction, onSortToggle }: SortColumnButtonProps) => (\n\t<button type=\"button\" onClick={onSortToggle} className={styles.headerSortButton}>\n\t\t<SortingIcon direction={direction} />\n\t</button>\n)\n"],"names":["LouisTableHeaderCell","cx"],"mappings":";;;;;;AAaO,MAAM,kBAAkB,CAAK;AAAA,EACnC;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACJ,MACC;AAAA,EAACA;AAAAA,EAAA;AAAA,IACA,WAAWC,KAAG,WAAW;AAAA,MACxB,CAAC,OAAO,YAAY,GAAG,UAAU;AAAA,MACjC,CAAC,OAAO,gBAAgB,GAAG,UAAU;AAAA,IAAA,CACrC;AAAA,IACA,GAAG;AAAA,IAEH,UAAA;AAAA,MAAA,WAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,YAAY;AAAA,MAC9D,OAAO,OAAO,WAAA,KACd;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,WAAW,OAAO,OAAO,YAAY;AAAA,UACrC,cAAc,OAAO,OAAO,wBAAwB;AAAA,QAAA;AAAA,MAAA;AAAA,IACrD;AAAA,EAAA;AAEF;AAQD,MAAM,mBAAmB,CAAC,EAAE,WAAW,aAAa,0BAClD,UAAO,EAAA,MAAK,UAAS,SAAS,cAAc,WAAW,OAAO,kBAC9D,UAAC,oBAAA,aAAA,EAAY,UAAsB,CAAA,GACpC;"}
@@ -1,12 +1,169 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const breadcrumbsItem = "_breadcrumbsItem_1hm6a_1";
4
- const breadcrumbs = "_breadcrumbs_1hm6a_1";
5
- const classes = {
6
- breadcrumbsItem,
7
- breadcrumbs
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const NavigationClientProvider = require("./harmony16.cjs");
5
+ const toolbarVisibility = require("./harmony127.cjs");
6
+ const useExpertNavigation = (enabled, project, contributor) => {
7
+ const adminRights = (contributor == null ? void 0 : contributor.admin_rights) || [];
8
+ const marketingSupportProjectSelectedAppSlug = "selected-app-slug";
9
+ const navigationClient = NavigationClientProvider.useNavigationClient();
10
+ const expertUrl = navigationClient.getExpertUrl();
11
+ return React.useMemo(() => {
12
+ if (!project || !enabled) {
13
+ return [];
14
+ }
15
+ const navigationVisibility = toolbarVisibility.getProjectNavigationVisibilityMap(
16
+ project,
17
+ adminRights,
18
+ () => true
19
+ );
20
+ const appsNavigationItem = {
21
+ key: "apps",
22
+ label: "Apps",
23
+ isActive: (input) => input === "apps",
24
+ link: `${expertUrl}/apps/${project.project_id}/`,
25
+ ...navigationVisibility.apps
26
+ };
27
+ const appsNavigationItemArrInMainMenu = [];
28
+ const appsNavigationItemArrInMoreMenu = [];
29
+ if (project.project_type === "content_integration") {
30
+ appsNavigationItemArrInMoreMenu.push(appsNavigationItem);
31
+ } else {
32
+ appsNavigationItemArrInMainMenu.push(appsNavigationItem);
33
+ }
34
+ return [
35
+ {
36
+ key: "edit",
37
+ label: "Editor",
38
+ link: `${expertUrl}/project/${project.project_id}/`,
39
+ isActive: (input) => input === "edit",
40
+ ...navigationVisibility.editor
41
+ },
42
+ {
43
+ key: "files",
44
+ label: "Files",
45
+ link: `${expertUrl}/files/${project.project_id}/`,
46
+ isActive: (input) => input === "files",
47
+ ...navigationVisibility.files
48
+ },
49
+ ...project.project_type === "content_integration" ? [
50
+ {
51
+ key: "contentManagement",
52
+ label: "Content management",
53
+ isActive: (input) => input === "apps",
54
+ link: `${expertUrl}/apps/${project.project_id}/${marketingSupportProjectSelectedAppSlug}`,
55
+ ...navigationVisibility.contentManagement
56
+ }
57
+ ] : [
58
+ {
59
+ key: "upload",
60
+ label: "Upload",
61
+ link: `${expertUrl}/upload/${project.project_id}/`,
62
+ isActive: (input) => input === "upload",
63
+ ...navigationVisibility.upload
64
+ },
65
+ {
66
+ key: "download",
67
+ label: "Download",
68
+ link: `${expertUrl}/download/${project.project_id}/`,
69
+ isActive: (input) => input === "download",
70
+ ...navigationVisibility.download
71
+ }
72
+ ],
73
+ {
74
+ key: "tasks",
75
+ label: "Tasks",
76
+ link: `${expertUrl}/tasks/${project.project_id}/`,
77
+ isActive: (input) => input === "tasks",
78
+ // TODO: Add task count
79
+ // badge: taskCount,
80
+ ...navigationVisibility.tasks
81
+ },
82
+ {
83
+ key: "workflows",
84
+ label: "Workflows",
85
+ link: `${expertUrl}/workflows/${project.project_id}/`,
86
+ isActive: (input) => input === "workflows",
87
+ novel: "New",
88
+ onClick: () => {
89
+ window.location.assign(`${expertUrl}/workflows/${project.project_id}/`);
90
+ },
91
+ ...navigationVisibility.workflows
92
+ },
93
+ {
94
+ key: "contributors",
95
+ label: "Contributors",
96
+ link: `${expertUrl}/contributors/${project.project_id}/`,
97
+ isActive: (input) => input === "contributors",
98
+ ...navigationVisibility.contributors
99
+ },
100
+ {
101
+ key: "screenshots",
102
+ label: "Screenshots",
103
+ link: `${expertUrl}/screenshots/${project.project_id}/`,
104
+ isActive: (input) => input === "screenshots",
105
+ ...navigationVisibility.screenshots
106
+ },
107
+ {
108
+ key: "glossary",
109
+ label: "Glossary",
110
+ link: `${expertUrl}/glossary/${project.project_id}/`,
111
+ isActive: (input) => input === "glossary",
112
+ ...navigationVisibility.glossary
113
+ },
114
+ ...appsNavigationItemArrInMainMenu,
115
+ {
116
+ key: "more",
117
+ label: "More...",
118
+ isActive: (input) => ["settings", "statistics", "duplicates", "live edit"].includes(input),
119
+ ...navigationVisibility.more,
120
+ dropdown: [
121
+ [
122
+ {
123
+ link: `${expertUrl}/settings/${project.project_id}/`,
124
+ label: "Settings",
125
+ ...navigationVisibility.settings
126
+ },
127
+ {
128
+ link: `${expertUrl}/settings/${project.project_id}/#branches`,
129
+ label: "Branches",
130
+ ...navigationVisibility.branches
131
+ },
132
+ {
133
+ link: `${expertUrl}/settings/${project.project_id}/#ota-bundles`,
134
+ label: "OTA Bundles",
135
+ ...navigationVisibility.otaBundles
136
+ },
137
+ {
138
+ link: `${expertUrl}/settings/${project.project_id}/#project-automations`,
139
+ label: "Automations",
140
+ ...navigationVisibility.automations
141
+ },
142
+ {
143
+ link: `${expertUrl}/dupes/${project.project_id}/`,
144
+ label: "Duplicate finder",
145
+ ...navigationVisibility.duplicateFinder
146
+ }
147
+ ],
148
+ [
149
+ ...appsNavigationItemArrInMoreMenu,
150
+ {
151
+ // TODO: This could be problematic tab, because it is not a link and we can't just redirect. We need to find a workaround for that.
152
+ label: "Activity",
153
+ onClick: () => {
154
+ },
155
+ ...navigationVisibility.activity
156
+ },
157
+ {
158
+ link: `${expertUrl}/statistics/${project.project_id}/`,
159
+ label: "Statistics",
160
+ ...navigationVisibility.statistics
161
+ }
162
+ ]
163
+ ]
164
+ }
165
+ ];
166
+ }, [project, adminRights, enabled, expertUrl]);
8
167
  };
9
- exports.breadcrumbs = breadcrumbs;
10
- exports.breadcrumbsItem = breadcrumbsItem;
11
- exports.default = classes;
168
+ exports.useExpertNavigation = useExpertNavigation;
12
169
  //# sourceMappingURL=harmony105.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony105.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony105.cjs","sources":["../src/features/navigation/hooks/useExpertNavigation.ts"],"sourcesContent":["import type { Contributor, Project } from '@features/node'\nimport { useMemo } from 'react'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\nimport type { NavigationTabsItem } from '../types/navigation'\nimport { getProjectNavigationVisibilityMap } from '../utils/toolbarVisibility'\n\n// TODO: Validate features types\nexport const getIsFeatureEnabled = (features: Record<string, boolean>, name: string) => {\n\tconst featureState = features[name]\n\n\treturn (\n\t\tfeatureState !== null &&\n\t\tfeatureState !== undefined &&\n\t\t[true, 'on', 'true'].includes(featureState)\n\t)\n}\n\n/**\n * Hook to generate legacy navigation items using the existing structure\n * but with context API instead of Redux\n */\nexport const useExpertNavigation = (\n\tenabled: boolean,\n\tproject?: Project,\n\tcontributor?: Contributor,\n) => {\n\t// Use contributor data if provided, otherwise use defaults\n\tconst adminRights = contributor?.admin_rights || []\n\t// TODO: Implement selected app slug, small investigation is needed\n\tconst marketingSupportProjectSelectedAppSlug = 'selected-app-slug'\n\tconst navigationClient = useNavigationClient()\n\tconst expertUrl = navigationClient.getExpertUrl()\n\n\treturn useMemo(() => {\n\t\t// Get data from contexts instead of Redux, or use provided data\n\t\tif (!project || !enabled) {\n\t\t\treturn []\n\t\t}\n\t\t/* TODO: We're missing badges API. We need to get it from the backend or find alternative way to get task count\n\t\t * Fetch tasks and calculate count is not a good idea, because it can have pagination, therefore we can\n\t\t * ask for an additional prop in tasks response: task_count based on branch_id + project_id + task_status\n\t\t */\n\t\t// const taskCount = getTaskCount(project, branch, badges.tasks)\n\n\t\t// TODO: Implement feature flags functionality, most likely separate package\n\t\t// const isFeatureEnabled = (feature: string) => getIsFeatureEnabled(features, feature)\n\n\t\tconst navigationVisibility = getProjectNavigationVisibilityMap(\n\t\t\tproject,\n\t\t\tadminRights,\n\t\t\t() => true /*isFeatureEnabled*/,\n\t\t)\n\n\t\tconst appsNavigationItem: NavigationTabsItem = {\n\t\t\tkey: 'apps',\n\t\t\tlabel: 'Apps',\n\t\t\tisActive: (input: string) => input === 'apps',\n\t\t\tlink: `${expertUrl}/apps/${project.project_id}/`,\n\t\t\t...navigationVisibility.apps,\n\t\t}\n\n\t\tconst appsNavigationItemArrInMainMenu: NavigationTabsItem[] = []\n\t\tconst appsNavigationItemArrInMoreMenu: NavigationTabsItem[] = []\n\n\t\tif (project.project_type === 'content_integration') {\n\t\t\tappsNavigationItemArrInMoreMenu.push(appsNavigationItem)\n\t\t} else {\n\t\t\tappsNavigationItemArrInMainMenu.push(appsNavigationItem)\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tkey: 'edit',\n\t\t\t\tlabel: 'Editor',\n\t\t\t\tlink: `${expertUrl}/project/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'edit',\n\t\t\t\t...navigationVisibility.editor,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'files',\n\t\t\t\tlabel: 'Files',\n\t\t\t\tlink: `${expertUrl}/files/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'files',\n\t\t\t\t...navigationVisibility.files,\n\t\t\t},\n\t\t\t...(project.project_type === 'content_integration'\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'contentManagement',\n\t\t\t\t\t\t\tlabel: 'Content management',\n\t\t\t\t\t\t\tisActive: (input: string) => input === 'apps',\n\t\t\t\t\t\t\tlink: `${expertUrl}/apps/${project.project_id}/${marketingSupportProjectSelectedAppSlug}`,\n\t\t\t\t\t\t\t...navigationVisibility.contentManagement,\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'upload',\n\t\t\t\t\t\t\tlabel: 'Upload',\n\t\t\t\t\t\t\tlink: `${expertUrl}/upload/${project.project_id}/`,\n\t\t\t\t\t\t\tisActive: (input: string) => input === 'upload',\n\t\t\t\t\t\t\t...navigationVisibility.upload,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\t\tlabel: 'Download',\n\t\t\t\t\t\t\tlink: `${expertUrl}/download/${project.project_id}/`,\n\t\t\t\t\t\t\tisActive: (input: string) => input === 'download',\n\t\t\t\t\t\t\t...navigationVisibility.download,\n\t\t\t\t\t\t},\n\t\t\t\t\t]),\n\t\t\t{\n\t\t\t\tkey: 'tasks',\n\t\t\t\tlabel: 'Tasks',\n\t\t\t\tlink: `${expertUrl}/tasks/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'tasks',\n\t\t\t\t// TODO: Add task count\n\t\t\t\t// badge: taskCount,\n\t\t\t\t...navigationVisibility.tasks,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'workflows',\n\t\t\t\tlabel: 'Workflows',\n\t\t\t\tlink: `${expertUrl}/workflows/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'workflows',\n\t\t\t\tnovel: 'New',\n\t\t\t\tonClick: () => {\n\t\t\t\t\t// TODO: Resolve analytics globally, most likely separate package\n\t\t\t\t\t// track(AnalyticsEventName.EDITOR_WORKFLOWS_TAB_CLICKED);\n\t\t\t\t\twindow.location.assign(`${expertUrl}/workflows/${project.project_id}/`)\n\t\t\t\t},\n\t\t\t\t...navigationVisibility.workflows,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'contributors',\n\t\t\t\tlabel: 'Contributors',\n\t\t\t\tlink: `${expertUrl}/contributors/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'contributors',\n\t\t\t\t...navigationVisibility.contributors,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'screenshots',\n\t\t\t\tlabel: 'Screenshots',\n\t\t\t\tlink: `${expertUrl}/screenshots/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'screenshots',\n\t\t\t\t...navigationVisibility.screenshots,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'glossary',\n\t\t\t\tlabel: 'Glossary',\n\t\t\t\tlink: `${expertUrl}/glossary/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'glossary',\n\t\t\t\t...navigationVisibility.glossary,\n\t\t\t},\n\t\t\t...appsNavigationItemArrInMainMenu,\n\t\t\t{\n\t\t\t\tkey: 'more',\n\t\t\t\tlabel: 'More...',\n\t\t\t\tisActive: (input: string) =>\n\t\t\t\t\t['settings', 'statistics', 'duplicates', 'live edit'].includes(input),\n\t\t\t\t...navigationVisibility.more,\n\t\t\t\tdropdown: [\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/`,\n\t\t\t\t\t\t\tlabel: 'Settings',\n\t\t\t\t\t\t\t...navigationVisibility.settings,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/#branches`,\n\t\t\t\t\t\t\tlabel: 'Branches',\n\t\t\t\t\t\t\t...navigationVisibility.branches,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/#ota-bundles`,\n\t\t\t\t\t\t\tlabel: 'OTA Bundles',\n\t\t\t\t\t\t\t...navigationVisibility.otaBundles,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/#project-automations`,\n\t\t\t\t\t\t\tlabel: 'Automations',\n\t\t\t\t\t\t\t...navigationVisibility.automations,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/dupes/${project.project_id}/`,\n\t\t\t\t\t\t\tlabel: 'Duplicate finder',\n\t\t\t\t\t\t\t...navigationVisibility.duplicateFinder,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t...appsNavigationItemArrInMoreMenu,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// TODO: This could be problematic tab, because it is not a link and we can't just redirect. We need to find a workaround for that.\n\t\t\t\t\t\t\tlabel: 'Activity',\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t// const showActivityEvent = new CustomEvent(\"show-activity\", {\n\t\t\t\t\t\t\t\t// \tdetail: {\n\t\t\t\t\t\t\t\t// \t\tprojectId: project.id,\n\t\t\t\t\t\t\t\t// \t\tbranchId: branch.branchId,\n\t\t\t\t\t\t\t\t// \t\tbranchName: branch.branchName,\n\t\t\t\t\t\t\t\t// \t},\n\t\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t\t// document.dispatchEvent(showActivityEvent);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...navigationVisibility.activity,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/statistics/${project.project_id}/`,\n\t\t\t\t\t\t\tlabel: 'Statistics',\n\t\t\t\t\t\t\t...navigationVisibility.statistics,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t},\n\t\t]\n\t}, [project, adminRights, enabled, expertUrl])\n}\n\n// TODO: Helper function for getting task count from badge data\n// const _getTaskCount = (project: any, branch: any, taskBadges: any) => {\n// \tif (!taskBadges) return 0\n\n// \t// Implementation would depend on your getTaskCountFromTasks utility\n// \t// Simplified version:\n// \tconst projectTasks = taskBadges[project.id] || {}\n// \treturn projectTasks[branch.branchId || 'master'] || 0\n// }\n"],"names":["useNavigationClient","useMemo","getProjectNavigationVisibilityMap"],"mappings":"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"}
@@ -1,12 +1,169 @@
1
- const breadcrumbsItem = "_breadcrumbsItem_1hm6a_1";
2
- const breadcrumbs = "_breadcrumbs_1hm6a_1";
3
- const classes = {
4
- breadcrumbsItem,
5
- breadcrumbs
1
+ import { useMemo } from "react";
2
+ import { useNavigationClient } from "./harmony16.mjs";
3
+ import { getProjectNavigationVisibilityMap } from "./harmony127.mjs";
4
+ const useExpertNavigation = (enabled, project, contributor) => {
5
+ const adminRights = (contributor == null ? void 0 : contributor.admin_rights) || [];
6
+ const marketingSupportProjectSelectedAppSlug = "selected-app-slug";
7
+ const navigationClient = useNavigationClient();
8
+ const expertUrl = navigationClient.getExpertUrl();
9
+ return useMemo(() => {
10
+ if (!project || !enabled) {
11
+ return [];
12
+ }
13
+ const navigationVisibility = getProjectNavigationVisibilityMap(
14
+ project,
15
+ adminRights,
16
+ () => true
17
+ );
18
+ const appsNavigationItem = {
19
+ key: "apps",
20
+ label: "Apps",
21
+ isActive: (input) => input === "apps",
22
+ link: `${expertUrl}/apps/${project.project_id}/`,
23
+ ...navigationVisibility.apps
24
+ };
25
+ const appsNavigationItemArrInMainMenu = [];
26
+ const appsNavigationItemArrInMoreMenu = [];
27
+ if (project.project_type === "content_integration") {
28
+ appsNavigationItemArrInMoreMenu.push(appsNavigationItem);
29
+ } else {
30
+ appsNavigationItemArrInMainMenu.push(appsNavigationItem);
31
+ }
32
+ return [
33
+ {
34
+ key: "edit",
35
+ label: "Editor",
36
+ link: `${expertUrl}/project/${project.project_id}/`,
37
+ isActive: (input) => input === "edit",
38
+ ...navigationVisibility.editor
39
+ },
40
+ {
41
+ key: "files",
42
+ label: "Files",
43
+ link: `${expertUrl}/files/${project.project_id}/`,
44
+ isActive: (input) => input === "files",
45
+ ...navigationVisibility.files
46
+ },
47
+ ...project.project_type === "content_integration" ? [
48
+ {
49
+ key: "contentManagement",
50
+ label: "Content management",
51
+ isActive: (input) => input === "apps",
52
+ link: `${expertUrl}/apps/${project.project_id}/${marketingSupportProjectSelectedAppSlug}`,
53
+ ...navigationVisibility.contentManagement
54
+ }
55
+ ] : [
56
+ {
57
+ key: "upload",
58
+ label: "Upload",
59
+ link: `${expertUrl}/upload/${project.project_id}/`,
60
+ isActive: (input) => input === "upload",
61
+ ...navigationVisibility.upload
62
+ },
63
+ {
64
+ key: "download",
65
+ label: "Download",
66
+ link: `${expertUrl}/download/${project.project_id}/`,
67
+ isActive: (input) => input === "download",
68
+ ...navigationVisibility.download
69
+ }
70
+ ],
71
+ {
72
+ key: "tasks",
73
+ label: "Tasks",
74
+ link: `${expertUrl}/tasks/${project.project_id}/`,
75
+ isActive: (input) => input === "tasks",
76
+ // TODO: Add task count
77
+ // badge: taskCount,
78
+ ...navigationVisibility.tasks
79
+ },
80
+ {
81
+ key: "workflows",
82
+ label: "Workflows",
83
+ link: `${expertUrl}/workflows/${project.project_id}/`,
84
+ isActive: (input) => input === "workflows",
85
+ novel: "New",
86
+ onClick: () => {
87
+ window.location.assign(`${expertUrl}/workflows/${project.project_id}/`);
88
+ },
89
+ ...navigationVisibility.workflows
90
+ },
91
+ {
92
+ key: "contributors",
93
+ label: "Contributors",
94
+ link: `${expertUrl}/contributors/${project.project_id}/`,
95
+ isActive: (input) => input === "contributors",
96
+ ...navigationVisibility.contributors
97
+ },
98
+ {
99
+ key: "screenshots",
100
+ label: "Screenshots",
101
+ link: `${expertUrl}/screenshots/${project.project_id}/`,
102
+ isActive: (input) => input === "screenshots",
103
+ ...navigationVisibility.screenshots
104
+ },
105
+ {
106
+ key: "glossary",
107
+ label: "Glossary",
108
+ link: `${expertUrl}/glossary/${project.project_id}/`,
109
+ isActive: (input) => input === "glossary",
110
+ ...navigationVisibility.glossary
111
+ },
112
+ ...appsNavigationItemArrInMainMenu,
113
+ {
114
+ key: "more",
115
+ label: "More...",
116
+ isActive: (input) => ["settings", "statistics", "duplicates", "live edit"].includes(input),
117
+ ...navigationVisibility.more,
118
+ dropdown: [
119
+ [
120
+ {
121
+ link: `${expertUrl}/settings/${project.project_id}/`,
122
+ label: "Settings",
123
+ ...navigationVisibility.settings
124
+ },
125
+ {
126
+ link: `${expertUrl}/settings/${project.project_id}/#branches`,
127
+ label: "Branches",
128
+ ...navigationVisibility.branches
129
+ },
130
+ {
131
+ link: `${expertUrl}/settings/${project.project_id}/#ota-bundles`,
132
+ label: "OTA Bundles",
133
+ ...navigationVisibility.otaBundles
134
+ },
135
+ {
136
+ link: `${expertUrl}/settings/${project.project_id}/#project-automations`,
137
+ label: "Automations",
138
+ ...navigationVisibility.automations
139
+ },
140
+ {
141
+ link: `${expertUrl}/dupes/${project.project_id}/`,
142
+ label: "Duplicate finder",
143
+ ...navigationVisibility.duplicateFinder
144
+ }
145
+ ],
146
+ [
147
+ ...appsNavigationItemArrInMoreMenu,
148
+ {
149
+ // TODO: This could be problematic tab, because it is not a link and we can't just redirect. We need to find a workaround for that.
150
+ label: "Activity",
151
+ onClick: () => {
152
+ },
153
+ ...navigationVisibility.activity
154
+ },
155
+ {
156
+ link: `${expertUrl}/statistics/${project.project_id}/`,
157
+ label: "Statistics",
158
+ ...navigationVisibility.statistics
159
+ }
160
+ ]
161
+ ]
162
+ }
163
+ ];
164
+ }, [project, adminRights, enabled, expertUrl]);
6
165
  };
7
166
  export {
8
- breadcrumbs,
9
- breadcrumbsItem,
10
- classes as default
167
+ useExpertNavigation
11
168
  };
12
169
  //# sourceMappingURL=harmony105.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony105.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"harmony105.mjs","sources":["../src/features/navigation/hooks/useExpertNavigation.ts"],"sourcesContent":["import type { Contributor, Project } from '@features/node'\nimport { useMemo } from 'react'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\nimport type { NavigationTabsItem } from '../types/navigation'\nimport { getProjectNavigationVisibilityMap } from '../utils/toolbarVisibility'\n\n// TODO: Validate features types\nexport const getIsFeatureEnabled = (features: Record<string, boolean>, name: string) => {\n\tconst featureState = features[name]\n\n\treturn (\n\t\tfeatureState !== null &&\n\t\tfeatureState !== undefined &&\n\t\t[true, 'on', 'true'].includes(featureState)\n\t)\n}\n\n/**\n * Hook to generate legacy navigation items using the existing structure\n * but with context API instead of Redux\n */\nexport const useExpertNavigation = (\n\tenabled: boolean,\n\tproject?: Project,\n\tcontributor?: Contributor,\n) => {\n\t// Use contributor data if provided, otherwise use defaults\n\tconst adminRights = contributor?.admin_rights || []\n\t// TODO: Implement selected app slug, small investigation is needed\n\tconst marketingSupportProjectSelectedAppSlug = 'selected-app-slug'\n\tconst navigationClient = useNavigationClient()\n\tconst expertUrl = navigationClient.getExpertUrl()\n\n\treturn useMemo(() => {\n\t\t// Get data from contexts instead of Redux, or use provided data\n\t\tif (!project || !enabled) {\n\t\t\treturn []\n\t\t}\n\t\t/* TODO: We're missing badges API. We need to get it from the backend or find alternative way to get task count\n\t\t * Fetch tasks and calculate count is not a good idea, because it can have pagination, therefore we can\n\t\t * ask for an additional prop in tasks response: task_count based on branch_id + project_id + task_status\n\t\t */\n\t\t// const taskCount = getTaskCount(project, branch, badges.tasks)\n\n\t\t// TODO: Implement feature flags functionality, most likely separate package\n\t\t// const isFeatureEnabled = (feature: string) => getIsFeatureEnabled(features, feature)\n\n\t\tconst navigationVisibility = getProjectNavigationVisibilityMap(\n\t\t\tproject,\n\t\t\tadminRights,\n\t\t\t() => true /*isFeatureEnabled*/,\n\t\t)\n\n\t\tconst appsNavigationItem: NavigationTabsItem = {\n\t\t\tkey: 'apps',\n\t\t\tlabel: 'Apps',\n\t\t\tisActive: (input: string) => input === 'apps',\n\t\t\tlink: `${expertUrl}/apps/${project.project_id}/`,\n\t\t\t...navigationVisibility.apps,\n\t\t}\n\n\t\tconst appsNavigationItemArrInMainMenu: NavigationTabsItem[] = []\n\t\tconst appsNavigationItemArrInMoreMenu: NavigationTabsItem[] = []\n\n\t\tif (project.project_type === 'content_integration') {\n\t\t\tappsNavigationItemArrInMoreMenu.push(appsNavigationItem)\n\t\t} else {\n\t\t\tappsNavigationItemArrInMainMenu.push(appsNavigationItem)\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tkey: 'edit',\n\t\t\t\tlabel: 'Editor',\n\t\t\t\tlink: `${expertUrl}/project/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'edit',\n\t\t\t\t...navigationVisibility.editor,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'files',\n\t\t\t\tlabel: 'Files',\n\t\t\t\tlink: `${expertUrl}/files/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'files',\n\t\t\t\t...navigationVisibility.files,\n\t\t\t},\n\t\t\t...(project.project_type === 'content_integration'\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'contentManagement',\n\t\t\t\t\t\t\tlabel: 'Content management',\n\t\t\t\t\t\t\tisActive: (input: string) => input === 'apps',\n\t\t\t\t\t\t\tlink: `${expertUrl}/apps/${project.project_id}/${marketingSupportProjectSelectedAppSlug}`,\n\t\t\t\t\t\t\t...navigationVisibility.contentManagement,\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'upload',\n\t\t\t\t\t\t\tlabel: 'Upload',\n\t\t\t\t\t\t\tlink: `${expertUrl}/upload/${project.project_id}/`,\n\t\t\t\t\t\t\tisActive: (input: string) => input === 'upload',\n\t\t\t\t\t\t\t...navigationVisibility.upload,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\t\tlabel: 'Download',\n\t\t\t\t\t\t\tlink: `${expertUrl}/download/${project.project_id}/`,\n\t\t\t\t\t\t\tisActive: (input: string) => input === 'download',\n\t\t\t\t\t\t\t...navigationVisibility.download,\n\t\t\t\t\t\t},\n\t\t\t\t\t]),\n\t\t\t{\n\t\t\t\tkey: 'tasks',\n\t\t\t\tlabel: 'Tasks',\n\t\t\t\tlink: `${expertUrl}/tasks/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'tasks',\n\t\t\t\t// TODO: Add task count\n\t\t\t\t// badge: taskCount,\n\t\t\t\t...navigationVisibility.tasks,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'workflows',\n\t\t\t\tlabel: 'Workflows',\n\t\t\t\tlink: `${expertUrl}/workflows/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'workflows',\n\t\t\t\tnovel: 'New',\n\t\t\t\tonClick: () => {\n\t\t\t\t\t// TODO: Resolve analytics globally, most likely separate package\n\t\t\t\t\t// track(AnalyticsEventName.EDITOR_WORKFLOWS_TAB_CLICKED);\n\t\t\t\t\twindow.location.assign(`${expertUrl}/workflows/${project.project_id}/`)\n\t\t\t\t},\n\t\t\t\t...navigationVisibility.workflows,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'contributors',\n\t\t\t\tlabel: 'Contributors',\n\t\t\t\tlink: `${expertUrl}/contributors/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'contributors',\n\t\t\t\t...navigationVisibility.contributors,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'screenshots',\n\t\t\t\tlabel: 'Screenshots',\n\t\t\t\tlink: `${expertUrl}/screenshots/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'screenshots',\n\t\t\t\t...navigationVisibility.screenshots,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: 'glossary',\n\t\t\t\tlabel: 'Glossary',\n\t\t\t\tlink: `${expertUrl}/glossary/${project.project_id}/`,\n\t\t\t\tisActive: (input: string) => input === 'glossary',\n\t\t\t\t...navigationVisibility.glossary,\n\t\t\t},\n\t\t\t...appsNavigationItemArrInMainMenu,\n\t\t\t{\n\t\t\t\tkey: 'more',\n\t\t\t\tlabel: 'More...',\n\t\t\t\tisActive: (input: string) =>\n\t\t\t\t\t['settings', 'statistics', 'duplicates', 'live edit'].includes(input),\n\t\t\t\t...navigationVisibility.more,\n\t\t\t\tdropdown: [\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/`,\n\t\t\t\t\t\t\tlabel: 'Settings',\n\t\t\t\t\t\t\t...navigationVisibility.settings,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/#branches`,\n\t\t\t\t\t\t\tlabel: 'Branches',\n\t\t\t\t\t\t\t...navigationVisibility.branches,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/#ota-bundles`,\n\t\t\t\t\t\t\tlabel: 'OTA Bundles',\n\t\t\t\t\t\t\t...navigationVisibility.otaBundles,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/settings/${project.project_id}/#project-automations`,\n\t\t\t\t\t\t\tlabel: 'Automations',\n\t\t\t\t\t\t\t...navigationVisibility.automations,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/dupes/${project.project_id}/`,\n\t\t\t\t\t\t\tlabel: 'Duplicate finder',\n\t\t\t\t\t\t\t...navigationVisibility.duplicateFinder,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t...appsNavigationItemArrInMoreMenu,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// TODO: This could be problematic tab, because it is not a link and we can't just redirect. We need to find a workaround for that.\n\t\t\t\t\t\t\tlabel: 'Activity',\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t// const showActivityEvent = new CustomEvent(\"show-activity\", {\n\t\t\t\t\t\t\t\t// \tdetail: {\n\t\t\t\t\t\t\t\t// \t\tprojectId: project.id,\n\t\t\t\t\t\t\t\t// \t\tbranchId: branch.branchId,\n\t\t\t\t\t\t\t\t// \t\tbranchName: branch.branchName,\n\t\t\t\t\t\t\t\t// \t},\n\t\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t\t// document.dispatchEvent(showActivityEvent);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...navigationVisibility.activity,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlink: `${expertUrl}/statistics/${project.project_id}/`,\n\t\t\t\t\t\t\tlabel: 'Statistics',\n\t\t\t\t\t\t\t...navigationVisibility.statistics,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t},\n\t\t]\n\t}, [project, adminRights, enabled, expertUrl])\n}\n\n// TODO: Helper function for getting task count from badge data\n// const _getTaskCount = (project: any, branch: any, taskBadges: any) => {\n// \tif (!taskBadges) return 0\n\n// \t// Implementation would depend on your getTaskCountFromTasks utility\n// \t// Simplified version:\n// \tconst projectTasks = taskBadges[project.id] || {}\n// \treturn projectTasks[branch.branchId || 'master'] || 0\n// }\n"],"names":[],"mappings":"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"}
@@ -1,36 +1,47 @@
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 reactTable = require("@tanstack/react-table");
6
- const clsx = require("./harmony93.cjs");
7
- const SortingIcon = require("./harmony120.cjs");
8
- const TableHeaderCell_module = require("./harmony121.cjs");
9
- const TableHeaderCell = ({
10
- header,
11
- align = "left",
12
- className,
13
- ...rest
14
- }) => /* @__PURE__ */ jsxRuntime.jsxs(
15
- louis.TableHeaderCell,
16
- {
17
- className: clsx.clsx(className, {
18
- [TableHeaderCell_module.default.centeredCell]: align === "center",
19
- [TableHeaderCell_module.default.rightAlignedCell]: align === "right"
20
- }),
21
- ...rest,
22
- children: [
23
- reactTable.flexRender(header.column.columnDef.header, header.getContext()),
24
- header.column.getCanSort() && /* @__PURE__ */ jsxRuntime.jsx(
25
- SortColumnButton,
26
- {
27
- direction: header.column.getIsSorted(),
28
- onSortToggle: header.column.getToggleSortingHandler()
29
- }
30
- )
31
- ]
32
- }
33
- );
34
- const SortColumnButton = ({ direction, onSortToggle }) => /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: onSortToggle, className: TableHeaderCell_module.default.headerSortButton, children: /* @__PURE__ */ jsxRuntime.jsx(SortingIcon.SortingIcon, { direction }) });
35
- exports.TableHeaderCell = TableHeaderCell;
3
+ const React = require("react");
4
+ const NavigationClientProvider = require("./harmony16.cjs");
5
+ const navigationSchema = require("./harmony128.cjs");
6
+ const useNextgenNavigation = (activeKey, enabled, project, contributor) => {
7
+ const navigationClient = NavigationClientProvider.useNavigationClient();
8
+ const nextgenUrl = navigationClient.getNextgenUrl();
9
+ const navigate = React.useCallback(
10
+ (path) => {
11
+ window.location.href = `${nextgenUrl}${path}`;
12
+ },
13
+ [nextgenUrl]
14
+ );
15
+ return React.useMemo(() => {
16
+ if (!enabled) {
17
+ return [];
18
+ }
19
+ const projectId = (project == null ? void 0 : project.project_id) || "";
20
+ const context = {
21
+ flags: {},
22
+ // TODO: getFeatureFlags(features),
23
+ pathname: window.location.pathname,
24
+ permissions: []
25
+ };
26
+ return navigationSchema.navigationItems.filter((item) => item.shouldShow ? item.shouldShow(context) : true).map((item) => {
27
+ const disabled = typeof item.disabled === "function" ? item.disabled(context) : !!item.disabled;
28
+ const badge = typeof item.badge === "function" ? item.badge(context) : item.badge;
29
+ const isActive = (input) => item.isActive ? item.isActive(input) : item.key === activeKey || input === item.key;
30
+ return {
31
+ key: item.key,
32
+ label: item.labelKey,
33
+ // You can apply translations here if needed
34
+ icon: item.icon,
35
+ visible: true,
36
+ badge,
37
+ disabled,
38
+ dropdown: item.dropdown,
39
+ isActive,
40
+ link: `${nextgenUrl}${item.path({ projectId })}`,
41
+ onClick: () => navigate(item.path({ projectId }))
42
+ };
43
+ });
44
+ }, [project, activeKey, enabled, navigate, contributor, nextgenUrl]);
45
+ };
46
+ exports.useNextgenNavigation = useNextgenNavigation;
36
47
  //# sourceMappingURL=harmony106.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony106.cjs","sources":["../src/components/Table/components/TableHeaderCell.tsx"],"sourcesContent":["import {\n\tTableHeaderCell as LouisTableHeaderCell,\n\ttype TableHeaderCellProps as LouisTableHeaderCellProps,\n} from '@lokalise/louis'\nimport { type Header, type SortDirection, flexRender } from '@tanstack/react-table'\nimport cx from 'clsx'\nimport { SortingIcon } from './SortingIcon'\nimport styles from './TableHeaderCell.module.css'\n\ntype TableHeaderProps<T> = LouisTableHeaderCellProps & {\n\theader: Header<T, unknown>\n}\n\nexport const TableHeaderCell = <T,>({\n\theader,\n\talign = 'left',\n\tclassName,\n\t...rest\n}: TableHeaderProps<T>) => (\n\t<LouisTableHeaderCell\n\t\tclassName={cx(className, {\n\t\t\t[styles.centeredCell]: align === 'center',\n\t\t\t[styles.rightAlignedCell]: align === 'right',\n\t\t})}\n\t\t{...rest}\n\t>\n\t\t{flexRender(header.column.columnDef.header, header.getContext())}\n\t\t{header.column.getCanSort() && (\n\t\t\t<SortColumnButton\n\t\t\t\tdirection={header.column.getIsSorted()}\n\t\t\t\tonSortToggle={header.column.getToggleSortingHandler()}\n\t\t\t/>\n\t\t)}\n\t</LouisTableHeaderCell>\n)\n\ntype SortColumnButtonProps = {\n\tdirection: SortDirection | false\n\tonSortToggle?: (event: unknown) => void\n}\n\nconst SortColumnButton = ({ direction, onSortToggle }: SortColumnButtonProps) => (\n\t<button type=\"button\" onClick={onSortToggle} className={styles.headerSortButton}>\n\t\t<SortingIcon direction={direction} />\n\t</button>\n)\n"],"names":["jsxs","LouisTableHeaderCell","cx","styles","flexRender","jsx","SortingIcon"],"mappings":";;;;;;;;AAaO,MAAM,kBAAkB,CAAK;AAAA,EACnC;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACJ,MACCA,2BAAA;AAAA,EAACC,MAAA;AAAA,EAAA;AAAA,IACA,WAAWC,UAAG,WAAW;AAAA,MACxB,CAACC,uBAAA,QAAO,YAAY,GAAG,UAAU;AAAA,MACjC,CAACA,uBAAA,QAAO,gBAAgB,GAAG,UAAU;AAAA,IAAA,CACrC;AAAA,IACA,GAAG;AAAA,IAEH,UAAA;AAAA,MAAAC,WAAA,WAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,YAAY;AAAA,MAC9D,OAAO,OAAO,WAAA,KACdC,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,WAAW,OAAO,OAAO,YAAY;AAAA,UACrC,cAAc,OAAO,OAAO,wBAAwB;AAAA,QAAA;AAAA,MAAA;AAAA,IACrD;AAAA,EAAA;AAEF;AAQD,MAAM,mBAAmB,CAAC,EAAE,WAAW,aAAa,qCAClD,UAAO,EAAA,MAAK,UAAS,SAAS,cAAc,WAAWF,+BAAO,kBAC9D,UAACE,2BAAA,IAAAC,yBAAA,EAAY,UAAsB,CAAA,GACpC;;"}
1
+ {"version":3,"file":"harmony106.cjs","sources":["../src/features/navigation/hooks/useNextgenNavigation.ts"],"sourcesContent":["import type { Contributor, Project } from '@features/node'\nimport { useCallback, useMemo } from 'react'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\n// TODO: react-router-dom as peer dependencies works only inside next-gen apps. It shouldn't be like that.\n// Because of that we can't use THE WHOLE package in legacy apps, therefore it should be implemented in legacy apps as well(almost impossible),\n// so this dependency should be installed as direct dependency. or we should think about other options\n// import { useNavigate } from \"react-router-dom\";\nimport { navigationItems } from '../schemas/navigationSchema'\n\n// TODO: Unify navigation items for next-gen and legacy apps\n/**\n * Hook to generate navigation items for new applications\n */\nexport const useNextgenNavigation = (\n\tactiveKey: string,\n\tenabled: boolean,\n\tproject?: Project,\n\tcontributor?: Contributor,\n) => {\n\tconst navigationClient = useNavigationClient()\n\tconst nextgenUrl = navigationClient.getNextgenUrl()\n\n\tconst navigate = useCallback(\n\t\t(path: string) => {\n\t\t\t// TODO: Define navigate logic here\n\t\t\twindow.location.href = `${nextgenUrl}${path}`\n\t\t},\n\t\t[nextgenUrl],\n\t)\n\n\treturn useMemo(() => {\n\t\tif (!enabled) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst projectId = project?.project_id || ''\n\n\t\t// Context for filtering and transforming navigation items\n\t\tconst context = {\n\t\t\tflags: {}, // TODO: getFeatureFlags(features),\n\t\t\tpathname: window.location.pathname,\n\t\t\tpermissions: contributor?.admin_rights || [],\n\t\t}\n\n\t\t// Filter and map items\n\t\treturn (\n\t\t\tnavigationItems\n\t\t\t\t// Filter based on conditions\n\t\t\t\t.filter((item) => (item.shouldShow ? item.shouldShow(context) : true))\n\t\t\t\t// Map to NavigationTabsItem shape\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst disabled =\n\t\t\t\t\t\ttypeof item.disabled === 'function' ? item.disabled(context) : !!item.disabled\n\n\t\t\t\t\tconst badge = typeof item.badge === 'function' ? item.badge(context) : item.badge\n\n\t\t\t\t\t// Create isActive function\n\t\t\t\t\tconst isActive = (input: string) =>\n\t\t\t\t\t\titem.isActive ? item.isActive(input) : item.key === activeKey || input === item.key\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: item.key,\n\t\t\t\t\t\tlabel: item.labelKey, // You can apply translations here if needed\n\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t\tdropdown: item.dropdown,\n\t\t\t\t\t\tisActive,\n\t\t\t\t\t\tlink: `${nextgenUrl}${item.path({ projectId })}`,\n\t\t\t\t\t\tonClick: () => navigate(item.path({ projectId })),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t)\n\t}, [project, activeKey, enabled, navigate, contributor, nextgenUrl])\n}\n\n// TODO: Helper to convert features to flags format\n// const getFeatureFlags = (features) => {\n// \tif (!features) return {}\n//\n// \t// Convert features to the format expected by navigation schema\n// \treturn Object.keys(features).reduce((flags, key) => {\n// \t\tflags[key] = features[key] ? 'on' : 'off'\n// \t\treturn flags\n// \t}, {})\n// }\n"],"names":["useNavigationClient","useCallback","useMemo","navigationItems"],"mappings":";;;;;AAaO,MAAM,uBAAuB,CACnC,WACA,SACA,SACA,gBACI;AACJ,QAAM,mBAAmBA,yBAAAA,oBAAoB;AACvC,QAAA,aAAa,iBAAiB,cAAc;AAElD,QAAM,WAAWC,MAAA;AAAA,IAChB,CAAC,SAAiB;AAEjB,aAAO,SAAS,OAAO,GAAG,UAAU,GAAG,IAAI;AAAA,IAC5C;AAAA,IACA,CAAC,UAAU;AAAA,EACZ;AAEA,SAAOC,cAAQ,MAAM;AACpB,QAAI,CAAC,SAAS;AACb,aAAO,CAAC;AAAA,IAAA;AAGH,UAAA,aAAY,mCAAS,eAAc;AAGzC,UAAM,UAAU;AAAA,MACf,OAAO,CAAC;AAAA;AAAA,MACR,UAAU,OAAO,SAAS;AAAA,MAC1B,aAA0C,CAAA;AAAA,IAC3C;AAGA,WACCC,iBAEE,gBAAA,OAAO,CAAC,SAAU,KAAK,aAAa,KAAK,WAAW,OAAO,IAAI,IAAK,EAEpE,IAAI,CAAC,SAAS;AACR,YAAA,WACL,OAAO,KAAK,aAAa,aAAa,KAAK,SAAS,OAAO,IAAI,CAAC,CAAC,KAAK;AAEjE,YAAA,QAAQ,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,OAAO,IAAI,KAAK;AAG5E,YAAM,WAAW,CAAC,UACjB,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,KAAK,QAAQ,aAAa,UAAU,KAAK;AAE1E,aAAA;AAAA,QACN,KAAK,KAAK;AAAA,QACV,OAAO,KAAK;AAAA;AAAA,QACZ,MAAM,KAAK;AAAA,QACX,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf;AAAA,QACA,MAAM,GAAG,UAAU,GAAG,KAAK,KAAK,EAAE,UAAW,CAAA,CAAC;AAAA,QAC9C,SAAS,MAAM,SAAS,KAAK,KAAK,EAAE,UAAA,CAAW,CAAC;AAAA,MACjD;AAAA,IAAA,CACA;AAAA,EAAA,GAED,CAAC,SAAS,WAAW,SAAS,UAAU,aAAa,UAAU,CAAC;AACpE;;"}