@lokalise/harmony 1.32.4-exp-expertJWTSidebar.1 → 1.32.4-exp-expertJWTSidebar.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 (153) hide show
  1. package/dist/harmony101.cjs +19 -22
  2. package/dist/harmony101.cjs.map +1 -1
  3. package/dist/harmony101.mjs +18 -21
  4. package/dist/harmony101.mjs.map +1 -1
  5. package/dist/harmony102.cjs +21 -6
  6. package/dist/harmony102.cjs.map +1 -1
  7. package/dist/harmony102.mjs +20 -5
  8. package/dist/harmony102.mjs.map +1 -1
  9. package/dist/harmony103.cjs +5 -131
  10. package/dist/harmony103.cjs.map +1 -1
  11. package/dist/harmony103.mjs +5 -131
  12. package/dist/harmony103.mjs.map +1 -1
  13. package/dist/harmony104.cjs +132 -12
  14. package/dist/harmony104.cjs.map +1 -1
  15. package/dist/harmony104.mjs +131 -11
  16. package/dist/harmony104.mjs.map +1 -1
  17. package/dist/harmony105.cjs +13 -6
  18. package/dist/harmony105.cjs.map +1 -1
  19. package/dist/harmony105.mjs +12 -5
  20. package/dist/harmony105.mjs.map +1 -1
  21. package/dist/harmony106.cjs +5 -40
  22. package/dist/harmony106.cjs.map +1 -1
  23. package/dist/harmony106.mjs +5 -40
  24. package/dist/harmony106.mjs.map +1 -1
  25. package/dist/harmony107.cjs +33 -53
  26. package/dist/harmony107.cjs.map +1 -1
  27. package/dist/harmony107.mjs +34 -54
  28. package/dist/harmony107.mjs.map +1 -1
  29. package/dist/harmony108.cjs +59 -6
  30. package/dist/harmony108.cjs.map +1 -1
  31. package/dist/harmony108.mjs +59 -6
  32. package/dist/harmony108.mjs.map +1 -1
  33. package/dist/harmony109.cjs +7 -6
  34. package/dist/harmony109.cjs.map +1 -1
  35. package/dist/harmony109.mjs +6 -5
  36. package/dist/harmony109.mjs.map +1 -1
  37. package/dist/harmony110.cjs +7 -19
  38. package/dist/harmony110.cjs.map +1 -1
  39. package/dist/harmony110.mjs +6 -18
  40. package/dist/harmony110.mjs.map +1 -1
  41. package/dist/harmony111.cjs +1 -1
  42. package/dist/harmony111.mjs +1 -1
  43. package/dist/harmony112.cjs +1 -1
  44. package/dist/harmony112.mjs +1 -1
  45. package/dist/harmony114.cjs +5 -5
  46. package/dist/harmony114.mjs +5 -5
  47. package/dist/harmony118.cjs +1 -1
  48. package/dist/harmony118.mjs +1 -1
  49. package/dist/harmony119.cjs +2 -2
  50. package/dist/harmony119.mjs +2 -2
  51. package/dist/harmony121.cjs +13 -7
  52. package/dist/harmony121.cjs.map +1 -1
  53. package/dist/harmony121.mjs +13 -7
  54. package/dist/harmony121.mjs.map +1 -1
  55. package/dist/harmony122.cjs +15 -57
  56. package/dist/harmony122.cjs.map +1 -1
  57. package/dist/harmony122.mjs +15 -57
  58. package/dist/harmony122.mjs.map +1 -1
  59. package/dist/harmony123.cjs +15 -59
  60. package/dist/harmony123.cjs.map +1 -1
  61. package/dist/harmony123.mjs +15 -59
  62. package/dist/harmony123.mjs.map +1 -1
  63. package/dist/harmony124.cjs +17 -19
  64. package/dist/harmony124.cjs.map +1 -1
  65. package/dist/harmony124.mjs +16 -18
  66. package/dist/harmony124.mjs.map +1 -1
  67. package/dist/harmony125.cjs +20 -12
  68. package/dist/harmony125.cjs.map +1 -1
  69. package/dist/harmony125.mjs +20 -12
  70. package/dist/harmony125.mjs.map +1 -1
  71. package/dist/harmony126.cjs +10 -13
  72. package/dist/harmony126.cjs.map +1 -1
  73. package/dist/harmony126.mjs +10 -13
  74. package/dist/harmony126.mjs.map +1 -1
  75. package/dist/harmony127.cjs +10 -15
  76. package/dist/harmony127.cjs.map +1 -1
  77. package/dist/harmony127.mjs +10 -15
  78. package/dist/harmony127.mjs.map +1 -1
  79. package/dist/harmony128.cjs +7 -11
  80. package/dist/harmony128.cjs.map +1 -1
  81. package/dist/harmony128.mjs +7 -11
  82. package/dist/harmony128.mjs.map +1 -1
  83. package/dist/harmony129.cjs +56 -15
  84. package/dist/harmony129.cjs.map +1 -1
  85. package/dist/harmony129.mjs +56 -15
  86. package/dist/harmony129.mjs.map +1 -1
  87. package/dist/harmony13.cjs +8 -1
  88. package/dist/harmony13.cjs.map +1 -1
  89. package/dist/harmony13.mjs +8 -1
  90. package/dist/harmony13.mjs.map +1 -1
  91. package/dist/harmony130.cjs +59 -20
  92. package/dist/harmony130.cjs.map +1 -1
  93. package/dist/harmony130.mjs +59 -20
  94. package/dist/harmony130.mjs.map +1 -1
  95. package/dist/harmony131.cjs +19 -13
  96. package/dist/harmony131.cjs.map +1 -1
  97. package/dist/harmony131.mjs +18 -12
  98. package/dist/harmony131.mjs.map +1 -1
  99. package/dist/harmony132.cjs +12 -46
  100. package/dist/harmony132.cjs.map +1 -1
  101. package/dist/harmony132.mjs +12 -46
  102. package/dist/harmony132.mjs.map +1 -1
  103. package/dist/harmony133.cjs +33 -13
  104. package/dist/harmony133.cjs.map +1 -1
  105. package/dist/harmony133.mjs +32 -12
  106. package/dist/harmony133.mjs.map +1 -1
  107. package/dist/harmony134.cjs +13 -5
  108. package/dist/harmony134.cjs.map +1 -1
  109. package/dist/harmony134.mjs +13 -5
  110. package/dist/harmony134.mjs.map +1 -1
  111. package/dist/harmony135.cjs +5 -11
  112. package/dist/harmony135.cjs.map +1 -1
  113. package/dist/harmony135.mjs +5 -11
  114. package/dist/harmony135.mjs.map +1 -1
  115. package/dist/harmony136.cjs +45 -31
  116. package/dist/harmony136.cjs.map +1 -1
  117. package/dist/harmony136.mjs +45 -31
  118. package/dist/harmony136.mjs.map +1 -1
  119. package/dist/harmony137.cjs +13 -15
  120. package/dist/harmony137.cjs.map +1 -1
  121. package/dist/harmony137.mjs +12 -14
  122. package/dist/harmony137.mjs.map +1 -1
  123. package/dist/harmony16.cjs +1 -1
  124. package/dist/harmony16.mjs +1 -1
  125. package/dist/harmony79.cjs +6 -6
  126. package/dist/harmony79.mjs +6 -6
  127. package/dist/harmony82.cjs +2 -2
  128. package/dist/harmony82.mjs +2 -2
  129. package/dist/harmony84.cjs +2 -2
  130. package/dist/harmony84.mjs +2 -2
  131. package/dist/harmony88.cjs +1 -1
  132. package/dist/harmony88.mjs +1 -1
  133. package/dist/harmony89.cjs +1 -1
  134. package/dist/harmony89.mjs +1 -1
  135. package/dist/harmony94.cjs +1 -1
  136. package/dist/harmony94.mjs +1 -1
  137. package/dist/harmony96.cjs +10 -9
  138. package/dist/harmony96.cjs.map +1 -1
  139. package/dist/harmony96.mjs +12 -11
  140. package/dist/harmony96.mjs.map +1 -1
  141. package/dist/harmony97.cjs +11 -20
  142. package/dist/harmony97.cjs.map +1 -1
  143. package/dist/harmony97.mjs +11 -20
  144. package/dist/harmony97.mjs.map +1 -1
  145. package/dist/harmony98.cjs +9 -10
  146. package/dist/harmony98.cjs.map +1 -1
  147. package/dist/harmony98.mjs +11 -12
  148. package/dist/harmony98.mjs.map +1 -1
  149. package/dist/harmony99.cjs +20 -11
  150. package/dist/harmony99.cjs.map +1 -1
  151. package/dist/harmony99.mjs +20 -11
  152. package/dist/harmony99.mjs.map +1 -1
  153. package/package.json +1 -1
