@lokalise/harmony 1.29.2 → 1.29.4
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.
- package/README.md +41 -0
- package/dist/harmony100.cjs +132 -12
- package/dist/harmony100.cjs.map +1 -1
- package/dist/harmony100.mjs +131 -11
- package/dist/harmony100.mjs.map +1 -1
- package/dist/harmony101.cjs +13 -6
- package/dist/harmony101.cjs.map +1 -1
- package/dist/harmony101.mjs +12 -5
- package/dist/harmony101.mjs.map +1 -1
- package/dist/harmony102.cjs +5 -40
- package/dist/harmony102.cjs.map +1 -1
- package/dist/harmony102.mjs +5 -40
- package/dist/harmony102.mjs.map +1 -1
- package/dist/harmony103.cjs +33 -53
- package/dist/harmony103.cjs.map +1 -1
- package/dist/harmony103.mjs +34 -54
- package/dist/harmony103.mjs.map +1 -1
- package/dist/harmony104.cjs +59 -6
- package/dist/harmony104.cjs.map +1 -1
- package/dist/harmony104.mjs +59 -6
- package/dist/harmony104.mjs.map +1 -1
- package/dist/harmony105.cjs +7 -6
- package/dist/harmony105.cjs.map +1 -1
- package/dist/harmony105.mjs +6 -5
- package/dist/harmony105.mjs.map +1 -1
- package/dist/harmony106.cjs +2 -2
- package/dist/harmony106.mjs +2 -2
- package/dist/harmony107.cjs +2 -2
- package/dist/harmony107.mjs +2 -2
- package/dist/harmony108.cjs +95 -61
- package/dist/harmony108.cjs.map +1 -1
- package/dist/harmony108.mjs +95 -61
- package/dist/harmony108.mjs.map +1 -1
- package/dist/harmony109.cjs +13 -88
- package/dist/harmony109.cjs.map +1 -1
- package/dist/harmony109.mjs +13 -88
- package/dist/harmony109.mjs.map +1 -1
- package/dist/harmony110.cjs +15 -19
- package/dist/harmony110.cjs.map +1 -1
- package/dist/harmony110.mjs +14 -18
- package/dist/harmony110.mjs.map +1 -1
- package/dist/harmony111.cjs +34 -94
- package/dist/harmony111.cjs.map +1 -1
- package/dist/harmony111.mjs +34 -94
- package/dist/harmony111.mjs.map +1 -1
- package/dist/harmony112.cjs +26 -11
- package/dist/harmony112.cjs.map +1 -1
- package/dist/harmony112.mjs +26 -11
- package/dist/harmony112.mjs.map +1 -1
- package/dist/harmony113.cjs +60 -12
- package/dist/harmony113.cjs.map +1 -1
- package/dist/harmony113.mjs +60 -12
- package/dist/harmony113.mjs.map +1 -1
- package/dist/harmony114.cjs +88 -36
- package/dist/harmony114.cjs.map +1 -1
- package/dist/harmony114.mjs +88 -36
- package/dist/harmony114.mjs.map +1 -1
- package/dist/harmony115.cjs +19 -29
- package/dist/harmony115.cjs.map +1 -1
- package/dist/harmony115.mjs +18 -28
- package/dist/harmony115.mjs.map +1 -1
- package/dist/harmony116.cjs +1 -1
- package/dist/harmony116.mjs +1 -1
- package/dist/harmony117.cjs +1 -1
- package/dist/harmony117.mjs +1 -1
- package/dist/harmony118.cjs +2 -2
- package/dist/harmony118.mjs +2 -2
- package/dist/harmony119.cjs +16 -7
- package/dist/harmony119.cjs.map +1 -1
- package/dist/harmony119.mjs +16 -7
- package/dist/harmony119.mjs.map +1 -1
- package/dist/harmony120.cjs +20 -56
- package/dist/harmony120.cjs.map +1 -1
- package/dist/harmony120.mjs +20 -56
- package/dist/harmony120.mjs.map +1 -1
- package/dist/harmony121.cjs +11 -59
- package/dist/harmony121.cjs.map +1 -1
- package/dist/harmony121.mjs +11 -59
- package/dist/harmony121.mjs.map +1 -1
- package/dist/harmony122.cjs +12 -19
- package/dist/harmony122.cjs.map +1 -1
- package/dist/harmony122.mjs +11 -18
- package/dist/harmony122.mjs.map +1 -1
- package/dist/harmony123.cjs +7 -11
- package/dist/harmony123.cjs.map +1 -1
- package/dist/harmony123.mjs +7 -11
- package/dist/harmony123.mjs.map +1 -1
- package/dist/harmony124.cjs +56 -15
- package/dist/harmony124.cjs.map +1 -1
- package/dist/harmony124.mjs +56 -15
- package/dist/harmony124.mjs.map +1 -1
- package/dist/harmony125.cjs +59 -20
- package/dist/harmony125.cjs.map +1 -1
- package/dist/harmony125.mjs +59 -20
- package/dist/harmony125.mjs.map +1 -1
- package/dist/harmony126.cjs +19 -13
- package/dist/harmony126.cjs.map +1 -1
- package/dist/harmony126.mjs +18 -12
- package/dist/harmony126.mjs.map +1 -1
- package/dist/harmony127.cjs +11 -5
- package/dist/harmony127.cjs.map +1 -1
- package/dist/harmony127.mjs +11 -5
- package/dist/harmony127.mjs.map +1 -1
- package/dist/harmony128.cjs +31 -11
- package/dist/harmony128.cjs.map +1 -1
- package/dist/harmony128.mjs +31 -11
- package/dist/harmony128.mjs.map +1 -1
- package/dist/harmony129.cjs +10 -28
- package/dist/harmony129.cjs.map +1 -1
- package/dist/harmony129.mjs +10 -28
- package/dist/harmony129.mjs.map +1 -1
- package/dist/harmony130.cjs +5 -13
- package/dist/harmony130.cjs.map +1 -1
- package/dist/harmony130.mjs +5 -13
- package/dist/harmony130.mjs.map +1 -1
- package/dist/harmony131.cjs +1 -1
- package/dist/harmony131.mjs +1 -1
- package/dist/harmony76.cjs +6 -6
- package/dist/harmony76.mjs +6 -6
- package/dist/harmony85.cjs +11 -2
- package/dist/harmony85.cjs.map +1 -1
- package/dist/harmony85.mjs +11 -2
- package/dist/harmony85.mjs.map +1 -1
- package/dist/harmony90.cjs +1 -1
- package/dist/harmony90.mjs +1 -1
- package/dist/harmony99.cjs +6 -132
- package/dist/harmony99.cjs.map +1 -1
- package/dist/harmony99.mjs +5 -131
- package/dist/harmony99.mjs.map +1 -1
- package/dist/types/src/features/publicApi/hooks/useListTeamsQuery.test.d.ts +1 -0
- package/dist/types/tests/utils/apiHelpers.d.ts +19 -0
- package/dist/types/tests/utils/index.d.ts +1 -0
- package/package.json +5 -3
- /package/dist/types/tests/{utils.d.ts → utils/renderWithProviders.d.ts} +0 -0
package/dist/harmony121.mjs
CHANGED
@@ -1,63 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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 "-";
|
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";
|
16
8
|
}
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
if (language.status === SidebarTaskLanguageStatuses.Created && progress > 0) {
|
21
|
-
return SidebarTaskLanguageStatuses.InProgress;
|
22
|
-
}
|
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
|
-
};
|
9
|
+
isObjectLike_1 = isObjectLike;
|
10
|
+
return isObjectLike_1;
|
11
|
+
}
|
56
12
|
export {
|
57
|
-
|
58
|
-
getTaskLanguages,
|
59
|
-
isLanguageProgressCompleted,
|
60
|
-
resolveStatus,
|
61
|
-
tagColor
|
13
|
+
requireIsObjectLike as __require
|
62
14
|
};
|
63
15
|
//# sourceMappingURL=harmony121.mjs.map
|
package/dist/harmony121.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony121.mjs","sources":["../
|
1
|
+
{"version":3,"file":"harmony121.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]}
|
package/dist/harmony122.cjs
CHANGED
@@ -1,21 +1,14 @@
|
|
1
1
|
"use strict";
|
2
|
-
Object.
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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;
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
+
const _commonjsHelpers = require("./harmony130.cjs");
|
4
|
+
var _freeGlobal;
|
5
|
+
var hasRequired_freeGlobal;
|
6
|
+
function require_freeGlobal() {
|
7
|
+
if (hasRequired_freeGlobal) return _freeGlobal;
|
8
|
+
hasRequired_freeGlobal = 1;
|
9
|
+
var freeGlobal = typeof _commonjsHelpers.commonjsGlobal == "object" && _commonjsHelpers.commonjsGlobal && _commonjsHelpers.commonjsGlobal.Object === Object && _commonjsHelpers.commonjsGlobal;
|
10
|
+
_freeGlobal = freeGlobal;
|
11
|
+
return _freeGlobal;
|
12
|
+
}
|
13
|
+
exports.__require = require_freeGlobal;
|
21
14
|
//# sourceMappingURL=harmony122.cjs.map
|
package/dist/harmony122.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony122.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony122.cjs","sources":["../node_modules/lodash/_freeGlobal.js"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n"],"names":["global"],"mappings":";;;;;;;;AACA,MAAI,aAAa,OAAOA,iBAAAA,kBAAU,YAAYA,iBAAM,kBAAIA,gCAAO,WAAW,UAAUA,iBAAM;AAE1F,gBAAiB;;;;","x_google_ignoreList":[0]}
|
package/dist/harmony122.mjs
CHANGED
@@ -1,21 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
metadata
|
12
|
-
};
|
1
|
+
import { commonjsGlobal } from "./harmony130.mjs";
|
2
|
+
var _freeGlobal;
|
3
|
+
var hasRequired_freeGlobal;
|
4
|
+
function require_freeGlobal() {
|
5
|
+
if (hasRequired_freeGlobal) return _freeGlobal;
|
6
|
+
hasRequired_freeGlobal = 1;
|
7
|
+
var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
|
8
|
+
_freeGlobal = freeGlobal;
|
9
|
+
return _freeGlobal;
|
10
|
+
}
|
13
11
|
export {
|
14
|
-
|
15
|
-
languagesTable,
|
16
|
-
metadata,
|
17
|
-
taskContainer,
|
18
|
-
taskDescription,
|
19
|
-
taskTitle
|
12
|
+
require_freeGlobal as __require
|
20
13
|
};
|
21
14
|
//# sourceMappingURL=harmony122.mjs.map
|
package/dist/harmony122.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony122.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony122.mjs","sources":["../node_modules/lodash/_freeGlobal.js"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n"],"names":["global"],"mappings":";;;;;;AACA,MAAI,aAAa,OAAOA,kBAAU,YAAYA,kBAAUA,eAAO,WAAW,UAAUA;AAEpF,gBAAiB;;;","x_google_ignoreList":[0]}
|
package/dist/harmony123.cjs
CHANGED
@@ -1,14 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
_freeGlobal = freeGlobal;
|
11
|
-
return _freeGlobal;
|
12
|
-
}
|
13
|
-
exports.__require = require_freeGlobal;
|
3
|
+
const splitFileName = (fileName) => {
|
4
|
+
const lastDotIndex = fileName.lastIndexOf(".");
|
5
|
+
const name = fileName.slice(0, lastDotIndex);
|
6
|
+
const extension = fileName.slice(lastDotIndex + 1);
|
7
|
+
return { name, extension };
|
8
|
+
};
|
9
|
+
exports.splitFileName = splitFileName;
|
14
10
|
//# sourceMappingURL=harmony123.cjs.map
|
package/dist/harmony123.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony123.cjs","sources":["../
|
1
|
+
{"version":3,"file":"harmony123.cjs","sources":["../src/components/Sidebar/utils/index.ts"],"sourcesContent":["export const splitFileName = (fileName: string) => {\n\tconst lastDotIndex = fileName.lastIndexOf('.')\n\tconst name = fileName.slice(0, lastDotIndex)\n\tconst extension = fileName.slice(lastDotIndex + 1)\n\n\treturn { name, extension }\n}\n"],"names":[],"mappings":";;AAAa,MAAA,gBAAgB,CAAC,aAAqB;AAC5C,QAAA,eAAe,SAAS,YAAY,GAAG;AAC7C,QAAM,OAAO,SAAS,MAAM,GAAG,YAAY;AAC3C,QAAM,YAAY,SAAS,MAAM,eAAe,CAAC;AAE1C,SAAA,EAAE,MAAM,UAAU;AAC1B;;"}
|
package/dist/harmony123.mjs
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
|
8
|
-
_freeGlobal = freeGlobal;
|
9
|
-
return _freeGlobal;
|
10
|
-
}
|
1
|
+
const splitFileName = (fileName) => {
|
2
|
+
const lastDotIndex = fileName.lastIndexOf(".");
|
3
|
+
const name = fileName.slice(0, lastDotIndex);
|
4
|
+
const extension = fileName.slice(lastDotIndex + 1);
|
5
|
+
return { name, extension };
|
6
|
+
};
|
11
7
|
export {
|
12
|
-
|
8
|
+
splitFileName
|
13
9
|
};
|
14
10
|
//# sourceMappingURL=harmony123.mjs.map
|
package/dist/harmony123.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony123.mjs","sources":["../
|
1
|
+
{"version":3,"file":"harmony123.mjs","sources":["../src/components/Sidebar/utils/index.ts"],"sourcesContent":["export const splitFileName = (fileName: string) => {\n\tconst lastDotIndex = fileName.lastIndexOf('.')\n\tconst name = fileName.slice(0, lastDotIndex)\n\tconst extension = fileName.slice(lastDotIndex + 1)\n\n\treturn { name, extension }\n}\n"],"names":[],"mappings":"AAAa,MAAA,gBAAgB,CAAC,aAAqB;AAC5C,QAAA,eAAe,SAAS,YAAY,GAAG;AAC7C,QAAM,OAAO,SAAS,MAAM,GAAG,YAAY;AAC3C,QAAM,YAAY,SAAS,MAAM,eAAe,CAAC;AAE1C,SAAA,EAAE,MAAM,UAAU;AAC1B;"}
|
package/dist/harmony124.cjs
CHANGED
@@ -1,19 +1,60 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
4
|
+
const louis = require("@lokalise/louis");
|
5
|
+
const content = require("./harmony125.cjs");
|
6
|
+
const types = require("./harmony2.cjs");
|
7
|
+
const clsx = require("./harmony64.cjs");
|
8
|
+
const TaskLanguageCompleted = require("./harmony131.cjs");
|
9
|
+
const TasksContext = require("./harmony102.cjs");
|
10
|
+
const TaskLanguage_module = require("./harmony132.cjs");
|
11
|
+
const TaskLanguage = ({ language, task }) => {
|
12
|
+
const { getProjectUrl, langNameOnClick, langProgressOnClick } = TasksContext.useTasks();
|
13
|
+
const progressValue = language.progress ?? 0;
|
14
|
+
const isLanguageCompleted = language.status === types.SidebarTaskLanguageStatuses.Completed;
|
15
|
+
const languageProgressCompleted = content.isLanguageProgressCompleted(task, language);
|
16
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
17
|
+
"tr",
|
18
|
+
{
|
19
|
+
className: clsx.clsx({
|
20
|
+
[TaskLanguage_module.default.langRowCompleted]: languageProgressCompleted
|
21
|
+
}),
|
22
|
+
children: [
|
23
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { children: /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { tooltip: "Open in bilingual view", children: /* @__PURE__ */ jsxRuntime.jsx(
|
24
|
+
louis.Link,
|
25
|
+
{
|
26
|
+
href: getProjectUrl({ task, language }),
|
27
|
+
onClick: () => {
|
28
|
+
langNameOnClick == null ? void 0 : langNameOnClick({ task, language });
|
29
|
+
},
|
30
|
+
children: language.name
|
31
|
+
}
|
32
|
+
) }) }),
|
33
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: TaskLanguage_module.default.langCellSecondary, children: languageProgressCompleted || isLanguageCompleted ? "0" : /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { tooltip: "Open uncompleted items", children: /* @__PURE__ */ jsxRuntime.jsx(
|
34
|
+
louis.Link,
|
35
|
+
{
|
36
|
+
href: getProjectUrl({ task, language, taskUncompleted: true }),
|
37
|
+
onClick: () => {
|
38
|
+
langProgressOnClick == null ? void 0 : langProgressOnClick({ task, language });
|
39
|
+
},
|
40
|
+
children: language.base_words_total - language.base_words_done
|
41
|
+
}
|
42
|
+
) }) }),
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsxs("td", { children: [
|
44
|
+
progressValue,
|
45
|
+
"%"
|
46
|
+
] }),
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { children: languageProgressCompleted ? /* @__PURE__ */ jsxRuntime.jsx(TaskLanguageCompleted.TaskLanguageCompleted, { task, language }) : /* @__PURE__ */ jsxRuntime.jsx(
|
48
|
+
"span",
|
49
|
+
{
|
50
|
+
className: `${TaskLanguage_module.default.langStatus} flex-row items-center justify-start`,
|
51
|
+
"data-status": language.status,
|
52
|
+
children: content.getStatusText(language.status, progressValue)
|
53
|
+
}
|
54
|
+
) })
|
55
|
+
]
|
12
56
|
}
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
return _trimmedEndIndex;
|
17
|
-
}
|
18
|
-
exports.__require = require_trimmedEndIndex;
|
57
|
+
);
|
58
|
+
};
|
59
|
+
exports.TaskLanguage = TaskLanguage;
|
19
60
|
//# sourceMappingURL=harmony124.cjs.map
|
package/dist/harmony124.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony124.cjs","sources":["../
|
1
|
+
{"version":3,"file":"harmony124.cjs","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":["useTasks","SidebarTaskLanguageStatuses","isLanguageProgressCompleted","jsxs","clsx","styles","jsx","Tooltip","Link","TaskLanguageCompleted","getStatusText"],"mappings":";;;;;;;;;;AAeO,MAAM,eAAe,CAAC,EAAE,UAAU,WAA8B;AACtE,QAAM,EAAE,eAAe,iBAAiB,oBAAA,IAAwBA,aAAAA,SAAS;AAEnE,QAAA,gBAAgB,SAAS,YAAY;AAErC,QAAA,sBAAsB,SAAS,WAAWC,MAA4B,4BAAA;AAEtE,QAAA,4BAA4BC,QAAAA,4BAA4B,MAAM,QAAQ;AAG3E,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,KAAAA,KAAK;AAAA,QACf,CAACC,oBAAAA,QAAO,gBAAgB,GAAG;AAAA,MAAA,CAC3B;AAAA,MAED,UAAA;AAAA,QAAAC,+BAAC,MACA,EAAA,UAAAA,2BAAA,IAACC,MAAQ,SAAA,EAAA,SAAQ,0BAChB,UAAAD,2BAAA;AAAA,UAACE,MAAA;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,QACAF,2BAAA,IAAC,MAAG,EAAA,WAAWD,oBAAAA,QAAO,mBACpB,UAA6B,6BAAA,sBAC7B,MAEAC,2BAAA,IAACC,MAAQ,SAAA,EAAA,SAAQ,0BAChB,UAAAD,2BAAA;AAAA,UAACE,MAAA;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,wCACC,MAAI,EAAA,UAAA;AAAA,UAAA;AAAA,UAAc;AAAA,QAAA,GAAC;AAAA,uCACnB,MACC,EAAA,UAAA,2DACCC,sBAAsB,uBAAA,EAAA,MAAY,SAAoB,CAAA,IAEvDH,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAW,GAAGD,4BAAO,UAAU;AAAA,YAC/B,eAAa,SAAS;AAAA,YAErB,UAAAK,QAAA,cAAc,SAAS,QAAQ,aAAa;AAAA,UAAA;AAAA,QAAA,EAGhD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
|
package/dist/harmony124.mjs
CHANGED
@@ -1,19 +1,60 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
2
|
+
import { Tooltip, Link } from "@lokalise/louis";
|
3
|
+
import { isLanguageProgressCompleted, getStatusText } from "./harmony125.mjs";
|
4
|
+
import { SidebarTaskLanguageStatuses } from "./harmony2.mjs";
|
5
|
+
import { clsx } from "./harmony64.mjs";
|
6
|
+
import { TaskLanguageCompleted } from "./harmony131.mjs";
|
7
|
+
import { useTasks } from "./harmony102.mjs";
|
8
|
+
import styles from "./harmony132.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
|
-
|
12
|
-
|
13
|
-
_trimmedEndIndex = trimmedEndIndex;
|
14
|
-
return _trimmedEndIndex;
|
15
|
-
}
|
55
|
+
);
|
56
|
+
};
|
16
57
|
export {
|
17
|
-
|
58
|
+
TaskLanguage
|
18
59
|
};
|
19
60
|
//# sourceMappingURL=harmony124.mjs.map
|
package/dist/harmony124.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony124.mjs","sources":["../
|
1
|
+
{"version":3,"file":"harmony124.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;"}
|
package/dist/harmony125.cjs
CHANGED
@@ -1,24 +1,63 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const
|
4
|
-
const
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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=harmony125.cjs.map
|
package/dist/harmony125.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony125.cjs","sources":["../
|
1
|
+
{"version":3,"file":"harmony125.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;;;;;;"}
|