@extravirgin/payload-enchants-translator 1.0.4 → 1.0.6
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/LICENSE +21 -0
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.d.ts +2 -1
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.d.ts.map +1 -1
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.js +7 -3
- package/dist/client/components/CustomButton/CustomButtonWithTranslator.js.map +1 -1
- package/dist/client/components/CustomButton/index.d.ts +1 -1
- package/dist/client/components/CustomButton/index.d.ts.map +1 -1
- package/dist/client/components/CustomButton/index.js +3 -2
- package/dist/client/components/CustomButton/index.js.map +1 -1
- package/dist/client/components/TranslatorModal/Content.d.ts +3 -1
- package/dist/client/components/TranslatorModal/Content.d.ts.map +1 -1
- package/dist/client/components/TranslatorModal/Content.js +2 -2
- package/dist/client/components/TranslatorModal/Content.js.map +1 -1
- package/dist/client/components/TranslatorModal/TranslatorModal.d.ts +3 -1
- package/dist/client/components/TranslatorModal/TranslatorModal.d.ts.map +1 -1
- package/dist/client/components/TranslatorModal/TranslatorModal.js +4 -2
- package/dist/client/components/TranslatorModal/TranslatorModal.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/translate/traverseFields.d.ts.map +1 -1
- package/dist/translate/traverseFields.js +4 -1
- package/dist/translate/traverseFields.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +12 -13
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Ritsu / Sasha Rakhmatulin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import './styles.scss';
|
|
2
|
-
export declare const CustomButtonWithTranslator: ({ type }: {
|
|
2
|
+
export declare const CustomButtonWithTranslator: ({ type, disabledLocales }: {
|
|
3
3
|
type: "publish" | "save";
|
|
4
|
+
disabledLocales: string[];
|
|
4
5
|
}) => import("react").JSX.Element;
|
|
5
6
|
//# sourceMappingURL=CustomButtonWithTranslator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomButtonWithTranslator.d.ts","sourceRoot":"","sources":["../../../../src/client/components/CustomButton/CustomButtonWithTranslator.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC;AASvB,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"CustomButtonWithTranslator.d.ts","sourceRoot":"","sources":["../../../../src/client/components/CustomButton/CustomButtonWithTranslator.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC;AASvB,eAAO,MAAM,0BAA0B,8BAA+B;IAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,gCAyB5H,CAAC"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import './styles.scss';
|
|
4
|
-
import { PublishButton, SaveButton, useConfig, useDocumentInfo } from '@payloadcms/ui';
|
|
4
|
+
import { PublishButton, SaveButton, useConfig, useDocumentInfo, useLocale } from '@payloadcms/ui';
|
|
5
5
|
import { TranslatorProvider } from '../../providers/Translator/TranslatorProvider';
|
|
6
6
|
import { ResolverButton } from '../ResolverButton';
|
|
7
7
|
import { TranslatorModal } from '../TranslatorModal';
|
|
8
|
-
export const CustomButtonWithTranslator = ({ type })=>{
|
|
8
|
+
export const CustomButtonWithTranslator = ({ type, disabledLocales })=>{
|
|
9
9
|
const { config } = useConfig();
|
|
10
|
+
const locale = useLocale();
|
|
10
11
|
const DefaultButton = type === 'publish' ? PublishButton : SaveButton;
|
|
11
12
|
const { globalSlug, id } = useDocumentInfo();
|
|
12
13
|
const resolvers = config.admin?.custom?.translator?.resolvers ?? [];
|
|
13
14
|
if (!id && !globalSlug) return /*#__PURE__*/ _jsx(DefaultButton, {});
|
|
15
|
+
if (disabledLocales.includes(locale.code)) return /*#__PURE__*/ _jsx(DefaultButton, {});
|
|
14
16
|
return /*#__PURE__*/ _jsx(TranslatorProvider, {
|
|
15
17
|
children: /*#__PURE__*/ _jsxs("div", {
|
|
16
18
|
className: 'translator__custom-save-button',
|
|
17
19
|
children: [
|
|
18
|
-
/*#__PURE__*/ _jsx(TranslatorModal, {
|
|
20
|
+
/*#__PURE__*/ _jsx(TranslatorModal, {
|
|
21
|
+
disabledLocales: disabledLocales
|
|
22
|
+
}),
|
|
19
23
|
resolvers.map((resolver)=>/*#__PURE__*/ _jsx(ResolverButton, {
|
|
20
24
|
resolver: resolver
|
|
21
25
|
}, resolver.key)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/CustomButton/CustomButtonWithTranslator.tsx"],"sourcesContent":["'use client';\n\nimport './styles.scss';\n\nimport { PublishButton, SaveButton, useConfig, useDocumentInfo } from '@payloadcms/ui';\n\nimport type { TranslateResolver } from '../../../resolvers/types';\nimport { TranslatorProvider } from '../../providers/Translator/TranslatorProvider';\nimport { ResolverButton } from '../ResolverButton';\nimport { TranslatorModal } from '../TranslatorModal';\n\nexport const CustomButtonWithTranslator = ({ type }: { type: 'publish' | 'save' }) => {\n const { config } = useConfig();\n\n const DefaultButton = type === 'publish' ? PublishButton : SaveButton;\n\n const { globalSlug, id } = useDocumentInfo();\n\n const resolvers = (config.admin?.custom?.translator?.resolvers as TranslateResolver[]) ?? [];\n\n if (!id && !globalSlug) return <DefaultButton />;\n\n return (\n <TranslatorProvider>\n <div className={'translator__custom-save-button'}>\n <TranslatorModal />\n {resolvers.map((resolver) => (\n <ResolverButton key={resolver.key} resolver={resolver} />\n ))}\n {<DefaultButton />}\n </div>\n </TranslatorProvider>\n );\n};\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,gBAAgB;AAEvB,SAASA,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,eAAe,QAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/components/CustomButton/CustomButtonWithTranslator.tsx"],"sourcesContent":["'use client';\n\nimport './styles.scss';\n\nimport { PublishButton, SaveButton, useConfig, useDocumentInfo, useLocale } from '@payloadcms/ui';\n\nimport type { TranslateResolver } from '../../../resolvers/types';\nimport { TranslatorProvider } from '../../providers/Translator/TranslatorProvider';\nimport { ResolverButton } from '../ResolverButton';\nimport { TranslatorModal } from '../TranslatorModal';\n\nexport const CustomButtonWithTranslator = ({ type, disabledLocales }: { type: 'publish' | 'save', disabledLocales: string[] }) => {\n const { config } = useConfig();\n const locale = useLocale();\n\n const DefaultButton = type === 'publish' ? PublishButton : SaveButton;\n\n const { globalSlug, id } = useDocumentInfo();\n\n const resolvers = (config.admin?.custom?.translator?.resolvers as TranslateResolver[]) ?? [];\n\n if (!id && !globalSlug) return <DefaultButton />;\n\n if(disabledLocales.includes(locale.code)) return <DefaultButton />;\n\n return (\n <TranslatorProvider>\n <div className={'translator__custom-save-button'}>\n <TranslatorModal disabledLocales={disabledLocales} />\n {resolvers.map((resolver) => (\n <ResolverButton key={resolver.key} resolver={resolver} />\n ))}\n {<DefaultButton />}\n </div>\n </TranslatorProvider>\n );\n};\n"],"names":["PublishButton","SaveButton","useConfig","useDocumentInfo","useLocale","TranslatorProvider","ResolverButton","TranslatorModal","CustomButtonWithTranslator","type","disabledLocales","config","locale","DefaultButton","globalSlug","id","resolvers","admin","custom","translator","includes","code","div","className","map","resolver","key"],"mappings":"AAAA;;AAEA,OAAO,gBAAgB;AAEvB,SAASA,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,eAAe,EAAEC,SAAS,QAAQ,iBAAiB;AAGlG,SAASC,kBAAkB,QAAQ,gDAAgD;AACnF,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,eAAe,QAAQ,qBAAqB;AAErD,OAAO,MAAMC,6BAA6B,CAAC,EAAEC,IAAI,EAAEC,eAAe,EAA2D;IAC3H,MAAM,EAAEC,MAAM,EAAE,GAAGT;IACnB,MAAMU,SAASR;IAEf,MAAMS,gBAAgBJ,SAAS,YAAYT,gBAAgBC;IAE3D,MAAM,EAAEa,UAAU,EAAEC,EAAE,EAAE,GAAGZ;IAE3B,MAAMa,YAAY,AAACL,OAAOM,KAAK,EAAEC,QAAQC,YAAYH,aAAqC,EAAE;IAE5F,IAAI,CAACD,MAAM,CAACD,YAAY,qBAAO,KAACD;IAEhC,IAAGH,gBAAgBU,QAAQ,CAACR,OAAOS,IAAI,GAAG,qBAAO,KAACR;IAElD,qBACE,KAACR;kBACC,cAAA,MAACiB;YAAIC,WAAW;;8BACd,KAAChB;oBAAgBG,iBAAiBA;;gBACjCM,UAAUQ,GAAG,CAAC,CAACC,yBACd,KAACnB;wBAAkCmB,UAAUA;uBAAxBA,SAASC,GAAG;8BAElC,KAACb;;;;AAIV,EAAE"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CustomPublishButton, CustomSaveButton } from 'payload';
|
|
2
|
-
export declare const CustomButton: (type: "publish" | "save") => CustomPublishButton | CustomSaveButton;
|
|
2
|
+
export declare const CustomButton: (type: "publish" | "save", disabledLocales?: string[]) => CustomPublishButton | CustomSaveButton;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,CAAC;AAErE,eAAO,MAAM,YAAY,SAAU,SAAS,GAAG,MAAM,KAAG,mBAAmB,GAAG,
|
|
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,CAAC;AAErE,eAAO,MAAM,YAAY,SAAU,SAAS,GAAG,MAAM,oBAAoB,MAAM,EAAE,KAAG,mBAAmB,GAAG,gBAQzG,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export const CustomButton = (type)=>{
|
|
1
|
+
export const CustomButton = (type, disabledLocales)=>{
|
|
2
2
|
return {
|
|
3
3
|
clientProps: {
|
|
4
|
-
type
|
|
4
|
+
type,
|
|
5
|
+
disabledLocales: disabledLocales || []
|
|
5
6
|
},
|
|
6
7
|
path: '@extravirgin/payload-enchants-translator/client#CustomButtonWithTranslator'
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/CustomButton/index.tsx"],"sourcesContent":["import type { CustomPublishButton, CustomSaveButton } from 'payload';\n\nexport const CustomButton = (type: 'publish' | 'save'): CustomPublishButton | CustomSaveButton => {\n return {\n clientProps: {\n type,\n },\n path: '@extravirgin/payload-enchants-translator/client#CustomButtonWithTranslator',\n };\n};\n"],"names":["CustomButton","type","clientProps","path"],"mappings":"AAEA,OAAO,MAAMA,eAAe,CAACC;
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/components/CustomButton/index.tsx"],"sourcesContent":["import type { CustomPublishButton, CustomSaveButton } from 'payload';\n\nexport const CustomButton = (type: 'publish' | 'save', disabledLocales?: string[]): CustomPublishButton | CustomSaveButton => {\n return {\n clientProps: {\n type,\n disabledLocales: disabledLocales || [],\n },\n path: '@extravirgin/payload-enchants-translator/client#CustomButtonWithTranslator',\n };\n};\n"],"names":["CustomButton","type","disabledLocales","clientProps","path"],"mappings":"AAEA,OAAO,MAAMA,eAAe,CAACC,MAA0BC;IACrD,OAAO;QACLC,aAAa;YACXF;YACAC,iBAAiBA,mBAAmB,EAAE;QACxC;QACAE,MAAM;IACR;AACF,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/Content.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/Content.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,wBAAsB;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAC,gCAwDpE,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { getTranslation } from '@payloadcms/translations';
|
|
|
3
3
|
import { Button, Popup, PopupList, useTranslation } from '@payloadcms/ui';
|
|
4
4
|
import { useTranslator } from '../../providers/Translator/context';
|
|
5
5
|
import { LocaleLabel } from '../LocaleLabel';
|
|
6
|
-
export const Content = ()=>{
|
|
6
|
+
export const Content = ({ disabledLocales })=>{
|
|
7
7
|
const { localeToTranslateFrom: localeCodeToTranslateFrom, localesOptions, resolverT, setLocaleToTranslateFrom, submit } = useTranslator();
|
|
8
8
|
const { i18n } = useTranslation();
|
|
9
9
|
const localeToTranslateFrom = localesOptions.find((each)=>each.code === localeCodeToTranslateFrom);
|
|
@@ -19,7 +19,7 @@ export const Content = ()=>{
|
|
|
19
19
|
}),
|
|
20
20
|
horizontalAlign: "center",
|
|
21
21
|
render: ({ close })=>/*#__PURE__*/ _jsx(PopupList.ButtonGroup, {
|
|
22
|
-
children: localesOptions.map((option)=>{
|
|
22
|
+
children: localesOptions.filter((option)=>!disabledLocales.includes(option.code)).map((option)=>{
|
|
23
23
|
const label = getTranslation(option.label, i18n);
|
|
24
24
|
return /*#__PURE__*/ _jsxs(PopupList.Button, {
|
|
25
25
|
active: option.code === localeCodeToTranslateFrom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/Content.tsx"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations';\nimport { Button, Popup, PopupList, useTranslation } from '@payloadcms/ui';\n\nimport { useTranslator } from '../../providers/Translator/context';\nimport { LocaleLabel } from '../LocaleLabel';\n\nexport const Content = () => {\n const {\n localeToTranslateFrom: localeCodeToTranslateFrom,\n localesOptions,\n resolverT,\n setLocaleToTranslateFrom,\n submit,\n } = useTranslator();\n\n const { i18n } = useTranslation();\n\n const localeToTranslateFrom = localesOptions.find(\n (each) => each.code === localeCodeToTranslateFrom,\n );\n\n return (\n <div className={'translator__content'}>\n <h2>{resolverT('modalTitle')}</h2>\n {localeToTranslateFrom && (\n <Popup\n button={<LocaleLabel locale={localeToTranslateFrom} />}\n horizontalAlign='center'\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {localesOptions.map((option) => {\n const label = getTranslation(option.label, i18n);\n\n return (\n <PopupList.Button\n active={option.code === localeCodeToTranslateFrom}\n key={option.code}\n onClick={() => {\n setLocaleToTranslateFrom(option.code);\n close();\n }}\n >\n {label}\n {label !== option.code && ` (${option.code})`}\n </PopupList.Button>\n );\n })}\n </PopupList.ButtonGroup>\n )}\n verticalAlign='bottom'\n />\n )}\n <div className={'translator__buttons'}>\n <Button onClick={() => submit({ emptyOnly: false })}>\n {resolverT('submitButtonLabelFull')}\n </Button>\n <Button onClick={() => submit({ emptyOnly: true })}>\n {resolverT('submitButtonLabelEmpty')}\n </Button>\n </div>\n </div>\n );\n};\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","
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/Content.tsx"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations';\nimport { Button, Popup, PopupList, useTranslation } from '@payloadcms/ui';\n\nimport { useTranslator } from '../../providers/Translator/context';\nimport { LocaleLabel } from '../LocaleLabel';\n\nexport const Content = ({disabledLocales}:{disabledLocales: string[]}) => {\n const {\n localeToTranslateFrom: localeCodeToTranslateFrom,\n localesOptions,\n resolverT,\n setLocaleToTranslateFrom,\n submit,\n } = useTranslator();\n\n const { i18n } = useTranslation();\n\n const localeToTranslateFrom = localesOptions.find(\n (each) => each.code === localeCodeToTranslateFrom,\n );\n\n return (\n <div className={'translator__content'}>\n <h2>{resolverT('modalTitle')}</h2>\n {localeToTranslateFrom && (\n <Popup\n button={<LocaleLabel locale={localeToTranslateFrom} />}\n horizontalAlign='center'\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {localesOptions.filter((option) => !disabledLocales.includes(option.code)).map((option) => {\n const label = getTranslation(option.label, i18n);\n\n return (\n <PopupList.Button\n active={option.code === localeCodeToTranslateFrom}\n key={option.code}\n onClick={() => {\n setLocaleToTranslateFrom(option.code);\n close();\n }}\n >\n {label}\n {label !== option.code && ` (${option.code})`}\n </PopupList.Button>\n );\n })}\n </PopupList.ButtonGroup>\n )}\n verticalAlign='bottom'\n />\n )}\n <div className={'translator__buttons'}>\n <Button onClick={() => submit({ emptyOnly: false })}>\n {resolverT('submitButtonLabelFull')}\n </Button>\n <Button onClick={() => submit({ emptyOnly: true })}>\n {resolverT('submitButtonLabelEmpty')}\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["getTranslation","Button","Popup","PopupList","useTranslation","useTranslator","LocaleLabel","Content","disabledLocales","localeToTranslateFrom","localeCodeToTranslateFrom","localesOptions","resolverT","setLocaleToTranslateFrom","submit","i18n","find","each","code","div","className","h2","button","locale","horizontalAlign","render","close","ButtonGroup","filter","option","includes","map","label","active","onClick","verticalAlign","emptyOnly"],"mappings":";AAAA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAiB;AAE1E,SAASC,aAAa,QAAQ,qCAAqC;AACnE,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,OAAO,MAAMC,UAAU,CAAC,EAACC,eAAe,EAA6B;IACnE,MAAM,EACJC,uBAAuBC,yBAAyB,EAChDC,cAAc,EACdC,SAAS,EACTC,wBAAwB,EACxBC,MAAM,EACP,GAAGT;IAEJ,MAAM,EAAEU,IAAI,EAAE,GAAGX;IAEjB,MAAMK,wBAAwBE,eAAeK,IAAI,CAC/C,CAACC,OAASA,KAAKC,IAAI,KAAKR;IAG1B,qBACE,MAACS;QAAIC,WAAW;;0BACd,KAACC;0BAAIT,UAAU;;YACdH,uCACC,KAACP;gBACCoB,sBAAQ,KAAChB;oBAAYiB,QAAQd;;gBAC7Be,iBAAgB;gBAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,KAACvB,UAAUwB,WAAW;kCACnBhB,eAAeiB,MAAM,CAAC,CAACC,SAAW,CAACrB,gBAAgBsB,QAAQ,CAACD,OAAOX,IAAI,GAAGa,GAAG,CAAC,CAACF;4BAC9E,MAAMG,QAAQhC,eAAe6B,OAAOG,KAAK,EAAEjB;4BAE3C,qBACE,MAACZ,UAAUF,MAAM;gCACfgC,QAAQJ,OAAOX,IAAI,KAAKR;gCAExBwB,SAAS;oCACPrB,yBAAyBgB,OAAOX,IAAI;oCACpCQ;gCACF;;oCAECM;oCACAA,UAAUH,OAAOX,IAAI,IAAI,CAAC,EAAE,EAAEW,OAAOX,IAAI,CAAC,CAAC,CAAC;;+BAPxCW,OAAOX,IAAI;wBAUtB;;gBAGJiB,eAAc;;0BAGlB,MAAChB;gBAAIC,WAAW;;kCACd,KAACnB;wBAAOiC,SAAS,IAAMpB,OAAO;gCAAEsB,WAAW;4BAAM;kCAC9CxB,UAAU;;kCAEb,KAACX;wBAAOiC,SAAS,IAAMpB,OAAO;gCAAEsB,WAAW;4BAAK;kCAC7CxB,UAAU;;;;;;AAKrB,EAAE"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import './styles.scss';
|
|
2
|
-
export declare const TranslatorModal: (
|
|
2
|
+
export declare const TranslatorModal: ({ disabledLocales }: {
|
|
3
|
+
disabledLocales: string[];
|
|
4
|
+
}) => import("react").JSX.Element | undefined;
|
|
3
5
|
//# sourceMappingURL=TranslatorModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslatorModal.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/TranslatorModal.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAOvB,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"TranslatorModal.d.ts","sourceRoot":"","sources":["../../../../src/client/components/TranslatorModal/TranslatorModal.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAOvB,eAAO,MAAM,eAAe,wBAAsB;IAAC,eAAe,EAAC,MAAM,EAAE,CAAA;CAAC,4CAa3E,CAAC"}
|
|
@@ -3,7 +3,7 @@ import './styles.scss';
|
|
|
3
3
|
import { Modal } from '@payloadcms/ui';
|
|
4
4
|
import { useTranslator } from '../../providers/Translator/context';
|
|
5
5
|
import { Content } from './Content';
|
|
6
|
-
export const TranslatorModal = ()=>{
|
|
6
|
+
export const TranslatorModal = ({ disabledLocales })=>{
|
|
7
7
|
const { closeTranslator, modalSlug, resolver } = useTranslator();
|
|
8
8
|
if (!resolver) return;
|
|
9
9
|
return /*#__PURE__*/ _jsx(Modal, {
|
|
@@ -17,7 +17,9 @@ export const TranslatorModal = ()=>{
|
|
|
17
17
|
className: 'translator__close',
|
|
18
18
|
onClick: closeTranslator
|
|
19
19
|
}),
|
|
20
|
-
/*#__PURE__*/ _jsx(Content, {
|
|
20
|
+
/*#__PURE__*/ _jsx(Content, {
|
|
21
|
+
disabledLocales: disabledLocales
|
|
22
|
+
})
|
|
21
23
|
]
|
|
22
24
|
})
|
|
23
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/TranslatorModal.tsx"],"sourcesContent":["import './styles.scss';\n\nimport { Modal } from '@payloadcms/ui';\n\nimport { useTranslator } from '../../providers/Translator/context';\nimport { Content } from './Content';\n\nexport const TranslatorModal = () => {\n const { closeTranslator, modalSlug, resolver } = useTranslator();\n\n if (!resolver) return;\n\n return (\n <Modal className={'translator__modal'} slug={modalSlug}>\n <div className={'translator__wrapper'}>\n <button aria-label='Close' className={'translator__close'} onClick={closeTranslator} />\n <Content />\n </div>\n </Modal>\n );\n};\n"],"names":["Modal","useTranslator","Content","TranslatorModal","closeTranslator","modalSlug","resolver","className","slug","div","button","aria-label","onClick"],"mappings":";AAAA,OAAO,gBAAgB;AAEvB,SAASA,KAAK,QAAQ,iBAAiB;AAEvC,SAASC,aAAa,QAAQ,qCAAqC;AACnE,SAASC,OAAO,QAAQ,YAAY;AAEpC,OAAO,MAAMC,kBAAkB;
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/components/TranslatorModal/TranslatorModal.tsx"],"sourcesContent":["import './styles.scss';\n\nimport { Modal } from '@payloadcms/ui';\n\nimport { useTranslator } from '../../providers/Translator/context';\nimport { Content } from './Content';\n\nexport const TranslatorModal = ({disabledLocales}:{disabledLocales:string[]}) => {\n const { closeTranslator, modalSlug, resolver } = useTranslator();\n\n if (!resolver) return;\n\n return (\n <Modal className={'translator__modal'} slug={modalSlug}>\n <div className={'translator__wrapper'}>\n <button aria-label='Close' className={'translator__close'} onClick={closeTranslator} />\n <Content disabledLocales={disabledLocales} />\n </div>\n </Modal>\n );\n};\n"],"names":["Modal","useTranslator","Content","TranslatorModal","disabledLocales","closeTranslator","modalSlug","resolver","className","slug","div","button","aria-label","onClick"],"mappings":";AAAA,OAAO,gBAAgB;AAEvB,SAASA,KAAK,QAAQ,iBAAiB;AAEvC,SAASC,aAAa,QAAQ,qCAAqC;AACnE,SAASC,OAAO,QAAQ,YAAY;AAEpC,OAAO,MAAMC,kBAAkB,CAAC,EAACC,eAAe,EAA4B;IAC1E,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGN;IAEjD,IAAI,CAACM,UAAU;IAEf,qBACE,KAACP;QAAMQ,WAAW;QAAqBC,MAAMH;kBAC3C,cAAA,MAACI;YAAIF,WAAW;;8BACd,KAACG;oBAAOC,cAAW;oBAAQJ,WAAW;oBAAqBK,SAASR;;8BACpE,KAACH;oBAAQE,iBAAiBA;;;;;AAIlC,EAAE"}
|
package/dist/index.js
CHANGED
|
@@ -35,8 +35,8 @@ export const translator = (pluginConfig)=>{
|
|
|
35
35
|
...collection.admin?.components ?? {},
|
|
36
36
|
edit: {
|
|
37
37
|
...collection.admin?.components?.edit ?? {},
|
|
38
|
-
PublishButton: CustomButton('publish'),
|
|
39
|
-
SaveButton: CustomButton('save')
|
|
38
|
+
PublishButton: CustomButton('publish', pluginConfig.disabledLocales ?? []),
|
|
39
|
+
SaveButton: CustomButton('save', pluginConfig.disabledLocales ?? [])
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -66,8 +66,8 @@ export const translator = (pluginConfig)=>{
|
|
|
66
66
|
...global.admin?.components ?? {},
|
|
67
67
|
elements: {
|
|
68
68
|
...global.admin?.components?.elements ?? {},
|
|
69
|
-
PublishButton: CustomButton('publish'),
|
|
70
|
-
SaveButton: CustomButton('save')
|
|
69
|
+
PublishButton: CustomButton('publish', pluginConfig.disabledLocales ?? []),
|
|
70
|
+
SaveButton: CustomButton('save', pluginConfig.disabledLocales ?? [])
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { CollectionSlug, Config, GlobalSlug, Plugin } from 'payload';\nimport { deepMerge } from 'payload/shared';\n\nimport { CustomButton } from './client/components/CustomButton';\nimport { translations } from './i18n-translations';\nimport { translateEndpoint } from './translate/endpoint';\nimport { translateOperation } from './translate/operation';\nimport type { TranslatorConfig } from './types';\n\nexport { copyResolver } from './resolvers/copy';\n\nexport { googleResolver } from './resolvers/google';\n\nexport { libreResolver } from './resolvers/libreTranslate';\n\nexport { openAIResolver } from './resolvers/openAI';\nexport * from './resolvers/types';\n\nexport { translateOperation };\n\nexport const translator: (pluginConfig: TranslatorConfig) => Plugin = (pluginConfig) => {\n return (config) => {\n if (pluginConfig.disabled || !config.localization || config.localization.locales.length < 2)\n return config;\n\n const updatedConfig: Config = {\n ...config,\n admin: {\n ...(config.admin ?? {}),\n custom: {\n ...(config.admin?.custom ?? {}),\n translator: {\n resolvers: pluginConfig.resolvers.map(({ key }) => ({ key })),\n },\n },\n },\n collections:\n config.collections?.map((collection) => {\n if (!pluginConfig.collections.includes(collection.slug as CollectionSlug))\n return collection;\n\n return {\n ...collection,\n admin: {\n ...(collection.admin ?? {}),\n components: {\n ...(collection.admin?.components ?? {}),\n edit: {\n ...(collection.admin?.components?.edit ?? {}),\n PublishButton: CustomButton('publish'),\n SaveButton: CustomButton('save'),\n },\n },\n },\n };\n }) ?? [],\n custom: {\n ...(config.custom ?? {}),\n translator: {\n resolvers: pluginConfig.resolvers,\n },\n },\n endpoints: [\n ...(config.endpoints ?? []),\n {\n handler: translateEndpoint,\n method: 'post',\n path: '/translator/translate',\n },\n ],\n globals:\n config.globals?.map((global) => {\n if (!pluginConfig.globals.includes(global.slug as GlobalSlug)) return global;\n\n return {\n ...global,\n admin: {\n ...(global.admin ?? {}),\n components: {\n ...(global.admin?.components ?? {}),\n elements: {\n ...(global.admin?.components?.elements ?? {}),\n PublishButton: CustomButton('publish'),\n SaveButton: CustomButton('save'),\n },\n },\n },\n };\n }) ?? [],\n i18n: {\n ...config.i18n,\n translations: {\n ...deepMerge(config.i18n?.translations ?? {}, translations),\n },\n },\n };\n\n return updatedConfig;\n };\n};\n"],"names":["deepMerge","CustomButton","translations","translateEndpoint","translateOperation","copyResolver","googleResolver","libreResolver","openAIResolver","translator","pluginConfig","config","disabled","localization","locales","length","updatedConfig","admin","custom","resolvers","map","key","collections","collection","includes","slug","components","edit","PublishButton","SaveButton","endpoints","handler","method","path","globals","global","elements","i18n"],"mappings":"AACA,SAASA,SAAS,QAAQ,iBAAiB;AAE3C,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,kBAAkB,QAAQ,wBAAwB;AAG3D,SAASC,YAAY,QAAQ,mBAAmB;AAEhD,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,SAASC,aAAa,QAAQ,6BAA6B;AAE3D,SAASC,cAAc,QAAQ,qBAAqB;AACpD,cAAc,oBAAoB;AAElC,SAASJ,kBAAkB,GAAG;AAE9B,OAAO,MAAMK,aAAyD,CAACC;IACrE,OAAO,CAACC;QACN,IAAID,aAAaE,QAAQ,IAAI,CAACD,OAAOE,YAAY,IAAIF,OAAOE,YAAY,CAACC,OAAO,CAACC,MAAM,GAAG,GACxF,OAAOJ;QAET,MAAMK,gBAAwB;YAC5B,GAAGL,MAAM;YACTM,OAAO;gBACL,GAAIN,OAAOM,KAAK,IAAI,CAAC,CAAC;gBACtBC,QAAQ;oBACN,GAAIP,OAAOM,KAAK,EAAEC,UAAU,CAAC,CAAC;oBAC9BT,YAAY;wBACVU,WAAWT,aAAaS,SAAS,CAACC,GAAG,CAAC,CAAC,EAAEC,GAAG,EAAE,GAAM,CAAA;gCAAEA;4BAAI,CAAA;oBAC5D;gBACF;YACF;YACAC,aACEX,OAAOW,WAAW,EAAEF,IAAI,CAACG;gBACvB,IAAI,CAACb,aAAaY,WAAW,CAACE,QAAQ,CAACD,WAAWE,IAAI,GACpD,OAAOF;gBAET,OAAO;oBACL,GAAGA,UAAU;oBACbN,OAAO;wBACL,GAAIM,WAAWN,KAAK,IAAI,CAAC,CAAC;wBAC1BS,YAAY;4BACV,GAAIH,WAAWN,KAAK,EAAES,cAAc,CAAC,CAAC;4BACtCC,MAAM;gCACJ,GAAIJ,WAAWN,KAAK,EAAES,YAAYC,QAAQ,CAAC,CAAC;gCAC5CC,eAAe3B,aAAa;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { CollectionSlug, Config, GlobalSlug, Plugin } from 'payload';\nimport { deepMerge } from 'payload/shared';\n\nimport { CustomButton } from './client/components/CustomButton';\nimport { translations } from './i18n-translations';\nimport { translateEndpoint } from './translate/endpoint';\nimport { translateOperation } from './translate/operation';\nimport type { TranslatorConfig } from './types';\n\nexport { copyResolver } from './resolvers/copy';\n\nexport { googleResolver } from './resolvers/google';\n\nexport { libreResolver } from './resolvers/libreTranslate';\n\nexport { openAIResolver } from './resolvers/openAI';\nexport * from './resolvers/types';\n\nexport { translateOperation };\n\nexport const translator: (pluginConfig: TranslatorConfig) => Plugin = (pluginConfig) => {\n return (config) => {\n if (pluginConfig.disabled || !config.localization || config.localization.locales.length < 2)\n return config;\n\n const updatedConfig: Config = {\n ...config,\n admin: {\n ...(config.admin ?? {}),\n custom: {\n ...(config.admin?.custom ?? {}),\n translator: {\n resolvers: pluginConfig.resolvers.map(({ key }) => ({ key })),\n },\n },\n },\n collections:\n config.collections?.map((collection) => {\n if (!pluginConfig.collections.includes(collection.slug as CollectionSlug))\n return collection;\n\n return {\n ...collection,\n admin: {\n ...(collection.admin ?? {}),\n components: {\n ...(collection.admin?.components ?? {}),\n edit: {\n ...(collection.admin?.components?.edit ?? {}),\n PublishButton: CustomButton('publish', pluginConfig.disabledLocales ?? []),\n SaveButton: CustomButton('save', pluginConfig.disabledLocales ?? []),\n },\n },\n },\n };\n }) ?? [],\n custom: {\n ...(config.custom ?? {}),\n translator: {\n resolvers: pluginConfig.resolvers,\n },\n },\n endpoints: [\n ...(config.endpoints ?? []),\n {\n handler: translateEndpoint,\n method: 'post',\n path: '/translator/translate',\n },\n ],\n globals:\n config.globals?.map((global) => {\n if (!pluginConfig.globals.includes(global.slug as GlobalSlug)) return global;\n\n return {\n ...global,\n admin: {\n ...(global.admin ?? {}),\n components: {\n ...(global.admin?.components ?? {}),\n elements: {\n ...(global.admin?.components?.elements ?? {}),\n PublishButton: CustomButton('publish', pluginConfig.disabledLocales ?? []),\n SaveButton: CustomButton('save', pluginConfig.disabledLocales ?? []),\n },\n },\n },\n };\n }) ?? [],\n i18n: {\n ...config.i18n,\n translations: {\n ...deepMerge(config.i18n?.translations ?? {}, translations),\n },\n },\n };\n\n return updatedConfig;\n };\n};\n"],"names":["deepMerge","CustomButton","translations","translateEndpoint","translateOperation","copyResolver","googleResolver","libreResolver","openAIResolver","translator","pluginConfig","config","disabled","localization","locales","length","updatedConfig","admin","custom","resolvers","map","key","collections","collection","includes","slug","components","edit","PublishButton","disabledLocales","SaveButton","endpoints","handler","method","path","globals","global","elements","i18n"],"mappings":"AACA,SAASA,SAAS,QAAQ,iBAAiB;AAE3C,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,kBAAkB,QAAQ,wBAAwB;AAG3D,SAASC,YAAY,QAAQ,mBAAmB;AAEhD,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,SAASC,aAAa,QAAQ,6BAA6B;AAE3D,SAASC,cAAc,QAAQ,qBAAqB;AACpD,cAAc,oBAAoB;AAElC,SAASJ,kBAAkB,GAAG;AAE9B,OAAO,MAAMK,aAAyD,CAACC;IACrE,OAAO,CAACC;QACN,IAAID,aAAaE,QAAQ,IAAI,CAACD,OAAOE,YAAY,IAAIF,OAAOE,YAAY,CAACC,OAAO,CAACC,MAAM,GAAG,GACxF,OAAOJ;QAET,MAAMK,gBAAwB;YAC5B,GAAGL,MAAM;YACTM,OAAO;gBACL,GAAIN,OAAOM,KAAK,IAAI,CAAC,CAAC;gBACtBC,QAAQ;oBACN,GAAIP,OAAOM,KAAK,EAAEC,UAAU,CAAC,CAAC;oBAC9BT,YAAY;wBACVU,WAAWT,aAAaS,SAAS,CAACC,GAAG,CAAC,CAAC,EAAEC,GAAG,EAAE,GAAM,CAAA;gCAAEA;4BAAI,CAAA;oBAC5D;gBACF;YACF;YACAC,aACEX,OAAOW,WAAW,EAAEF,IAAI,CAACG;gBACvB,IAAI,CAACb,aAAaY,WAAW,CAACE,QAAQ,CAACD,WAAWE,IAAI,GACpD,OAAOF;gBAET,OAAO;oBACL,GAAGA,UAAU;oBACbN,OAAO;wBACL,GAAIM,WAAWN,KAAK,IAAI,CAAC,CAAC;wBAC1BS,YAAY;4BACV,GAAIH,WAAWN,KAAK,EAAES,cAAc,CAAC,CAAC;4BACtCC,MAAM;gCACJ,GAAIJ,WAAWN,KAAK,EAAES,YAAYC,QAAQ,CAAC,CAAC;gCAC5CC,eAAe3B,aAAa,WAAWS,aAAamB,eAAe,IAAI,EAAE;gCACzEC,YAAY7B,aAAa,QAAQS,aAAamB,eAAe,IAAI,EAAE;4BACrE;wBACF;oBACF;gBACF;YACF,MAAM,EAAE;YACVX,QAAQ;gBACN,GAAIP,OAAOO,MAAM,IAAI,CAAC,CAAC;gBACvBT,YAAY;oBACVU,WAAWT,aAAaS,SAAS;gBACnC;YACF;YACAY,WAAW;mBACLpB,OAAOoB,SAAS,IAAI,EAAE;gBAC1B;oBACEC,SAAS7B;oBACT8B,QAAQ;oBACRC,MAAM;gBACR;aACD;YACDC,SACExB,OAAOwB,OAAO,EAAEf,IAAI,CAACgB;gBACnB,IAAI,CAAC1B,aAAayB,OAAO,CAACX,QAAQ,CAACY,OAAOX,IAAI,GAAiB,OAAOW;gBAEtE,OAAO;oBACL,GAAGA,MAAM;oBACTnB,OAAO;wBACL,GAAImB,OAAOnB,KAAK,IAAI,CAAC,CAAC;wBACtBS,YAAY;4BACV,GAAIU,OAAOnB,KAAK,EAAES,cAAc,CAAC,CAAC;4BAClCW,UAAU;gCACR,GAAID,OAAOnB,KAAK,EAAES,YAAYW,YAAY,CAAC,CAAC;gCAC5CT,eAAe3B,aAAa,WAAWS,aAAamB,eAAe,IAAI,EAAE;gCACzEC,YAAY7B,aAAa,QAAQS,aAAamB,eAAe,IAAI,EAAE;4BACrE;wBACF;oBACF;gBACF;YACF,MAAM,EAAE;YACVS,MAAM;gBACJ,GAAG3B,OAAO2B,IAAI;gBACdpC,cAAc;oBACZ,GAAGF,UAAUW,OAAO2B,IAAI,EAAEpC,gBAAgB,CAAC,GAAGA,aAAa;gBAC7D;YACF;QACF;QAEA,OAAOc;IACT;AACF,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/translate/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,cAAc,iIASxB;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/translate/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,cAAc,iIASxB;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,SA+RA,CAAC"}
|
|
@@ -59,6 +59,9 @@ export const traverseFields = ({ dataFrom, emptyOnly, fields, localizedParent, s
|
|
|
59
59
|
id: ObjectID().toHexString()
|
|
60
60
|
}));
|
|
61
61
|
}
|
|
62
|
+
if (!Array.isArray(arrayDataTranslated)) {
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
62
65
|
arrayDataTranslated.forEach((item, index)=>{
|
|
63
66
|
traverseFields({
|
|
64
67
|
dataFrom,
|
|
@@ -136,7 +139,7 @@ export const traverseFields = ({ dataFrom, emptyOnly, fields, localizedParent, s
|
|
|
136
139
|
if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;
|
|
137
140
|
if (emptyOnly && siblingDataTranslated[field.name]) break;
|
|
138
141
|
// do not translate the block ID or admin-facing label
|
|
139
|
-
if (field.name === '
|
|
142
|
+
if (field.name === 'id') {
|
|
140
143
|
break;
|
|
141
144
|
}
|
|
142
145
|
valuesToTranslate.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/translate/traverseFields.ts"],"sourcesContent":["import ObjectID from 'bson-objectid';\nimport type { Field } from 'payload';\nimport { tabHasName } from 'payload/shared';\n\nimport { isEmpty } from '../utils/isEmpty';\nimport { traverseRichText } from './traverseRichText';\nimport type { ValueToTranslate } from './types';\n\nexport const traverseFields = ({\n dataFrom,\n emptyOnly,\n fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n}: {\n dataFrom: Record<string, unknown>;\n emptyOnly?: boolean;\n fields: Field[];\n localizedParent?: boolean;\n siblingDataFrom?: Record<string, unknown>;\n siblingDataTranslated?: Record<string, unknown>;\n translatedData: Record<string, unknown>;\n valuesToTranslate: ValueToTranslate[];\n}) => {\n siblingDataFrom = siblingDataFrom ?? dataFrom;\n siblingDataTranslated = siblingDataTranslated ?? translatedData;\n\n for (const field of fields) {\n switch (field.type) {\n case 'tabs':\n for (const tab of field.tabs) {\n const hasName = tabHasName(tab);\n\n const tabDataFrom = hasName\n ? (siblingDataFrom[tab.name] as Record<string, unknown>)\n : siblingDataFrom;\n\n if (!tabDataFrom) return;\n\n const tabDataTranslated = hasName\n ? ((siblingDataTranslated[tab.name] as Record<string, unknown>) ?? {})\n : siblingDataTranslated;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: tab.fields,\n localizedParent: tab.localized,\n siblingDataFrom: tabDataFrom,\n siblingDataTranslated: tabDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n }\n\n break;\n\n case 'group': {\n const groupDataFrom = siblingDataFrom[field.name] as Record<string, unknown>;\n\n if (!groupDataFrom) break;\n\n let groupDataTranslated =\n (siblingDataTranslated[field.name] as Record<string, unknown>);\n\n if (!groupDataTranslated) {\n groupDataTranslated = {id: ObjectID().toHexString()};\n siblingDataTranslated[field.name] = groupDataTranslated;\n }\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: groupDataFrom,\n siblingDataTranslated: groupDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n\n break;\n }\n\n case 'array': {\n const arrayDataFrom = siblingDataFrom[field.name] as {\n id: string;\n }[];\n\n if (isEmpty(arrayDataFrom)) break;\n\n let arrayDataTranslated =\n (siblingDataTranslated[field.name] as { id: string }[] | undefined) ?? [];\n\n if (field.localized || localizedParent) {\n if (arrayDataTranslated.length > 0 && emptyOnly) break;\n\n arrayDataTranslated = arrayDataFrom.map(() => ({\n id: ObjectID().toHexString(),\n }));\n }\n\n arrayDataTranslated.forEach((item, index) => {\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: arrayDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = arrayDataTranslated;\n\n break;\n }\n\n case 'blocks': {\n const blocksDataFrom = siblingDataFrom[field.name] as {\n blockType: string;\n id: string;\n }[];\n\n if (isEmpty(blocksDataFrom)) break;\n\n let blocksDataTranslated =\n (siblingDataTranslated[field.name] as { blockType: string; id: string }[] | undefined) ??\n [];\n\n if (field.localized || localizedParent) {\n if (blocksDataTranslated.length > 0 && emptyOnly) break;\n\n blocksDataTranslated = blocksDataFrom.map(({ blockType }) => ({\n blockType,\n id: ObjectID().toHexString(),\n }));\n }\n\n blocksDataTranslated.forEach((item, index) => {\n const block = field.blocks.find((each: Record<string, unknown>) => each.slug === item.blockType);\n\n if (!block) return;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: blocksDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = blocksDataTranslated;\n\n break;\n }\n\n case 'collapsible':\n case 'row':\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n break;\n\n // long ass cases here we have\n case 'date':\n case 'checkbox':\n case 'json':\n case 'code':\n case 'email':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'select':\n case 'upload':\n siblingDataTranslated[field.name] = siblingDataFrom[field.name];\n\n break;\n\n case 'text':\n case 'textarea':\n if (field.custom && typeof field.custom === 'object' && field.custom.translatorSkip) break;\n\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n // do not translate the block ID or admin-facing label\n if (field.name === 'blockName' || field.name === 'id') {\n break;\n }\n\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingDataTranslated[field.name] = translated;\n },\n value: siblingDataFrom[field.name],\n });\n break;\n\n case 'richText': {\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n const richTextDataFrom = siblingDataFrom[field.name] as object;\n\n siblingDataTranslated[field.name] = richTextDataFrom;\n\n if (!richTextDataFrom) break;\n\n const isSlate = Array.isArray(richTextDataFrom);\n\n const isLexical = 'root' in richTextDataFrom;\n\n if (!isSlate && !isLexical) break;\n\n if (isLexical) {\n const root = (siblingDataTranslated[field.name] as Record<string, unknown>)\n ?.root as Record<string, unknown>;\n\n if (root) {\n traverseRichText({\n onText: (siblingData)=>{\n valuesToTranslate.push({\n onTranslate: (translated: string)=>{\n siblingData.text = translated;\n },\n value: siblingData.text\n });\n },\n root\n });\n\n const richTextBlocksGetSubFields = (field.editor as any)?.editorConfig?.features?.getSubFields?.get('block');\n if (typeof richTextBlocksGetSubFields !== 'function') break;\n const richTextBlocks = richTextBlocksGetSubFields('block');\n const richTextBlockDataFrom = (richTextDataFrom.root as Record<string, unknown>)?.children;\n if (isEmpty(richTextBlockDataFrom) || !Array.isArray(richTextBlockDataFrom) || isEmpty(richTextBlocks)) break;\n let richTextBlocksDataTranslated = ((siblingDataTranslated[field.name] as Record<string, unknown>)?.root as Record<string, unknown>)?.children as Record<string, unknown>[] ?? [];\n\n if (field.localized || localizedParent) {\n if (richTextBlocksDataTranslated.length > 0 && emptyOnly) break;\n richTextBlocksDataTranslated = richTextBlockDataFrom.map((blockData)=>{\n if (blockData?.fields?.blockType) {\n return {\n ...blockData,\n fields: {\n blockType: blockData?.fields?.blockType,\n id: ObjectID().toHexString()\n }\n }\n }\n return blockData;\n });\n }\n\n richTextBlocksDataTranslated.forEach((item, index)=>{\n const block = richTextBlocks[0].blocks.find((each: Record<string, unknown>)=>each.slug && each.slug === (item.fields as Record<string, unknown>)?.blockType);\n if (!block) return;\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: richTextBlockDataFrom[index].fields,\n siblingDataTranslated: item.fields as Record<string, unknown>,\n translatedData,\n valuesToTranslate\n });\n });\n ((siblingDataTranslated[field.name] as Record<string, unknown>).root as Record<string, unknown>).children = richTextBlocksDataTranslated;\n }\n } else {\n for (const root of siblingDataTranslated[field.name] as unknown[]) {\n traverseRichText({\n onText: (siblingData) => {\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingData.text = translated;\n },\n value: siblingData.text,\n });\n },\n root: root as Record<string, unknown>,\n });\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n }\n};\n"],"names":["ObjectID","tabHasName","isEmpty","traverseRichText","traverseFields","dataFrom","emptyOnly","fields","localizedParent","siblingDataFrom","siblingDataTranslated","translatedData","valuesToTranslate","field","type","tab","tabs","hasName","tabDataFrom","name","tabDataTranslated","localized","groupDataFrom","groupDataTranslated","id","toHexString","arrayDataFrom","arrayDataTranslated","length","map","forEach","item","index","blocksDataFrom","blocksDataTranslated","blockType","block","blocks","find","each","slug","custom","translatorSkip","push","onTranslate","translated","value","richTextDataFrom","isSlate","Array","isArray","isLexical","root","onText","siblingData","text","richTextBlocksGetSubFields","editor","editorConfig","features","getSubFields","get","richTextBlocks","richTextBlockDataFrom","children","richTextBlocksDataTranslated","blockData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/translate/traverseFields.ts"],"sourcesContent":["import ObjectID from 'bson-objectid';\nimport type { Field } from 'payload';\nimport { tabHasName } from 'payload/shared';\n\nimport { isEmpty } from '../utils/isEmpty';\nimport { traverseRichText } from './traverseRichText';\nimport type { ValueToTranslate } from './types';\n\nexport const traverseFields = ({\n dataFrom,\n emptyOnly,\n fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n}: {\n dataFrom: Record<string, unknown>;\n emptyOnly?: boolean;\n fields: Field[];\n localizedParent?: boolean;\n siblingDataFrom?: Record<string, unknown>;\n siblingDataTranslated?: Record<string, unknown>;\n translatedData: Record<string, unknown>;\n valuesToTranslate: ValueToTranslate[];\n}) => {\n siblingDataFrom = siblingDataFrom ?? dataFrom;\n siblingDataTranslated = siblingDataTranslated ?? translatedData;\n\n for (const field of fields) {\n switch (field.type) {\n case 'tabs':\n for (const tab of field.tabs) {\n const hasName = tabHasName(tab);\n\n const tabDataFrom = hasName\n ? (siblingDataFrom[tab.name] as Record<string, unknown>)\n : siblingDataFrom;\n\n if (!tabDataFrom) return;\n\n const tabDataTranslated = hasName\n ? ((siblingDataTranslated[tab.name] as Record<string, unknown>) ?? {})\n : siblingDataTranslated;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: tab.fields,\n localizedParent: tab.localized,\n siblingDataFrom: tabDataFrom,\n siblingDataTranslated: tabDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n }\n\n break;\n\n case 'group': {\n const groupDataFrom = siblingDataFrom[field.name] as Record<string, unknown>;\n\n if (!groupDataFrom) break;\n\n let groupDataTranslated =\n (siblingDataTranslated[field.name] as Record<string, unknown>);\n\n if (!groupDataTranslated) {\n groupDataTranslated = {id: ObjectID().toHexString()};\n siblingDataTranslated[field.name] = groupDataTranslated;\n }\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: groupDataFrom,\n siblingDataTranslated: groupDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n\n break;\n }\n\n case 'array': {\n const arrayDataFrom = siblingDataFrom[field.name] as {\n id: string;\n }[];\n\n if (isEmpty(arrayDataFrom)) break;\n\n let arrayDataTranslated =\n (siblingDataTranslated[field.name] as { id: string }[] | undefined) ?? [];\n\n if (field.localized || localizedParent) {\n if (arrayDataTranslated.length > 0 && emptyOnly) break;\n\n arrayDataTranslated = arrayDataFrom.map(() => ({\n id: ObjectID().toHexString(),\n }));\n }\n\n if (!Array.isArray(arrayDataTranslated)) {\n break;\n }\n arrayDataTranslated.forEach((item, index) => {\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: arrayDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = arrayDataTranslated;\n\n break;\n }\n\n case 'blocks': {\n const blocksDataFrom = siblingDataFrom[field.name] as {\n blockType: string;\n id: string;\n }[];\n\n if (isEmpty(blocksDataFrom)) break;\n\n let blocksDataTranslated =\n (siblingDataTranslated[field.name] as { blockType: string; id: string }[] | undefined) ??\n [];\n\n if (field.localized || localizedParent) {\n if (blocksDataTranslated.length > 0 && emptyOnly) break;\n\n blocksDataTranslated = blocksDataFrom.map(({ blockType }) => ({\n blockType,\n id: ObjectID().toHexString(),\n }));\n }\n\n blocksDataTranslated.forEach((item, index) => {\n const block = field.blocks.find((each: Record<string, unknown>) => each.slug === item.blockType);\n\n if (!block) return;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: blocksDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = blocksDataTranslated;\n\n break;\n }\n\n case 'collapsible':\n case 'row':\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n break;\n\n // long ass cases here we have\n case 'date':\n case 'checkbox':\n case 'json':\n case 'code':\n case 'email':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'select':\n case 'upload':\n siblingDataTranslated[field.name] = siblingDataFrom[field.name];\n\n break;\n\n case 'text':\n case 'textarea':\n if (field.custom && typeof field.custom === 'object' && field.custom.translatorSkip) break;\n\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n // do not translate the block ID or admin-facing label\n if (field.name === 'id') {\n break;\n }\n\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingDataTranslated[field.name] = translated;\n },\n value: siblingDataFrom[field.name],\n });\n break;\n\n case 'richText': {\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n const richTextDataFrom = siblingDataFrom[field.name] as object;\n\n siblingDataTranslated[field.name] = richTextDataFrom;\n\n if (!richTextDataFrom) break;\n\n const isSlate = Array.isArray(richTextDataFrom);\n\n const isLexical = 'root' in richTextDataFrom;\n\n if (!isSlate && !isLexical) break;\n\n if (isLexical) {\n const root = (siblingDataTranslated[field.name] as Record<string, unknown>)\n ?.root as Record<string, unknown>;\n\n if (root) {\n traverseRichText({\n onText: (siblingData)=>{\n valuesToTranslate.push({\n onTranslate: (translated: string)=>{\n siblingData.text = translated;\n },\n value: siblingData.text\n });\n },\n root\n });\n\n const richTextBlocksGetSubFields = (field.editor as any)?.editorConfig?.features?.getSubFields?.get('block');\n if (typeof richTextBlocksGetSubFields !== 'function') break;\n const richTextBlocks = richTextBlocksGetSubFields('block');\n const richTextBlockDataFrom = (richTextDataFrom.root as Record<string, unknown>)?.children;\n if (isEmpty(richTextBlockDataFrom) || !Array.isArray(richTextBlockDataFrom) || isEmpty(richTextBlocks)) break;\n let richTextBlocksDataTranslated = ((siblingDataTranslated[field.name] as Record<string, unknown>)?.root as Record<string, unknown>)?.children as Record<string, unknown>[] ?? [];\n\n if (field.localized || localizedParent) {\n if (richTextBlocksDataTranslated.length > 0 && emptyOnly) break;\n richTextBlocksDataTranslated = richTextBlockDataFrom.map((blockData)=>{\n if (blockData?.fields?.blockType) {\n return {\n ...blockData,\n fields: {\n blockType: blockData?.fields?.blockType,\n id: ObjectID().toHexString()\n }\n }\n }\n return blockData;\n });\n }\n\n richTextBlocksDataTranslated.forEach((item, index)=>{\n const block = richTextBlocks[0].blocks.find((each: Record<string, unknown>)=>each.slug && each.slug === (item.fields as Record<string, unknown>)?.blockType);\n if (!block) return;\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: richTextBlockDataFrom[index].fields,\n siblingDataTranslated: item.fields as Record<string, unknown>,\n translatedData,\n valuesToTranslate\n });\n });\n ((siblingDataTranslated[field.name] as Record<string, unknown>).root as Record<string, unknown>).children = richTextBlocksDataTranslated;\n }\n } else {\n for (const root of siblingDataTranslated[field.name] as unknown[]) {\n traverseRichText({\n onText: (siblingData) => {\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingData.text = translated;\n },\n value: siblingData.text,\n });\n },\n root: root as Record<string, unknown>,\n });\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n }\n};\n"],"names":["ObjectID","tabHasName","isEmpty","traverseRichText","traverseFields","dataFrom","emptyOnly","fields","localizedParent","siblingDataFrom","siblingDataTranslated","translatedData","valuesToTranslate","field","type","tab","tabs","hasName","tabDataFrom","name","tabDataTranslated","localized","groupDataFrom","groupDataTranslated","id","toHexString","arrayDataFrom","arrayDataTranslated","length","map","Array","isArray","forEach","item","index","blocksDataFrom","blocksDataTranslated","blockType","block","blocks","find","each","slug","custom","translatorSkip","push","onTranslate","translated","value","richTextDataFrom","isSlate","isLexical","root","onText","siblingData","text","richTextBlocksGetSubFields","editor","editorConfig","features","getSubFields","get","richTextBlocks","richTextBlockDataFrom","children","richTextBlocksDataTranslated","blockData"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,5 +17,9 @@ export type TranslatorConfig = {
|
|
|
17
17
|
* Add resolvers that you want to include, examples on how to write your own in ./plugin/src/resolvers
|
|
18
18
|
*/
|
|
19
19
|
resolvers: TranslateResolver[];
|
|
20
|
+
/**
|
|
21
|
+
* Locales that should be excluded from translation (source and target)
|
|
22
|
+
*/
|
|
23
|
+
disabledLocales?: string[];
|
|
20
24
|
};
|
|
21
25
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug } from 'payload';\n\nimport type { TranslateResolver } from './resolvers/types';\n\nexport type TranslatorConfig = {\n /**\n * Collections with the enabled translator in the admin UI\n */\n collections: CollectionSlug[];\n /**\n * Disable the plugin\n */\n disabled?: boolean;\n /**\n * Globals with the enabled translator in the admin UI\n */\n globals: GlobalSlug[];\n /**\n * Add resolvers that you want to include, examples on how to write your own in ./plugin/src/resolvers\n */\n resolvers: TranslateResolver[];\n};\n"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug } from 'payload';\n\nimport type { TranslateResolver } from './resolvers/types';\n\nexport type TranslatorConfig = {\n /**\n * Collections with the enabled translator in the admin UI\n */\n collections: CollectionSlug[];\n /**\n * Disable the plugin\n */\n disabled?: boolean;\n /**\n * Globals with the enabled translator in the admin UI\n */\n globals: GlobalSlug[];\n /**\n * Add resolvers that you want to include, examples on how to write your own in ./plugin/src/resolvers\n */\n resolvers: TranslateResolver[];\n /**\n * Locales that should be excluded from translation (source and target)\n */\n disabledLocales?: string[];\n};\n"],"names":[],"mappings":"AAIA,WAqBE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extravirgin/payload-enchants-translator",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"bugs": "https://github.com/Kliqs/payload-enchants/issues",
|
|
6
6
|
"repository": "https://github.com/Kliqs/payload-enchants",
|
|
@@ -47,16 +47,6 @@
|
|
|
47
47
|
"files": [
|
|
48
48
|
"dist"
|
|
49
49
|
],
|
|
50
|
-
"scripts": {
|
|
51
|
-
"build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
|
|
52
|
-
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
53
|
-
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
54
|
-
"clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
|
|
55
|
-
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
|
|
56
|
-
"lint": "eslint src",
|
|
57
|
-
"lint:fix": "eslint --fix --ext .ts,.tsx src",
|
|
58
|
-
"prepublishOnly": "pnpm clean && pnpm build"
|
|
59
|
-
},
|
|
60
50
|
"dependencies": {
|
|
61
51
|
"bson-objectid": "^2.0.4",
|
|
62
52
|
"he": "^1.2.0"
|
|
@@ -78,5 +68,14 @@
|
|
|
78
68
|
"registry": "https://registry.npmjs.org/"
|
|
79
69
|
},
|
|
80
70
|
"main": "./dist/index.js",
|
|
81
|
-
"types": "./dist/index.d.ts"
|
|
82
|
-
|
|
71
|
+
"types": "./dist/index.d.ts",
|
|
72
|
+
"scripts": {
|
|
73
|
+
"build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
|
|
74
|
+
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
75
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
76
|
+
"clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
|
|
77
|
+
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
|
|
78
|
+
"lint": "eslint src",
|
|
79
|
+
"lint:fix": "eslint --fix --ext .ts,.tsx src"
|
|
80
|
+
}
|
|
81
|
+
}
|