@@ -1,19 +1,60 @@
1
- var _trimmedEndIndex;
2
- var hasRequired_trimmedEndIndex;
3
- function require_trimmedEndIndex() {
4
- if (hasRequired_trimmedEndIndex) return _trimmedEndIndex;
5
- hasRequired_trimmedEndIndex = 1;
6
- var reWhitespace = /\s/;
7
- function trimmedEndIndex(string) {
8
- var index = string.length;
9
- while (index-- && reWhitespace.test(string.charAt(index))) {
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Tooltip, Link } from "@lokalise/louis";
3
+ import { isLanguageProgressCompleted, getStatusText } from "./harmony130.mjs";
4
+ import { SidebarTaskLanguageStatuses } from "./harmony2.mjs";
5
+ import { clsx } from "./harmony67.mjs";
6
+ import { TaskLanguageCompleted } from "./harmony136.mjs";
7
+ import { useTasks } from "./harmony106.mjs";
8
+ import styles from "./harmony137.mjs";
9
+ const TaskLanguage = ({ language, task }) => {
10
+ const { getProjectUrl, langNameOnClick, langProgressOnClick } = useTasks();
11
+ const progressValue = language.progress ?? 0;
12
+ const isLanguageCompleted = language.status === SidebarTaskLanguageStatuses.Completed;
13
+ const languageProgressCompleted = isLanguageProgressCompleted(task, language);
14
+ return /* @__PURE__ */ jsxs(
15
+ "tr",
16
+ {
17
+ className: clsx({
18
+ [styles.langRowCompleted]: languageProgressCompleted
19
+ }),
20
+ children: [
21
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Tooltip, { tooltip: "Open in bilingual view", children: /* @__PURE__ */ jsx(
22
+ Link,
23
+ {
24
+ href: getProjectUrl({ task, language }),
25
+ onClick: () => {
26
+ langNameOnClick == null ? void 0 : langNameOnClick({ task, language });
27
+ },
28
+ children: language.name
29
+ }
30
+ ) }) }),
31
+ /* @__PURE__ */ jsx("td", { className: styles.langCellSecondary, children: languageProgressCompleted || isLanguageCompleted ? "0" : /* @__PURE__ */ jsx(Tooltip, { tooltip: "Open uncompleted items", children: /* @__PURE__ */ jsx(
32
+ Link,
33
+ {
34
+ href: getProjectUrl({ task, language, taskUncompleted: true }),
35
+ onClick: () => {
36
+ langProgressOnClick == null ? void 0 : langProgressOnClick({ task, language });
37
+ },
38
+ children: language.base_words_total - language.base_words_done
39
+ }
40
+ ) }) }),
41
+ /* @__PURE__ */ jsxs("td", { children: [
42
+ progressValue,
43
+ "%"
44
+ ] }),
45
+ /* @__PURE__ */ jsx("td", { children: languageProgressCompleted ? /* @__PURE__ */ jsx(TaskLanguageCompleted, { task, language }) : /* @__PURE__ */ jsx(
46
+ "span",
47
+ {
48
+ className: `${styles.langStatus} flex-row items-center justify-start`,
49
+ "data-status": language.status,
50
+ children: getStatusText(language.status, progressValue)
51
+ }
52
+ ) })
53
+ ]
10
54
  }
11
- return index;
12
- }
13
- _trimmedEndIndex = trimmedEndIndex;
14
- return _trimmedEndIndex;
15
- }
55
+ );
56
+ };
16
57
  export {
17
- require_trimmedEndIndex as __require
58
+ TaskLanguage
18
59
  };
19
60
  //# sourceMappingURL=harmony129.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony129.mjs","sources":["../node_modules/lodash/_trimmedEndIndex.js"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n"],"names":[],"mappings":";;;;;AACA,MAAI,eAAe;AAUnB,WAAS,gBAAgB,QAAQ;AAC/B,QAAI,QAAQ,OAAO;AAEnB,WAAO,WAAW,aAAa,KAAK,OAAO,OAAO,KAAK,CAAC,GAAG;AAAA,IAAA;AAC3D,WAAO;AAAA,EACT;AAEA,qBAAiB;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony129.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TaskLanguage/TaskLanguage.tsx"],"sourcesContent":["import { Link, Tooltip } from '@lokalise/louis'\nimport { getStatusText, isLanguageProgressCompleted } from '../utils/content'\n\nimport { type SidebarTask, type SidebarTaskLanguage, SidebarTaskLanguageStatuses } from '../types'\n\nimport clsx from 'clsx'\nimport { TaskLanguageCompleted } from '../TaskLanguageCompleted/TaskLanguageCompleted'\nimport { useTasks } from '../TasksContext'\nimport styles from './TaskLanguage.module.css'\n\nexport type TaskLanguageProps = {\n\ttask: SidebarTask\n\tlanguage: SidebarTaskLanguage\n}\n\nexport const TaskLanguage = ({ language, task }: TaskLanguageProps) => {\n\tconst { getProjectUrl, langNameOnClick, langProgressOnClick } = useTasks()\n\n\tconst progressValue = language.progress ?? 0\n\n\tconst isLanguageCompleted = language.status === SidebarTaskLanguageStatuses.Completed\n\n\tconst languageProgressCompleted = isLanguageProgressCompleted(task, language)\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={clsx({\n\t\t\t\t[styles.langRowCompleted]: languageProgressCompleted,\n\t\t\t})}\n\t\t>\n\t\t\t<td>\n\t\t\t\t<Tooltip tooltip=\"Open in bilingual view\">\n\t\t\t\t\t<Link\n\t\t\t\t\t\thref={getProjectUrl({ task, language })}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tlangNameOnClick?.({ task, language })\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{language.name}\n\t\t\t\t\t</Link>\n\t\t\t\t</Tooltip>\n\t\t\t</td>\n\t\t\t<td className={styles.langCellSecondary}>\n\t\t\t\t{languageProgressCompleted || isLanguageCompleted ? (\n\t\t\t\t\t'0'\n\t\t\t\t) : (\n\t\t\t\t\t<Tooltip tooltip=\"Open uncompleted items\">\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\thref={getProjectUrl({ task, language, taskUncompleted: true })}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tlangProgressOnClick?.({ task, language })\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{language.base_words_total - language.base_words_done}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</td>\n\t\t\t<td>{progressValue}%</td>\n\t\t\t<td>\n\t\t\t\t{languageProgressCompleted ? (\n\t\t\t\t\t<TaskLanguageCompleted task={task} language={language} />\n\t\t\t\t) : (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={`${styles.langStatus} flex-row items-center justify-start`}\n\t\t\t\t\t\tdata-status={language.status}\n\t\t\t\t\t>\n\t\t\t\t\t\t{getStatusText(language.status, progressValue)}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</td>\n\t\t</tr>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;;AAeO,MAAM,eAAe,CAAC,EAAE,UAAU,WAA8B;AACtE,QAAM,EAAE,eAAe,iBAAiB,oBAAA,IAAwB,SAAS;AAEnE,QAAA,gBAAgB,SAAS,YAAY;AAErC,QAAA,sBAAsB,SAAS,WAAW,4BAA4B;AAEtE,QAAA,4BAA4B,4BAA4B,MAAM,QAAQ;AAG3E,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,KAAK;AAAA,QACf,CAAC,OAAO,gBAAgB,GAAG;AAAA,MAAA,CAC3B;AAAA,MAED,UAAA;AAAA,QAAA,oBAAC,MACA,EAAA,UAAA,oBAAC,SAAQ,EAAA,SAAQ,0BAChB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,MAAM,cAAc,EAAE,MAAM,UAAU;AAAA,YACtC,SAAS,MAAM;AACI,iEAAA,EAAE,MAAM;YAC3B;AAAA,YAEC,UAAS,SAAA;AAAA,UAAA;AAAA,WAEZ,EACD,CAAA;AAAA,QACA,oBAAC,MAAG,EAAA,WAAW,OAAO,mBACpB,UAA6B,6BAAA,sBAC7B,MAEA,oBAAC,SAAQ,EAAA,SAAQ,0BAChB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,MAAM,cAAc,EAAE,MAAM,UAAU,iBAAiB,MAAM;AAAA,YAC7D,SAAS,MAAM;AACQ,yEAAA,EAAE,MAAM;YAC/B;AAAA,YAEC,UAAA,SAAS,mBAAmB,SAAS;AAAA,UAAA;AAAA,WAExC,EAEF,CAAA;AAAA,6BACC,MAAI,EAAA,UAAA;AAAA,UAAA;AAAA,UAAc;AAAA,QAAA,GAAC;AAAA,4BACnB,MACC,EAAA,UAAA,gDACC,uBAAsB,EAAA,MAAY,SAAoB,CAAA,IAEvD;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAW,GAAG,OAAO,UAAU;AAAA,YAC/B,eAAa,SAAS;AAAA,YAErB,UAAA,cAAc,SAAS,QAAQ,aAAa;AAAA,UAAA;AAAA,QAAA,EAGhD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -3,10 +3,17 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const createHeaderBuilderMiddleware = require("./harmony18.cjs");
4
4
  const jwtTokenPayload = require("./harmony16.cjs");
5
5
  const UnauthorizedError = require("./harmony15.cjs");
