sanity-plugin-internationalized-array 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -24
- package/lib/cjs/index.js +157 -131
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/index.js +156 -118
- package/lib/esm/index.js.map +1 -1
- package/lib/types/index.d.ts +4 -11
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/components/InternationalizedArrayInput.tsx +20 -8
- package/src/components/createFieldName.ts +20 -0
- package/src/index.ts +1 -0
- package/src/plugin.tsx +23 -0
- package/src/schema/array.ts +69 -0
- package/src/schema/object.ts +29 -0
- package/src/types.ts +4 -2
- package/src/index.tsx +0 -51
- package/src/internationalizedArray.ts +0 -111
package/lib/esm/index.js
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
import {defineField as $
|
|
2
|
-
import {jsx as $
|
|
3
|
-
import {useMemo as $
|
|
4
|
-
import {insert as $
|
|
5
|
-
import {Stack as $
|
|
6
|
-
import {RemoveIcon as $
|
|
7
|
-
import $
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import {createPlugin as $gGrEF$createPlugin, defineField as $gGrEF$defineField} from "sanity";
|
|
2
|
+
import {jsx as $gGrEF$jsx, jsxs as $gGrEF$jsxs} from "react/jsx-runtime";
|
|
3
|
+
import {useMemo as $gGrEF$useMemo, useCallback as $gGrEF$useCallback} from "react";
|
|
4
|
+
import {insert as $gGrEF$insert, setIfMissing as $gGrEF$setIfMissing, unset as $gGrEF$unset, set as $gGrEF$set, MemberItem as $gGrEF$MemberItem, FormFieldValidationStatus as $gGrEF$FormFieldValidationStatus} from "sanity/form";
|
|
5
|
+
import {useToast as $gGrEF$useToast, Stack as $gGrEF$Stack, Box as $gGrEF$Box, Label as $gGrEF$Label, Flex as $gGrEF$Flex, Button as $gGrEF$Button, Grid as $gGrEF$Grid, Card as $gGrEF$Card, Text as $gGrEF$Text, Code as $gGrEF$Code} from "@sanity/ui";
|
|
6
|
+
import {RemoveIcon as $gGrEF$RemoveIcon, RestoreIcon as $gGrEF$RestoreIcon, AddIcon as $gGrEF$AddIcon} from "@sanity/icons";
|
|
7
|
+
import $gGrEF$styledcomponents, {css as $gGrEF$css} from "styled-components";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
function $5c51df8bc000fd76$export$8a7688a96d852767(string) {
|
|
12
|
+
return string.replace(/-([a-z])/g, (g)=>g[1].toUpperCase());
|
|
13
|
+
}
|
|
14
|
+
function $5c51df8bc000fd76$export$348afa8c9ff47183(string) {
|
|
15
|
+
return string.split(` `).map((word)=>word.charAt(0).toUpperCase() + word.slice(1)).join(` `);
|
|
16
|
+
}
|
|
17
|
+
function $5c51df8bc000fd76$export$26c6f48841fe1a8a(string) {
|
|
18
|
+
return $5c51df8bc000fd76$export$348afa8c9ff47183($5c51df8bc000fd76$export$8a7688a96d852767(string));
|
|
19
|
+
}
|
|
20
|
+
function $5c51df8bc000fd76$export$ab1ce2a474f41f52(name, addValue = false) {
|
|
21
|
+
return addValue ? [
|
|
22
|
+
`internationalizedArray`,
|
|
23
|
+
$5c51df8bc000fd76$export$26c6f48841fe1a8a(name),
|
|
24
|
+
`Value`
|
|
25
|
+
].join(``) : [
|
|
26
|
+
`internationalizedArray`,
|
|
27
|
+
$5c51df8bc000fd76$export$26c6f48841fe1a8a(name)
|
|
28
|
+
].join(``);
|
|
11
29
|
}
|
|
12
|
-
var $e7e26cac6788e7ab$exports = {};
|
|
13
30
|
|
|
14
|
-
$parcel$export($e7e26cac6788e7ab$exports, "internationalizedArray", () => $e7e26cac6788e7ab$export$bec7eb13daf35f0e);
|
|
15
31
|
|
|
16
32
|
|
|
17
33
|
|
|
@@ -25,12 +41,12 @@ $parcel$export($e7e26cac6788e7ab$exports, "internationalizedArray", () => $e7e26
|
|
|
25
41
|
// https://github.com/styled-components/styled-components/issues/2449
|
|
26
42
|
// Table
|
|
27
43
|
const $32ee6db03f46d8dd$var$TableWrapper = (props = {})=>{
|
|
28
|
-
return /*#__PURE__*/ (0, $
|
|
44
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
|
|
29
45
|
as: "table",
|
|
30
46
|
...props
|
|
31
47
|
});
|
|
32
48
|
};
|
|
33
|
-
const $32ee6db03f46d8dd$var$StyledTable = (0, $
|
|
49
|
+
const $32ee6db03f46d8dd$var$StyledTable = (0, $gGrEF$styledcomponents)($32ee6db03f46d8dd$var$TableWrapper)(()=>(0, $gGrEF$css)`
|
|
34
50
|
display: table;
|
|
35
51
|
width: 100%;
|
|
36
52
|
|
|
@@ -40,19 +56,19 @@ const $32ee6db03f46d8dd$var$StyledTable = (0, $7XdDa$styledcomponents)($32ee6db0
|
|
|
40
56
|
`);
|
|
41
57
|
function $32ee6db03f46d8dd$export$54ec01a60f47d33d(props) {
|
|
42
58
|
const { children: children , ...rest } = props;
|
|
43
|
-
return /*#__PURE__*/ (0, $
|
|
59
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)($32ee6db03f46d8dd$var$StyledTable, {
|
|
44
60
|
...rest,
|
|
45
61
|
children: children
|
|
46
62
|
});
|
|
47
63
|
}
|
|
48
64
|
// Row
|
|
49
65
|
const $32ee6db03f46d8dd$var$RowWrapper = (props = {})=>{
|
|
50
|
-
return /*#__PURE__*/ (0, $
|
|
66
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Card), {
|
|
51
67
|
as: "tr",
|
|
52
68
|
...props
|
|
53
69
|
});
|
|
54
70
|
};
|
|
55
|
-
const $32ee6db03f46d8dd$var$StyledRow = (0, $
|
|
71
|
+
const $32ee6db03f46d8dd$var$StyledRow = (0, $gGrEF$styledcomponents)($32ee6db03f46d8dd$var$RowWrapper)(()=>(0, $gGrEF$css)`
|
|
56
72
|
display: table-row;
|
|
57
73
|
|
|
58
74
|
&:not([hidden]) {
|
|
@@ -61,19 +77,19 @@ const $32ee6db03f46d8dd$var$StyledRow = (0, $7XdDa$styledcomponents)($32ee6db03f
|
|
|
61
77
|
`);
|
|
62
78
|
function $32ee6db03f46d8dd$export$b05581f4e764e162(props) {
|
|
63
79
|
const { children: children , ...rest } = props;
|
|
64
|
-
return /*#__PURE__*/ (0, $
|
|
80
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)($32ee6db03f46d8dd$var$StyledRow, {
|
|
65
81
|
...rest,
|
|
66
82
|
children: children
|
|
67
83
|
});
|
|
68
84
|
}
|
|
69
85
|
// Cell
|
|
70
86
|
const $32ee6db03f46d8dd$var$CellWrapper = (props = {})=>{
|
|
71
|
-
return /*#__PURE__*/ (0, $
|
|
87
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
|
|
72
88
|
as: "td",
|
|
73
89
|
...props
|
|
74
90
|
});
|
|
75
91
|
};
|
|
76
|
-
const $32ee6db03f46d8dd$var$StyledCell = (0, $
|
|
92
|
+
const $32ee6db03f46d8dd$var$StyledCell = (0, $gGrEF$styledcomponents)($32ee6db03f46d8dd$var$CellWrapper)(()=>(0, $gGrEF$css)`
|
|
77
93
|
display: table-cell;
|
|
78
94
|
|
|
79
95
|
&:not([hidden]) {
|
|
@@ -82,7 +98,7 @@ const $32ee6db03f46d8dd$var$StyledCell = (0, $7XdDa$styledcomponents)($32ee6db03
|
|
|
82
98
|
`);
|
|
83
99
|
function $32ee6db03f46d8dd$export$1e4baea7053fc0e3(props) {
|
|
84
100
|
const { children: children , ...rest } = props;
|
|
85
|
-
return /*#__PURE__*/ (0, $
|
|
101
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)($32ee6db03f46d8dd$var$StyledCell, {
|
|
86
102
|
...rest,
|
|
87
103
|
children: children
|
|
88
104
|
});
|
|
@@ -106,37 +122,37 @@ const $e183d660634d2ba0$var$schemaExample = {
|
|
|
106
122
|
]
|
|
107
123
|
};
|
|
108
124
|
function $e183d660634d2ba0$export$2e2bcd8739ae039() {
|
|
109
|
-
return /*#__PURE__*/ (0, $
|
|
125
|
+
return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Card), {
|
|
110
126
|
tone: "caution",
|
|
111
127
|
border: true,
|
|
112
128
|
radius: 2,
|
|
113
129
|
padding: 3,
|
|
114
|
-
children: /*#__PURE__*/ (0, $
|
|
130
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Stack), {
|
|
115
131
|
space: 4,
|
|
116
132
|
children: [
|
|
117
|
-
/*#__PURE__*/ (0, $
|
|
133
|
+
/*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Text), {
|
|
118
134
|
children: [
|
|
119
135
|
"An array of language objects must be passed into the ",
|
|
120
|
-
/*#__PURE__*/ (0, $
|
|
136
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)("code", {
|
|
121
137
|
children: "internationalizedArray"
|
|
122
138
|
}),
|
|
123
139
|
" ",
|
|
124
140
|
"helper function, each with an ",
|
|
125
|
-
/*#__PURE__*/ (0, $
|
|
141
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)("code", {
|
|
126
142
|
children: "id"
|
|
127
143
|
}),
|
|
128
144
|
" and ",
|
|
129
|
-
/*#__PURE__*/ (0, $
|
|
145
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)("code", {
|
|
130
146
|
children: "title"
|
|
131
147
|
}),
|
|
132
148
|
" field. Example:"
|
|
133
149
|
]
|
|
134
150
|
}),
|
|
135
|
-
/*#__PURE__*/ (0, $
|
|
151
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Card), {
|
|
136
152
|
padding: 2,
|
|
137
153
|
border: true,
|
|
138
154
|
radius: 2,
|
|
139
|
-
children: /*#__PURE__*/ (0, $
|
|
155
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Code), {
|
|
140
156
|
size: 1,
|
|
141
157
|
language: "javascript",
|
|
142
158
|
children: JSON.stringify($e183d660634d2ba0$var$schemaExample, null, 2)
|
|
@@ -161,10 +177,11 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
161
177
|
const { members: members , value: value , schemaType: schemaType , onChange: onChange } = props;
|
|
162
178
|
const readOnly = typeof schemaType.readOnly === "boolean" ? schemaType.readOnly : false;
|
|
163
179
|
const { options: options } = schemaType;
|
|
164
|
-
const
|
|
180
|
+
const toast = (0, $gGrEF$useToast)();
|
|
181
|
+
const languages = (0, $gGrEF$useMemo)(()=>options?.languages ?? [], [
|
|
165
182
|
options
|
|
166
183
|
]);
|
|
167
|
-
const handleAddLanguage = (0, $
|
|
184
|
+
const handleAddLanguage = (0, $gGrEF$useCallback)((languageId)=>{
|
|
168
185
|
// Create new items
|
|
169
186
|
const newItems = languageId ? [
|
|
170
187
|
{
|
|
@@ -181,22 +198,23 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
181
198
|
// What languages are there beyond that index?
|
|
182
199
|
const remainingLanguages = languages.slice(languageIndex + 1);
|
|
183
200
|
// So what is the index in the current value array of the next language in the language array?
|
|
184
|
-
const nextLanguageIndex = languagesInUse.findIndex((l)
|
|
201
|
+
const nextLanguageIndex = languagesInUse.findIndex((l)=>// eslint-disable-next-line max-nested-callbacks
|
|
202
|
+
remainingLanguages.find((r)=>r.id === l._key));
|
|
185
203
|
// Keep local state up to date incase multiple insertions are being made
|
|
186
204
|
if (nextLanguageIndex < 0) languagesInUse.push(item);
|
|
187
205
|
else languagesInUse.splice(nextLanguageIndex, 0, item);
|
|
188
|
-
return nextLanguageIndex < 0 ? (0, $
|
|
206
|
+
return nextLanguageIndex < 0 ? (0, $gGrEF$insert)([
|
|
189
207
|
item
|
|
190
208
|
], "after", [
|
|
191
209
|
nextLanguageIndex
|
|
192
|
-
]) : (0, $
|
|
210
|
+
]) : (0, $gGrEF$insert)([
|
|
193
211
|
item
|
|
194
212
|
], "before", [
|
|
195
213
|
nextLanguageIndex
|
|
196
214
|
]);
|
|
197
215
|
});
|
|
198
216
|
onChange([
|
|
199
|
-
(0, $
|
|
217
|
+
(0, $gGrEF$setIfMissing)([]),
|
|
200
218
|
...insertions
|
|
201
219
|
]);
|
|
202
220
|
}, [
|
|
@@ -204,8 +222,8 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
204
222
|
onChange,
|
|
205
223
|
value
|
|
206
224
|
]);
|
|
207
|
-
const handleUnsetByKey = (0, $
|
|
208
|
-
onChange((0, $
|
|
225
|
+
const handleUnsetByKey = (0, $gGrEF$useCallback)((_key)=>{
|
|
226
|
+
onChange((0, $gGrEF$unset)([
|
|
209
227
|
{
|
|
210
228
|
_key: _key
|
|
211
229
|
}
|
|
@@ -214,29 +232,35 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
214
232
|
onChange
|
|
215
233
|
]);
|
|
216
234
|
// TODO: This is lazy, reordering and re-setting the whole array – it could be surgical
|
|
217
|
-
const handleRestoreOrder = (0, $
|
|
235
|
+
const handleRestoreOrder = (0, $gGrEF$useCallback)(()=>{
|
|
218
236
|
if (!value?.length) return;
|
|
237
|
+
console.log(value);
|
|
219
238
|
// Create a new value array in the correct order
|
|
220
239
|
// This would also strip out values that don't have a language as the key
|
|
221
240
|
const updatedValue = value.reduce((acc, v)=>{
|
|
222
241
|
const newIndex = languages.findIndex((l)=>l.id === v?._key);
|
|
223
|
-
if (newIndex) acc[newIndex] = v;
|
|
242
|
+
if (newIndex > -1) acc[newIndex] = v;
|
|
224
243
|
return acc;
|
|
225
244
|
}, []).filter(Boolean);
|
|
226
|
-
|
|
245
|
+
if (value.length !== updatedValue.length) toast.push({
|
|
246
|
+
title: "There was an error reordering languages",
|
|
247
|
+
status: "warning"
|
|
248
|
+
});
|
|
249
|
+
onChange((0, $gGrEF$set)(updatedValue));
|
|
227
250
|
}, [
|
|
251
|
+
toast,
|
|
228
252
|
languages,
|
|
229
253
|
onChange,
|
|
230
254
|
value
|
|
231
255
|
]);
|
|
232
|
-
const allKeysAreLanguages = (0, $
|
|
256
|
+
const allKeysAreLanguages = (0, $gGrEF$useMemo)(()=>{
|
|
233
257
|
return value?.every((v)=>languages.find((l)=>l?.id === v?._key));
|
|
234
258
|
}, [
|
|
235
259
|
value,
|
|
236
260
|
languages
|
|
237
261
|
]);
|
|
238
262
|
// Check languages are in the correct order
|
|
239
|
-
const languagesOutOfOrder = (0, $
|
|
263
|
+
const languagesOutOfOrder = (0, $gGrEF$useMemo)(()=>{
|
|
240
264
|
if (!value?.length) return [];
|
|
241
265
|
const languagesInUse = languages.filter((l)=>value.find((v)=>v._key === l.id));
|
|
242
266
|
return value.map((v, vIndex)=>vIndex === languagesInUse.findIndex((l)=>l.id === v._key) ? null : v).filter(Boolean);
|
|
@@ -244,60 +268,60 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
244
268
|
value,
|
|
245
269
|
languages
|
|
246
270
|
]);
|
|
247
|
-
const languagesAreValid = (0, $
|
|
271
|
+
const languagesAreValid = (0, $gGrEF$useMemo)(()=>!languages?.length || languages?.length && languages.every((item)=>item.id && item.title), [
|
|
248
272
|
languages
|
|
249
273
|
]);
|
|
250
|
-
if (!languagesAreValid) return /*#__PURE__*/ (0, $
|
|
251
|
-
return /*#__PURE__*/ (0, $
|
|
274
|
+
if (!languagesAreValid) return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $e183d660634d2ba0$export$2e2bcd8739ae039), {});
|
|
275
|
+
return /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Stack), {
|
|
252
276
|
space: 2,
|
|
253
277
|
children: [
|
|
254
|
-
members?.length > 0 ? /*#__PURE__*/ (0, $
|
|
255
|
-
children: /*#__PURE__*/ (0, $
|
|
256
|
-
children: members.map((member)=>/*#__PURE__*/ (0, $
|
|
278
|
+
members?.length > 0 ? /*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$54ec01a60f47d33d), {
|
|
279
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsx)("tbody", {
|
|
280
|
+
children: members.map((member)=>/*#__PURE__*/ (0, $gGrEF$jsxs)((0, $32ee6db03f46d8dd$export$b05581f4e764e162), {
|
|
257
281
|
tone: member?.item?.validation?.length > 0 ? (0, $85e3448f0a0a82fa$export$16423358d6ebe294)(member.item.validation) : undefined,
|
|
258
282
|
children: [
|
|
259
|
-
/*#__PURE__*/ (0, $
|
|
283
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
|
|
260
284
|
style: {
|
|
261
285
|
verticalAlign: "bottom"
|
|
262
286
|
},
|
|
263
|
-
children: /*#__PURE__*/ (0, $
|
|
287
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
|
|
264
288
|
paddingY: 3,
|
|
265
289
|
paddingRight: 2,
|
|
266
|
-
children: /*#__PURE__*/ (0, $
|
|
290
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Label), {
|
|
267
291
|
muted: true,
|
|
268
292
|
size: 1,
|
|
269
293
|
children: member.key
|
|
270
294
|
})
|
|
271
295
|
})
|
|
272
296
|
}),
|
|
273
|
-
/*#__PURE__*/ (0, $
|
|
297
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
|
|
274
298
|
paddingRight: 2,
|
|
275
299
|
style: {
|
|
276
300
|
width: `100%`
|
|
277
301
|
},
|
|
278
|
-
children: /*#__PURE__*/ (0, $
|
|
302
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$MemberItem), {
|
|
279
303
|
...props,
|
|
280
304
|
member: member
|
|
281
305
|
})
|
|
282
306
|
}),
|
|
283
|
-
/*#__PURE__*/ (0, $
|
|
307
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
|
|
284
308
|
style: {
|
|
285
309
|
verticalAlign: "bottom"
|
|
286
310
|
},
|
|
287
|
-
children: /*#__PURE__*/ (0, $
|
|
311
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Flex), {
|
|
288
312
|
align: "center",
|
|
289
313
|
justify: "flex-end",
|
|
290
314
|
gap: 3,
|
|
291
315
|
children: [
|
|
292
|
-
member
|
|
316
|
+
member?.item?.validation?.length > 0 ? /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
|
|
293
317
|
paddingLeft: 2,
|
|
294
|
-
children: /*#__PURE__*/ (0, $
|
|
318
|
+
children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$FormFieldValidationStatus), {
|
|
295
319
|
validation: member.item.validation
|
|
296
320
|
})
|
|
297
321
|
}) : null,
|
|
298
|
-
/*#__PURE__*/ (0, $
|
|
322
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
|
|
299
323
|
mode: "ghost",
|
|
300
|
-
icon: (0, $
|
|
324
|
+
icon: (0, $gGrEF$RemoveIcon),
|
|
301
325
|
tone: "critical",
|
|
302
326
|
disabled: typeof readOnly === "boolean" ? readOnly : false,
|
|
303
327
|
onClick: ()=>handleUnsetByKey(member.key)
|
|
@@ -309,33 +333,33 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
309
333
|
}, member.key))
|
|
310
334
|
})
|
|
311
335
|
}) : null,
|
|
312
|
-
languagesOutOfOrder.length > 0 && allKeysAreLanguages ? /*#__PURE__*/ (0, $
|
|
336
|
+
languagesOutOfOrder.length > 0 && allKeysAreLanguages ? /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
|
|
313
337
|
tone: "caution",
|
|
314
|
-
icon: (0, $
|
|
338
|
+
icon: (0, $gGrEF$RestoreIcon),
|
|
315
339
|
onClick: ()=>handleRestoreOrder(),
|
|
316
340
|
text: "Restore order of languages"
|
|
317
341
|
}) : null,
|
|
318
|
-
|
|
342
|
+
languages?.length > 0 ? /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Stack), {
|
|
319
343
|
space: 2,
|
|
320
344
|
children: [
|
|
321
|
-
/*#__PURE__*/ (0, $
|
|
345
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Grid), {
|
|
322
346
|
columns: Math.min(languages.length, 5),
|
|
323
347
|
gap: 2,
|
|
324
|
-
children: languages.map((language)=>/*#__PURE__*/ (0, $
|
|
348
|
+
children: languages.map((language)=>/*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
|
|
325
349
|
tone: "primary",
|
|
326
350
|
mode: "ghost",
|
|
327
351
|
fontSize: 1,
|
|
328
352
|
disabled: readOnly || Boolean(value?.find((item)=>item._key === language.id)),
|
|
329
353
|
text: language.id.toUpperCase(),
|
|
330
|
-
icon: (0, $
|
|
354
|
+
icon: (0, $gGrEF$AddIcon),
|
|
331
355
|
onClick: ()=>handleAddLanguage(language.id)
|
|
332
356
|
}, language.id))
|
|
333
357
|
}),
|
|
334
|
-
/*#__PURE__*/ (0, $
|
|
358
|
+
/*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
|
|
335
359
|
tone: "primary",
|
|
336
360
|
mode: "ghost",
|
|
337
361
|
disabled: readOnly || value && value?.length >= languages?.length,
|
|
338
|
-
icon: (0, $
|
|
362
|
+
icon: (0, $gGrEF$AddIcon),
|
|
339
363
|
text: value?.length ? `Add missing languages` : `Add all languages`,
|
|
340
364
|
onClick: ()=>handleAddLanguage()
|
|
341
365
|
})
|
|
@@ -346,22 +370,14 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
|
|
|
346
370
|
}
|
|
347
371
|
|
|
348
372
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
type
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
config?.validation
|
|
358
|
-
];
|
|
359
|
-
return (0, $7XdDa$defineField)({
|
|
360
|
-
name: name,
|
|
361
|
-
title: config?.title ?? undefined,
|
|
362
|
-
group: config?.group ?? undefined,
|
|
363
|
-
hidden: config?.hidden ?? undefined,
|
|
364
|
-
readOnly: config?.readOnly ?? undefined,
|
|
373
|
+
var $581a585556642695$export$2e2bcd8739ae039 = (config)=>{
|
|
374
|
+
const { languages: languages , type: type } = config;
|
|
375
|
+
const typeName = typeof type === `string` ? type : type.name;
|
|
376
|
+
const arrayName = (0, $5c51df8bc000fd76$export$ab1ce2a474f41f52)(typeName);
|
|
377
|
+
const objectName = (0, $5c51df8bc000fd76$export$ab1ce2a474f41f52)(typeName, true);
|
|
378
|
+
return (0, $gGrEF$defineField)({
|
|
379
|
+
name: arrayName,
|
|
380
|
+
title: "Internationalized array",
|
|
365
381
|
type: "array",
|
|
366
382
|
components: {
|
|
367
383
|
input: (0, $e3540aa1271cf9b1$export$2e2bcd8739ae039)
|
|
@@ -370,33 +386,12 @@ function $e7e26cac6788e7ab$export$bec7eb13daf35f0e(config = $e7e26cac6788e7ab$va
|
|
|
370
386
|
languages: languages
|
|
371
387
|
},
|
|
372
388
|
of: [
|
|
373
|
-
{
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
name: "value",
|
|
378
|
-
type: type
|
|
379
|
-
},
|
|
380
|
-
],
|
|
381
|
-
preview: {
|
|
382
|
-
select: {
|
|
383
|
-
title: "value",
|
|
384
|
-
key: "_key"
|
|
385
|
-
},
|
|
386
|
-
prepare (select) {
|
|
387
|
-
const { title: title , key: key } = select;
|
|
388
|
-
return {
|
|
389
|
-
title: title,
|
|
390
|
-
subtitle: key.toUpperCase()
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
},
|
|
389
|
+
(0, $gGrEF$defineField)({
|
|
390
|
+
name: objectName,
|
|
391
|
+
type: objectName
|
|
392
|
+
})
|
|
395
393
|
],
|
|
396
|
-
|
|
397
|
-
validation: (rule)=>{
|
|
398
|
-
const rules = [];
|
|
399
|
-
rules.push(rule.custom((value, context)=>{
|
|
394
|
+
validation: (rule)=>rule.max(languages?.length).custom((value, context)=>{
|
|
400
395
|
const { languages: contextLanguages } = context?.type?.options ?? {};
|
|
401
396
|
const nonLanguageKeys = value?.length ? value.filter((item)=>!contextLanguages.find((language)=>item._key === language.id)) : [];
|
|
402
397
|
if (nonLanguageKeys.length) return {
|
|
@@ -432,18 +427,61 @@ function $e7e26cac6788e7ab$export$bec7eb13daf35f0e(config = $e7e26cac6788e7ab$va
|
|
|
432
427
|
])
|
|
433
428
|
};
|
|
434
429
|
return true;
|
|
435
|
-
})
|
|
436
|
-
if (languages?.length) rules.push(rule.max(languages.length));
|
|
437
|
-
return [
|
|
438
|
-
...rules,
|
|
439
|
-
...configValidation
|
|
440
|
-
].filter(Boolean);
|
|
441
|
-
}
|
|
430
|
+
})
|
|
442
431
|
});
|
|
443
|
-
}
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
var $3d48ee33fe42e7bc$export$2e2bcd8739ae039 = (config)=>{
|
|
438
|
+
const { type: type } = config;
|
|
439
|
+
const typeName = typeof type === `string` ? type : type.name;
|
|
440
|
+
const objectName = (0, $5c51df8bc000fd76$export$ab1ce2a474f41f52)(typeName, true);
|
|
441
|
+
return (0, $gGrEF$defineField)({
|
|
442
|
+
name: objectName,
|
|
443
|
+
title: `Internationalized array ${type}`,
|
|
444
|
+
type: "object",
|
|
445
|
+
fields: [
|
|
446
|
+
typeof type === `string` ? (0, $gGrEF$defineField)({
|
|
447
|
+
name: "value",
|
|
448
|
+
type: type
|
|
449
|
+
}) : {
|
|
450
|
+
...type,
|
|
451
|
+
name: "value"
|
|
452
|
+
},
|
|
453
|
+
]
|
|
454
|
+
});
|
|
455
|
+
};
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
const $91a08798d183e77b$var$CONFIG_DEFAULT = {
|
|
459
|
+
languages: [],
|
|
460
|
+
fieldTypes: []
|
|
461
|
+
};
|
|
462
|
+
const $91a08798d183e77b$export$bec7eb13daf35f0e = (0, $gGrEF$createPlugin)((config = $91a08798d183e77b$var$CONFIG_DEFAULT)=>{
|
|
463
|
+
const { languages: languages , fieldTypes: fieldTypes } = {
|
|
464
|
+
...$91a08798d183e77b$var$CONFIG_DEFAULT,
|
|
465
|
+
...config
|
|
466
|
+
};
|
|
467
|
+
return {
|
|
468
|
+
name: "sanity-plugin-internationalized-array",
|
|
469
|
+
schema: {
|
|
470
|
+
types: [
|
|
471
|
+
...fieldTypes.map((type)=>(0, $581a585556642695$export$2e2bcd8739ae039)({
|
|
472
|
+
type: type,
|
|
473
|
+
languages: languages
|
|
474
|
+
})),
|
|
475
|
+
...fieldTypes.map((type)=>(0, $3d48ee33fe42e7bc$export$2e2bcd8739ae039)({
|
|
476
|
+
type: type
|
|
477
|
+
})),
|
|
478
|
+
]
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
});
|
|
444
482
|
|
|
445
483
|
|
|
446
484
|
|
|
447
485
|
|
|
448
|
-
export {$
|
|
486
|
+
export {$91a08798d183e77b$export$bec7eb13daf35f0e as internationalizedArray};
|
|
449
487
|
//# sourceMappingURL=index.js.map
|