@justanarthur/payload-plugin-translator 1.3.20 → 3.0.3
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 +132 -215
- package/dist/client.css +41 -0
- package/dist/client.d.ts +6 -0
- package/dist/client.js +320 -0
- package/dist/index.d.ts +63 -11
- package/dist/index.js +275 -82
- package/dist/jobs.d.ts +50 -0
- package/dist/jobs.js +28 -0
- package/dist/resolvers/copy.d.ts +19 -3
- package/dist/resolvers/copy.js +9 -13
- package/dist/resolvers/google.d.ts +23 -11
- package/dist/resolvers/google.js +10 -46
- package/dist/resolvers/libreTranslate.d.ts +23 -15
- package/dist/resolvers/libreTranslate.js +10 -47
- package/dist/resolvers/openAI.d.ts +29 -21
- package/dist/resolvers/openAI.js +9 -134
- package/dist/resolvers/types.d.ts +14 -16
- package/dist/resolvers/types.js +0 -3
- package/dist/shared/chunk-97ktc51q.js +15 -0
- package/dist/shared/chunk-ecnph6hw.js +205 -0
- package/dist/shared/chunk-frnemj69.js +6 -0
- package/dist/shared/chunk-fsveh29m.js +55 -0
- package/dist/shared/chunk-q51q8rd2.js +855 -0
- package/dist/shared/chunk-zhrw0jnz.js +57 -0
- package/dist/types.d.ts +32 -22
- package/dist/types.js +0 -3
- package/package.json +89 -63
- package/dist/client/api/index.d.ts +0 -8
- package/dist/client/api/index.d.ts.map +0 -1
- package/dist/client/api/index.js +0 -28
- package/dist/client/api/index.js.map +0 -1
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.d.ts +0 -5
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.d.ts.map +0 -1
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.js +0 -28
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.js.map +0 -1
- package/dist/client/components/CustomButton/index.d.ts +0 -3
- package/dist/client/components/CustomButton/index.d.ts.map +0 -1
- package/dist/client/components/CustomButton/index.js +0 -10
- package/dist/client/components/CustomButton/index.js.map +0 -1
- package/dist/client/components/CustomButton/styles.scss +0 -5
- package/dist/client/components/LocaleLabel/LocaleLabel.d.ts +0 -5
- package/dist/client/components/LocaleLabel/LocaleLabel.d.ts.map +0 -1
- package/dist/client/components/LocaleLabel/LocaleLabel.js +0 -28
- package/dist/client/components/LocaleLabel/LocaleLabel.js.map +0 -1
- package/dist/client/components/LocaleLabel/index.d.ts +0 -2
- package/dist/client/components/LocaleLabel/index.d.ts.map +0 -1
- package/dist/client/components/LocaleLabel/index.js +0 -3
- package/dist/client/components/LocaleLabel/index.js.map +0 -1
- package/dist/client/components/ResolverButton/ResolverButton.d.ts +0 -5
- package/dist/client/components/ResolverButton/ResolverButton.d.ts.map +0 -1
- package/dist/client/components/ResolverButton/ResolverButton.js +0 -16
- package/dist/client/components/ResolverButton/ResolverButton.js.map +0 -1
- package/dist/client/components/ResolverButton/index.d.ts +0 -2
- package/dist/client/components/ResolverButton/index.d.ts.map +0 -1
- package/dist/client/components/ResolverButton/index.js +0 -3
- package/dist/client/components/ResolverButton/index.js.map +0 -1
- package/dist/client/components/TranslatorModal/Content.d.ts +0 -2
- package/dist/client/components/TranslatorModal/Content.d.ts.map +0 -1
- package/dist/client/components/TranslatorModal/Content.js +0 -60
- package/dist/client/components/TranslatorModal/Content.js.map +0 -1
- package/dist/client/components/TranslatorModal/TranslatorModal.d.ts +0 -3
- package/dist/client/components/TranslatorModal/TranslatorModal.d.ts.map +0 -1
- package/dist/client/components/TranslatorModal/TranslatorModal.js +0 -26
- package/dist/client/components/TranslatorModal/TranslatorModal.js.map +0 -1
- package/dist/client/components/TranslatorModal/index.d.ts +0 -2
- package/dist/client/components/TranslatorModal/index.d.ts.map +0 -1
- package/dist/client/components/TranslatorModal/index.js +0 -3
- package/dist/client/components/TranslatorModal/index.js.map +0 -1
- package/dist/client/components/TranslatorModal/styles.scss +0 -76
- package/dist/client/providers/Translator/TranslatorProvider.d.ts +0 -5
- package/dist/client/providers/Translator/TranslatorProvider.d.ts.map +0 -1
- package/dist/client/providers/Translator/TranslatorProvider.js +0 -109
- package/dist/client/providers/Translator/TranslatorProvider.js.map +0 -1
- package/dist/client/providers/Translator/context.d.ts +0 -21
- package/dist/client/providers/Translator/context.d.ts.map +0 -1
- package/dist/client/providers/Translator/context.js +0 -9
- package/dist/client/providers/Translator/context.js.map +0 -1
- package/dist/exports/client.d.ts +0 -2
- package/dist/exports/client.d.ts.map +0 -1
- package/dist/exports/client.js +0 -3
- package/dist/exports/client.js.map +0 -1
- package/dist/i18n-translations.d.ts +0 -87
- package/dist/i18n-translations.d.ts.map +0 -1
- package/dist/i18n-translations.js +0 -88
- package/dist/i18n-translations.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/resolvers/copy.d.ts.map +0 -1
- package/dist/resolvers/copy.js.map +0 -1
- package/dist/resolvers/google.d.ts.map +0 -1
- package/dist/resolvers/google.js.map +0 -1
- package/dist/resolvers/libreTranslate.d.ts.map +0 -1
- package/dist/resolvers/libreTranslate.js.map +0 -1
- package/dist/resolvers/openAI.d.ts.map +0 -1
- package/dist/resolvers/openAI.js.map +0 -1
- package/dist/resolvers/types.d.ts.map +0 -1
- package/dist/resolvers/types.js.map +0 -1
- package/dist/translate/endpoint.d.ts +0 -3
- package/dist/translate/endpoint.d.ts.map +0 -1
- package/dist/translate/endpoint.js +0 -23
- package/dist/translate/endpoint.js.map +0 -1
- package/dist/translate/findEntityWithConfig.d.ts +0 -16
- package/dist/translate/findEntityWithConfig.d.ts.map +0 -1
- package/dist/translate/findEntityWithConfig.js +0 -34
- package/dist/translate/findEntityWithConfig.js.map +0 -1
- package/dist/translate/operation.d.ts +0 -9
- package/dist/translate/operation.d.ts.map +0 -1
- package/dist/translate/operation.js +0 -78
- package/dist/translate/operation.js.map +0 -1
- package/dist/translate/traverseFields.d.ts +0 -17
- package/dist/translate/traverseFields.d.ts.map +0 -1
- package/dist/translate/traverseFields.js +0 -233
- package/dist/translate/traverseFields.js.map +0 -1
- package/dist/translate/traverseRichText.d.ts +0 -10
- package/dist/translate/traverseRichText.d.ts.map +0 -1
- package/dist/translate/traverseRichText.js +0 -24
- package/dist/translate/traverseRichText.js.map +0 -1
- package/dist/translate/types.d.ts +0 -27
- package/dist/translate/types.d.ts.map +0 -1
- package/dist/translate/types.js +0 -3
- package/dist/translate/types.js.map +0 -1
- package/dist/translate/updateEntity.d.ts +0 -14
- package/dist/translate/updateEntity.d.ts.map +0 -1
- package/dist/translate/updateEntity.js +0 -26
- package/dist/translate/updateEntity.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/chunkArray.d.ts +0 -2
- package/dist/utils/chunkArray.d.ts.map +0 -1
- package/dist/utils/chunkArray.js +0 -7
- package/dist/utils/chunkArray.js.map +0 -1
- package/dist/utils/isEmpty.d.ts +0 -2
- package/dist/utils/isEmpty.d.ts.map +0 -1
- package/dist/utils/isEmpty.js +0 -8
- package/dist/utils/isEmpty.js.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
chunkArray
|
|
3
|
+
} from "./chunk-frnemj69.js";
|
|
4
|
+
|
|
5
|
+
// src/resolvers/libreTranslate.ts
|
|
6
|
+
var localeToCountryCodeMapper = {
|
|
7
|
+
ua: "uk"
|
|
8
|
+
};
|
|
9
|
+
var mapLocale = (incoming) => (incoming in localeToCountryCodeMapper) ? localeToCountryCodeMapper[incoming] : incoming;
|
|
10
|
+
var libreResolver = ({
|
|
11
|
+
apiKey,
|
|
12
|
+
chunkLength = 100,
|
|
13
|
+
url = "https://libretranslate.com/translate"
|
|
14
|
+
}) => {
|
|
15
|
+
return {
|
|
16
|
+
key: "libre",
|
|
17
|
+
resolve: async (args) => {
|
|
18
|
+
const { localeFrom, localeTo, req, texts } = args;
|
|
19
|
+
const apiUrl = url;
|
|
20
|
+
const responses = await Promise.all(chunkArray(texts, chunkLength).map((q) => fetch(apiUrl, {
|
|
21
|
+
body: JSON.stringify({
|
|
22
|
+
api_key: apiKey,
|
|
23
|
+
q,
|
|
24
|
+
source: mapLocale(localeFrom),
|
|
25
|
+
target: mapLocale(localeTo)
|
|
26
|
+
}),
|
|
27
|
+
headers: {
|
|
28
|
+
"Content-Type": "application/json"
|
|
29
|
+
},
|
|
30
|
+
method: "POST"
|
|
31
|
+
}).then(async (res) => {
|
|
32
|
+
const data = await res.json();
|
|
33
|
+
if (!res.ok)
|
|
34
|
+
req.payload.logger.info({
|
|
35
|
+
libreResponse: data,
|
|
36
|
+
message: "An error occurred when trying to translate the data using LibreTranslate API"
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
data,
|
|
40
|
+
success: res.ok
|
|
41
|
+
};
|
|
42
|
+
})));
|
|
43
|
+
if (responses.some((res) => !res.success)) {
|
|
44
|
+
return {
|
|
45
|
+
success: false
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const translatedTexts = responses.flatMap((chunk) => chunk.data.translatedText);
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
translatedTexts
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export { libreResolver };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,23 +1,33 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
collections: CollectionSlug[];
|
|
9
|
-
/**
|
|
10
|
-
* Disable the plugin
|
|
11
|
-
*/
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Globals with the enabled translator in the admin UI
|
|
15
|
-
*/
|
|
16
|
-
globals: GlobalSlug[];
|
|
17
|
-
/**
|
|
18
|
-
* Add resolvers that you want to include, examples on how to write your own in ./plugin/src/resolvers
|
|
19
|
-
*/
|
|
20
|
-
resolvers: TranslateResolver[];
|
|
21
|
-
_options?: Parameters<typeof traverseFields>[0]['_options'];
|
|
1
|
+
import { CollectionSlug, GlobalSlug } from "payload";
|
|
2
|
+
import { PayloadRequest } from "payload";
|
|
3
|
+
type TranslateResolverArgs = {
|
|
4
|
+
localeFrom: string;
|
|
5
|
+
localeTo: string;
|
|
6
|
+
req: PayloadRequest;
|
|
7
|
+
texts: string[];
|
|
22
8
|
};
|
|
23
|
-
|
|
9
|
+
type TranslateResolverResponse = {
|
|
10
|
+
success: false;
|
|
11
|
+
} | {
|
|
12
|
+
success: true;
|
|
13
|
+
translatedTexts: string[];
|
|
14
|
+
};
|
|
15
|
+
type TranslateResolver = {
|
|
16
|
+
key: string;
|
|
17
|
+
resolve: (args: TranslateResolverArgs) => Promise<TranslateResolverResponse> | TranslateResolverResponse;
|
|
18
|
+
};
|
|
19
|
+
type TranslatorConfig = {
|
|
20
|
+
collections: CollectionSlug[];
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
globals: GlobalSlug[];
|
|
23
|
+
resolvers: TranslateResolver[];
|
|
24
|
+
autoTranslate?: boolean;
|
|
25
|
+
_options?: {
|
|
26
|
+
additionalTraverseRichText?: (args: {
|
|
27
|
+
onText: (siblingData: Record<string, unknown>, attribute?: string) => void;
|
|
28
|
+
root: Record<string, unknown>;
|
|
29
|
+
siblingData?: Record<string, unknown>;
|
|
30
|
+
}) => void;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export { TranslatorConfig };
|
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,90 +1,116 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justanarthur/payload-plugin-translator",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"bugs": "https://github.com/r1tsuu/payload-enchants/issues",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"author": "r1tsuu",
|
|
3
|
+
"description": "Translator plugin for Payload CMS — automatic localization via Google, OpenAI, LibreTranslate, or custom resolvers.",
|
|
4
|
+
"version": "3.0.3",
|
|
8
5
|
"type": "module",
|
|
6
|
+
"private": false,
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md"
|
|
10
|
+
],
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
9
13
|
"exports": {
|
|
10
|
-
"
|
|
11
|
-
"import":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
"./jobs": {
|
|
15
|
+
"import": {
|
|
16
|
+
"types": "./dist/jobs.d.ts",
|
|
17
|
+
"default": "./dist/jobs.js"
|
|
18
|
+
}
|
|
14
19
|
},
|
|
15
|
-
"./
|
|
16
|
-
"import":
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
"./resolvers/copy": {
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./dist/resolvers/copy.d.ts",
|
|
23
|
+
"default": "./dist/resolvers/copy.js"
|
|
24
|
+
}
|
|
19
25
|
},
|
|
20
|
-
"./
|
|
21
|
-
"import":
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
"./types": {
|
|
27
|
+
"import": {
|
|
28
|
+
"types": "./dist/types.d.ts",
|
|
29
|
+
"default": "./dist/types.js"
|
|
30
|
+
}
|
|
24
31
|
},
|
|
25
|
-
"./
|
|
26
|
-
"import":
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
"./client": {
|
|
33
|
+
"import": {
|
|
34
|
+
"types": "./dist/client.d.ts",
|
|
35
|
+
"default": "./dist/client.js"
|
|
36
|
+
}
|
|
29
37
|
},
|
|
30
|
-
"
|
|
31
|
-
"import":
|
|
32
|
-
|
|
33
|
-
|
|
38
|
+
".": {
|
|
39
|
+
"import": {
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"default": "./dist/index.js"
|
|
42
|
+
}
|
|
34
43
|
},
|
|
35
44
|
"./resolvers/openAI": {
|
|
36
|
-
"import":
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
"import": {
|
|
46
|
+
"types": "./dist/resolvers/openAI.d.ts",
|
|
47
|
+
"default": "./dist/resolvers/openAI.js"
|
|
48
|
+
}
|
|
39
49
|
},
|
|
40
|
-
"./
|
|
41
|
-
"import":
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
"./resolvers/libreTranslate": {
|
|
51
|
+
"import": {
|
|
52
|
+
"types": "./dist/resolvers/libreTranslate.d.ts",
|
|
53
|
+
"default": "./dist/resolvers/libreTranslate.js"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"./resolvers/types": {
|
|
57
|
+
"import": {
|
|
58
|
+
"types": "./dist/resolvers/types.d.ts",
|
|
59
|
+
"default": "./dist/resolvers/types.js"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"./resolvers/google": {
|
|
63
|
+
"import": {
|
|
64
|
+
"types": "./dist/resolvers/google.d.ts",
|
|
65
|
+
"default": "./dist/resolvers/google.js"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"./client.css": "./dist/client.css",
|
|
69
|
+
"./package.json": "./package.json"
|
|
45
70
|
},
|
|
46
|
-
"
|
|
47
|
-
|
|
71
|
+
"license": "MIT",
|
|
72
|
+
"sideEffects": [
|
|
73
|
+
"**/*.css"
|
|
48
74
|
],
|
|
75
|
+
"engines": {
|
|
76
|
+
"node": ">=20"
|
|
77
|
+
},
|
|
78
|
+
"scripts": {
|
|
79
|
+
"build": "NODE_ENV=production bunup",
|
|
80
|
+
"clean": "rm -rf dist .tsbuildinfo",
|
|
81
|
+
"prepublishOnly": "bun run clean && bun run build"
|
|
82
|
+
},
|
|
49
83
|
"dependencies": {
|
|
50
84
|
"bson-objectid": "^2.0.4",
|
|
51
85
|
"he": "^1.2.0"
|
|
52
86
|
},
|
|
53
87
|
"devDependencies": {
|
|
54
|
-
"@
|
|
55
|
-
"@
|
|
88
|
+
"@payloadcms/translations": "3.85.0",
|
|
89
|
+
"@payloadcms/ui": "3.85.0",
|
|
56
90
|
"@types/he": "^1.2.3",
|
|
57
|
-
"@types/react": "
|
|
58
|
-
"@types/react-dom": "
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"react": "
|
|
62
|
-
"react-dom": "
|
|
63
|
-
"
|
|
64
|
-
"typescript": "^5.7.3"
|
|
91
|
+
"@types/react": "19.2.14",
|
|
92
|
+
"@types/react-dom": "19.2.3",
|
|
93
|
+
"bunup": "^0.16.32",
|
|
94
|
+
"payload": "3.85.0",
|
|
95
|
+
"react": "19.2.6",
|
|
96
|
+
"react-dom": "19.2.6",
|
|
97
|
+
"typescript": "5.7.3"
|
|
65
98
|
},
|
|
66
99
|
"peerDependencies": {
|
|
67
|
-
"@payloadcms/translations": "3.
|
|
68
|
-
"@payloadcms/ui": "3.
|
|
69
|
-
"payload": "3.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"registry": "https://registry.npmjs.org/",
|
|
73
|
-
"access": "public"
|
|
100
|
+
"@payloadcms/translations": "^3.85.0",
|
|
101
|
+
"@payloadcms/ui": "^3.85.0",
|
|
102
|
+
"payload": "^3.85.0",
|
|
103
|
+
"react": "^19.2.6",
|
|
104
|
+
"react-dom": "^19.2.6"
|
|
74
105
|
},
|
|
106
|
+
"bugs": "https://github.com/r1tsuu/payload-enchants/issues",
|
|
107
|
+
"author": "r1tsuu",
|
|
75
108
|
"repository": {
|
|
76
109
|
"type": "git",
|
|
77
110
|
"url": "git+https://github.com/justAnArthur/payload-starter_translator.git"
|
|
78
111
|
},
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
"clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
|
|
84
|
-
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
|
|
85
|
-
"lint": "eslint src",
|
|
86
|
-
"lint:fix": "eslint --fix --ext .ts,.tsx src"
|
|
87
|
-
},
|
|
88
|
-
"main": "./dist/index.js",
|
|
89
|
-
"types": "./dist/index.d.ts"
|
|
112
|
+
"properties": {
|
|
113
|
+
"gitCommitScopeRelatedNames": "translate,translator,translation",
|
|
114
|
+
"priority": 0
|
|
115
|
+
}
|
|
90
116
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { TranslateEndpointArgs, TranslateResult } from '../../translate/types';
|
|
2
|
-
export declare const createClient: ({ api, serverURL }: {
|
|
3
|
-
api: string;
|
|
4
|
-
serverURL: string;
|
|
5
|
-
}) => {
|
|
6
|
-
translate: (args: TranslateEndpointArgs) => Promise<TranslateResult>;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEnF,eAAO,MAAM,YAAY,GAAI,oBAAoB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;sBAClD,qBAAqB,KAAG,OAAO,CAAC,eAAe,CAAC;CAwBhF,CAAA"}
|
package/dist/client/api/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export const createClient = ({ api, serverURL })=>{
|
|
2
|
-
const translate = async (args)=>{
|
|
3
|
-
try {
|
|
4
|
-
const response = await fetch(`${serverURL}${api}/translator/translate`, {
|
|
5
|
-
body: JSON.stringify(args),
|
|
6
|
-
credentials: 'include',
|
|
7
|
-
headers: {
|
|
8
|
-
'Content-Type': 'application/json'
|
|
9
|
-
},
|
|
10
|
-
method: 'POST'
|
|
11
|
-
});
|
|
12
|
-
if (!response.ok) return {
|
|
13
|
-
success: false
|
|
14
|
-
};
|
|
15
|
-
return response.json();
|
|
16
|
-
} catch (e) {
|
|
17
|
-
if (e instanceof Error) console.error(e.message);
|
|
18
|
-
return {
|
|
19
|
-
success: false
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
return {
|
|
24
|
-
translate
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/client/api/index.ts"],"sourcesContent":["import type { TranslateEndpointArgs, TranslateResult } from '../../translate/types'\r\n\r\nexport const createClient = ({ api, serverURL }: { api: string; serverURL: string }) => {\r\n const translate = async (args: TranslateEndpointArgs): Promise<TranslateResult> => {\r\n try {\r\n const response = await fetch(`${serverURL}${api}/translator/translate`, {\r\n body: JSON.stringify(args),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n })\r\n\r\n if (!response.ok) return { success: false }\r\n\r\n return response.json()\r\n } catch (e) {\r\n if (e instanceof Error) console.error(e.message)\r\n\r\n return { success: false }\r\n }\r\n }\r\n\r\n return {\r\n translate,\r\n }\r\n}\r\n"],"names":["createClient","api","serverURL","translate","args","response","fetch","body","JSON","stringify","credentials","headers","method","ok","success","json","e","Error","console","error","message"],"mappings":"AAEA,OAAO,MAAMA,eAAe,CAAC,EAAEC,GAAG,EAAEC,SAAS,EAAsC;IACjF,MAAMC,YAAY,OAAOC;QACvB,IAAI;YACF,MAAMC,WAAW,MAAMC,MAAM,GAAGJ,YAAYD,IAAI,qBAAqB,CAAC,EAAE;gBACtEM,MAAMC,KAAKC,SAAS,CAACL;gBACrBM,aAAa;gBACbC,SAAS;oBACP,gBAAgB;gBAClB;gBACAC,QAAQ;YACV;YAEA,IAAI,CAACP,SAASQ,EAAE,EAAE,OAAO;gBAAEC,SAAS;YAAM;YAE1C,OAAOT,SAASU,IAAI;QACtB,EAAE,OAAOC,GAAG;YACV,IAAIA,aAAaC,OAAOC,QAAQC,KAAK,CAACH,EAAEI,OAAO;YAE/C,OAAO;gBAAEN,SAAS;YAAM;QAC1B;IACF;IAEA,OAAO;QACLX;IACF;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomButtonWithTranslator.d.ts","sourceRoot":"","sources":["../../../../src/client/components/CustomButton/CustomButtonWithTranslator.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAA;AAStB,eAAO,MAAM,0BAA0B,GAAI,UAAU;IAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,gCAsBhF,CAAA"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import './styles.scss';
|
|
4
|
-
import { PublishButton, SaveButton, useConfig, useDocumentInfo } from '@payloadcms/ui';
|
|
5
|
-
import { TranslatorProvider } from '../../providers/Translator/TranslatorProvider';
|
|
6
|
-
import { ResolverButton } from '../ResolverButton';
|
|
7
|
-
import { TranslatorModal } from '../TranslatorModal';
|
|
8
|
-
export const CustomButtonWithTranslator = ({ type })=>{
|
|
9
|
-
const { config } = useConfig();
|
|
10
|
-
const DefaultButton = type === 'publish' ? PublishButton : SaveButton;
|
|
11
|
-
const { globalSlug, id } = useDocumentInfo();
|
|
12
|
-
const resolvers = config.admin?.custom?.translator?.resolvers ?? [];
|
|
13
|
-
if (!id && !globalSlug) return /*#__PURE__*/ _jsx(DefaultButton, {});
|
|
14
|
-
return /*#__PURE__*/ _jsx(TranslatorProvider, {
|
|
15
|
-
children: /*#__PURE__*/ _jsxs("div", {
|
|
16
|
-
className: 'translator__custom-save-button',
|
|
17
|
-
children: [
|
|
18
|
-
/*#__PURE__*/ _jsx(TranslatorModal, {}),
|
|
19
|
-
resolvers.map((resolver)=>/*#__PURE__*/ _jsx(ResolverButton, {
|
|
20
|
-
resolver: resolver
|
|
21
|
-
}, resolver.key)),
|
|
22
|
-
/*#__PURE__*/ _jsx(DefaultButton, {})
|
|
23
|
-
]
|
|
24
|
-
})
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=CustomButtonWithTranslator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/CustomButton/CustomButtonWithTranslator.tsx"],"sourcesContent":["'use client'\r\n\r\nimport './styles.scss'\r\n\r\nimport { PublishButton, SaveButton, useConfig, useDocumentInfo } from '@payloadcms/ui'\r\n\r\nimport type { TranslateResolver } from '../../../resolvers/types'\r\nimport { TranslatorProvider } from '../../providers/Translator/TranslatorProvider'\r\nimport { ResolverButton } from '../ResolverButton'\r\nimport { TranslatorModal } from '../TranslatorModal'\r\n\r\nexport const CustomButtonWithTranslator = ({ type }: { type: 'publish' | 'save' }) => {\r\n const { config } = useConfig()\r\n\r\n const DefaultButton = type === 'publish' ? PublishButton : SaveButton\r\n\r\n const { globalSlug, id } = useDocumentInfo()\r\n\r\n const resolvers = (config.admin?.custom?.translator?.resolvers as TranslateResolver[]) ?? []\r\n\r\n if (!id && !globalSlug) return <DefaultButton />\r\n\r\n return (\r\n <TranslatorProvider>\r\n <div className={'translator__custom-save-button'}>\r\n <TranslatorModal />\r\n {resolvers.map((resolver) => (\r\n <ResolverButton key={resolver.key} resolver={resolver} />\r\n ))}\r\n {<DefaultButton />}\r\n </div>\r\n </TranslatorProvider>\r\n )\r\n}\r\n"],"names":["PublishButton","SaveButton","useConfig","useDocumentInfo","TranslatorProvider","ResolverButton","TranslatorModal","CustomButtonWithTranslator","type","config","DefaultButton","globalSlug","id","resolvers","admin","custom","translator","div","className","map","resolver","key"],"mappings":"AAAA;;AAEA,OAAO,gBAAe;AAEtB,SAASA,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,eAAe,QAAQ,iBAAgB;AAGtF,SAASC,kBAAkB,QAAQ,gDAA+C;AAClF,SAASC,cAAc,QAAQ,oBAAmB;AAClD,SAASC,eAAe,QAAQ,qBAAoB;AAEpD,OAAO,MAAMC,6BAA6B,CAAC,EAAEC,IAAI,EAAgC;IAC/E,MAAM,EAAEC,MAAM,EAAE,GAAGP;IAEnB,MAAMQ,gBAAgBF,SAAS,YAAYR,gBAAgBC;IAE3D,MAAM,EAAEU,UAAU,EAAEC,EAAE,EAAE,GAAGT;IAE3B,MAAMU,YAAY,AAACJ,OAAOK,KAAK,EAAEC,QAAQC,YAAYH,aAAqC,EAAE;IAE5F,IAAI,CAACD,MAAM,CAACD,YAAY,qBAAO,KAACD;IAEhC,qBACE,KAACN;kBACC,cAAA,MAACa;YAAIC,WAAW;;8BACd,KAACZ;gBACAO,UAAUM,GAAG,CAAC,CAACC,yBACd,KAACf;wBAAkCe,UAAUA;uBAAxBA,SAASC,GAAG;8BAElC,KAACX;;;;AAIV,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/components/CustomButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEpE,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,GAAG,MAAM,KAAG,mBAAmB,GAAG,gBAO7E,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/CustomButton/index.tsx"],"sourcesContent":["import type { CustomPublishButton, CustomSaveButton } from 'payload'\r\n\r\nexport const CustomButton = (type: 'publish' | 'save'): CustomPublishButton | CustomSaveButton => {\r\n return {\r\n clientProps: {\r\n type,\r\n },\r\n path: '@justanarthur/payload-plugin-translator/client#CustomButtonWithTranslator',\r\n }\r\n}\r\n"],"names":["CustomButton","type","clientProps","path"],"mappings":"AAEA,OAAO,MAAMA,eAAe,CAACC;IAC3B,OAAO;QACLC,aAAa;YACXD;QACF;QACAE,MAAM;IACR;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleLabel.d.ts","sourceRoot":"","sources":["../../../../src/client/components/LocaleLabel/LocaleLabel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIrC,eAAO,MAAM,WAAW,GAAI,YAAY;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,gCAczD,CAAA"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { getTranslation } from '@payloadcms/translations';
|
|
3
|
-
import { ChevronIcon, useTranslation } from '@payloadcms/ui';
|
|
4
|
-
const baseClass = 'localizer-button';
|
|
5
|
-
export const LocaleLabel = ({ locale })=>{
|
|
6
|
-
const { i18n, t } = useTranslation();
|
|
7
|
-
return /*#__PURE__*/ _jsxs("div", {
|
|
8
|
-
"aria-label": t('general:locale'),
|
|
9
|
-
className: baseClass,
|
|
10
|
-
children: [
|
|
11
|
-
/*#__PURE__*/ _jsx("div", {
|
|
12
|
-
className: `${baseClass}__label`,
|
|
13
|
-
children: `${t('general:locale')}:`
|
|
14
|
-
}),
|
|
15
|
-
" ",
|
|
16
|
-
/*#__PURE__*/ _jsx("span", {
|
|
17
|
-
className: `${baseClass}__current-label`,
|
|
18
|
-
children: `${getTranslation(locale.label, i18n)}`
|
|
19
|
-
}),
|
|
20
|
-
" ",
|
|
21
|
-
/*#__PURE__*/ _jsx(ChevronIcon, {
|
|
22
|
-
className: `${baseClass}__chevron`
|
|
23
|
-
})
|
|
24
|
-
]
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=LocaleLabel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/LocaleLabel/LocaleLabel.tsx"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\r\nimport { ChevronIcon, useTranslation } from '@payloadcms/ui'\r\nimport type { Locale } from 'payload'\r\n\r\nconst baseClass = 'localizer-button'\r\n\r\nexport const LocaleLabel = ({ locale }: { locale: Locale }) => {\r\n const { i18n, t } = useTranslation()\r\n\r\n return (\r\n <div aria-label={t('general:locale')} className={baseClass}>\r\n <div className={`${baseClass}__label`}>{`${t('general:locale')}:`}</div>\r\n \r\n <span className={`${baseClass}__current-label`}>\r\n {`${getTranslation(locale.label, i18n)}`}\r\n </span>\r\n \r\n <ChevronIcon className={`${baseClass}__chevron`} />\r\n </div>\r\n )\r\n}\r\n"],"names":["getTranslation","ChevronIcon","useTranslation","baseClass","LocaleLabel","locale","i18n","t","div","aria-label","className","span","label"],"mappings":";AAAA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,WAAW,EAAEC,cAAc,QAAQ,iBAAgB;AAG5D,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAc,CAAC,EAAEC,MAAM,EAAsB;IACxD,MAAM,EAAEC,IAAI,EAAEC,CAAC,EAAE,GAAGL;IAEpB,qBACE,MAACM;QAAIC,cAAYF,EAAE;QAAmBG,WAAWP;;0BAC/C,KAACK;gBAAIE,WAAW,GAAGP,UAAU,OAAO,CAAC;0BAAG,GAAGI,EAAE,kBAAkB,CAAC,CAAC;;YAAO;0BAExE,KAACI;gBAAKD,WAAW,GAAGP,UAAU,eAAe,CAAC;0BAC3C,GAAGH,eAAeK,OAAOO,KAAK,EAAEN,OAAO;;YACnC;0BAEP,KAACL;gBAAYS,WAAW,GAAGP,UAAU,SAAS,CAAC;;;;AAGrD,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/components/LocaleLabel/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/LocaleLabel/index.ts"],"sourcesContent":["export * from './LocaleLabel'\r\n"],"names":[],"mappings":"AAAA,cAAc,gBAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResolverButton.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ResolverButton/ResolverButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,eAAO,MAAM,cAAc,GAAI,qCAE5B;IACD,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,gCAYA,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Button, useTranslation } from '@payloadcms/ui';
|
|
3
|
-
import { useTranslator } from '../../providers/Translator/context';
|
|
4
|
-
export const ResolverButton = ({ resolver: { key: resolverKey } })=>{
|
|
5
|
-
const { openTranslator } = useTranslator();
|
|
6
|
-
const { t } = useTranslation();
|
|
7
|
-
const handleClick = ()=>openTranslator({
|
|
8
|
-
resolverKey
|
|
9
|
-
});
|
|
10
|
-
return /*#__PURE__*/ _jsx(Button, {
|
|
11
|
-
onClick: handleClick,
|
|
12
|
-
children: t(`plugin-translator:resolver_${resolverKey}_buttonLabel`)
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=ResolverButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/ResolverButton/ResolverButton.tsx"],"sourcesContent":["import { Button, useTranslation } from '@payloadcms/ui'\r\n\r\nimport type { TranslateResolver } from '../../../resolvers/types'\r\nimport { useTranslator } from '../../providers/Translator/context'\r\n\r\nexport const ResolverButton = ({\r\n resolver: { key: resolverKey },\r\n}: {\r\n resolver: TranslateResolver\r\n}) => {\r\n const { openTranslator } = useTranslator()\r\n\r\n const { t } = useTranslation()\r\n\r\n const handleClick = () => openTranslator({ resolverKey })\r\n\r\n return (\r\n <Button onClick={handleClick}>\r\n {t(`plugin-translator:resolver_${resolverKey}_buttonLabel` as Parameters<typeof t>[0])}\r\n </Button>\r\n )\r\n}\r\n"],"names":["Button","useTranslation","useTranslator","ResolverButton","resolver","key","resolverKey","openTranslator","t","handleClick","onClick"],"mappings":";AAAA,SAASA,MAAM,EAAEC,cAAc,QAAQ,iBAAgB;AAGvD,SAASC,aAAa,QAAQ,qCAAoC;AAElE,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,UAAU,EAAEC,KAAKC,WAAW,EAAE,EAG/B;IACC,MAAM,EAAEC,cAAc,EAAE,GAAGL;IAE3B,MAAM,EAAEM,CAAC,EAAE,GAAGP;IAEd,MAAMQ,cAAc,IAAMF,eAAe;YAAED;QAAY;IAEvD,qBACE,KAACN;QAAOU,SAASD;kBACdD,EAAE,CAAC,2BAA2B,EAAEF,YAAY,YAAY,CAAC;;AAGhE,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ResolverButton/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/ResolverButton/index.ts"],"sourcesContent":["export * from './ResolverButton'\r\n"],"names":[],"mappings":"AAAA,cAAc,mBAAkB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/Content.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,mCAwDnB,CAAA"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { getTranslation } from '@payloadcms/translations';
|
|
3
|
-
import { Button, Popup, PopupList, useTranslation } from '@payloadcms/ui';
|
|
4
|
-
import { useTranslator } from '../../providers/Translator/context';
|
|
5
|
-
import { LocaleLabel } from '../LocaleLabel';
|
|
6
|
-
export const Content = ()=>{
|
|
7
|
-
const { localeToTranslateFrom: localeCodeToTranslateFrom, localesOptions, resolverT, setLocaleToTranslateFrom, submit } = useTranslator();
|
|
8
|
-
const { i18n } = useTranslation();
|
|
9
|
-
const localeToTranslateFrom = localesOptions.find((each)=>each.code === localeCodeToTranslateFrom);
|
|
10
|
-
return /*#__PURE__*/ _jsxs("div", {
|
|
11
|
-
className: 'translator__content',
|
|
12
|
-
children: [
|
|
13
|
-
/*#__PURE__*/ _jsx("h2", {
|
|
14
|
-
children: resolverT('modalTitle')
|
|
15
|
-
}),
|
|
16
|
-
localeToTranslateFrom && /*#__PURE__*/ _jsx(Popup, {
|
|
17
|
-
button: /*#__PURE__*/ _jsx(LocaleLabel, {
|
|
18
|
-
locale: localeToTranslateFrom
|
|
19
|
-
}),
|
|
20
|
-
horizontalAlign: "center",
|
|
21
|
-
render: ({ close })=>/*#__PURE__*/ _jsx(PopupList.ButtonGroup, {
|
|
22
|
-
children: localesOptions.map((option)=>{
|
|
23
|
-
const label = getTranslation(option.label, i18n);
|
|
24
|
-
return /*#__PURE__*/ _jsxs(PopupList.Button, {
|
|
25
|
-
active: option.code === localeCodeToTranslateFrom,
|
|
26
|
-
onClick: ()=>{
|
|
27
|
-
setLocaleToTranslateFrom(option.code);
|
|
28
|
-
close();
|
|
29
|
-
},
|
|
30
|
-
children: [
|
|
31
|
-
label,
|
|
32
|
-
label !== option.code && ` (${option.code})`
|
|
33
|
-
]
|
|
34
|
-
}, option.code);
|
|
35
|
-
})
|
|
36
|
-
}),
|
|
37
|
-
verticalAlign: "bottom"
|
|
38
|
-
}),
|
|
39
|
-
/*#__PURE__*/ _jsxs("div", {
|
|
40
|
-
className: 'translator__buttons',
|
|
41
|
-
children: [
|
|
42
|
-
/*#__PURE__*/ _jsx(Button, {
|
|
43
|
-
onClick: ()=>submit({
|
|
44
|
-
emptyOnly: false
|
|
45
|
-
}),
|
|
46
|
-
children: resolverT('submitButtonLabelFull')
|
|
47
|
-
}),
|
|
48
|
-
/*#__PURE__*/ _jsx(Button, {
|
|
49
|
-
onClick: ()=>submit({
|
|
50
|
-
emptyOnly: true
|
|
51
|
-
}),
|
|
52
|
-
children: resolverT('submitButtonLabelEmpty')
|
|
53
|
-
})
|
|
54
|
-
]
|
|
55
|
-
})
|
|
56
|
-
]
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
//# sourceMappingURL=Content.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/Content.tsx"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\r\nimport { Button, Popup, PopupList, useTranslation } from '@payloadcms/ui'\r\n\r\nimport { useTranslator } from '../../providers/Translator/context'\r\nimport { LocaleLabel } from '../LocaleLabel'\r\n\r\nexport const Content = () => {\r\n const {\r\n localeToTranslateFrom: localeCodeToTranslateFrom,\r\n localesOptions,\r\n resolverT,\r\n setLocaleToTranslateFrom,\r\n submit,\r\n } = useTranslator()\r\n\r\n const { i18n } = useTranslation()\r\n\r\n const localeToTranslateFrom = localesOptions.find(\r\n (each) => each.code === localeCodeToTranslateFrom,\r\n )\r\n\r\n return (\r\n <div className={'translator__content'}>\r\n <h2>{resolverT('modalTitle')}</h2>\r\n {localeToTranslateFrom && (\r\n <Popup\r\n button={<LocaleLabel locale={localeToTranslateFrom} />}\r\n horizontalAlign=\"center\"\r\n render={({ close }) => (\r\n <PopupList.ButtonGroup>\r\n {localesOptions.map((option) => {\r\n const label = getTranslation(option.label, i18n)\r\n\r\n return (\r\n <PopupList.Button\r\n active={option.code === localeCodeToTranslateFrom}\r\n key={option.code}\r\n onClick={() => {\r\n setLocaleToTranslateFrom(option.code)\r\n close()\r\n }}\r\n >\r\n {label}\r\n {label !== option.code && ` (${option.code})`}\r\n </PopupList.Button>\r\n )\r\n })}\r\n </PopupList.ButtonGroup>\r\n )}\r\n verticalAlign=\"bottom\"\r\n />\r\n )}\r\n <div className={'translator__buttons'}>\r\n <Button onClick={() => submit({ emptyOnly: false })}>\r\n {resolverT('submitButtonLabelFull')}\r\n </Button>\r\n <Button onClick={() => submit({ emptyOnly: true })}>\r\n {resolverT('submitButtonLabelEmpty')}\r\n </Button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":["getTranslation","Button","Popup","PopupList","useTranslation","useTranslator","LocaleLabel","Content","localeToTranslateFrom","localeCodeToTranslateFrom","localesOptions","resolverT","setLocaleToTranslateFrom","submit","i18n","find","each","code","div","className","h2","button","locale","horizontalAlign","render","close","ButtonGroup","map","option","label","active","onClick","verticalAlign","emptyOnly"],"mappings":";AAAA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AAEzE,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,WAAW,QAAQ,iBAAgB;AAE5C,OAAO,MAAMC,UAAU;IACrB,MAAM,EACJC,uBAAuBC,yBAAyB,EAChDC,cAAc,EACdC,SAAS,EACTC,wBAAwB,EACxBC,MAAM,EACP,GAAGR;IAEJ,MAAM,EAAES,IAAI,EAAE,GAAGV;IAEjB,MAAMI,wBAAwBE,eAAeK,IAAI,CAC/C,CAACC,OAASA,KAAKC,IAAI,KAAKR;IAG1B,qBACE,MAACS;QAAIC,WAAW;;0BACd,KAACC;0BAAIT,UAAU;;YACdH,uCACC,KAACN;gBACCmB,sBAAQ,KAACf;oBAAYgB,QAAQd;;gBAC7Be,iBAAgB;gBAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,KAACtB,UAAUuB,WAAW;kCACnBhB,eAAeiB,GAAG,CAAC,CAACC;4BACnB,MAAMC,QAAQ7B,eAAe4B,OAAOC,KAAK,EAAEf;4BAE3C,qBACE,MAACX,UAAUF,MAAM;gCACf6B,QAAQF,OAAOX,IAAI,KAAKR;gCAExBsB,SAAS;oCACPnB,yBAAyBgB,OAAOX,IAAI;oCACpCQ;gCACF;;oCAECI;oCACAA,UAAUD,OAAOX,IAAI,IAAI,CAAC,EAAE,EAAEW,OAAOX,IAAI,CAAC,CAAC,CAAC;;+BAPxCW,OAAOX,IAAI;wBAUtB;;gBAGJe,eAAc;;0BAGlB,MAACd;gBAAIC,WAAW;;kCACd,KAAClB;wBAAO8B,SAAS,IAAMlB,OAAO;gCAAEoB,WAAW;4BAAM;kCAC9CtB,UAAU;;kCAEb,KAACV;wBAAO8B,SAAS,IAAMlB,OAAO;gCAAEoB,WAAW;4BAAK;kCAC7CtB,UAAU;;;;;;AAKrB,EAAC"}
|