6
+ const NewJwtIssuedEvent = require("./harmony20.cjs");
6
7
  function JwtAuthHeaderBuilderMiddleware(props) {
7
8
  return createHeaderBuilderMiddleware.createHeaderBuilderMiddleware(async (builder) => {
8
9
  var _a, _b;
9
- const token = props.getCurrentToken() ?? await ((_a = props.generateNewToken) == null ? void 0 : _a.call(props));
10
+ let token = props.getCurrentToken();
11
+ if (!token) {
12
+ token = await ((_a = props.generateNewToken) == null ? void 0 : _a.call(props)) || null;
13
+ if (token) {
14
+ window == null ? void 0 : window.dispatchEvent(new NewJwtIssuedEvent.NewJwtIssuedEvent(token));
15
+ }
16
+ }
10
17
  if (!token) {
11
18
  throw new UnauthorizedError.UnauthorizedError();
12
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"harmony13.cjs","sources":["../src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.ts"],"sourcesContent":["import { createHeaderBuilderMiddleware } from '@features/auth/core/headers/createHeaderBuilderMiddleware'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\nexport type JwtAuthHeaderBuilderMiddlewareProps = {\n\trefreshToken: (current: JwtToken) => Promise<JwtToken | null>\n\tgetCurrentToken: () => JwtToken | null\n\tgenerateNewToken?: () => Promise<JwtToken | null>\n\tonNewTokenIssued?: (token: JwtToken) => void\n}\n\nexport function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps) {\n\treturn createHeaderBuilderMiddleware(async (builder) => {\n\t\tconst token = props.getCurrentToken() ?? (await props.generateNewToken?.())\n\n\t\tif (!token) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\t// Check if the token is expired or will expire in less than 5 minutes\n\t\tconst { exp } = parseJwtTokenPayload(token.accessToken) ?? { exp: 0 }\n\t\tconst tokenExpirationInMilliseconds = exp * 1000\n\t\tconst tokenExpirationSafetyMargin = 5 * 60 * 1000 // 5 minutes in milliseconds\n\t\tif (Date.now() < tokenExpirationInMilliseconds - tokenExpirationSafetyMargin) {\n\t\t\treturn builder.add('authorization', `Bearer ${token.accessToken}`)\n\t\t}\n\n\t\tconst newToken = await props.refreshToken(token)\n\n\t\tif (!newToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\tprops.onNewTokenIssued?.(newToken)\n\n\t\treturn builder.add('authorization', `Bearer ${newToken.accessToken}`)\n\t})\n}\n"],"names":["createHeaderBuilderMiddleware","UnauthorizedError","parseJwtTokenPayload"],"mappings":";;;;;AAYO,SAAS,+BAA+B,OAA4C;AACnF,SAAAA,8BAAAA,8BAA8B,OAAO,YAAY;;AACvD,UAAM,QAAQ,MAAM,gBAAsB,KAAA,QAAM,WAAM,qBAAN;AAEhD,QAAI,CAAC,OAAO;AACX,YAAM,IAAIC,kBAAAA,kBAAkB;AAAA,IAAA;AAIvB,UAAA,EAAE,IAAQ,IAAAC,qCAAqB,MAAM,WAAW,KAAK,EAAE,KAAK,EAAE;AACpE,UAAM,gCAAgC,MAAM;AACtC,UAAA,8BAA8B,IAAI,KAAK;AAC7C,QAAI,KAAK,QAAQ,gCAAgC,6BAA6B;AAC7E,aAAO,QAAQ,IAAI,iBAAiB,UAAU,MAAM,WAAW,EAAE;AAAA,IAAA;AAGlE,UAAM,WAAW,MAAM,MAAM,aAAa,KAAK;AAE/C,QAAI,CAAC,UAAU;AACd,YAAM,IAAID,kBAAAA,kBAAkB;AAAA,IAAA;AAG7B,gBAAM,qBAAN,+BAAyB;AAEzB,WAAO,QAAQ,IAAI,iBAAiB,UAAU,SAAS,WAAW,EAAE;AAAA,EAAA,CACpE;AACF;;"}
1
+ {"version":3,"file":"harmony13.cjs","sources":["../src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.ts"],"sourcesContent":["import { createHeaderBuilderMiddleware } from '@features/auth/core/headers/createHeaderBuilderMiddleware'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\nimport {NewJwtIssuedEvent} from \"@features/auth/frontend/events/NewJwtIssuedEvent\";\n\nexport type JwtAuthHeaderBuilderMiddlewareProps = {\n\trefreshToken: (current: JwtToken) => Promise<JwtToken | null>\n\tgetCurrentToken: () => JwtToken | null\n\tgenerateNewToken?: () => Promise<JwtToken | null>\n\tonNewTokenIssued?: (token: JwtToken) => void\n}\n\nexport function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps) {\n\treturn createHeaderBuilderMiddleware(async (builder) => {\n\n\t\t// Check if current token exists\n\t\tlet token = props.getCurrentToken();\n\n\t\tif (!token) {\n\t\t\t// Attempt to generate new token\n\t\t\ttoken = await props.generateNewToken?.() || null\n\n\t\t\t// If new token is generated, dispatch an event to update payload hooks\n\t\t\tif (token) {\n\t\t\t\twindow?.dispatchEvent(new NewJwtIssuedEvent(token));\n\t\t\t}\n\t\t}\n\n\t\tif (!token) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\t// Check if the token is expired or will expire in less than 5 minutes\n\t\tconst { exp } = parseJwtTokenPayload(token.accessToken) ?? { exp: 0 }\n\t\tconst tokenExpirationInMilliseconds = exp * 1000\n\t\tconst tokenExpirationSafetyMargin = 5 * 60 * 1000 // 5 minutes in milliseconds\n\t\tif (Date.now() < tokenExpirationInMilliseconds - tokenExpirationSafetyMargin) {\n\t\t\treturn builder.add('authorization', `Bearer ${token.accessToken}`)\n\t\t}\n\n\t\tconst newToken = await props.refreshToken(token)\n\n\t\tif (!newToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\tprops.onNewTokenIssued?.(newToken)\n\n\t\treturn builder.add('authorization', `Bearer ${newToken.accessToken}`)\n\t})\n}\n"],"names":["createHeaderBuilderMiddleware","NewJwtIssuedEvent","UnauthorizedError","parseJwtTokenPayload"],"mappings":";;;;;;AAaO,SAAS,+BAA+B,OAA4C;AACnF,SAAAA,8BAAAA,8BAA8B,OAAO,YAAY;;AAGnD,QAAA,QAAQ,MAAM,gBAAgB;AAElC,QAAI,CAAC,OAAO;AAEH,cAAA,QAAM,WAAM,qBAAN,mCAA8B;AAG5C,UAAI,OAAO;AACV,yCAAQ,cAAc,IAAIC,kBAAkB,kBAAA,KAAK;AAAA,MAAC;AAAA,IACnD;AAGD,QAAI,CAAC,OAAO;AACX,YAAM,IAAIC,kBAAAA,kBAAkB;AAAA,IAAA;AAIvB,UAAA,EAAE,IAAQ,IAAAC,qCAAqB,MAAM,WAAW,KAAK,EAAE,KAAK,EAAE;AACpE,UAAM,gCAAgC,MAAM;AACtC,UAAA,8BAA8B,IAAI,KAAK;AAC7C,QAAI,KAAK,QAAQ,gCAAgC,6BAA6B;AAC7E,aAAO,QAAQ,IAAI,iBAAiB,UAAU,MAAM,WAAW,EAAE;AAAA,IAAA;AAGlE,UAAM,WAAW,MAAM,MAAM,aAAa,KAAK;AAE/C,QAAI,CAAC,UAAU;AACd,YAAM,IAAID,kBAAAA,kBAAkB;AAAA,IAAA;AAG7B,gBAAM,qBAAN,+BAAyB;AAEzB,WAAO,QAAQ,IAAI,iBAAiB,UAAU,SAAS,WAAW,EAAE;AAAA,EAAA,CACpE;AACF;;"}
@@ -1,10 +1,17 @@
1
1
  import { createHeaderBuilderMiddleware } from "./harmony18.mjs";
2
2
  import { parseJwtTokenPayload } from "./harmony16.mjs";
3
3
  import { UnauthorizedError } from "./harmony15.mjs";
4
+ import { NewJwtIssuedEvent } from "./harmony20.mjs";
4
5
  function JwtAuthHeaderBuilderMiddleware(props) {
5
6
  return createHeaderBuilderMiddleware(async (builder) => {
6
7
  var _a, _b;
7
- const token = props.getCurrentToken() ?? await ((_a = props.generateNewToken) == null ? void 0 : _a.call(props));
8
+ let token = props.getCurrentToken();
9
+ if (!token) {
10
+ token = await ((_a = props.generateNewToken) == null ? void 0 : _a.call(props)) || null;
11
+ if (token) {
12
+ window == null ? void 0 : window.dispatchEvent(new NewJwtIssuedEvent(token));
13
+ }
14
+ }
8
15
  if (!token) {
9
16
  throw new UnauthorizedError();
10
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"harmony13.mjs","sources":["../src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.ts"],"sourcesContent":["import { createHeaderBuilderMiddleware } from '@features/auth/core/headers/createHeaderBuilderMiddleware'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\nexport type JwtAuthHeaderBuilderMiddlewareProps = {\n\trefreshToken: (current: JwtToken) => Promise<JwtToken | null>\n\tgetCurrentToken: () => JwtToken | null\n\tgenerateNewToken?: () => Promise<JwtToken | null>\n\tonNewTokenIssued?: (token: JwtToken) => void\n}\n\nexport function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps) {\n\treturn createHeaderBuilderMiddleware(async (builder) => {\n\t\tconst token = props.getCurrentToken() ?? (await props.generateNewToken?.())\n\n\t\tif (!token) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\t// Check if the token is expired or will expire in less than 5 minutes\n\t\tconst { exp } = parseJwtTokenPayload(token.accessToken) ?? { exp: 0 }\n\t\tconst tokenExpirationInMilliseconds = exp * 1000\n\t\tconst tokenExpirationSafetyMargin = 5 * 60 * 1000 // 5 minutes in milliseconds\n\t\tif (Date.now() < tokenExpirationInMilliseconds - tokenExpirationSafetyMargin) {\n\t\t\treturn builder.add('authorization', `Bearer ${token.accessToken}`)\n\t\t}\n\n\t\tconst newToken = await props.refreshToken(token)\n\n\t\tif (!newToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\tprops.onNewTokenIssued?.(newToken)\n\n\t\treturn builder.add('authorization', `Bearer ${newToken.accessToken}`)\n\t})\n}\n"],"names":[],"mappings":";;;AAYO,SAAS,+BAA+B,OAA4C;AACnF,SAAA,8BAA8B,OAAO,YAAY;;AACvD,UAAM,QAAQ,MAAM,gBAAsB,KAAA,QAAM,WAAM,qBAAN;AAEhD,QAAI,CAAC,OAAO;AACX,YAAM,IAAI,kBAAkB;AAAA,IAAA;AAIvB,UAAA,EAAE,IAAQ,IAAA,qBAAqB,MAAM,WAAW,KAAK,EAAE,KAAK,EAAE;AACpE,UAAM,gCAAgC,MAAM;AACtC,UAAA,8BAA8B,IAAI,KAAK;AAC7C,QAAI,KAAK,QAAQ,gCAAgC,6BAA6B;AAC7E,aAAO,QAAQ,IAAI,iBAAiB,UAAU,MAAM,WAAW,EAAE;AAAA,IAAA;AAGlE,UAAM,WAAW,MAAM,MAAM,aAAa,KAAK;AAE/C,QAAI,CAAC,UAAU;AACd,YAAM,IAAI,kBAAkB;AAAA,IAAA;AAG7B,gBAAM,qBAAN,+BAAyB;AAEzB,WAAO,QAAQ,IAAI,iBAAiB,UAAU,SAAS,WAAW,EAAE;AAAA,EAAA,CACpE;AACF;"}
1
+ {"version":3,"file":"harmony13.mjs","sources":["../src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.ts"],"sourcesContent":["import { createHeaderBuilderMiddleware } from '@features/auth/core/headers/createHeaderBuilderMiddleware'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\nimport {NewJwtIssuedEvent} from \"@features/auth/frontend/events/NewJwtIssuedEvent\";\n\nexport type JwtAuthHeaderBuilderMiddlewareProps = {\n\trefreshToken: (current: JwtToken) => Promise<JwtToken | null>\n\tgetCurrentToken: () => JwtToken | null\n\tgenerateNewToken?: () => Promise<JwtToken | null>\n\tonNewTokenIssued?: (token: JwtToken) => void\n}\n\nexport function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps) {\n\treturn createHeaderBuilderMiddleware(async (builder) => {\n\n\t\t// Check if current token exists\n\t\tlet token = props.getCurrentToken();\n\n\t\tif (!token) {\n\t\t\t// Attempt to generate new token\n\t\t\ttoken = await props.generateNewToken?.() || null\n\n\t\t\t// If new token is generated, dispatch an event to update payload hooks\n\t\t\tif (token) {\n\t\t\t\twindow?.dispatchEvent(new NewJwtIssuedEvent(token));\n\t\t\t}\n\t\t}\n\n\t\tif (!token) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\t// Check if the token is expired or will expire in less than 5 minutes\n\t\tconst { exp } = parseJwtTokenPayload(token.accessToken) ?? { exp: 0 }\n\t\tconst tokenExpirationInMilliseconds = exp * 1000\n\t\tconst tokenExpirationSafetyMargin = 5 * 60 * 1000 // 5 minutes in milliseconds\n\t\tif (Date.now() < tokenExpirationInMilliseconds - tokenExpirationSafetyMargin) {\n\t\t\treturn builder.add('authorization', `Bearer ${token.accessToken}`)\n\t\t}\n\n\t\tconst newToken = await props.refreshToken(token)\n\n\t\tif (!newToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\tprops.onNewTokenIssued?.(newToken)\n\n\t\treturn builder.add('authorization', `Bearer ${newToken.accessToken}`)\n\t})\n}\n"],"names":[],"mappings":";;;;AAaO,SAAS,+BAA+B,OAA4C;AACnF,SAAA,8BAA8B,OAAO,YAAY;;AAGnD,QAAA,QAAQ,MAAM,gBAAgB;AAElC,QAAI,CAAC,OAAO;AAEH,cAAA,QAAM,WAAM,qBAAN,mCAA8B;AAG5C,UAAI,OAAO;AACV,yCAAQ,cAAc,IAAI,kBAAkB,KAAK;AAAA,MAAC;AAAA,IACnD;AAGD,QAAI,CAAC,OAAO;AACX,YAAM,IAAI,kBAAkB;AAAA,IAAA;AAIvB,UAAA,EAAE,IAAQ,IAAA,qBAAqB,MAAM,WAAW,KAAK,EAAE,KAAK,EAAE;AACpE,UAAM,gCAAgC,MAAM;AACtC,UAAA,8BAA8B,IAAI,KAAK;AAC7C,QAAI,KAAK,QAAQ,gCAAgC,6BAA6B;AAC7E,aAAO,QAAQ,IAAI,iBAAiB,UAAU,MAAM,WAAW,EAAE;AAAA,IAAA;AAGlE,UAAM,WAAW,MAAM,MAAM,aAAa,KAAK;AAE/C,QAAI,CAAC,UAAU;AACd,YAAM,IAAI,kBAAkB;AAAA,IAAA;AAG7B,gBAAM,qBAAN,+BAAyB;AAEzB,WAAO,QAAQ,IAAI,iBAAiB,UAAU,SAAS,WAAW,EAAE;AAAA,EAAA,CACpE;AACF;"}
@@ -1,24 +1,63 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _Symbol = require("./harmony135.cjs");
4
- const _getRawTag = require("./harmony136.cjs");
5
- const _objectToString = require("./harmony137.cjs");
6
- var _baseGetTag;
7
- var hasRequired_baseGetTag;
8
- function require_baseGetTag() {
9
- if (hasRequired_baseGetTag) return _baseGetTag;
10
- hasRequired_baseGetTag = 1;
11
- var Symbol2 = _Symbol.__require(), getRawTag = _getRawTag.__require(), objectToString = _objectToString.__require();
12
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
13
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
14
- function baseGetTag(value) {
15
- if (value == null) {
16
- return value === void 0 ? undefinedTag : nullTag;
17
- }
18
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
3
+ const types = require("./harmony2.cjs");
4
+ const getStatusText = (status, progressValue) => {
5
+ switch (status) {
6
+ case types.SidebarTaskLanguageStatuses.Completed:
7
+ return progressValue < 100 ? "Closed" : "Completed";
8
+ case types.SidebarTaskLanguageStatuses.Created:
9
+ return progressValue > 0 ? "In progress" : "Not started";
10
+ case types.SidebarTaskLanguageStatuses.InProgress:
11
+ return "In progress";
12
+ case types.SidebarTaskLanguageStatuses.Queued:
13
+ return "Queued";
14
+ case types.SidebarTaskLanguageStatuses.NotStarted:
15
+ return "Not started";
16
+ default:
17
+ return "-";
18
+ }
19
+ };
20
+ const resolveStatus = (language) => {
21
+ const progress = language.progress ?? 0;
22
+ if (language.status === types.SidebarTaskLanguageStatuses.Created && progress > 0) {
23
+ return types.SidebarTaskLanguageStatuses.InProgress;
19
24
  }
20
- _baseGetTag = baseGetTag;
21
- return _baseGetTag;
22
- }
23
- exports.__require = require_baseGetTag;
25
+ return language.status;
26
+ };
27
+ const tagColor = {
28
+ [types.SidebarTaskTypeOptions.translation]: "#0891B2",
29
+ [types.SidebarTaskTypeOptions.review]: "#16922D",
30
+ [types.SidebarTaskTypeOptions.lqa_by_ai]: "#8B5CF6",
31
+ [types.SidebarTaskTypeOptions.automatic_translation]: "#60A5FA"
32
+ };
33
+ const getTaskLanguages = (langs) => {
34
+ const statusSortOrder = [
35
+ types.SidebarTaskLanguageStatuses.InProgress,
36
+ types.SidebarTaskLanguageStatuses.Created,
37
+ types.SidebarTaskLanguageStatuses.Completed
38
+ ];
39
+ return langs.filter((language) => language.status !== "queued").map((lang) => ({ ...lang, status: resolveStatus(lang) })).sort((a, b) => {
40
+ if (a.status === types.SidebarTaskLanguageStatuses.InProgress && a.progress === 100) {
41
+ return -1;
42
+ }
43
+ if (b.status === types.SidebarTaskLanguageStatuses.InProgress && b.progress === 100) {
44
+ return 1;
45
+ }
46
+ if (a.status === b.status) {
47
+ return a.name < b.name ? 1 : -1;
48
+ }
49
+ return statusSortOrder.indexOf(a.status) - statusSortOrder.indexOf(b.status);
50
+ });
51
+ };
52
+ const isInProgressOrCreated = (status) => {
53
+ return [types.SidebarTaskStatuses.InProgress, types.SidebarTaskStatuses.Created].includes(status);
54
+ };
55
+ const isLanguageProgressCompleted = (task, language) => {
56
+ return isInProgressOrCreated(task.status) && isInProgressOrCreated(language.status) && (language.progress ?? 0) >= 100;
57
+ };
58
+ exports.getStatusText = getStatusText;
59
+ exports.getTaskLanguages = getTaskLanguages;
60
+ exports.isLanguageProgressCompleted = isLanguageProgressCompleted;
61
+ exports.resolveStatus = resolveStatus;
62
+ exports.tagColor = tagColor;
24
63
  //# sourceMappingURL=harmony130.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony130.cjs","sources":["../node_modules/lodash/_baseGetTag.js"],"sourcesContent":["var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n"],"names":["Symbol","require$$0","require$$1","require$$2"],"mappings":";;;;;;;;;;AAAA,MAAIA,UAASC,QAAAA,UAAoB,GAC7B,YAAYC,WAAAA,UAAuB,GACnC,iBAAiBC,gBAAAA,UAA4B;AAGjD,MAAI,UAAU,iBACV,eAAe;AAGnB,MAAI,iBAAiBH,UAASA,QAAO,cAAc;AASnD,WAAS,WAAW,OAAO;AACzB,QAAI,SAAS,MAAM;AACjB,aAAO,UAAU,SAAY,eAAe;AAAA,IAChD;AACE,WAAQ,kBAAkB,kBAAkB,OAAO,KAAK,IACpD,UAAU,KAAK,IACf,eAAe,KAAK;AAAA,EAC1B;AAEA,gBAAiB;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony130.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/content.ts"],"sourcesContent":["import {\n\ttype SidebarTask,\n\ttype SidebarTaskLanguage,\n\ttype SidebarTaskLanguageStatus,\n\tSidebarTaskLanguageStatuses,\n\ttype SidebarTaskStatus,\n\tSidebarTaskStatuses,\n\ttype SidebarTaskTypeOption,\n\tSidebarTaskTypeOptions,\n} from '../types'\n\nexport const getStatusText = (status: SidebarTaskLanguageStatus, progressValue: number) => {\n\tswitch (status) {\n\t\tcase SidebarTaskLanguageStatuses.Completed:\n\t\t\treturn progressValue < 100 ? 'Closed' : 'Completed'\n\t\tcase SidebarTaskLanguageStatuses.Created:\n\t\t\t// For some reason project task lang status is not correctly updated to \"in progress\". So instead\n\t\t\t// we need to rely on `created` status and progress value is not 0.\n\t\t\treturn progressValue > 0 ? 'In progress' : 'Not started'\n\t\tcase SidebarTaskLanguageStatuses.InProgress:\n\t\t\treturn 'In progress'\n\t\tcase SidebarTaskLanguageStatuses.Queued:\n\t\t\treturn 'Queued'\n\t\tcase SidebarTaskLanguageStatuses.NotStarted:\n\t\t\treturn 'Not started'\n\t\tdefault:\n\t\t\treturn '-'\n\t}\n}\n\nexport const resolveStatus = (language: SidebarTaskLanguage): SidebarTaskLanguageStatus => {\n\tconst progress = language.progress ?? 0\n\n\tif (language.status === SidebarTaskLanguageStatuses.Created && progress > 0) {\n\t\t// For some reason project task lang status is not correctly updated to \"in progress\". So instead\n\t\t// we need to rely on `created` status and progress value is not 0.\n\t\treturn SidebarTaskLanguageStatuses.InProgress\n\t}\n\n\treturn language.status\n}\n\n/**\n * TODO - these should be taken from louis\n */\nexport const tagColor: Record<SidebarTaskTypeOption, string> = {\n\t[SidebarTaskTypeOptions.translation]: '#0891B2',\n\t[SidebarTaskTypeOptions.review]: '#16922D',\n\t[SidebarTaskTypeOptions.lqa_by_ai]: '#8B5CF6',\n\t[SidebarTaskTypeOptions.automatic_translation]: '#60A5FA',\n}\n\nexport const getTaskLanguages = (langs: SidebarTaskLanguage[]) => {\n\tconst statusSortOrder: SidebarTaskLanguageStatus[] = [\n\t\tSidebarTaskLanguageStatuses.InProgress,\n\t\tSidebarTaskLanguageStatuses.Created,\n\t\tSidebarTaskLanguageStatuses.Completed,\n\t]\n\n\treturn langs\n\t\t.filter((language) => language.status !== 'queued')\n\t\t.map((lang) => ({ ...lang, status: resolveStatus(lang) }))\n\t\t.sort((a, b) => {\n\t\t\tif (a.status === SidebarTaskLanguageStatuses.InProgress && a.progress === 100) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\tif (b.status === SidebarTaskLanguageStatuses.InProgress && b.progress === 100) {\n\t\t\t\treturn 1\n\t\t\t}\n\n\t\t\tif (a.status === b.status) {\n\t\t\t\t// Order by lang id\n\t\t\t\treturn a.name < b.name ? 1 : -1\n\t\t\t}\n\n\t\t\t// The index of array will serve as sorting order so if we get `in_progress` for \"a\" and `created`\n\t\t\t// for b, they will have `0` and `1` indices. So `0 - 1` will result in `-1` which means\n\t\t\t// \"a\" will be sorted before \"b\".\n\t\t\treturn statusSortOrder.indexOf(a.status) - statusSortOrder.indexOf(b.status)\n\t\t})\n}\n\nconst isInProgressOrCreated = (status: SidebarTaskLanguageStatus | SidebarTaskStatus): boolean => {\n\t// @ts-ignore - complaints about status missing completed and other statuses\n\treturn [SidebarTaskStatuses.InProgress, SidebarTaskStatuses.Created].includes(status)\n}\n\nexport const isLanguageProgressCompleted = (\n\ttask: SidebarTask,\n\tlanguage: SidebarTaskLanguage,\n): boolean => {\n\treturn (\n\t\tisInProgressOrCreated(task.status) &&\n\t\tisInProgressOrCreated(language.status) &&\n\t\t(language.progress ?? 0) >= 100\n\t)\n}\n"],"names":["SidebarTaskLanguageStatuses","SidebarTaskTypeOptions","SidebarTaskStatuses"],"mappings":";;;AAWa,MAAA,gBAAgB,CAAC,QAAmC,kBAA0B;AAC1F,UAAQ,QAAQ;AAAA,IACf,KAAKA,MAA4B,4BAAA;AACzB,aAAA,gBAAgB,MAAM,WAAW;AAAA,IACzC,KAAKA,MAA4B,4BAAA;AAGzB,aAAA,gBAAgB,IAAI,gBAAgB;AAAA,IAC5C,KAAKA,MAA4B,4BAAA;AACzB,aAAA;AAAA,IACR,KAAKA,MAA4B,4BAAA;AACzB,aAAA;AAAA,IACR,KAAKA,MAA4B,4BAAA;AACzB,aAAA;AAAA,IACR;AACQ,aAAA;AAAA,EAAA;AAEV;AAEa,MAAA,gBAAgB,CAAC,aAA6D;AACpF,QAAA,WAAW,SAAS,YAAY;AAEtC,MAAI,SAAS,WAAWA,MAAAA,4BAA4B,WAAW,WAAW,GAAG;AAG5E,WAAOA,MAA4B,4BAAA;AAAA,EAAA;AAGpC,SAAO,SAAS;AACjB;AAKO,MAAM,WAAkD;AAAA,EAC9D,CAACC,MAAAA,uBAAuB,WAAW,GAAG;AAAA,EACtC,CAACA,MAAAA,uBAAuB,MAAM,GAAG;AAAA,EACjC,CAACA,MAAAA,uBAAuB,SAAS,GAAG;AAAA,EACpC,CAACA,MAAAA,uBAAuB,qBAAqB,GAAG;AACjD;AAEa,MAAA,mBAAmB,CAAC,UAAiC;AACjE,QAAM,kBAA+C;AAAA,IACpDD,MAAAA,4BAA4B;AAAA,IAC5BA,MAAAA,4BAA4B;AAAA,IAC5BA,kCAA4B;AAAA,EAC7B;AAEO,SAAA,MACL,OAAO,CAAC,aAAa,SAAS,WAAW,QAAQ,EACjD,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ,cAAc,IAAI,EAAA,EAAI,EACxD,KAAK,CAAC,GAAG,MAAM;AACf,QAAI,EAAE,WAAWA,MAAA,4BAA4B,cAAc,EAAE,aAAa,KAAK;AACvE,aAAA;AAAA,IAAA;AAGR,QAAI,EAAE,WAAWA,MAAA,4BAA4B,cAAc,EAAE,aAAa,KAAK;AACvE,aAAA;AAAA,IAAA;AAGJ,QAAA,EAAE,WAAW,EAAE,QAAQ;AAE1B,aAAO,EAAE,OAAO,EAAE,OAAO,IAAI;AAAA,IAAA;AAMvB,WAAA,gBAAgB,QAAQ,EAAE,MAAM,IAAI,gBAAgB,QAAQ,EAAE,MAAM;AAAA,EAAA,CAC3E;AACH;AAEA,MAAM,wBAAwB,CAAC,WAAmE;AAEjG,SAAO,CAACE,MAAoB,oBAAA,YAAYA,MAAAA,oBAAoB,OAAO,EAAE,SAAS,MAAM;AACrF;AAEa,MAAA,8BAA8B,CAC1C,MACA,aACa;AAEZ,SAAA,sBAAsB,KAAK,MAAM,KACjC,sBAAsB,SAAS,MAAM,MACpC,SAAS,YAAY,MAAM;AAE9B;;;;;;"}
@@ -1,24 +1,63 @@
1
- import { __require as require_Symbol } from "./harmony135.mjs";
2
- import { __require as require_getRawTag } from "./harmony136.mjs";
3
- import { __require as require_objectToString } from "./harmony137.mjs";
4
- var _baseGetTag;
5
- var hasRequired_baseGetTag;
6
- function require_baseGetTag() {
7
- if (hasRequired_baseGetTag) return _baseGetTag;
8
- hasRequired_baseGetTag = 1;
9
- var Symbol = require_Symbol(), getRawTag = require_getRawTag(), objectToString = require_objectToString();
10
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
11
- var symToStringTag = Symbol ? Symbol.toStringTag : void 0;
12
- function baseGetTag(value) {
13
- if (value == null) {
14
- return value === void 0 ? undefinedTag : nullTag;
15
- }
16
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
1
+ import { SidebarTaskLanguageStatuses, SidebarTaskTypeOptions, SidebarTaskStatuses } from "./harmony2.mjs";
2
+ const getStatusText = (status, progressValue) => {
3
+ switch (status) {
4
+ case SidebarTaskLanguageStatuses.Completed:
5
+ return progressValue < 100 ? "Closed" : "Completed";
6
+ case SidebarTaskLanguageStatuses.Created:
7
+ return progressValue > 0 ? "In progress" : "Not started";
8
+ case SidebarTaskLanguageStatuses.InProgress:
9
+ return "In progress";
10
+ case SidebarTaskLanguageStatuses.Queued:
11
+ return "Queued";
12
+ case SidebarTaskLanguageStatuses.NotStarted:
13
+ return "Not started";
14
+ default:
15
+ return "-";
16
+ }
17
+ };
18
+ const resolveStatus = (language) => {
19
+ const progress = language.progress ?? 0;
20
+ if (language.status === SidebarTaskLanguageStatuses.Created && progress > 0) {
21
+ return SidebarTaskLanguageStatuses.InProgress;
17
22
  }
18
- _baseGetTag = baseGetTag;
19
- return _baseGetTag;
20
- }
23
+ return language.status;
24
+ };
25
+ const tagColor = {
26
+ [SidebarTaskTypeOptions.translation]: "#0891B2",
27
+ [SidebarTaskTypeOptions.review]: "#16922D",
28
+ [SidebarTaskTypeOptions.lqa_by_ai]: "#8B5CF6",
29
+ [SidebarTaskTypeOptions.automatic_translation]: "#60A5FA"
30
+ };
31
+ const getTaskLanguages = (langs) => {
32
+ const statusSortOrder = [
33
+ SidebarTaskLanguageStatuses.InProgress,
34
+ SidebarTaskLanguageStatuses.Created,
35
+ SidebarTaskLanguageStatuses.Completed
36
+ ];
37
+ return langs.filter((language) => language.status !== "queued").map((lang) => ({ ...lang, status: resolveStatus(lang) })).sort((a, b) => {
38
+ if (a.status === SidebarTaskLanguageStatuses.InProgress && a.progress === 100) {
39
+ return -1;
40
+ }
41
+ if (b.status === SidebarTaskLanguageStatuses.InProgress && b.progress === 100) {
42
+ return 1;
43
+ }
44
+ if (a.status === b.status) {
45
+ return a.name < b.name ? 1 : -1;
46
+ }
47
+ return statusSortOrder.indexOf(a.status) - statusSortOrder.indexOf(b.status);
48
+ });
49
+ };
50
+ const isInProgressOrCreated = (status) => {
51
+ return [SidebarTaskStatuses.InProgress, SidebarTaskStatuses.Created].includes(status);
52
+ };
53
+ const isLanguageProgressCompleted = (task, language) => {
54
+ return isInProgressOrCreated(task.status) && isInProgressOrCreated(language.status) && (language.progress ?? 0) >= 100;
55
+ };
21
56
  export {
22
- require_baseGetTag as __require
57
+ getStatusText,
58
+ getTaskLanguages,
59
+ isLanguageProgressCompleted,
60
+ resolveStatus,
61
+ tagColor
23
62
  };
24
63
  //# sourceMappingURL=harmony130.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony130.mjs","sources":["../node_modules/lodash/_baseGetTag.js"],"sourcesContent":["var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n"],"names":["require$$0","require$$1","require$$2"],"mappings":";;;;;;;;AAAA,MAAI,SAASA,eAAoB,GAC7B,YAAYC,kBAAuB,GACnC,iBAAiBC,uBAA4B;AAGjD,MAAI,UAAU,iBACV,eAAe;AAGnB,MAAI,iBAAiB,SAAS,OAAO,cAAc;AASnD,WAAS,WAAW,OAAO;AACzB,QAAI,SAAS,MAAM;AACjB,aAAO,UAAU,SAAY,eAAe;AAAA,IAChD;AACE,WAAQ,kBAAkB,kBAAkB,OAAO,KAAK,IACpD,UAAU,KAAK,IACf,eAAe,KAAK;AAAA,EAC1B;AAEA,gBAAiB;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony130.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/content.ts"],"sourcesContent":["import {\n\ttype SidebarTask,\n\ttype SidebarTaskLanguage,\n\ttype SidebarTaskLanguageStatus,\n\tSidebarTaskLanguageStatuses,\n\ttype SidebarTaskStatus,\n\tSidebarTaskStatuses,\n\ttype SidebarTaskTypeOption,\n\tSidebarTaskTypeOptions,\n} from '../types'\n\nexport const getStatusText = (status: SidebarTaskLanguageStatus, progressValue: number) => {\n\tswitch (status) {\n\t\tcase SidebarTaskLanguageStatuses.Completed:\n\t\t\treturn progressValue < 100 ? 'Closed' : 'Completed'\n\t\tcase SidebarTaskLanguageStatuses.Created:\n\t\t\t// For some reason project task lang status is not correctly updated to \"in progress\". So instead\n\t\t\t// we need to rely on `created` status and progress value is not 0.\n\t\t\treturn progressValue > 0 ? 'In progress' : 'Not started'\n\t\tcase SidebarTaskLanguageStatuses.InProgress:\n\t\t\treturn 'In progress'\n\t\tcase SidebarTaskLanguageStatuses.Queued:\n\t\t\treturn 'Queued'\n\t\tcase SidebarTaskLanguageStatuses.NotStarted:\n\t\t\treturn 'Not started'\n\t\tdefault:\n\t\t\treturn '-'\n\t}\n}\n\nexport const resolveStatus = (language: SidebarTaskLanguage): SidebarTaskLanguageStatus => {\n\tconst progress = language.progress ?? 0\n\n\tif (language.status === SidebarTaskLanguageStatuses.Created && progress > 0) {\n\t\t// For some reason project task lang status is not correctly updated to \"in progress\". So instead\n\t\t// we need to rely on `created` status and progress value is not 0.\n\t\treturn SidebarTaskLanguageStatuses.InProgress\n\t}\n\n\treturn language.status\n}\n\n/**\n * TODO - these should be taken from louis\n */\nexport const tagColor: Record<SidebarTaskTypeOption, string> = {\n\t[SidebarTaskTypeOptions.translation]: '#0891B2',\n\t[SidebarTaskTypeOptions.review]: '#16922D',\n\t[SidebarTaskTypeOptions.lqa_by_ai]: '#8B5CF6',\n\t[SidebarTaskTypeOptions.automatic_translation]: '#60A5FA',\n}\n\nexport const getTaskLanguages = (langs: SidebarTaskLanguage[]) => {\n\tconst statusSortOrder: SidebarTaskLanguageStatus[] = [\n\t\tSidebarTaskLanguageStatuses.InProgress,\n\t\tSidebarTaskLanguageStatuses.Created,\n\t\tSidebarTaskLanguageStatuses.Completed,\n\t]\n\n\treturn langs\n\t\t.filter((language) => language.status !== 'queued')\n\t\t.map((lang) => ({ ...lang, status: resolveStatus(lang) }))\n\t\t.sort((a, b) => {\n\t\t\tif (a.status === SidebarTaskLanguageStatuses.InProgress && a.progress === 100) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\tif (b.status === SidebarTaskLanguageStatuses.InProgress && b.progress === 100) {\n\t\t\t\treturn 1\n\t\t\t}\n\n\t\t\tif (a.status === b.status) {\n\t\t\t\t// Order by lang id\n\t\t\t\treturn a.name < b.name ? 1 : -1\n\t\t\t}\n\n\t\t\t// The index of array will serve as sorting order so if we get `in_progress` for \"a\" and `created`\n\t\t\t// for b, they will have `0` and `1` indices. So `0 - 1` will result in `-1` which means\n\t\t\t// \"a\" will be sorted before \"b\".\n\t\t\treturn statusSortOrder.indexOf(a.status) - statusSortOrder.indexOf(b.status)\n\t\t})\n}\n\nconst isInProgressOrCreated = (status: SidebarTaskLanguageStatus | SidebarTaskStatus): boolean => {\n\t// @ts-ignore - complaints about status missing completed and other statuses\n\treturn [SidebarTaskStatuses.InProgress, SidebarTaskStatuses.Created].includes(status)\n}\n\nexport const isLanguageProgressCompleted = (\n\ttask: SidebarTask,\n\tlanguage: SidebarTaskLanguage,\n): boolean => {\n\treturn (\n\t\tisInProgressOrCreated(task.status) &&\n\t\tisInProgressOrCreated(language.status) &&\n\t\t(language.progress ?? 0) >= 100\n\t)\n}\n"],"names":[],"mappings":";AAWa,MAAA,gBAAgB,CAAC,QAAmC,kBAA0B;AAC1F,UAAQ,QAAQ;AAAA,IACf,KAAK,4BAA4B;AACzB,aAAA,gBAAgB,MAAM,WAAW;AAAA,IACzC,KAAK,4BAA4B;AAGzB,aAAA,gBAAgB,IAAI,gBAAgB;AAAA,IAC5C,KAAK,4BAA4B;AACzB,aAAA;AAAA,IACR,KAAK,4BAA4B;AACzB,aAAA;AAAA,IACR,KAAK,4BAA4B;AACzB,aAAA;AAAA,IACR;AACQ,aAAA;AAAA,EAAA;AAEV;AAEa,MAAA,gBAAgB,CAAC,aAA6D;AACpF,QAAA,WAAW,SAAS,YAAY;AAEtC,MAAI,SAAS,WAAW,4BAA4B,WAAW,WAAW,GAAG;AAG5E,WAAO,4BAA4B;AAAA,EAAA;AAGpC,SAAO,SAAS;AACjB;AAKO,MAAM,WAAkD;AAAA,EAC9D,CAAC,uBAAuB,WAAW,GAAG;AAAA,EACtC,CAAC,uBAAuB,MAAM,GAAG;AAAA,EACjC,CAAC,uBAAuB,SAAS,GAAG;AAAA,EACpC,CAAC,uBAAuB,qBAAqB,GAAG;AACjD;AAEa,MAAA,mBAAmB,CAAC,UAAiC;AACjE,QAAM,kBAA+C;AAAA,IACpD,4BAA4B;AAAA,IAC5B,4BAA4B;AAAA,IAC5B,4BAA4B;AAAA,EAC7B;AAEO,SAAA,MACL,OAAO,CAAC,aAAa,SAAS,WAAW,QAAQ,EACjD,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ,cAAc,IAAI,EAAA,EAAI,EACxD,KAAK,CAAC,GAAG,MAAM;AACf,QAAI,EAAE,WAAW,4BAA4B,cAAc,EAAE,aAAa,KAAK;AACvE,aAAA;AAAA,IAAA;AAGR,QAAI,EAAE,WAAW,4BAA4B,cAAc,EAAE,aAAa,KAAK;AACvE,aAAA;AAAA,IAAA;AAGJ,QAAA,EAAE,WAAW,EAAE,QAAQ;AAE1B,aAAO,EAAE,OAAO,EAAE,OAAO,IAAI;AAAA,IAAA;AAMvB,WAAA,gBAAgB,QAAQ,EAAE,MAAM,IAAI,gBAAgB,QAAQ,EAAE,MAAM;AAAA,EAAA,CAC3E;AACH;AAEA,MAAM,wBAAwB,CAAC,WAAmE;AAEjG,SAAO,CAAC,oBAAoB,YAAY,oBAAoB,OAAO,EAAE,SAAS,MAAM;AACrF;AAEa,MAAA,8BAA8B,CAC1C,MACA,aACa;AAEZ,SAAA,sBAAsB,KAAK,MAAM,KACjC,sBAAsB,SAAS,MAAM,MACpC,SAAS,YAAY,MAAM;AAE9B;"}
@@ -1,15 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var isObjectLike_1;
4
- var hasRequiredIsObjectLike;
5
- function requireIsObjectLike() {
6
- if (hasRequiredIsObjectLike) return isObjectLike_1;
7
- hasRequiredIsObjectLike = 1;
8
- function isObjectLike(value) {
9
- return value != null && typeof value == "object";
10
- }
11
- isObjectLike_1 = isObjectLike;
12
- return isObjectLike_1;
13
- }
14
- exports.__require = requireIsObjectLike;
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const taskContainer = "_taskContainer_mt2or_1";
4
+ const taskTitle = "_taskTitle_mt2or_21";
5
+ const taskDescription = "_taskDescription_mt2or_28";
6
+ const languagesTable = "_languagesTable_mt2or_35";
7
+ const metadata = "_metadata_mt2or_87";
8
+ const styles = {
9
+ taskContainer,
10
+ taskTitle,
11
+ taskDescription,
12
+ languagesTable,
13
+ metadata
14
+ };
15
+ exports.default = styles;
16
+ exports.languagesTable = languagesTable;
17
+ exports.metadata = metadata;
18
+ exports.taskContainer = taskContainer;
19
+ exports.taskDescription = taskDescription;
20
+ exports.taskTitle = taskTitle;
15
21
  //# sourceMappingURL=harmony131.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony131.cjs","sources":["../node_modules/lodash/isObjectLike.js"],"sourcesContent":["/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n"],"names":[],"mappings":";;;;;;;AAwBA,WAAS,aAAa,OAAO;AAC3B,WAAO,SAAS,QAAQ,OAAO,SAAS;AAAA,EAC1C;AAEA,mBAAiB;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony131.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1,15 +1,21 @@
1
- var isObjectLike_1;
2
- var hasRequiredIsObjectLike;
3
- function requireIsObjectLike() {
4
- if (hasRequiredIsObjectLike) return isObjectLike_1;
5
- hasRequiredIsObjectLike = 1;
6
- function isObjectLike(value) {
7
- return value != null && typeof value == "object";
8
- }
9
- isObjectLike_1 = isObjectLike;
10
- return isObjectLike_1;
11
- }
1
+ const taskContainer = "_taskContainer_mt2or_1";
2
+ const taskTitle = "_taskTitle_mt2or_21";
3
+ const taskDescription = "_taskDescription_mt2or_28";
4
+ const languagesTable = "_languagesTable_mt2or_35";
5
+ const metadata = "_metadata_mt2or_87";
6
+ const styles = {
7
+ taskContainer,
8
+ taskTitle,
9
+ taskDescription,
10
+ languagesTable,
11
+ metadata
12
+ };
12
13
  export {
13
- requireIsObjectLike as __require
14
+ styles as default,
15
+ languagesTable,
16
+ metadata,
17
+ taskContainer,
18
+ taskDescription,
19
+ taskTitle
14
20
  };
15
21
  //# sourceMappingURL=harmony131.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony131.mjs","sources":["../node_modules/lodash/isObjectLike.js"],"sourcesContent":["/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n"],"names":[],"mappings":";;;;;AAwBA,WAAS,aAAa,OAAO;AAC3B,WAAO,SAAS,QAAQ,OAAO,SAAS;AAAA,EAC1C;AAEA,mBAAiB;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"harmony131.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,49 +1,15 @@
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 React = require("react");
6
- const TasksContext = require("./harmony105.cjs");
7
- const TaskLanguageCompleted = ({ task, language }) => {
8
- const [loading, setLoading] = React.useState(false);
9
- const [isMarkAsDonePromptShown, setIsMarkAsDonePromptShown] = React.useState(false);
10
- const { onLanguageCompleteConfirm, fetchTasks } = TasksContext.useTasks();
11
- const closePrompt = () => {
12
- setIsMarkAsDonePromptShown(false);
13
- };
14
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15
- isMarkAsDonePromptShown && /* @__PURE__ */ jsxRuntime.jsx(
16
- louis.ConfirmModal,
17
- {
18
- opened: true,
19
- loading,
20
- title: `Are you finished with ${language.name}?`,
21
- confirmText: "Mark as done",
22
- closeText: "Cancel",
23
- onClose: closePrompt,
24
- onConfirm: async () => {
25
- setLoading(true);
26
- await onLanguageCompleteConfirm({ task, language, closePrompt });
27
- fetchTasks();
28
- },
29
- children: /* @__PURE__ */ jsxRuntime.jsxs(louis.Alert, { status: "info", children: [
30
- "Make sure you are finished and ",
31
- /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "mark it as done" }),
32
- " to notify your team admin. This action cannot be undone, and the language might no longer be available for you to edit."
33
- ] })
34
- }
35
- ),
36
- /* @__PURE__ */ jsxRuntime.jsx(
37
- louis.Link,
38
- {
39
- disabled: loading,
40
- onClick: () => {
41
- setIsMarkAsDonePromptShown(true);
42
- },
43
- children: "Mark as done"
44
- }
45
- )
46
- ] });
47
- };
48
- exports.TaskLanguageCompleted = TaskLanguageCompleted;
3
+ const _root = require("./harmony121.cjs");
4
+ var _Symbol;
5
+ var hasRequired_Symbol;
6
+ function require_Symbol() {
7
+ if (hasRequired_Symbol) return _Symbol;
8
+ hasRequired_Symbol = 1;
9
+ var root = _root.__require();
10
+ var Symbol2 = root.Symbol;
11
+ _Symbol = Symbol2;
12
+ return _Symbol;
13
+ }
14
+ exports.__require = require_Symbol;
49
15
  //# sourceMappingURL=harmony132.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony132.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TaskLanguageCompleted/TaskLanguageCompleted.tsx"],"sourcesContent":["import { Alert, ConfirmModal, Link } from '@lokalise/louis'\nimport { useState } from 'react'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask, SidebarTaskLanguage } from '../types'\n\ntype TaskLanguageCompletedProps = {\n\ttask: SidebarTask\n\tlanguage: SidebarTaskLanguage\n}\n\nexport const TaskLanguageCompleted = ({ task, language }: TaskLanguageCompletedProps) => {\n\tconst [loading, setLoading] = useState(false)\n\n\tconst [isMarkAsDonePromptShown, setIsMarkAsDonePromptShown] = useState(false)\n\n\tconst { onLanguageCompleteConfirm, fetchTasks } = useTasks()\n\n\tconst closePrompt = () => {\n\t\tsetIsMarkAsDonePromptShown(false)\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{isMarkAsDonePromptShown && (\n\t\t\t\t<ConfirmModal\n\t\t\t\t\topened\n\t\t\t\t\tloading={loading}\n\t\t\t\t\ttitle={`Are you finished with ${language.name}?`}\n\t\t\t\t\tconfirmText=\"Mark as done\"\n\t\t\t\t\tcloseText=\"Cancel\"\n\t\t\t\t\tonClose={closePrompt}\n\t\t\t\t\tonConfirm={async () => {\n\t\t\t\t\t\tsetLoading(true)\n\t\t\t\t\t\tawait onLanguageCompleteConfirm({ task, language, closePrompt })\n\t\t\t\t\t\tfetchTasks()\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Alert status=\"info\">\n\t\t\t\t\t\tMake sure you are finished and <strong>mark it as done</strong> to notify your team\n\t\t\t\t\t\tadmin. This action cannot be undone, and the language might no longer be available for\n\t\t\t\t\t\tyou to edit.\n\t\t\t\t\t</Alert>\n\t\t\t\t</ConfirmModal>\n\t\t\t)}\n\t\t\t<Link\n\t\t\t\tdisabled={loading}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tsetIsMarkAsDonePromptShown(true)\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tMark as done\n\t\t\t</Link>\n\t\t</>\n\t)\n}\n"],"names":["useState","useTasks","jsxs","Fragment","jsx","ConfirmModal","Alert","Link"],"mappings":";;;;;;AAUO,MAAM,wBAAwB,CAAC,EAAE,MAAM,eAA2C;AACxF,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAS,KAAK;AAE5C,QAAM,CAAC,yBAAyB,0BAA0B,IAAIA,MAAAA,SAAS,KAAK;AAE5E,QAAM,EAAE,2BAA2B,WAAW,IAAIC,sBAAS;AAE3D,QAAM,cAAc,MAAM;AACzB,+BAA2B,KAAK;AAAA,EACjC;AAEA,SAEGC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IACA,2BAAAC,2BAAA;AAAA,MAACC,MAAA;AAAA,MAAA;AAAA,QACA,QAAM;AAAA,QACN;AAAA,QACA,OAAO,yBAAyB,SAAS,IAAI;AAAA,QAC7C,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAW,YAAY;AACtB,qBAAW,IAAI;AACf,gBAAM,0BAA0B,EAAE,MAAM,UAAU,aAAa;AACpD,qBAAA;AAAA,QACZ;AAAA,QAEA,UAAAH,2BAAA,KAACI,MAAM,OAAA,EAAA,QAAO,QAAO,UAAA;AAAA,UAAA;AAAA,UACWF,2BAAAA,IAAC,YAAO,UAAe,kBAAA,CAAA;AAAA,UAAS;AAAA,QAAA,EAGhE,CAAA;AAAA,MAAA;AAAA,IACD;AAAA,IAEDA,2BAAA;AAAA,MAACG,MAAA;AAAA,MAAA;AAAA,QACA,UAAU;AAAA,QACV,SAAS,MAAM;AACd,qCAA2B,IAAI;AAAA,QAChC;AAAA,QACA,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GACD;AAEF;;"}
1
+ {"version":3,"file":"harmony132.cjs","sources":["../node_modules/lodash/_Symbol.js"],"sourcesContent":["var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n"],"names":["require$$0","Symbol"],"mappings":";;;;;;;;AAAA,MAAI,OAAOA,MAAAA,UAAkB;AAG7B,MAAIC,UAAS,KAAK;AAElB,YAAiBA;;;;","x_google_ignoreList":[0]}
@@ -1,49 +1,15 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { ConfirmModal, Alert, Link } from "@lokalise/louis";
3
- import { useState } from "react";
4
- import { useTasks } from "./harmony105.mjs";
5
- const TaskLanguageCompleted = ({ task, language }) => {
6
- const [loading, setLoading] = useState(false);
7
- const [isMarkAsDonePromptShown, setIsMarkAsDonePromptShown] = useState(false);
8
- const { onLanguageCompleteConfirm, fetchTasks } = useTasks();
9
- const closePrompt = () => {
10
- setIsMarkAsDonePromptShown(false);
11
- };
12
- return /* @__PURE__ */ jsxs(Fragment, { children: [
13
- isMarkAsDonePromptShown && /* @__PURE__ */ jsx(
14
- ConfirmModal,
15
- {
16
- opened: true,
17
- loading,
18
- title: `Are you finished with ${language.name}?`,
19
- confirmText: "Mark as done",
20
- closeText: "Cancel",
21
- onClose: closePrompt,
22
- onConfirm: async () => {
23
- setLoading(true);
24
- await onLanguageCompleteConfirm({ task, language, closePrompt });
25
- fetchTasks();
26
- },
27
- children: /* @__PURE__ */ jsxs(Alert, { status: "info", children: [
28
- "Make sure you are finished and ",
29
- /* @__PURE__ */ jsx("strong", { children: "mark it as done" }),
30
- " to notify your team admin. This action cannot be undone, and the language might no longer be available for you to edit."
31
- ] })
32
- }
33
- ),
34
- /* @__PURE__ */ jsx(
35
- Link,
36
- {
37
- disabled: loading,
38
- onClick: () => {
39
- setIsMarkAsDonePromptShown(true);
40
- },
41
- children: "Mark as done"
42
- }
43
- )
44
- ] });
45
- };
1
+ import { __require as require_root } from "./harmony121.mjs";
2
+ var _Symbol;
3
+ var hasRequired_Symbol;
4
+ function require_Symbol() {
5
+ if (hasRequired_Symbol) return _Symbol;
6
+ hasRequired_Symbol = 1;
7
+ var root = require_root();
8
+ var Symbol = root.Symbol;
9
+ _Symbol = Symbol;
10
+ return _Symbol;
11
+ }
46
12
  export {
47
- TaskLanguageCompleted
13
+ require_Symbol as __require
48
14
  };
49
15
  //# sourceMappingURL=harmony132.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony132.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TaskLanguageCompleted/TaskLanguageCompleted.tsx"],"sourcesContent":["import { Alert, ConfirmModal, Link } from '@lokalise/louis'\nimport { useState } from 'react'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask, SidebarTaskLanguage } from '../types'\n\ntype TaskLanguageCompletedProps = {\n\ttask: SidebarTask\n\tlanguage: SidebarTaskLanguage\n}\n\nexport const TaskLanguageCompleted = ({ task, language }: TaskLanguageCompletedProps) => {\n\tconst [loading, setLoading] = useState(false)\n\n\tconst [isMarkAsDonePromptShown, setIsMarkAsDonePromptShown] = useState(false)\n\n\tconst { onLanguageCompleteConfirm, fetchTasks } = useTasks()\n\n\tconst closePrompt = () => {\n\t\tsetIsMarkAsDonePromptShown(false)\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{isMarkAsDonePromptShown && (\n\t\t\t\t<ConfirmModal\n\t\t\t\t\topened\n\t\t\t\t\tloading={loading}\n\t\t\t\t\ttitle={`Are you finished with ${language.name}?`}\n\t\t\t\t\tconfirmText=\"Mark as done\"\n\t\t\t\t\tcloseText=\"Cancel\"\n\t\t\t\t\tonClose={closePrompt}\n\t\t\t\t\tonConfirm={async () => {\n\t\t\t\t\t\tsetLoading(true)\n\t\t\t\t\t\tawait onLanguageCompleteConfirm({ task, language, closePrompt })\n\t\t\t\t\t\tfetchTasks()\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Alert status=\"info\">\n\t\t\t\t\t\tMake sure you are finished and <strong>mark it as done</strong> to notify your team\n\t\t\t\t\t\tadmin. This action cannot be undone, and the language might no longer be available for\n\t\t\t\t\t\tyou to edit.\n\t\t\t\t\t</Alert>\n\t\t\t\t</ConfirmModal>\n\t\t\t)}\n\t\t\t<Link\n\t\t\t\tdisabled={loading}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tsetIsMarkAsDonePromptShown(true)\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tMark as done\n\t\t\t</Link>\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":";;;;AAUO,MAAM,wBAAwB,CAAC,EAAE,MAAM,eAA2C;AACxF,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,CAAC,yBAAyB,0BAA0B,IAAI,SAAS,KAAK;AAE5E,QAAM,EAAE,2BAA2B,WAAW,IAAI,SAAS;AAE3D,QAAM,cAAc,MAAM;AACzB,+BAA2B,KAAK;AAAA,EACjC;AAEA,SAEG,qBAAA,UAAA,EAAA,UAAA;AAAA,IACA,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,QAAM;AAAA,QACN;AAAA,QACA,OAAO,yBAAyB,SAAS,IAAI;AAAA,QAC7C,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAW,YAAY;AACtB,qBAAW,IAAI;AACf,gBAAM,0BAA0B,EAAE,MAAM,UAAU,aAAa;AACpD,qBAAA;AAAA,QACZ;AAAA,QAEA,UAAA,qBAAC,OAAM,EAAA,QAAO,QAAO,UAAA;AAAA,UAAA;AAAA,UACW,oBAAC,YAAO,UAAe,kBAAA,CAAA;AAAA,UAAS;AAAA,QAAA,EAGhE,CAAA;AAAA,MAAA;AAAA,IACD;AAAA,IAED;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,UAAU;AAAA,QACV,SAAS,MAAM;AACd,qCAA2B,IAAI;AAAA,QAChC;AAAA,QACA,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GACD;AAEF;"}
1
+ {"version":3,"file":"harmony132.mjs","sources":["../node_modules/lodash/_Symbol.js"],"sourcesContent":["var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n"],"names":["require$$0"],"mappings":";;;;;;AAAA,MAAI,OAAOA,aAAkB;AAG7B,MAAI,SAAS,KAAK;AAElB,YAAiB;;;","x_google_ignoreList":[0]}