@sanity/document-internationalization 3.1.0 → 3.2.0
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/_chunks-cjs/resources.js +8 -0
- package/dist/_chunks-cjs/resources.js.map +1 -0
- package/dist/_chunks-es/resources.mjs +9 -0
- package/dist/_chunks-es/resources.mjs.map +1 -0
- package/dist/_legacy/resources.esm.js +9 -0
- package/dist/_legacy/resources.esm.js.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +524 -12
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +522 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +524 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/actions/DuplicateWithTranslationsAction.tsx +252 -0
- package/src/i18n/index.ts +21 -0
- package/src/i18n/resources.ts +7 -0
- package/src/index.ts +1 -0
- package/src/plugin.tsx +5 -0
package/dist/index.js
CHANGED
|
@@ -102,7 +102,7 @@ function shallowEqualArrays(arrA, arrB, equal = (a, b) => a === b) {
|
|
|
102
102
|
return !1;
|
|
103
103
|
return !0;
|
|
104
104
|
}
|
|
105
|
-
function query$1(fn, keys = null, preload = !1,
|
|
105
|
+
function query$1(fn, keys = null, preload = !1, config2 = {}) {
|
|
106
106
|
keys === null && (keys = [fn]);
|
|
107
107
|
for (const entry2 of globalCache)
|
|
108
108
|
if (shallowEqualArrays(keys, entry2.keys, entry2.equal)) {
|
|
@@ -111,13 +111,13 @@ function query$1(fn, keys = null, preload = !1, config = {}) {
|
|
|
111
111
|
if (Object.prototype.hasOwnProperty.call(entry2, "error"))
|
|
112
112
|
throw entry2.error;
|
|
113
113
|
if (Object.prototype.hasOwnProperty.call(entry2, "response"))
|
|
114
|
-
return
|
|
114
|
+
return config2.lifespan && config2.lifespan > 0 && (entry2.timeout && clearTimeout(entry2.timeout), entry2.timeout = setTimeout(entry2.remove, config2.lifespan)), entry2.response;
|
|
115
115
|
if (!preload)
|
|
116
116
|
throw entry2.promise;
|
|
117
117
|
}
|
|
118
118
|
const entry = {
|
|
119
119
|
keys,
|
|
120
|
-
equal:
|
|
120
|
+
equal: config2.equal,
|
|
121
121
|
remove: () => {
|
|
122
122
|
const index = globalCache.indexOf(entry);
|
|
123
123
|
index !== -1 && globalCache.splice(index, 1);
|
|
@@ -125,14 +125,14 @@ function query$1(fn, keys = null, preload = !1, config = {}) {
|
|
|
125
125
|
promise: (
|
|
126
126
|
// Execute the promise
|
|
127
127
|
(isPromise(fn) ? fn : fn(...keys)).then((response) => {
|
|
128
|
-
entry.response = response,
|
|
128
|
+
entry.response = response, config2.lifespan && config2.lifespan > 0 && (entry.timeout = setTimeout(entry.remove, config2.lifespan));
|
|
129
129
|
}).catch((error) => entry.error = error)
|
|
130
130
|
)
|
|
131
131
|
};
|
|
132
132
|
if (globalCache.push(entry), !preload)
|
|
133
133
|
throw entry.promise;
|
|
134
134
|
}
|
|
135
|
-
const suspend = (fn, keys,
|
|
135
|
+
const suspend = (fn, keys, config2) => query$1(fn, keys, !1, config2), DocumentInternationalizationContext = react.createContext(DEFAULT_CONFIG);
|
|
136
136
|
function useDocumentInternationalizationContext() {
|
|
137
137
|
return react.useContext(DocumentInternationalizationContext);
|
|
138
138
|
}
|
|
@@ -204,7 +204,392 @@ const DeleteTranslationAction = (props) => {
|
|
|
204
204
|
)
|
|
205
205
|
}
|
|
206
206
|
};
|
|
207
|
-
}
|
|
207
|
+
};
|
|
208
|
+
var extendStatics = function(d, b) {
|
|
209
|
+
return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
|
|
210
|
+
d2.__proto__ = b2;
|
|
211
|
+
} || function(d2, b2) {
|
|
212
|
+
for (var p in b2)
|
|
213
|
+
Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]);
|
|
214
|
+
}, extendStatics(d, b);
|
|
215
|
+
};
|
|
216
|
+
function __extends(d, b) {
|
|
217
|
+
if (typeof b != "function" && b !== null)
|
|
218
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
219
|
+
extendStatics(d, b);
|
|
220
|
+
function __() {
|
|
221
|
+
this.constructor = d;
|
|
222
|
+
}
|
|
223
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
224
|
+
}
|
|
225
|
+
function __values(o) {
|
|
226
|
+
var s = typeof Symbol == "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
227
|
+
if (m)
|
|
228
|
+
return m.call(o);
|
|
229
|
+
if (o && typeof o.length == "number")
|
|
230
|
+
return {
|
|
231
|
+
next: function() {
|
|
232
|
+
return o && i >= o.length && (o = void 0), { value: o && o[i++], done: !o };
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
236
|
+
}
|
|
237
|
+
function __read(o, n) {
|
|
238
|
+
var m = typeof Symbol == "function" && o[Symbol.iterator];
|
|
239
|
+
if (!m)
|
|
240
|
+
return o;
|
|
241
|
+
var i = m.call(o), r, ar = [], e;
|
|
242
|
+
try {
|
|
243
|
+
for (; (n === void 0 || n-- > 0) && !(r = i.next()).done; )
|
|
244
|
+
ar.push(r.value);
|
|
245
|
+
} catch (error) {
|
|
246
|
+
e = { error };
|
|
247
|
+
} finally {
|
|
248
|
+
try {
|
|
249
|
+
r && !r.done && (m = i.return) && m.call(i);
|
|
250
|
+
} finally {
|
|
251
|
+
if (e)
|
|
252
|
+
throw e.error;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return ar;
|
|
256
|
+
}
|
|
257
|
+
function __spreadArray(to, from, pack) {
|
|
258
|
+
if (pack || arguments.length === 2)
|
|
259
|
+
for (var i = 0, l = from.length, ar; i < l; i++)
|
|
260
|
+
(ar || !(i in from)) && (ar || (ar = Array.prototype.slice.call(from, 0, i)), ar[i] = from[i]);
|
|
261
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
262
|
+
}
|
|
263
|
+
function isFunction(value) {
|
|
264
|
+
return typeof value == "function";
|
|
265
|
+
}
|
|
266
|
+
function createErrorClass(createImpl) {
|
|
267
|
+
var _super = function(instance) {
|
|
268
|
+
Error.call(instance), instance.stack = new Error().stack;
|
|
269
|
+
}, ctorFunc = createImpl(_super);
|
|
270
|
+
return ctorFunc.prototype = Object.create(Error.prototype), ctorFunc.prototype.constructor = ctorFunc, ctorFunc;
|
|
271
|
+
}
|
|
272
|
+
var UnsubscriptionError = createErrorClass(function(_super) {
|
|
273
|
+
return function(errors) {
|
|
274
|
+
_super(this), this.message = errors ? errors.length + ` errors occurred during unsubscription:
|
|
275
|
+
` + errors.map(function(err, i) {
|
|
276
|
+
return i + 1 + ") " + err.toString();
|
|
277
|
+
}).join(`
|
|
278
|
+
`) : "", this.name = "UnsubscriptionError", this.errors = errors;
|
|
279
|
+
};
|
|
280
|
+
});
|
|
281
|
+
function arrRemove(arr, item) {
|
|
282
|
+
if (arr) {
|
|
283
|
+
var index = arr.indexOf(item);
|
|
284
|
+
0 <= index && arr.splice(index, 1);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
var Subscription = function() {
|
|
288
|
+
function Subscription2(initialTeardown) {
|
|
289
|
+
this.initialTeardown = initialTeardown, this.closed = !1, this._parentage = null, this._finalizers = null;
|
|
290
|
+
}
|
|
291
|
+
return Subscription2.prototype.unsubscribe = function() {
|
|
292
|
+
var e_1, _a, e_2, _b, errors;
|
|
293
|
+
if (!this.closed) {
|
|
294
|
+
this.closed = !0;
|
|
295
|
+
var _parentage = this._parentage;
|
|
296
|
+
if (_parentage)
|
|
297
|
+
if (this._parentage = null, Array.isArray(_parentage))
|
|
298
|
+
try {
|
|
299
|
+
for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {
|
|
300
|
+
var parent_1 = _parentage_1_1.value;
|
|
301
|
+
parent_1.remove(this);
|
|
302
|
+
}
|
|
303
|
+
} catch (e_1_1) {
|
|
304
|
+
e_1 = { error: e_1_1 };
|
|
305
|
+
} finally {
|
|
306
|
+
try {
|
|
307
|
+
_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return) && _a.call(_parentage_1);
|
|
308
|
+
} finally {
|
|
309
|
+
if (e_1)
|
|
310
|
+
throw e_1.error;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else
|
|
314
|
+
_parentage.remove(this);
|
|
315
|
+
var initialFinalizer = this.initialTeardown;
|
|
316
|
+
if (isFunction(initialFinalizer))
|
|
317
|
+
try {
|
|
318
|
+
initialFinalizer();
|
|
319
|
+
} catch (e) {
|
|
320
|
+
errors = e instanceof UnsubscriptionError ? e.errors : [e];
|
|
321
|
+
}
|
|
322
|
+
var _finalizers = this._finalizers;
|
|
323
|
+
if (_finalizers) {
|
|
324
|
+
this._finalizers = null;
|
|
325
|
+
try {
|
|
326
|
+
for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
|
|
327
|
+
var finalizer = _finalizers_1_1.value;
|
|
328
|
+
try {
|
|
329
|
+
execFinalizer(finalizer);
|
|
330
|
+
} catch (err) {
|
|
331
|
+
errors = errors != null ? errors : [], err instanceof UnsubscriptionError ? errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)) : errors.push(err);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
} catch (e_2_1) {
|
|
335
|
+
e_2 = { error: e_2_1 };
|
|
336
|
+
} finally {
|
|
337
|
+
try {
|
|
338
|
+
_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return) && _b.call(_finalizers_1);
|
|
339
|
+
} finally {
|
|
340
|
+
if (e_2)
|
|
341
|
+
throw e_2.error;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (errors)
|
|
346
|
+
throw new UnsubscriptionError(errors);
|
|
347
|
+
}
|
|
348
|
+
}, Subscription2.prototype.add = function(teardown) {
|
|
349
|
+
var _a;
|
|
350
|
+
if (teardown && teardown !== this)
|
|
351
|
+
if (this.closed)
|
|
352
|
+
execFinalizer(teardown);
|
|
353
|
+
else {
|
|
354
|
+
if (teardown instanceof Subscription2) {
|
|
355
|
+
if (teardown.closed || teardown._hasParent(this))
|
|
356
|
+
return;
|
|
357
|
+
teardown._addParent(this);
|
|
358
|
+
}
|
|
359
|
+
(this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
|
|
360
|
+
}
|
|
361
|
+
}, Subscription2.prototype._hasParent = function(parent) {
|
|
362
|
+
var _parentage = this._parentage;
|
|
363
|
+
return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent);
|
|
364
|
+
}, Subscription2.prototype._addParent = function(parent) {
|
|
365
|
+
var _parentage = this._parentage;
|
|
366
|
+
this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;
|
|
367
|
+
}, Subscription2.prototype._removeParent = function(parent) {
|
|
368
|
+
var _parentage = this._parentage;
|
|
369
|
+
_parentage === parent ? this._parentage = null : Array.isArray(_parentage) && arrRemove(_parentage, parent);
|
|
370
|
+
}, Subscription2.prototype.remove = function(teardown) {
|
|
371
|
+
var _finalizers = this._finalizers;
|
|
372
|
+
_finalizers && arrRemove(_finalizers, teardown), teardown instanceof Subscription2 && teardown._removeParent(this);
|
|
373
|
+
}, Subscription2.EMPTY = function() {
|
|
374
|
+
var empty = new Subscription2();
|
|
375
|
+
return empty.closed = !0, empty;
|
|
376
|
+
}(), Subscription2;
|
|
377
|
+
}();
|
|
378
|
+
function isSubscription(value) {
|
|
379
|
+
return value instanceof Subscription || value && "closed" in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe);
|
|
380
|
+
}
|
|
381
|
+
function execFinalizer(finalizer) {
|
|
382
|
+
isFunction(finalizer) ? finalizer() : finalizer.unsubscribe();
|
|
383
|
+
}
|
|
384
|
+
var config = {
|
|
385
|
+
onUnhandledError: null,
|
|
386
|
+
onStoppedNotification: null,
|
|
387
|
+
Promise: void 0,
|
|
388
|
+
useDeprecatedSynchronousErrorHandling: !1,
|
|
389
|
+
useDeprecatedNextContext: !1
|
|
390
|
+
}, timeoutProvider = {
|
|
391
|
+
setTimeout: function(handler, timeout) {
|
|
392
|
+
for (var args = [], _i = 2; _i < arguments.length; _i++)
|
|
393
|
+
args[_i - 2] = arguments[_i];
|
|
394
|
+
return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));
|
|
395
|
+
},
|
|
396
|
+
clearTimeout: function(handle) {
|
|
397
|
+
return clearTimeout(handle);
|
|
398
|
+
},
|
|
399
|
+
delegate: void 0
|
|
400
|
+
};
|
|
401
|
+
function reportUnhandledError(err) {
|
|
402
|
+
timeoutProvider.setTimeout(function() {
|
|
403
|
+
throw err;
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
function noop() {
|
|
407
|
+
}
|
|
408
|
+
var Subscriber = function(_super) {
|
|
409
|
+
__extends(Subscriber2, _super);
|
|
410
|
+
function Subscriber2(destination) {
|
|
411
|
+
var _this = _super.call(this) || this;
|
|
412
|
+
return _this.isStopped = !1, destination ? (_this.destination = destination, isSubscription(destination) && destination.add(_this)) : _this.destination = EMPTY_OBSERVER, _this;
|
|
413
|
+
}
|
|
414
|
+
return Subscriber2.create = function(next, error, complete) {
|
|
415
|
+
return new SafeSubscriber(next, error, complete);
|
|
416
|
+
}, Subscriber2.prototype.next = function(value) {
|
|
417
|
+
this.isStopped || this._next(value);
|
|
418
|
+
}, Subscriber2.prototype.error = function(err) {
|
|
419
|
+
this.isStopped || (this.isStopped = !0, this._error(err));
|
|
420
|
+
}, Subscriber2.prototype.complete = function() {
|
|
421
|
+
this.isStopped || (this.isStopped = !0, this._complete());
|
|
422
|
+
}, Subscriber2.prototype.unsubscribe = function() {
|
|
423
|
+
this.closed || (this.isStopped = !0, _super.prototype.unsubscribe.call(this), this.destination = null);
|
|
424
|
+
}, Subscriber2.prototype._next = function(value) {
|
|
425
|
+
this.destination.next(value);
|
|
426
|
+
}, Subscriber2.prototype._error = function(err) {
|
|
427
|
+
try {
|
|
428
|
+
this.destination.error(err);
|
|
429
|
+
} finally {
|
|
430
|
+
this.unsubscribe();
|
|
431
|
+
}
|
|
432
|
+
}, Subscriber2.prototype._complete = function() {
|
|
433
|
+
try {
|
|
434
|
+
this.destination.complete();
|
|
435
|
+
} finally {
|
|
436
|
+
this.unsubscribe();
|
|
437
|
+
}
|
|
438
|
+
}, Subscriber2;
|
|
439
|
+
}(Subscription), _bind = Function.prototype.bind;
|
|
440
|
+
function bind(fn, thisArg) {
|
|
441
|
+
return _bind.call(fn, thisArg);
|
|
442
|
+
}
|
|
443
|
+
var ConsumerObserver = function() {
|
|
444
|
+
function ConsumerObserver2(partialObserver) {
|
|
445
|
+
this.partialObserver = partialObserver;
|
|
446
|
+
}
|
|
447
|
+
return ConsumerObserver2.prototype.next = function(value) {
|
|
448
|
+
var partialObserver = this.partialObserver;
|
|
449
|
+
if (partialObserver.next)
|
|
450
|
+
try {
|
|
451
|
+
partialObserver.next(value);
|
|
452
|
+
} catch (error) {
|
|
453
|
+
handleUnhandledError(error);
|
|
454
|
+
}
|
|
455
|
+
}, ConsumerObserver2.prototype.error = function(err) {
|
|
456
|
+
var partialObserver = this.partialObserver;
|
|
457
|
+
if (partialObserver.error)
|
|
458
|
+
try {
|
|
459
|
+
partialObserver.error(err);
|
|
460
|
+
} catch (error) {
|
|
461
|
+
handleUnhandledError(error);
|
|
462
|
+
}
|
|
463
|
+
else
|
|
464
|
+
handleUnhandledError(err);
|
|
465
|
+
}, ConsumerObserver2.prototype.complete = function() {
|
|
466
|
+
var partialObserver = this.partialObserver;
|
|
467
|
+
if (partialObserver.complete)
|
|
468
|
+
try {
|
|
469
|
+
partialObserver.complete();
|
|
470
|
+
} catch (error) {
|
|
471
|
+
handleUnhandledError(error);
|
|
472
|
+
}
|
|
473
|
+
}, ConsumerObserver2;
|
|
474
|
+
}(), SafeSubscriber = function(_super) {
|
|
475
|
+
__extends(SafeSubscriber2, _super);
|
|
476
|
+
function SafeSubscriber2(observerOrNext, error, complete) {
|
|
477
|
+
var _this = _super.call(this) || this, partialObserver;
|
|
478
|
+
if (isFunction(observerOrNext) || !observerOrNext)
|
|
479
|
+
partialObserver = {
|
|
480
|
+
next: observerOrNext != null ? observerOrNext : void 0,
|
|
481
|
+
error: error != null ? error : void 0,
|
|
482
|
+
complete: complete != null ? complete : void 0
|
|
483
|
+
};
|
|
484
|
+
else {
|
|
485
|
+
var context_1;
|
|
486
|
+
_this && config.useDeprecatedNextContext ? (context_1 = Object.create(observerOrNext), context_1.unsubscribe = function() {
|
|
487
|
+
return _this.unsubscribe();
|
|
488
|
+
}, partialObserver = {
|
|
489
|
+
next: observerOrNext.next && bind(observerOrNext.next, context_1),
|
|
490
|
+
error: observerOrNext.error && bind(observerOrNext.error, context_1),
|
|
491
|
+
complete: observerOrNext.complete && bind(observerOrNext.complete, context_1)
|
|
492
|
+
}) : partialObserver = observerOrNext;
|
|
493
|
+
}
|
|
494
|
+
return _this.destination = new ConsumerObserver(partialObserver), _this;
|
|
495
|
+
}
|
|
496
|
+
return SafeSubscriber2;
|
|
497
|
+
}(Subscriber);
|
|
498
|
+
function handleUnhandledError(error) {
|
|
499
|
+
reportUnhandledError(error);
|
|
500
|
+
}
|
|
501
|
+
function defaultErrorHandler(err) {
|
|
502
|
+
throw err;
|
|
503
|
+
}
|
|
504
|
+
var EMPTY_OBSERVER = {
|
|
505
|
+
closed: !0,
|
|
506
|
+
next: noop,
|
|
507
|
+
error: defaultErrorHandler,
|
|
508
|
+
complete: noop
|
|
509
|
+
};
|
|
510
|
+
function hasLift(source) {
|
|
511
|
+
return isFunction(source == null ? void 0 : source.lift);
|
|
512
|
+
}
|
|
513
|
+
function operate(init) {
|
|
514
|
+
return function(source) {
|
|
515
|
+
if (hasLift(source))
|
|
516
|
+
return source.lift(function(liftedSource) {
|
|
517
|
+
try {
|
|
518
|
+
return init(liftedSource, this);
|
|
519
|
+
} catch (err) {
|
|
520
|
+
this.error(err);
|
|
521
|
+
}
|
|
522
|
+
});
|
|
523
|
+
throw new TypeError("Unable to lift unknown Observable type");
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
|
|
527
|
+
return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
|
|
528
|
+
}
|
|
529
|
+
var OperatorSubscriber = function(_super) {
|
|
530
|
+
__extends(OperatorSubscriber2, _super);
|
|
531
|
+
function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
|
|
532
|
+
var _this = _super.call(this, destination) || this;
|
|
533
|
+
return _this.onFinalize = onFinalize, _this.shouldUnsubscribe = shouldUnsubscribe, _this._next = onNext ? function(value) {
|
|
534
|
+
try {
|
|
535
|
+
onNext(value);
|
|
536
|
+
} catch (err) {
|
|
537
|
+
destination.error(err);
|
|
538
|
+
}
|
|
539
|
+
} : _super.prototype._next, _this._error = onError ? function(err) {
|
|
540
|
+
try {
|
|
541
|
+
onError(err);
|
|
542
|
+
} catch (err2) {
|
|
543
|
+
destination.error(err2);
|
|
544
|
+
} finally {
|
|
545
|
+
this.unsubscribe();
|
|
546
|
+
}
|
|
547
|
+
} : _super.prototype._error, _this._complete = onComplete ? function() {
|
|
548
|
+
try {
|
|
549
|
+
onComplete();
|
|
550
|
+
} catch (err) {
|
|
551
|
+
destination.error(err);
|
|
552
|
+
} finally {
|
|
553
|
+
this.unsubscribe();
|
|
554
|
+
}
|
|
555
|
+
} : _super.prototype._complete, _this;
|
|
556
|
+
}
|
|
557
|
+
return OperatorSubscriber2.prototype.unsubscribe = function() {
|
|
558
|
+
var _a;
|
|
559
|
+
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
|
|
560
|
+
var closed_1 = this.closed;
|
|
561
|
+
_super.prototype.unsubscribe.call(this), !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 || _a.call(this));
|
|
562
|
+
}
|
|
563
|
+
}, OperatorSubscriber2;
|
|
564
|
+
}(Subscriber), EmptyError = createErrorClass(function(_super) {
|
|
565
|
+
return function() {
|
|
566
|
+
_super(this), this.name = "EmptyError", this.message = "no elements in sequence";
|
|
567
|
+
};
|
|
568
|
+
});
|
|
569
|
+
function firstValueFrom(source, config2) {
|
|
570
|
+
var hasConfig = typeof config2 == "object";
|
|
571
|
+
return new Promise(function(resolve, reject) {
|
|
572
|
+
var subscriber = new SafeSubscriber({
|
|
573
|
+
next: function(value) {
|
|
574
|
+
resolve(value), subscriber.unsubscribe();
|
|
575
|
+
},
|
|
576
|
+
error: reject,
|
|
577
|
+
complete: function() {
|
|
578
|
+
hasConfig ? resolve(config2.defaultValue) : reject(new EmptyError());
|
|
579
|
+
}
|
|
580
|
+
});
|
|
581
|
+
source.subscribe(subscriber);
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
function filter(predicate, thisArg) {
|
|
585
|
+
return operate(function(source, subscriber) {
|
|
586
|
+
var index = 0;
|
|
587
|
+
source.subscribe(createOperatorSubscriber(subscriber, function(value) {
|
|
588
|
+
return predicate.call(thisArg, value, index++) && subscriber.next(value);
|
|
589
|
+
}));
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
const query = `*[_type == $translationSchema && $id in translations[].value._ref]{
|
|
208
593
|
_id,
|
|
209
594
|
_createdAt,
|
|
210
595
|
translations
|
|
@@ -215,6 +600,131 @@ function useTranslationMetadata(id) {
|
|
|
215
600
|
});
|
|
216
601
|
return { data, loading, error };
|
|
217
602
|
}
|
|
603
|
+
const documenti18nLocaleNamespace = "document-internationalization", documentInternationalizationUsEnglishLocaleBundle = sanity.defineLocaleResourceBundle({
|
|
604
|
+
locale: "en-US",
|
|
605
|
+
namespace: documenti18nLocaleNamespace,
|
|
606
|
+
resources: () => Promise.resolve().then(function() {
|
|
607
|
+
return require("./_chunks-cjs/resources.js");
|
|
608
|
+
})
|
|
609
|
+
}), DISABLED_REASON_KEY = {
|
|
610
|
+
METADATA_NOT_FOUND: "action.duplicate.disabled.missing-metadata",
|
|
611
|
+
MULTIPLE_METADATA: "action.duplicate.disabled.multiple-metadata",
|
|
612
|
+
NOTHING_TO_DUPLICATE: "action.duplicate.disabled.nothing-to-duplicate",
|
|
613
|
+
NOT_READY: "action.duplicate.disabled.not-ready"
|
|
614
|
+
}, DuplicateWithTranslationsAction = ({
|
|
615
|
+
id,
|
|
616
|
+
type,
|
|
617
|
+
onComplete
|
|
618
|
+
}) => {
|
|
619
|
+
const documentStore = sanity.useDocumentStore(), { duplicate } = sanity.useDocumentOperation(id, type), { navigateIntent } = router.useRouter(), [isDuplicating, setDuplicating] = react.useState(!1), [permissions, isPermissionsLoading] = sanity.useDocumentPairPermissions({
|
|
620
|
+
id,
|
|
621
|
+
type,
|
|
622
|
+
permission: "duplicate"
|
|
623
|
+
}), { data, loading: isMetadataDocumentLoading } = useTranslationMetadata(id), hasOneMetadataDocument = react.useMemo(() => Array.isArray(data) && data.length <= 1, [data]), metadataDocument = Array.isArray(data) && data.length ? data[0] : null, client = sanity.useClient(sanity.DEFAULT_STUDIO_CLIENT_OPTIONS), toast = ui.useToast(), { t: s } = sanity.useTranslation(structure.structureLocaleNamespace), { t: d } = sanity.useTranslation(documenti18nLocaleNamespace), currentUser = sanity.useCurrentUser(), handle = react.useCallback(async () => {
|
|
624
|
+
setDuplicating(!0);
|
|
625
|
+
try {
|
|
626
|
+
if (!metadataDocument)
|
|
627
|
+
throw new Error("Metadata document not found");
|
|
628
|
+
const translations = /* @__PURE__ */ new Map();
|
|
629
|
+
await Promise.all(
|
|
630
|
+
metadataDocument[TRANSLATIONS_ARRAY_NAME].map(async (translation) => {
|
|
631
|
+
var _a;
|
|
632
|
+
const dupeId2 = uuid.uuid(), locale = translation._key, docId = (_a = translation.value) == null ? void 0 : _a._ref;
|
|
633
|
+
if (!docId)
|
|
634
|
+
throw new Error("Translation document not found");
|
|
635
|
+
const { duplicate: duplicateTranslation } = await firstValueFrom(
|
|
636
|
+
documentStore.pair.editOperations(docId, type).pipe(filter((op) => op.duplicate.disabled !== "NOT_READY"))
|
|
637
|
+
);
|
|
638
|
+
if (duplicateTranslation.disabled)
|
|
639
|
+
throw new Error("Cannot duplicate document");
|
|
640
|
+
const duplicateTranslationSuccess = firstValueFrom(
|
|
641
|
+
documentStore.pair.operationEvents(docId, type).pipe(filter((e) => e.op === "duplicate" && e.type === "success"))
|
|
642
|
+
);
|
|
643
|
+
duplicateTranslation.execute(dupeId2), await duplicateTranslationSuccess, translations.set(locale, dupeId2);
|
|
644
|
+
})
|
|
645
|
+
);
|
|
646
|
+
const { duplicate: duplicateMetadata } = await firstValueFrom(
|
|
647
|
+
documentStore.pair.editOperations(metadataDocument._id, METADATA_SCHEMA_NAME).pipe(filter((op) => op.duplicate.disabled !== "NOT_READY"))
|
|
648
|
+
);
|
|
649
|
+
if (duplicateMetadata.disabled)
|
|
650
|
+
throw new Error("Cannot duplicate document");
|
|
651
|
+
const duplicateMetadataSuccess = firstValueFrom(
|
|
652
|
+
documentStore.pair.operationEvents(metadataDocument._id, METADATA_SCHEMA_NAME).pipe(filter((e) => e.op === "duplicate" && e.type === "success"))
|
|
653
|
+
), dupeId = uuid.uuid();
|
|
654
|
+
duplicateMetadata.execute(dupeId), await duplicateMetadataSuccess;
|
|
655
|
+
const patch = {
|
|
656
|
+
set: Object.fromEntries(
|
|
657
|
+
Array.from(translations.entries()).map(([locale, documentId]) => [
|
|
658
|
+
`${TRANSLATIONS_ARRAY_NAME}[_key == "${locale}"].value._ref`,
|
|
659
|
+
documentId
|
|
660
|
+
])
|
|
661
|
+
)
|
|
662
|
+
};
|
|
663
|
+
await client.transaction().patch(dupeId, patch).commit(), navigateIntent("edit", {
|
|
664
|
+
id: Array.from(translations.values()).at(0),
|
|
665
|
+
type
|
|
666
|
+
}), onComplete();
|
|
667
|
+
} catch (error) {
|
|
668
|
+
console.error(error), toast.push({
|
|
669
|
+
status: "error",
|
|
670
|
+
title: "Error duplicating document",
|
|
671
|
+
description: error instanceof Error ? error.message : "Failed to duplicate document"
|
|
672
|
+
});
|
|
673
|
+
} finally {
|
|
674
|
+
setDuplicating(!1);
|
|
675
|
+
}
|
|
676
|
+
}, [
|
|
677
|
+
client,
|
|
678
|
+
documentStore.pair,
|
|
679
|
+
metadataDocument,
|
|
680
|
+
navigateIntent,
|
|
681
|
+
onComplete,
|
|
682
|
+
toast,
|
|
683
|
+
type
|
|
684
|
+
]);
|
|
685
|
+
return react.useMemo(() => !isPermissionsLoading && !(permissions != null && permissions.granted) ? {
|
|
686
|
+
icon: icons.CopyIcon,
|
|
687
|
+
disabled: !0,
|
|
688
|
+
label: d("action.duplicate.label"),
|
|
689
|
+
title: /* @__PURE__ */ jsxRuntime.jsx(
|
|
690
|
+
sanity.InsufficientPermissionsMessage,
|
|
691
|
+
{
|
|
692
|
+
context: "duplicate-document",
|
|
693
|
+
currentUser
|
|
694
|
+
}
|
|
695
|
+
)
|
|
696
|
+
} : !isMetadataDocumentLoading && !metadataDocument ? {
|
|
697
|
+
icon: icons.CopyIcon,
|
|
698
|
+
disabled: !0,
|
|
699
|
+
label: d("action.duplicate.label"),
|
|
700
|
+
title: d(DISABLED_REASON_KEY.METADATA_NOT_FOUND)
|
|
701
|
+
} : hasOneMetadataDocument ? {
|
|
702
|
+
icon: icons.CopyIcon,
|
|
703
|
+
disabled: isDuplicating || !!duplicate.disabled || isPermissionsLoading || isMetadataDocumentLoading,
|
|
704
|
+
label: isDuplicating ? s("action.duplicate.running.label") : d("action.duplicate.label"),
|
|
705
|
+
title: duplicate.disabled ? s(DISABLED_REASON_KEY[duplicate.disabled]) : "",
|
|
706
|
+
onHandle: handle
|
|
707
|
+
} : {
|
|
708
|
+
icon: icons.CopyIcon,
|
|
709
|
+
disabled: !0,
|
|
710
|
+
label: d("action.duplicate.label"),
|
|
711
|
+
title: d(DISABLED_REASON_KEY.MULTIPLE_METADATA)
|
|
712
|
+
}, [
|
|
713
|
+
currentUser,
|
|
714
|
+
duplicate.disabled,
|
|
715
|
+
handle,
|
|
716
|
+
hasOneMetadataDocument,
|
|
717
|
+
isDuplicating,
|
|
718
|
+
isMetadataDocumentLoading,
|
|
719
|
+
isPermissionsLoading,
|
|
720
|
+
metadataDocument,
|
|
721
|
+
permissions == null ? void 0 : permissions.granted,
|
|
722
|
+
s,
|
|
723
|
+
d
|
|
724
|
+
]);
|
|
725
|
+
};
|
|
726
|
+
DuplicateWithTranslationsAction.action = "duplicate";
|
|
727
|
+
DuplicateWithTranslationsAction.displayName = "DuplicateWithTranslationsAction";
|
|
218
728
|
function useOpenInNewPane(id, type) {
|
|
219
729
|
const routerContext = react.useContext(router.RouterContext), { routerPanesState, groupIndex } = structure.usePaneRouter();
|
|
220
730
|
return react.useCallback(() => {
|
|
@@ -917,8 +1427,8 @@ var metadata = (schemaTypes, metadataFields) => sanity.defineType({
|
|
|
917
1427
|
}
|
|
918
1428
|
});
|
|
919
1429
|
const documentInternationalization = sanity.definePlugin(
|
|
920
|
-
(
|
|
921
|
-
const pluginConfig = { ...DEFAULT_CONFIG, ...
|
|
1430
|
+
(config2) => {
|
|
1431
|
+
const pluginConfig = { ...DEFAULT_CONFIG, ...config2 }, {
|
|
922
1432
|
supportedLanguages,
|
|
923
1433
|
schemaTypes,
|
|
924
1434
|
languageField,
|
|
@@ -936,6 +1446,9 @@ const documentInternationalization = sanity.definePlugin(
|
|
|
936
1446
|
layout: (props) => DocumentInternationalizationProvider({ ...props, pluginConfig })
|
|
937
1447
|
}
|
|
938
1448
|
},
|
|
1449
|
+
i18n: {
|
|
1450
|
+
bundles: [documentInternationalizationUsEnglishLocaleBundle]
|
|
1451
|
+
},
|
|
939
1452
|
// Adds:
|
|
940
1453
|
// - A bulk-publishing UI component to the form
|
|
941
1454
|
// - Will only work for projects on a compatible plan
|
|
@@ -1075,6 +1588,7 @@ const documentInternationalization = sanity.definePlugin(
|
|
|
1075
1588
|
);
|
|
1076
1589
|
exports.DeleteTranslationAction = DeleteTranslationAction;
|
|
1077
1590
|
exports.DocumentInternationalizationMenu = DocumentInternationalizationMenu;
|
|
1591
|
+
exports.DuplicateWithTranslationsAction = DuplicateWithTranslationsAction;
|
|
1078
1592
|
exports.documentInternationalization = documentInternationalization;
|
|
1079
1593
|
exports.useDocumentInternationalizationContext = useDocumentInternationalizationContext;
|
|
1080
1594
|
//# sourceMappingURL=index.js.map
|