@justanarthur/payload-plugin-translator 1.3.19 → 1.3.21
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/dist/client.d.ts +6 -0
- package/dist/client.js +320 -0
- package/dist/index.d.ts +102 -11
- package/dist/index.js +1294 -80
- package/dist/jobs.d.ts +195 -0
- package/dist/jobs.js +824 -0
- package/dist/resolvers/copy.d.ts +21 -3
- package/dist/resolvers/copy.js +18 -12
- package/dist/resolvers/google.d.ts +29 -11
- package/dist/resolvers/google.js +58 -44
- package/dist/resolvers/libreTranslate.d.ts +33 -15
- package/dist/resolvers/libreTranslate.js +60 -45
- package/dist/resolvers/openAI.d.ts +39 -21
- package/dist/resolvers/openAI.js +111 -99
- package/dist/resolvers/types.d.ts +16 -16
- package/dist/resolvers/types.js +0 -3
- package/dist/{client/components/CustomButton/styles.scss → styles-jt3fm5fh.scss} +5 -5
- package/dist/{client/components/TranslatorModal/styles.scss → styles-vs6m7h55.scss} +76 -76
- package/dist/types.d.ts +70 -22
- package/dist/types.js +0 -3
- package/package.json +87 -64
- package/README.md +0 -215
- 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/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/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
package/README.md
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
# Translator plugin for Payload
|
|
2
|
-
|
|
3
|
-
## Install
|
|
4
|
-
|
|
5
|
-
`pnpm add @justanarthur/payload-plugin-translator`
|
|
6
|
-
|
|
7
|
-
## Video
|
|
8
|
-
|
|
9
|
-
https://github.com/r1tsuu/payload-plugin-translator/assets/64744993/d39aeba4-bafc-4c3b-838e-9abc5cf1d64a
|
|
10
|
-
|
|
11
|
-
## Features:
|
|
12
|
-
|
|
13
|
-
1. A flexible structure with [resolvers](https://github.com/r1tsuu/payload-plugin-translator/tree/6d0c8098467f9b5e757bf9fd8cfe63ff5da68d5b/plugin/src/resolvers) that allows you to apply any kind of transformation to your localizated data.
|
|
14
|
-
2. Can be used not only from the admin panel, but within Local API as well. [Example of the hook](#example-of-the-hook-that-uses-local-operation-to-copy-the-doc-data-to-other-locales) that automatically fills the other locales data on create
|
|
15
|
-
3. Out of the box supports 3 resolvers - Copy, Google Translate, OpenAI and your own can be written easily.
|
|
16
|
-
4. Works with any nested document structure and 2 Rich Text editor adapters - Lexical and Slate.
|
|
17
|
-
5. You can omit some fields to translate. [Documentation](#omitting-fields)
|
|
18
|
-
|
|
19
|
-
## Usage:
|
|
20
|
-
|
|
21
|
-
```ts
|
|
22
|
-
import { buildConfig } from 'payload/config';
|
|
23
|
-
import {
|
|
24
|
-
translator,
|
|
25
|
-
copyResolver,
|
|
26
|
-
googleResolver,
|
|
27
|
-
openAIResolver,
|
|
28
|
-
libreResolver,
|
|
29
|
-
} from '@payload-enchants/translator';
|
|
30
|
-
|
|
31
|
-
export default buildConfig({
|
|
32
|
-
plugins: [
|
|
33
|
-
translator({
|
|
34
|
-
// collections with the enabled translator in the admin UI
|
|
35
|
-
collections: ['posts', 'small-posts'],
|
|
36
|
-
// globals with the enabled translator in the admin UI
|
|
37
|
-
globals: [],
|
|
38
|
-
// add resolvers that you want to include, examples on how to write your own in ./plugin/src/resolvers
|
|
39
|
-
resolvers: [
|
|
40
|
-
copyResolver(),
|
|
41
|
-
googleResolver({
|
|
42
|
-
apiKey: process.env.GOOGLE_API_KEY!,
|
|
43
|
-
}),
|
|
44
|
-
openAIResolver({
|
|
45
|
-
apiKey: process.env.OPENAI_KEY!,
|
|
46
|
-
}),
|
|
47
|
-
libreResolver({
|
|
48
|
-
apiKey: process.env.LIBRE_KEY!,
|
|
49
|
-
}),
|
|
50
|
-
],
|
|
51
|
-
}),
|
|
52
|
-
],
|
|
53
|
-
});
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Resolvers
|
|
57
|
-
|
|
58
|
-
### OpenAI
|
|
59
|
-
|
|
60
|
-
#### Config:
|
|
61
|
-
|
|
62
|
-
```ts
|
|
63
|
-
export type OpenAIResolverConfig = {
|
|
64
|
-
apiKey: string; // API key
|
|
65
|
-
chunkLength?: number; // How many texts to include into 1 request, default: 100
|
|
66
|
-
model?: string; // model, default: 'gpt-3.5-turbo'
|
|
67
|
-
promt?: OpenAIPrompt; // custom prompt
|
|
68
|
-
};
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Custom prompt:
|
|
72
|
-
|
|
73
|
-
```ts
|
|
74
|
-
export type OpenAIPrompt = (args: {
|
|
75
|
-
localeFrom: string;
|
|
76
|
-
localeTo: string;
|
|
77
|
-
texts: string[];
|
|
78
|
-
}) => string;
|
|
79
|
-
|
|
80
|
-
// Default
|
|
81
|
-
const defaultPromt: OpenAIPrompt = ({ localeFrom, localeTo, texts }) => {
|
|
82
|
-
return `Translate me the following array: ${JSON.stringify(texts)} in locale=${localeFrom} to locale ${localeTo}, respond me with the same array structure`;
|
|
83
|
-
};
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Google
|
|
87
|
-
|
|
88
|
-
#### Config:
|
|
89
|
-
|
|
90
|
-
```ts
|
|
91
|
-
export type GoogleResolverConfig = {
|
|
92
|
-
apiKey: string; // API key
|
|
93
|
-
chunkLength?: number; / /How many texts to include into 1 request, default: 100
|
|
94
|
-
};
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Writing your own
|
|
98
|
-
|
|
99
|
-
```ts
|
|
100
|
-
import type { TranslateResolver } from '@payload-enchants/translator/resolvers/types';
|
|
101
|
-
|
|
102
|
-
const myResolver: TranslateResolver = {
|
|
103
|
-
key: 'my',
|
|
104
|
-
resolve: async (args) => {
|
|
105
|
-
const { localeFrom, localeTo, req, texts } = args;
|
|
106
|
-
// here you can apply any kind of transformation to incoming texts, could be as well API call to a service.
|
|
107
|
-
const transformed = texts.map((each) => `${each} translated to ${localeTo}`);
|
|
108
|
-
|
|
109
|
-
return {
|
|
110
|
-
success: true,
|
|
111
|
-
translatedTexts: transformed,
|
|
112
|
-
};
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
export default buildConfig({
|
|
117
|
-
plugins: [
|
|
118
|
-
payloadPluginTranslator({
|
|
119
|
-
collections: ['posts', 'small-posts'],
|
|
120
|
-
globals: [],
|
|
121
|
-
resolvers: [myResolver],
|
|
122
|
-
}),
|
|
123
|
-
],
|
|
124
|
-
// apply translations that will be used for your resolver in the admin UI
|
|
125
|
-
i18n: {
|
|
126
|
-
supportedLanguages: { en },
|
|
127
|
-
translations: {
|
|
128
|
-
en: {
|
|
129
|
-
'plugin-translator': {
|
|
130
|
-
resolver_my_buttonLabel: 'Google Translate',
|
|
131
|
-
resolver_my_errorMessage: 'An error occurred when trying to translate the data',
|
|
132
|
-
resolver_my_modalTitle: 'Choose the locale to translate from',
|
|
133
|
-
resolver_my_submitButtonLabelEmpty: 'Translate only empty fields',
|
|
134
|
-
resolver_my_submitButtonLabelFull: 'Translate all',
|
|
135
|
-
resolver_my_successMessage: 'Successfully translated. Press "Save" to apply the changes.',
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
});
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Using the Local API
|
|
144
|
-
|
|
145
|
-
```ts
|
|
146
|
-
import { translateOperation } from '@payload-enchants/translator';
|
|
147
|
-
|
|
148
|
-
const translateResult = await translateOperation({
|
|
149
|
-
collectionSlug: 'posts', // or globalSlug if globals,
|
|
150
|
-
emptyOnly: false, // optional, should translate all the fields values or only fields that are empty, by default false.
|
|
151
|
-
id: postDefaultLocale.id, // pass the doc id if it's a collection
|
|
152
|
-
locale: 'de', // locale to translate to
|
|
153
|
-
localeFrom: 'en', // locale to translate from
|
|
154
|
-
payload, // payload instance, you can get it with getPayload or req.payload in hooks
|
|
155
|
-
req, // PayloadRequest, can be used instead of payload, more appreciable than payload if you have it
|
|
156
|
-
overrideAccess: false, //
|
|
157
|
-
resolver: 'copy', // pass resolver key
|
|
158
|
-
update: true, // optional, should update immediately or just return the translated result, default false
|
|
159
|
-
data: {}, // Optional, if you want to translate from your data passed here instead of the current doc, should be in "localeFrom" locale, for example { title: "Hello" }
|
|
160
|
-
});
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Example of the hook that uses local operation to copy the doc data to other locales
|
|
164
|
-
|
|
165
|
-
```ts
|
|
166
|
-
import type { CollectionAfterChangeHook } from 'payload/types';
|
|
167
|
-
import { translateOperation } from '@payload-enchants/translator';
|
|
168
|
-
|
|
169
|
-
export const copyOtherLocales: CollectionAfterChangeHook = async ({
|
|
170
|
-
collection,
|
|
171
|
-
doc,
|
|
172
|
-
operation,
|
|
173
|
-
req,
|
|
174
|
-
}) => {
|
|
175
|
-
if (operation !== 'create') return;
|
|
176
|
-
|
|
177
|
-
const locale = req.locale;
|
|
178
|
-
|
|
179
|
-
if (!locale || !req.payload.config.localization) return;
|
|
180
|
-
|
|
181
|
-
const otherLocales = req.payload.config.localization.locales.filter(
|
|
182
|
-
(each) => each.code !== locale,
|
|
183
|
-
);
|
|
184
|
-
|
|
185
|
-
const { id } = doc;
|
|
186
|
-
|
|
187
|
-
for (const { code } of otherLocales) {
|
|
188
|
-
await translateOperation({
|
|
189
|
-
collectionSlug: collection.slug,
|
|
190
|
-
data: doc,
|
|
191
|
-
id,
|
|
192
|
-
locale: code,
|
|
193
|
-
localeFrom: locale,
|
|
194
|
-
req,
|
|
195
|
-
resolver: 'copy',
|
|
196
|
-
update: true,
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### Omitting fields
|
|
203
|
-
|
|
204
|
-
To omit a specific field for translation, simply add `custom.translatorSkip = true` to the field's config.
|
|
205
|
-
|
|
206
|
-
```ts
|
|
207
|
-
const field = {
|
|
208
|
-
custom: {
|
|
209
|
-
translatorSkip: true,
|
|
210
|
-
},
|
|
211
|
-
localized: true,
|
|
212
|
-
name: 'skip',
|
|
213
|
-
type: 'text',
|
|
214
|
-
};
|
|
215
|
-
```
|
|
@@ -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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslatorModal.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/TranslatorModal.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAOtB,eAAO,MAAM,eAAe,+CAa3B,CAAA"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import './styles.scss';
|
|
3
|
-
import { Modal } from '@payloadcms/ui';
|
|
4
|
-
import { useTranslator } from '../../providers/Translator/context';
|
|
5
|
-
import { Content } from './Content';
|
|
6
|
-
export const TranslatorModal = ()=>{
|
|
7
|
-
const { closeTranslator, modalSlug, resolver } = useTranslator();
|
|
8
|
-
if (!resolver) return;
|
|
9
|
-
return /*#__PURE__*/ _jsx(Modal, {
|
|
10
|
-
className: 'translator__modal',
|
|
11
|
-
slug: modalSlug,
|
|
12
|
-
children: /*#__PURE__*/ _jsxs("div", {
|
|
13
|
-
className: 'translator__wrapper',
|
|
14
|
-
children: [
|
|
15
|
-
/*#__PURE__*/ _jsx("button", {
|
|
16
|
-
"aria-label": "Close",
|
|
17
|
-
className: 'translator__close',
|
|
18
|
-
onClick: closeTranslator
|
|
19
|
-
}),
|
|
20
|
-
/*#__PURE__*/ _jsx(Content, {})
|
|
21
|
-
]
|
|
22
|
-
})
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=TranslatorModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/TranslatorModal.tsx"],"sourcesContent":["import './styles.scss'\r\n\r\nimport { Modal } from '@payloadcms/ui'\r\n\r\nimport { useTranslator } from '../../providers/Translator/context'\r\nimport { Content } from './Content'\r\n\r\nexport const TranslatorModal = () => {\r\n const { closeTranslator, modalSlug, resolver } = useTranslator()\r\n\r\n if (!resolver) return\r\n\r\n return (\r\n <Modal className={'translator__modal'} slug={modalSlug}>\r\n <div className={'translator__wrapper'}>\r\n <button aria-label=\"Close\" className={'translator__close'} onClick={closeTranslator} />\r\n <Content />\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n"],"names":["Modal","useTranslator","Content","TranslatorModal","closeTranslator","modalSlug","resolver","className","slug","div","button","aria-label","onClick"],"mappings":";AAAA,OAAO,gBAAe;AAEtB,SAASA,KAAK,QAAQ,iBAAgB;AAEtC,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,OAAO,QAAQ,YAAW;AAEnC,OAAO,MAAMC,kBAAkB;IAC7B,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGL;IAEjD,IAAI,CAACK,UAAU;IAEf,qBACE,KAACN;QAAMO,WAAW;QAAqBC,MAAMH;kBAC3C,cAAA,MAACI;YAAIF,WAAW;;8BACd,KAACG;oBAAOC,cAAW;oBAAQJ,WAAW;oBAAqBK,SAASR;;8BACpE,KAACF;;;;AAIT,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/index.ts"],"sourcesContent":["export * from './TranslatorModal'\r\n"],"names":[],"mappings":"AAAA,cAAc,oBAAmB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslatorProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/providers/Translator/TranslatorProvider.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,SAAS,EAAgC,MAAM,OAAO,CAAA;AASpE,eAAO,MAAM,kBAAkB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,gCA4IvE,CAAA"}
|