@steedos-widgets/amis-object 1.2.15 → 1.2.17

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.
@@ -147,8 +147,2805 @@ function __spreadArray(to, from, pack) {
147
147
  return to.concat(ar || Array.prototype.slice.call(from));
148
148
  }
149
149
 
150
+ function _typeof$1(obj) {
151
+ "@babel/helpers - typeof";
152
+
153
+ return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
154
+ return typeof obj;
155
+ } : function (obj) {
156
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
157
+ }, _typeof$1(obj);
158
+ }
159
+
160
+ function _classCallCheck$1(instance, Constructor) {
161
+ if (!(instance instanceof Constructor)) {
162
+ throw new TypeError("Cannot call a class as a function");
163
+ }
164
+ }
165
+
166
+ function _toPrimitive$1(input, hint) {
167
+ if (_typeof$1(input) !== "object" || input === null) return input;
168
+ var prim = input[Symbol.toPrimitive];
169
+ if (prim !== undefined) {
170
+ var res = prim.call(input, hint || "default");
171
+ if (_typeof$1(res) !== "object") return res;
172
+ throw new TypeError("@@toPrimitive must return a primitive value.");
173
+ }
174
+ return (hint === "string" ? String : Number)(input);
175
+ }
176
+
177
+ function _toPropertyKey$1(arg) {
178
+ var key = _toPrimitive$1(arg, "string");
179
+ return _typeof$1(key) === "symbol" ? key : String(key);
180
+ }
181
+
182
+ function _defineProperties$1(target, props) {
183
+ for (var i = 0; i < props.length; i++) {
184
+ var descriptor = props[i];
185
+ descriptor.enumerable = descriptor.enumerable || false;
186
+ descriptor.configurable = true;
187
+ if ("value" in descriptor) descriptor.writable = true;
188
+ Object.defineProperty(target, _toPropertyKey$1(descriptor.key), descriptor);
189
+ }
190
+ }
191
+ function _createClass$1(Constructor, protoProps, staticProps) {
192
+ if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);
193
+ if (staticProps) _defineProperties$1(Constructor, staticProps);
194
+ Object.defineProperty(Constructor, "prototype", {
195
+ writable: false
196
+ });
197
+ return Constructor;
198
+ }
199
+
200
+ function _assertThisInitialized(self) {
201
+ if (self === void 0) {
202
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
203
+ }
204
+ return self;
205
+ }
206
+
207
+ function _setPrototypeOf(o, p) {
208
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
209
+ o.__proto__ = p;
210
+ return o;
211
+ };
212
+ return _setPrototypeOf(o, p);
213
+ }
214
+
215
+ function _inherits(subClass, superClass) {
216
+ if (typeof superClass !== "function" && superClass !== null) {
217
+ throw new TypeError("Super expression must either be null or a function");
218
+ }
219
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
220
+ constructor: {
221
+ value: subClass,
222
+ writable: true,
223
+ configurable: true
224
+ }
225
+ });
226
+ Object.defineProperty(subClass, "prototype", {
227
+ writable: false
228
+ });
229
+ if (superClass) _setPrototypeOf(subClass, superClass);
230
+ }
231
+
232
+ function _possibleConstructorReturn(self, call) {
233
+ if (call && (_typeof$1(call) === "object" || typeof call === "function")) {
234
+ return call;
235
+ } else if (call !== void 0) {
236
+ throw new TypeError("Derived constructors may only return object or undefined");
237
+ }
238
+ return _assertThisInitialized(self);
239
+ }
240
+
241
+ function _getPrototypeOf(o) {
242
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
243
+ return o.__proto__ || Object.getPrototypeOf(o);
244
+ };
245
+ return _getPrototypeOf(o);
246
+ }
247
+
248
+ function _defineProperty$1(obj, key, value) {
249
+ key = _toPropertyKey$1(key);
250
+ if (key in obj) {
251
+ Object.defineProperty(obj, key, {
252
+ value: value,
253
+ enumerable: true,
254
+ configurable: true,
255
+ writable: true
256
+ });
257
+ } else {
258
+ obj[key] = value;
259
+ }
260
+ return obj;
261
+ }
262
+
263
+ function _arrayWithHoles(arr) {
264
+ if (Array.isArray(arr)) return arr;
265
+ }
266
+
267
+ function _iterableToArray(iter) {
268
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
269
+ }
270
+
271
+ function _arrayLikeToArray(arr, len) {
272
+ if (len == null || len > arr.length) len = arr.length;
273
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
274
+ return arr2;
275
+ }
276
+
277
+ function _unsupportedIterableToArray(o, minLen) {
278
+ if (!o) return;
279
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
280
+ var n = Object.prototype.toString.call(o).slice(8, -1);
281
+ if (n === "Object" && o.constructor) n = o.constructor.name;
282
+ if (n === "Map" || n === "Set") return Array.from(o);
283
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
284
+ }
285
+
286
+ function _nonIterableRest() {
287
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
288
+ }
289
+
290
+ function _toArray(arr) {
291
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
292
+ }
293
+
294
+ function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
295
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
296
+ var consoleLogger = {
297
+ type: 'logger',
298
+ log: function log(args) {
299
+ this.output('log', args);
300
+ },
301
+ warn: function warn(args) {
302
+ this.output('warn', args);
303
+ },
304
+ error: function error(args) {
305
+ this.output('error', args);
306
+ },
307
+ output: function output(type, args) {
308
+ if (console && console[type]) console[type].apply(console, args);
309
+ }
310
+ };
311
+ var Logger = function () {
312
+ function Logger(concreteLogger) {
313
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
314
+ _classCallCheck$1(this, Logger);
315
+ this.init(concreteLogger, options);
316
+ }
317
+ _createClass$1(Logger, [{
318
+ key: "init",
319
+ value: function init(concreteLogger) {
320
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
321
+ this.prefix = options.prefix || 'i18next:';
322
+ this.logger = concreteLogger || consoleLogger;
323
+ this.options = options;
324
+ this.debug = options.debug;
325
+ }
326
+ }, {
327
+ key: "setDebug",
328
+ value: function setDebug(bool) {
329
+ this.debug = bool;
330
+ }
331
+ }, {
332
+ key: "log",
333
+ value: function log() {
334
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
335
+ args[_key] = arguments[_key];
336
+ }
337
+ return this.forward(args, 'log', '', true);
338
+ }
339
+ }, {
340
+ key: "warn",
341
+ value: function warn() {
342
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
343
+ args[_key2] = arguments[_key2];
344
+ }
345
+ return this.forward(args, 'warn', '', true);
346
+ }
347
+ }, {
348
+ key: "error",
349
+ value: function error() {
350
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
351
+ args[_key3] = arguments[_key3];
352
+ }
353
+ return this.forward(args, 'error', '');
354
+ }
355
+ }, {
356
+ key: "deprecate",
357
+ value: function deprecate() {
358
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
359
+ args[_key4] = arguments[_key4];
360
+ }
361
+ return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);
362
+ }
363
+ }, {
364
+ key: "forward",
365
+ value: function forward(args, lvl, prefix, debugOnly) {
366
+ if (debugOnly && !this.debug) return null;
367
+ if (typeof args[0] === 'string') args[0] = "".concat(prefix).concat(this.prefix, " ").concat(args[0]);
368
+ return this.logger[lvl](args);
369
+ }
370
+ }, {
371
+ key: "create",
372
+ value: function create(moduleName) {
373
+ return new Logger(this.logger, _objectSpread$6(_objectSpread$6({}, {
374
+ prefix: "".concat(this.prefix, ":").concat(moduleName, ":")
375
+ }), this.options));
376
+ }
377
+ }, {
378
+ key: "clone",
379
+ value: function clone(options) {
380
+ options = options || this.options;
381
+ options.prefix = options.prefix || this.prefix;
382
+ return new Logger(this.logger, options);
383
+ }
384
+ }]);
385
+ return Logger;
386
+ }();
387
+ var baseLogger = new Logger();
388
+
389
+ var EventEmitter = function () {
390
+ function EventEmitter() {
391
+ _classCallCheck$1(this, EventEmitter);
392
+ this.observers = {};
393
+ }
394
+ _createClass$1(EventEmitter, [{
395
+ key: "on",
396
+ value: function on(events, listener) {
397
+ var _this = this;
398
+ events.split(' ').forEach(function (event) {
399
+ _this.observers[event] = _this.observers[event] || [];
400
+ _this.observers[event].push(listener);
401
+ });
402
+ return this;
403
+ }
404
+ }, {
405
+ key: "off",
406
+ value: function off(event, listener) {
407
+ if (!this.observers[event]) return;
408
+ if (!listener) {
409
+ delete this.observers[event];
410
+ return;
411
+ }
412
+ this.observers[event] = this.observers[event].filter(function (l) {
413
+ return l !== listener;
414
+ });
415
+ }
416
+ }, {
417
+ key: "emit",
418
+ value: function emit(event) {
419
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
420
+ args[_key - 1] = arguments[_key];
421
+ }
422
+ if (this.observers[event]) {
423
+ var cloned = [].concat(this.observers[event]);
424
+ cloned.forEach(function (observer) {
425
+ observer.apply(void 0, args);
426
+ });
427
+ }
428
+ if (this.observers['*']) {
429
+ var _cloned = [].concat(this.observers['*']);
430
+ _cloned.forEach(function (observer) {
431
+ observer.apply(observer, [event].concat(args));
432
+ });
433
+ }
434
+ }
435
+ }]);
436
+ return EventEmitter;
437
+ }();
438
+
439
+ function defer() {
440
+ var res;
441
+ var rej;
442
+ var promise = new Promise(function (resolve, reject) {
443
+ res = resolve;
444
+ rej = reject;
445
+ });
446
+ promise.resolve = res;
447
+ promise.reject = rej;
448
+ return promise;
449
+ }
450
+ function makeString(object) {
451
+ if (object == null) return '';
452
+ return '' + object;
453
+ }
454
+ function copy(a, s, t) {
455
+ a.forEach(function (m) {
456
+ if (s[m]) t[m] = s[m];
457
+ });
458
+ }
459
+ function getLastOfPath(object, path, Empty) {
460
+ function cleanKey(key) {
461
+ return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;
462
+ }
463
+ function canNotTraverseDeeper() {
464
+ return !object || typeof object === 'string';
465
+ }
466
+ var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');
467
+ while (stack.length > 1) {
468
+ if (canNotTraverseDeeper()) return {};
469
+ var key = cleanKey(stack.shift());
470
+ if (!object[key] && Empty) object[key] = new Empty();
471
+ if (Object.prototype.hasOwnProperty.call(object, key)) {
472
+ object = object[key];
473
+ } else {
474
+ object = {};
475
+ }
476
+ }
477
+ if (canNotTraverseDeeper()) return {};
478
+ return {
479
+ obj: object,
480
+ k: cleanKey(stack.shift())
481
+ };
482
+ }
483
+ function setPath(object, path, newValue) {
484
+ var _getLastOfPath = getLastOfPath(object, path, Object),
485
+ obj = _getLastOfPath.obj,
486
+ k = _getLastOfPath.k;
487
+ obj[k] = newValue;
488
+ }
489
+ function pushPath(object, path, newValue, concat) {
490
+ var _getLastOfPath2 = getLastOfPath(object, path, Object),
491
+ obj = _getLastOfPath2.obj,
492
+ k = _getLastOfPath2.k;
493
+ obj[k] = obj[k] || [];
494
+ if (concat) obj[k] = obj[k].concat(newValue);
495
+ if (!concat) obj[k].push(newValue);
496
+ }
497
+ function getPath(object, path) {
498
+ var _getLastOfPath3 = getLastOfPath(object, path),
499
+ obj = _getLastOfPath3.obj,
500
+ k = _getLastOfPath3.k;
501
+ if (!obj) return undefined;
502
+ return obj[k];
503
+ }
504
+ function getPathWithDefaults(data, defaultData, key) {
505
+ var value = getPath(data, key);
506
+ if (value !== undefined) {
507
+ return value;
508
+ }
509
+ return getPath(defaultData, key);
510
+ }
511
+ function deepExtend(target, source, overwrite) {
512
+ for (var prop in source) {
513
+ if (prop !== '__proto__' && prop !== 'constructor') {
514
+ if (prop in target) {
515
+ if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {
516
+ if (overwrite) target[prop] = source[prop];
517
+ } else {
518
+ deepExtend(target[prop], source[prop], overwrite);
519
+ }
520
+ } else {
521
+ target[prop] = source[prop];
522
+ }
523
+ }
524
+ }
525
+ return target;
526
+ }
527
+ function regexEscape(str) {
528
+ return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
529
+ }
530
+ var _entityMap = {
531
+ '&': '&amp;',
532
+ '<': '&lt;',
533
+ '>': '&gt;',
534
+ '"': '&quot;',
535
+ "'": '&#39;',
536
+ '/': '&#x2F;'
537
+ };
538
+ function escape(data) {
539
+ if (typeof data === 'string') {
540
+ return data.replace(/[&<>"'\/]/g, function (s) {
541
+ return _entityMap[s];
542
+ });
543
+ }
544
+ return data;
545
+ }
546
+ var isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;
547
+ var chars = [' ', ',', '?', '!', ';'];
548
+ function looksLikeObjectPath(key, nsSeparator, keySeparator) {
549
+ nsSeparator = nsSeparator || '';
550
+ keySeparator = keySeparator || '';
551
+ var possibleChars = chars.filter(function (c) {
552
+ return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;
553
+ });
554
+ if (possibleChars.length === 0) return true;
555
+ var r = new RegExp("(".concat(possibleChars.map(function (c) {
556
+ return c === '?' ? '\\?' : c;
557
+ }).join('|'), ")"));
558
+ var matched = !r.test(key);
559
+ if (!matched) {
560
+ var ki = key.indexOf(keySeparator);
561
+ if (ki > 0 && !r.test(key.substring(0, ki))) {
562
+ matched = true;
563
+ }
564
+ }
565
+ return matched;
566
+ }
567
+ function deepFind(obj, path) {
568
+ var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';
569
+ if (!obj) return undefined;
570
+ if (obj[path]) return obj[path];
571
+ var paths = path.split(keySeparator);
572
+ var current = obj;
573
+ for (var i = 0; i < paths.length; ++i) {
574
+ if (!current) return undefined;
575
+ if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {
576
+ return undefined;
577
+ }
578
+ if (current[paths[i]] === undefined) {
579
+ var j = 2;
580
+ var p = paths.slice(i, i + j).join(keySeparator);
581
+ var mix = current[p];
582
+ while (mix === undefined && paths.length > i + j) {
583
+ j++;
584
+ p = paths.slice(i, i + j).join(keySeparator);
585
+ mix = current[p];
586
+ }
587
+ if (mix === undefined) return undefined;
588
+ if (mix === null) return null;
589
+ if (path.endsWith(p)) {
590
+ if (typeof mix === 'string') return mix;
591
+ if (p && typeof mix[p] === 'string') return mix[p];
592
+ }
593
+ var joinedPath = paths.slice(i + j).join(keySeparator);
594
+ if (joinedPath) return deepFind(mix, joinedPath, keySeparator);
595
+ return undefined;
596
+ }
597
+ current = current[paths[i]];
598
+ }
599
+ return current;
600
+ }
601
+
602
+ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
603
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
604
+ function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
605
+ function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
606
+ var ResourceStore = function (_EventEmitter) {
607
+ _inherits(ResourceStore, _EventEmitter);
608
+ var _super = _createSuper$3(ResourceStore);
609
+ function ResourceStore(data) {
610
+ var _this;
611
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
612
+ ns: ['translation'],
613
+ defaultNS: 'translation'
614
+ };
615
+ _classCallCheck$1(this, ResourceStore);
616
+ _this = _super.call(this);
617
+ if (isIE10) {
618
+ EventEmitter.call(_assertThisInitialized(_this));
619
+ }
620
+ _this.data = data || {};
621
+ _this.options = options;
622
+ if (_this.options.keySeparator === undefined) {
623
+ _this.options.keySeparator = '.';
624
+ }
625
+ if (_this.options.ignoreJSONStructure === undefined) {
626
+ _this.options.ignoreJSONStructure = true;
627
+ }
628
+ return _this;
629
+ }
630
+ _createClass$1(ResourceStore, [{
631
+ key: "addNamespaces",
632
+ value: function addNamespaces(ns) {
633
+ if (this.options.ns.indexOf(ns) < 0) {
634
+ this.options.ns.push(ns);
635
+ }
636
+ }
637
+ }, {
638
+ key: "removeNamespaces",
639
+ value: function removeNamespaces(ns) {
640
+ var index = this.options.ns.indexOf(ns);
641
+ if (index > -1) {
642
+ this.options.ns.splice(index, 1);
643
+ }
644
+ }
645
+ }, {
646
+ key: "getResource",
647
+ value: function getResource(lng, ns, key) {
648
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
649
+ var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
650
+ var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;
651
+ var path = [lng, ns];
652
+ if (key && typeof key !== 'string') path = path.concat(key);
653
+ if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);
654
+ if (lng.indexOf('.') > -1) {
655
+ path = lng.split('.');
656
+ }
657
+ var result = getPath(this.data, path);
658
+ if (result || !ignoreJSONStructure || typeof key !== 'string') return result;
659
+ return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);
660
+ }
661
+ }, {
662
+ key: "addResource",
663
+ value: function addResource(lng, ns, key, value) {
664
+ var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
665
+ silent: false
666
+ };
667
+ var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
668
+ var path = [lng, ns];
669
+ if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);
670
+ if (lng.indexOf('.') > -1) {
671
+ path = lng.split('.');
672
+ value = ns;
673
+ ns = path[1];
674
+ }
675
+ this.addNamespaces(ns);
676
+ setPath(this.data, path, value);
677
+ if (!options.silent) this.emit('added', lng, ns, key, value);
678
+ }
679
+ }, {
680
+ key: "addResources",
681
+ value: function addResources(lng, ns, resources) {
682
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
683
+ silent: false
684
+ };
685
+ for (var m in resources) {
686
+ if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {
687
+ silent: true
688
+ });
689
+ }
690
+ if (!options.silent) this.emit('added', lng, ns, resources);
691
+ }
692
+ }, {
693
+ key: "addResourceBundle",
694
+ value: function addResourceBundle(lng, ns, resources, deep, overwrite) {
695
+ var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
696
+ silent: false
697
+ };
698
+ var path = [lng, ns];
699
+ if (lng.indexOf('.') > -1) {
700
+ path = lng.split('.');
701
+ deep = resources;
702
+ resources = ns;
703
+ ns = path[1];
704
+ }
705
+ this.addNamespaces(ns);
706
+ var pack = getPath(this.data, path) || {};
707
+ if (deep) {
708
+ deepExtend(pack, resources, overwrite);
709
+ } else {
710
+ pack = _objectSpread$5(_objectSpread$5({}, pack), resources);
711
+ }
712
+ setPath(this.data, path, pack);
713
+ if (!options.silent) this.emit('added', lng, ns, resources);
714
+ }
715
+ }, {
716
+ key: "removeResourceBundle",
717
+ value: function removeResourceBundle(lng, ns) {
718
+ if (this.hasResourceBundle(lng, ns)) {
719
+ delete this.data[lng][ns];
720
+ }
721
+ this.removeNamespaces(ns);
722
+ this.emit('removed', lng, ns);
723
+ }
724
+ }, {
725
+ key: "hasResourceBundle",
726
+ value: function hasResourceBundle(lng, ns) {
727
+ return this.getResource(lng, ns) !== undefined;
728
+ }
729
+ }, {
730
+ key: "getResourceBundle",
731
+ value: function getResourceBundle(lng, ns) {
732
+ if (!ns) ns = this.options.defaultNS;
733
+ if (this.options.compatibilityAPI === 'v1') return _objectSpread$5(_objectSpread$5({}, {}), this.getResource(lng, ns));
734
+ return this.getResource(lng, ns);
735
+ }
736
+ }, {
737
+ key: "getDataByLanguage",
738
+ value: function getDataByLanguage(lng) {
739
+ return this.data[lng];
740
+ }
741
+ }, {
742
+ key: "hasLanguageSomeTranslations",
743
+ value: function hasLanguageSomeTranslations(lng) {
744
+ var data = this.getDataByLanguage(lng);
745
+ var n = data && Object.keys(data) || [];
746
+ return !!n.find(function (v) {
747
+ return data[v] && Object.keys(data[v]).length > 0;
748
+ });
749
+ }
750
+ }, {
751
+ key: "toJSON",
752
+ value: function toJSON() {
753
+ return this.data;
754
+ }
755
+ }]);
756
+ return ResourceStore;
757
+ }(EventEmitter);
758
+
759
+ var postProcessor = {
760
+ processors: {},
761
+ addPostProcessor: function addPostProcessor(module) {
762
+ this.processors[module.name] = module;
763
+ },
764
+ handle: function handle(processors, value, key, options, translator) {
765
+ var _this = this;
766
+ processors.forEach(function (processor) {
767
+ if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);
768
+ });
769
+ return value;
770
+ }
771
+ };
772
+
773
+ function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
774
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
775
+ function _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
776
+ function _isNativeReflectConstruct$2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
777
+ var checkedLoadedFor = {};
778
+ var Translator = function (_EventEmitter) {
779
+ _inherits(Translator, _EventEmitter);
780
+ var _super = _createSuper$2(Translator);
781
+ function Translator(services) {
782
+ var _this;
783
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
784
+ _classCallCheck$1(this, Translator);
785
+ _this = _super.call(this);
786
+ if (isIE10) {
787
+ EventEmitter.call(_assertThisInitialized(_this));
788
+ }
789
+ copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));
790
+ _this.options = options;
791
+ if (_this.options.keySeparator === undefined) {
792
+ _this.options.keySeparator = '.';
793
+ }
794
+ _this.logger = baseLogger.create('translator');
795
+ return _this;
796
+ }
797
+ _createClass$1(Translator, [{
798
+ key: "changeLanguage",
799
+ value: function changeLanguage(lng) {
800
+ if (lng) this.language = lng;
801
+ }
802
+ }, {
803
+ key: "exists",
804
+ value: function exists(key) {
805
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
806
+ interpolation: {}
807
+ };
808
+ if (key === undefined || key === null) {
809
+ return false;
810
+ }
811
+ var resolved = this.resolve(key, options);
812
+ return resolved && resolved.res !== undefined;
813
+ }
814
+ }, {
815
+ key: "extractFromKey",
816
+ value: function extractFromKey(key, options) {
817
+ var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;
818
+ if (nsSeparator === undefined) nsSeparator = ':';
819
+ var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
820
+ var namespaces = options.ns || this.options.defaultNS || [];
821
+ var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;
822
+ var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);
823
+ if (wouldCheckForNsInKey && !seemsNaturalLanguage) {
824
+ var m = key.match(this.interpolator.nestingRegexp);
825
+ if (m && m.length > 0) {
826
+ return {
827
+ key: key,
828
+ namespaces: namespaces
829
+ };
830
+ }
831
+ var parts = key.split(nsSeparator);
832
+ if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();
833
+ key = parts.join(keySeparator);
834
+ }
835
+ if (typeof namespaces === 'string') namespaces = [namespaces];
836
+ return {
837
+ key: key,
838
+ namespaces: namespaces
839
+ };
840
+ }
841
+ }, {
842
+ key: "translate",
843
+ value: function translate(keys, options, lastKey) {
844
+ var _this2 = this;
845
+ if (_typeof$1(options) !== 'object' && this.options.overloadTranslationOptionHandler) {
846
+ options = this.options.overloadTranslationOptionHandler(arguments);
847
+ }
848
+ if (_typeof$1(options) === 'object') options = _objectSpread$4({}, options);
849
+ if (!options) options = {};
850
+ if (keys === undefined || keys === null) return '';
851
+ if (!Array.isArray(keys)) keys = [String(keys)];
852
+ var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;
853
+ var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
854
+ var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),
855
+ key = _this$extractFromKey.key,
856
+ namespaces = _this$extractFromKey.namespaces;
857
+ var namespace = namespaces[namespaces.length - 1];
858
+ var lng = options.lng || this.language;
859
+ var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
860
+ if (lng && lng.toLowerCase() === 'cimode') {
861
+ if (appendNamespaceToCIMode) {
862
+ var nsSeparator = options.nsSeparator || this.options.nsSeparator;
863
+ if (returnDetails) {
864
+ return {
865
+ res: "".concat(namespace).concat(nsSeparator).concat(key),
866
+ usedKey: key,
867
+ exactUsedKey: key,
868
+ usedLng: lng,
869
+ usedNS: namespace
870
+ };
871
+ }
872
+ return "".concat(namespace).concat(nsSeparator).concat(key);
873
+ }
874
+ if (returnDetails) {
875
+ return {
876
+ res: key,
877
+ usedKey: key,
878
+ exactUsedKey: key,
879
+ usedLng: lng,
880
+ usedNS: namespace
881
+ };
882
+ }
883
+ return key;
884
+ }
885
+ var resolved = this.resolve(keys, options);
886
+ var res = resolved && resolved.res;
887
+ var resUsedKey = resolved && resolved.usedKey || key;
888
+ var resExactUsedKey = resolved && resolved.exactUsedKey || key;
889
+ var resType = Object.prototype.toString.apply(res);
890
+ var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];
891
+ var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;
892
+ var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;
893
+ var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';
894
+ if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {
895
+ if (!options.returnObjects && !this.options.returnObjects) {
896
+ if (!this.options.returnedObjectHandler) {
897
+ this.logger.warn('accessing an object - but returnObjects options is not enabled!');
898
+ }
899
+ var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {
900
+ ns: namespaces
901
+ })) : "key '".concat(key, " (").concat(this.language, ")' returned an object instead of string.");
902
+ if (returnDetails) {
903
+ resolved.res = r;
904
+ return resolved;
905
+ }
906
+ return r;
907
+ }
908
+ if (keySeparator) {
909
+ var resTypeIsArray = resType === '[object Array]';
910
+ var copy = resTypeIsArray ? [] : {};
911
+ var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;
912
+ for (var m in res) {
913
+ if (Object.prototype.hasOwnProperty.call(res, m)) {
914
+ var deepKey = "".concat(newKeyToUse).concat(keySeparator).concat(m);
915
+ copy[m] = this.translate(deepKey, _objectSpread$4(_objectSpread$4({}, options), {
916
+ joinArrays: false,
917
+ ns: namespaces
918
+ }));
919
+ if (copy[m] === deepKey) copy[m] = res[m];
920
+ }
921
+ }
922
+ res = copy;
923
+ }
924
+ } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {
925
+ res = res.join(joinArrays);
926
+ if (res) res = this.extendTranslation(res, keys, options, lastKey);
927
+ } else {
928
+ var usedDefault = false;
929
+ var usedKey = false;
930
+ var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';
931
+ var hasDefaultValue = Translator.hasDefaultValue(options);
932
+ var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';
933
+ var defaultValue = options["defaultValue".concat(defaultValueSuffix)] || options.defaultValue;
934
+ if (!this.isValidLookup(res) && hasDefaultValue) {
935
+ usedDefault = true;
936
+ res = defaultValue;
937
+ }
938
+ if (!this.isValidLookup(res)) {
939
+ usedKey = true;
940
+ res = key;
941
+ }
942
+ var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;
943
+ var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;
944
+ var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;
945
+ if (usedKey || usedDefault || updateMissing) {
946
+ this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);
947
+ if (keySeparator) {
948
+ var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, options), {}, {
949
+ keySeparator: false
950
+ }));
951
+ if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');
952
+ }
953
+ var lngs = [];
954
+ var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);
955
+ if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {
956
+ for (var i = 0; i < fallbackLngs.length; i++) {
957
+ lngs.push(fallbackLngs[i]);
958
+ }
959
+ } else if (this.options.saveMissingTo === 'all') {
960
+ lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);
961
+ } else {
962
+ lngs.push(options.lng || this.language);
963
+ }
964
+ var send = function send(l, k, specificDefaultValue) {
965
+ var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;
966
+ if (_this2.options.missingKeyHandler) {
967
+ _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);
968
+ } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {
969
+ _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);
970
+ }
971
+ _this2.emit('missingKey', l, namespace, k, res);
972
+ };
973
+ if (this.options.saveMissing) {
974
+ if (this.options.saveMissingPlurals && needsPluralHandling) {
975
+ lngs.forEach(function (language) {
976
+ _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {
977
+ send([language], key + suffix, options["defaultValue".concat(suffix)] || defaultValue);
978
+ });
979
+ });
980
+ } else {
981
+ send(lngs, key, defaultValue);
982
+ }
983
+ }
984
+ }
985
+ res = this.extendTranslation(res, keys, options, resolved, lastKey);
986
+ if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = "".concat(namespace, ":").concat(key);
987
+ if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {
988
+ if (this.options.compatibilityAPI !== 'v1') {
989
+ res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? "".concat(namespace, ":").concat(key) : key, usedDefault ? res : undefined);
990
+ } else {
991
+ res = this.options.parseMissingKeyHandler(res);
992
+ }
993
+ }
994
+ }
995
+ if (returnDetails) {
996
+ resolved.res = res;
997
+ return resolved;
998
+ }
999
+ return res;
1000
+ }
1001
+ }, {
1002
+ key: "extendTranslation",
1003
+ value: function extendTranslation(res, key, options, resolved, lastKey) {
1004
+ var _this3 = this;
1005
+ if (this.i18nFormat && this.i18nFormat.parse) {
1006
+ res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {
1007
+ resolved: resolved
1008
+ });
1009
+ } else if (!options.skipInterpolation) {
1010
+ if (options.interpolation) this.interpolator.init(_objectSpread$4(_objectSpread$4({}, options), {
1011
+ interpolation: _objectSpread$4(_objectSpread$4({}, this.options.interpolation), options.interpolation)
1012
+ }));
1013
+ var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);
1014
+ var nestBef;
1015
+ if (skipOnVariables) {
1016
+ var nb = res.match(this.interpolator.nestingRegexp);
1017
+ nestBef = nb && nb.length;
1018
+ }
1019
+ var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;
1020
+ if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);
1021
+ res = this.interpolator.interpolate(res, data, options.lng || this.language, options);
1022
+ if (skipOnVariables) {
1023
+ var na = res.match(this.interpolator.nestingRegexp);
1024
+ var nestAft = na && na.length;
1025
+ if (nestBef < nestAft) options.nest = false;
1026
+ }
1027
+ if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;
1028
+ if (options.nest !== false) res = this.interpolator.nest(res, function () {
1029
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1030
+ args[_key] = arguments[_key];
1031
+ }
1032
+ if (lastKey && lastKey[0] === args[0] && !options.context) {
1033
+ _this3.logger.warn("It seems you are nesting recursively key: ".concat(args[0], " in key: ").concat(key[0]));
1034
+ return null;
1035
+ }
1036
+ return _this3.translate.apply(_this3, args.concat([key]));
1037
+ }, options);
1038
+ if (options.interpolation) this.interpolator.reset();
1039
+ }
1040
+ var postProcess = options.postProcess || this.options.postProcess;
1041
+ var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;
1042
+ if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {
1043
+ res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4({
1044
+ i18nResolved: resolved
1045
+ }, options) : options, this);
1046
+ }
1047
+ return res;
1048
+ }
1049
+ }, {
1050
+ key: "resolve",
1051
+ value: function resolve(keys) {
1052
+ var _this4 = this;
1053
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1054
+ var found;
1055
+ var usedKey;
1056
+ var exactUsedKey;
1057
+ var usedLng;
1058
+ var usedNS;
1059
+ if (typeof keys === 'string') keys = [keys];
1060
+ keys.forEach(function (k) {
1061
+ if (_this4.isValidLookup(found)) return;
1062
+ var extracted = _this4.extractFromKey(k, options);
1063
+ var key = extracted.key;
1064
+ usedKey = key;
1065
+ var namespaces = extracted.namespaces;
1066
+ if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);
1067
+ var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';
1068
+ var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();
1069
+ var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';
1070
+ var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);
1071
+ namespaces.forEach(function (ns) {
1072
+ if (_this4.isValidLookup(found)) return;
1073
+ usedNS = ns;
1074
+ if (!checkedLoadedFor["".concat(codes[0], "-").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {
1075
+ checkedLoadedFor["".concat(codes[0], "-").concat(ns)] = true;
1076
+ _this4.logger.warn("key \"".concat(usedKey, "\" for languages \"").concat(codes.join(', '), "\" won't get resolved as namespace \"").concat(usedNS, "\" was not yet loaded"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');
1077
+ }
1078
+ codes.forEach(function (code) {
1079
+ if (_this4.isValidLookup(found)) return;
1080
+ usedLng = code;
1081
+ var finalKeys = [key];
1082
+ if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {
1083
+ _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);
1084
+ } else {
1085
+ var pluralSuffix;
1086
+ if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);
1087
+ var zeroSuffix = "".concat(_this4.options.pluralSeparator, "zero");
1088
+ if (needsPluralHandling) {
1089
+ finalKeys.push(key + pluralSuffix);
1090
+ if (needsZeroSuffixLookup) {
1091
+ finalKeys.push(key + zeroSuffix);
1092
+ }
1093
+ }
1094
+ if (needsContextHandling) {
1095
+ var contextKey = "".concat(key).concat(_this4.options.contextSeparator).concat(options.context);
1096
+ finalKeys.push(contextKey);
1097
+ if (needsPluralHandling) {
1098
+ finalKeys.push(contextKey + pluralSuffix);
1099
+ if (needsZeroSuffixLookup) {
1100
+ finalKeys.push(contextKey + zeroSuffix);
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ var possibleKey;
1106
+ while (possibleKey = finalKeys.pop()) {
1107
+ if (!_this4.isValidLookup(found)) {
1108
+ exactUsedKey = possibleKey;
1109
+ found = _this4.getResource(code, ns, possibleKey, options);
1110
+ }
1111
+ }
1112
+ });
1113
+ });
1114
+ });
1115
+ return {
1116
+ res: found,
1117
+ usedKey: usedKey,
1118
+ exactUsedKey: exactUsedKey,
1119
+ usedLng: usedLng,
1120
+ usedNS: usedNS
1121
+ };
1122
+ }
1123
+ }, {
1124
+ key: "isValidLookup",
1125
+ value: function isValidLookup(res) {
1126
+ return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');
1127
+ }
1128
+ }, {
1129
+ key: "getResource",
1130
+ value: function getResource(code, ns, key) {
1131
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1132
+ if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);
1133
+ return this.resourceStore.getResource(code, ns, key, options);
1134
+ }
1135
+ }], [{
1136
+ key: "hasDefaultValue",
1137
+ value: function hasDefaultValue(options) {
1138
+ var prefix = 'defaultValue';
1139
+ for (var option in options) {
1140
+ if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {
1141
+ return true;
1142
+ }
1143
+ }
1144
+ return false;
1145
+ }
1146
+ }]);
1147
+ return Translator;
1148
+ }(EventEmitter);
1149
+
1150
+ function capitalize(string) {
1151
+ return string.charAt(0).toUpperCase() + string.slice(1);
1152
+ }
1153
+ var LanguageUtil = function () {
1154
+ function LanguageUtil(options) {
1155
+ _classCallCheck$1(this, LanguageUtil);
1156
+ this.options = options;
1157
+ this.supportedLngs = this.options.supportedLngs || false;
1158
+ this.logger = baseLogger.create('languageUtils');
1159
+ }
1160
+ _createClass$1(LanguageUtil, [{
1161
+ key: "getScriptPartFromCode",
1162
+ value: function getScriptPartFromCode(code) {
1163
+ if (!code || code.indexOf('-') < 0) return null;
1164
+ var p = code.split('-');
1165
+ if (p.length === 2) return null;
1166
+ p.pop();
1167
+ if (p[p.length - 1].toLowerCase() === 'x') return null;
1168
+ return this.formatLanguageCode(p.join('-'));
1169
+ }
1170
+ }, {
1171
+ key: "getLanguagePartFromCode",
1172
+ value: function getLanguagePartFromCode(code) {
1173
+ if (!code || code.indexOf('-') < 0) return code;
1174
+ var p = code.split('-');
1175
+ return this.formatLanguageCode(p[0]);
1176
+ }
1177
+ }, {
1178
+ key: "formatLanguageCode",
1179
+ value: function formatLanguageCode(code) {
1180
+ if (typeof code === 'string' && code.indexOf('-') > -1) {
1181
+ var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];
1182
+ var p = code.split('-');
1183
+ if (this.options.lowerCaseLng) {
1184
+ p = p.map(function (part) {
1185
+ return part.toLowerCase();
1186
+ });
1187
+ } else if (p.length === 2) {
1188
+ p[0] = p[0].toLowerCase();
1189
+ p[1] = p[1].toUpperCase();
1190
+ if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
1191
+ } else if (p.length === 3) {
1192
+ p[0] = p[0].toLowerCase();
1193
+ if (p[1].length === 2) p[1] = p[1].toUpperCase();
1194
+ if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();
1195
+ if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
1196
+ if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());
1197
+ }
1198
+ return p.join('-');
1199
+ }
1200
+ return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;
1201
+ }
1202
+ }, {
1203
+ key: "isSupportedCode",
1204
+ value: function isSupportedCode(code) {
1205
+ if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {
1206
+ code = this.getLanguagePartFromCode(code);
1207
+ }
1208
+ return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;
1209
+ }
1210
+ }, {
1211
+ key: "getBestMatchFromCodes",
1212
+ value: function getBestMatchFromCodes(codes) {
1213
+ var _this = this;
1214
+ if (!codes) return null;
1215
+ var found;
1216
+ codes.forEach(function (code) {
1217
+ if (found) return;
1218
+ var cleanedLng = _this.formatLanguageCode(code);
1219
+ if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;
1220
+ });
1221
+ if (!found && this.options.supportedLngs) {
1222
+ codes.forEach(function (code) {
1223
+ if (found) return;
1224
+ var lngOnly = _this.getLanguagePartFromCode(code);
1225
+ if (_this.isSupportedCode(lngOnly)) return found = lngOnly;
1226
+ found = _this.options.supportedLngs.find(function (supportedLng) {
1227
+ if (supportedLng === lngOnly) return supportedLng;
1228
+ if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;
1229
+ if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;
1230
+ });
1231
+ });
1232
+ }
1233
+ if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];
1234
+ return found;
1235
+ }
1236
+ }, {
1237
+ key: "getFallbackCodes",
1238
+ value: function getFallbackCodes(fallbacks, code) {
1239
+ if (!fallbacks) return [];
1240
+ if (typeof fallbacks === 'function') fallbacks = fallbacks(code);
1241
+ if (typeof fallbacks === 'string') fallbacks = [fallbacks];
1242
+ if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;
1243
+ if (!code) return fallbacks["default"] || [];
1244
+ var found = fallbacks[code];
1245
+ if (!found) found = fallbacks[this.getScriptPartFromCode(code)];
1246
+ if (!found) found = fallbacks[this.formatLanguageCode(code)];
1247
+ if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];
1248
+ if (!found) found = fallbacks["default"];
1249
+ return found || [];
1250
+ }
1251
+ }, {
1252
+ key: "toResolveHierarchy",
1253
+ value: function toResolveHierarchy(code, fallbackCode) {
1254
+ var _this2 = this;
1255
+ var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);
1256
+ var codes = [];
1257
+ var addCode = function addCode(c) {
1258
+ if (!c) return;
1259
+ if (_this2.isSupportedCode(c)) {
1260
+ codes.push(c);
1261
+ } else {
1262
+ _this2.logger.warn("rejecting language code not found in supportedLngs: ".concat(c));
1263
+ }
1264
+ };
1265
+ if (typeof code === 'string' && code.indexOf('-') > -1) {
1266
+ if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));
1267
+ if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));
1268
+ if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));
1269
+ } else if (typeof code === 'string') {
1270
+ addCode(this.formatLanguageCode(code));
1271
+ }
1272
+ fallbackCodes.forEach(function (fc) {
1273
+ if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));
1274
+ });
1275
+ return codes;
1276
+ }
1277
+ }]);
1278
+ return LanguageUtil;
1279
+ }();
1280
+
1281
+ var sets = [{
1282
+ lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],
1283
+ nr: [1, 2],
1284
+ fc: 1
1285
+ }, {
1286
+ lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],
1287
+ nr: [1, 2],
1288
+ fc: 2
1289
+ }, {
1290
+ lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],
1291
+ nr: [1],
1292
+ fc: 3
1293
+ }, {
1294
+ lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],
1295
+ nr: [1, 2, 5],
1296
+ fc: 4
1297
+ }, {
1298
+ lngs: ['ar'],
1299
+ nr: [0, 1, 2, 3, 11, 100],
1300
+ fc: 5
1301
+ }, {
1302
+ lngs: ['cs', 'sk'],
1303
+ nr: [1, 2, 5],
1304
+ fc: 6
1305
+ }, {
1306
+ lngs: ['csb', 'pl'],
1307
+ nr: [1, 2, 5],
1308
+ fc: 7
1309
+ }, {
1310
+ lngs: ['cy'],
1311
+ nr: [1, 2, 3, 8],
1312
+ fc: 8
1313
+ }, {
1314
+ lngs: ['fr'],
1315
+ nr: [1, 2],
1316
+ fc: 9
1317
+ }, {
1318
+ lngs: ['ga'],
1319
+ nr: [1, 2, 3, 7, 11],
1320
+ fc: 10
1321
+ }, {
1322
+ lngs: ['gd'],
1323
+ nr: [1, 2, 3, 20],
1324
+ fc: 11
1325
+ }, {
1326
+ lngs: ['is'],
1327
+ nr: [1, 2],
1328
+ fc: 12
1329
+ }, {
1330
+ lngs: ['jv'],
1331
+ nr: [0, 1],
1332
+ fc: 13
1333
+ }, {
1334
+ lngs: ['kw'],
1335
+ nr: [1, 2, 3, 4],
1336
+ fc: 14
1337
+ }, {
1338
+ lngs: ['lt'],
1339
+ nr: [1, 2, 10],
1340
+ fc: 15
1341
+ }, {
1342
+ lngs: ['lv'],
1343
+ nr: [1, 2, 0],
1344
+ fc: 16
1345
+ }, {
1346
+ lngs: ['mk'],
1347
+ nr: [1, 2],
1348
+ fc: 17
1349
+ }, {
1350
+ lngs: ['mnk'],
1351
+ nr: [0, 1, 2],
1352
+ fc: 18
1353
+ }, {
1354
+ lngs: ['mt'],
1355
+ nr: [1, 2, 11, 20],
1356
+ fc: 19
1357
+ }, {
1358
+ lngs: ['or'],
1359
+ nr: [2, 1],
1360
+ fc: 2
1361
+ }, {
1362
+ lngs: ['ro'],
1363
+ nr: [1, 2, 20],
1364
+ fc: 20
1365
+ }, {
1366
+ lngs: ['sl'],
1367
+ nr: [5, 1, 2, 3],
1368
+ fc: 21
1369
+ }, {
1370
+ lngs: ['he', 'iw'],
1371
+ nr: [1, 2, 20, 21],
1372
+ fc: 22
1373
+ }];
1374
+ var _rulesPluralsTypes = {
1375
+ 1: function _(n) {
1376
+ return Number(n > 1);
1377
+ },
1378
+ 2: function _(n) {
1379
+ return Number(n != 1);
1380
+ },
1381
+ 3: function _(n) {
1382
+ return 0;
1383
+ },
1384
+ 4: function _(n) {
1385
+ return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
1386
+ },
1387
+ 5: function _(n) {
1388
+ return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);
1389
+ },
1390
+ 6: function _(n) {
1391
+ return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);
1392
+ },
1393
+ 7: function _(n) {
1394
+ return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
1395
+ },
1396
+ 8: function _(n) {
1397
+ return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);
1398
+ },
1399
+ 9: function _(n) {
1400
+ return Number(n >= 2);
1401
+ },
1402
+ 10: function _(n) {
1403
+ return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);
1404
+ },
1405
+ 11: function _(n) {
1406
+ return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);
1407
+ },
1408
+ 12: function _(n) {
1409
+ return Number(n % 10 != 1 || n % 100 == 11);
1410
+ },
1411
+ 13: function _(n) {
1412
+ return Number(n !== 0);
1413
+ },
1414
+ 14: function _(n) {
1415
+ return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);
1416
+ },
1417
+ 15: function _(n) {
1418
+ return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
1419
+ },
1420
+ 16: function _(n) {
1421
+ return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);
1422
+ },
1423
+ 17: function _(n) {
1424
+ return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);
1425
+ },
1426
+ 18: function _(n) {
1427
+ return Number(n == 0 ? 0 : n == 1 ? 1 : 2);
1428
+ },
1429
+ 19: function _(n) {
1430
+ return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);
1431
+ },
1432
+ 20: function _(n) {
1433
+ return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);
1434
+ },
1435
+ 21: function _(n) {
1436
+ return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);
1437
+ },
1438
+ 22: function _(n) {
1439
+ return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);
1440
+ }
1441
+ };
1442
+ var deprecatedJsonVersions = ['v1', 'v2', 'v3'];
1443
+ var suffixesOrder = {
1444
+ zero: 0,
1445
+ one: 1,
1446
+ two: 2,
1447
+ few: 3,
1448
+ many: 4,
1449
+ other: 5
1450
+ };
1451
+ function createRules() {
1452
+ var rules = {};
1453
+ sets.forEach(function (set) {
1454
+ set.lngs.forEach(function (l) {
1455
+ rules[l] = {
1456
+ numbers: set.nr,
1457
+ plurals: _rulesPluralsTypes[set.fc]
1458
+ };
1459
+ });
1460
+ });
1461
+ return rules;
1462
+ }
1463
+ var PluralResolver = function () {
1464
+ function PluralResolver(languageUtils) {
1465
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1466
+ _classCallCheck$1(this, PluralResolver);
1467
+ this.languageUtils = languageUtils;
1468
+ this.options = options;
1469
+ this.logger = baseLogger.create('pluralResolver');
1470
+ if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {
1471
+ this.options.compatibilityJSON = 'v3';
1472
+ this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');
1473
+ }
1474
+ this.rules = createRules();
1475
+ }
1476
+ _createClass$1(PluralResolver, [{
1477
+ key: "addRule",
1478
+ value: function addRule(lng, obj) {
1479
+ this.rules[lng] = obj;
1480
+ }
1481
+ }, {
1482
+ key: "getRule",
1483
+ value: function getRule(code) {
1484
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1485
+ if (this.shouldUseIntlApi()) {
1486
+ try {
1487
+ return new Intl.PluralRules(code, {
1488
+ type: options.ordinal ? 'ordinal' : 'cardinal'
1489
+ });
1490
+ } catch (_unused) {
1491
+ return;
1492
+ }
1493
+ }
1494
+ return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];
1495
+ }
1496
+ }, {
1497
+ key: "needsPlural",
1498
+ value: function needsPlural(code) {
1499
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1500
+ var rule = this.getRule(code, options);
1501
+ if (this.shouldUseIntlApi()) {
1502
+ return rule && rule.resolvedOptions().pluralCategories.length > 1;
1503
+ }
1504
+ return rule && rule.numbers.length > 1;
1505
+ }
1506
+ }, {
1507
+ key: "getPluralFormsOfKey",
1508
+ value: function getPluralFormsOfKey(code, key) {
1509
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1510
+ return this.getSuffixes(code, options).map(function (suffix) {
1511
+ return "".concat(key).concat(suffix);
1512
+ });
1513
+ }
1514
+ }, {
1515
+ key: "getSuffixes",
1516
+ value: function getSuffixes(code) {
1517
+ var _this = this;
1518
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1519
+ var rule = this.getRule(code, options);
1520
+ if (!rule) {
1521
+ return [];
1522
+ }
1523
+ if (this.shouldUseIntlApi()) {
1524
+ return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {
1525
+ return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];
1526
+ }).map(function (pluralCategory) {
1527
+ return "".concat(_this.options.prepend).concat(pluralCategory);
1528
+ });
1529
+ }
1530
+ return rule.numbers.map(function (number) {
1531
+ return _this.getSuffix(code, number, options);
1532
+ });
1533
+ }
1534
+ }, {
1535
+ key: "getSuffix",
1536
+ value: function getSuffix(code, count) {
1537
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1538
+ var rule = this.getRule(code, options);
1539
+ if (rule) {
1540
+ if (this.shouldUseIntlApi()) {
1541
+ return "".concat(this.options.prepend).concat(rule.select(count));
1542
+ }
1543
+ return this.getSuffixRetroCompatible(rule, count);
1544
+ }
1545
+ this.logger.warn("no plural rule found for: ".concat(code));
1546
+ return '';
1547
+ }
1548
+ }, {
1549
+ key: "getSuffixRetroCompatible",
1550
+ value: function getSuffixRetroCompatible(rule, count) {
1551
+ var _this2 = this;
1552
+ var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));
1553
+ var suffix = rule.numbers[idx];
1554
+ if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
1555
+ if (suffix === 2) {
1556
+ suffix = 'plural';
1557
+ } else if (suffix === 1) {
1558
+ suffix = '';
1559
+ }
1560
+ }
1561
+ var returnSuffix = function returnSuffix() {
1562
+ return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();
1563
+ };
1564
+ if (this.options.compatibilityJSON === 'v1') {
1565
+ if (suffix === 1) return '';
1566
+ if (typeof suffix === 'number') return "_plural_".concat(suffix.toString());
1567
+ return returnSuffix();
1568
+ } else if (this.options.compatibilityJSON === 'v2') {
1569
+ return returnSuffix();
1570
+ } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
1571
+ return returnSuffix();
1572
+ }
1573
+ return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();
1574
+ }
1575
+ }, {
1576
+ key: "shouldUseIntlApi",
1577
+ value: function shouldUseIntlApi() {
1578
+ return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);
1579
+ }
1580
+ }]);
1581
+ return PluralResolver;
1582
+ }();
1583
+
1584
+ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1585
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1586
+ function deepFindWithDefaults(data, defaultData, key) {
1587
+ var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';
1588
+ var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
1589
+ var path = getPathWithDefaults(data, defaultData, key);
1590
+ if (!path && ignoreJSONStructure && typeof key === 'string') {
1591
+ path = deepFind(data, key, keySeparator);
1592
+ if (path === undefined) path = deepFind(defaultData, key, keySeparator);
1593
+ }
1594
+ return path;
1595
+ }
1596
+ var Interpolator = function () {
1597
+ function Interpolator() {
1598
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1599
+ _classCallCheck$1(this, Interpolator);
1600
+ this.logger = baseLogger.create('interpolator');
1601
+ this.options = options;
1602
+ this.format = options.interpolation && options.interpolation.format || function (value) {
1603
+ return value;
1604
+ };
1605
+ this.init(options);
1606
+ }
1607
+ _createClass$1(Interpolator, [{
1608
+ key: "init",
1609
+ value: function init() {
1610
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1611
+ if (!options.interpolation) options.interpolation = {
1612
+ escapeValue: true
1613
+ };
1614
+ var iOpts = options.interpolation;
1615
+ this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;
1616
+ this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;
1617
+ this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;
1618
+ this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';
1619
+ this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';
1620
+ this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';
1621
+ this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';
1622
+ this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';
1623
+ this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');
1624
+ this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');
1625
+ this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';
1626
+ this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;
1627
+ this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;
1628
+ this.resetRegExp();
1629
+ }
1630
+ }, {
1631
+ key: "reset",
1632
+ value: function reset() {
1633
+ if (this.options) this.init(this.options);
1634
+ }
1635
+ }, {
1636
+ key: "resetRegExp",
1637
+ value: function resetRegExp() {
1638
+ var regexpStr = "".concat(this.prefix, "(.+?)").concat(this.suffix);
1639
+ this.regexp = new RegExp(regexpStr, 'g');
1640
+ var regexpUnescapeStr = "".concat(this.prefix).concat(this.unescapePrefix, "(.+?)").concat(this.unescapeSuffix).concat(this.suffix);
1641
+ this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');
1642
+ var nestingRegexpStr = "".concat(this.nestingPrefix, "(.+?)").concat(this.nestingSuffix);
1643
+ this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');
1644
+ }
1645
+ }, {
1646
+ key: "interpolate",
1647
+ value: function interpolate(str, data, lng, options) {
1648
+ var _this = this;
1649
+ var match;
1650
+ var value;
1651
+ var replaces;
1652
+ var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};
1653
+ function regexSafe(val) {
1654
+ return val.replace(/\$/g, '$$$$');
1655
+ }
1656
+ var handleFormat = function handleFormat(key) {
1657
+ if (key.indexOf(_this.formatSeparator) < 0) {
1658
+ var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);
1659
+ return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {
1660
+ interpolationkey: key
1661
+ })) : path;
1662
+ }
1663
+ var p = key.split(_this.formatSeparator);
1664
+ var k = p.shift().trim();
1665
+ var f = p.join(_this.formatSeparator).trim();
1666
+ return _this.format(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {
1667
+ interpolationkey: k
1668
+ }));
1669
+ };
1670
+ this.resetRegExp();
1671
+ var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;
1672
+ var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;
1673
+ var todos = [{
1674
+ regex: this.regexpUnescape,
1675
+ safeValue: function safeValue(val) {
1676
+ return regexSafe(val);
1677
+ }
1678
+ }, {
1679
+ regex: this.regexp,
1680
+ safeValue: function safeValue(val) {
1681
+ return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);
1682
+ }
1683
+ }];
1684
+ todos.forEach(function (todo) {
1685
+ replaces = 0;
1686
+ while (match = todo.regex.exec(str)) {
1687
+ var matchedVar = match[1].trim();
1688
+ value = handleFormat(matchedVar);
1689
+ if (value === undefined) {
1690
+ if (typeof missingInterpolationHandler === 'function') {
1691
+ var temp = missingInterpolationHandler(str, match, options);
1692
+ value = typeof temp === 'string' ? temp : '';
1693
+ } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {
1694
+ value = '';
1695
+ } else if (skipOnVariables) {
1696
+ value = match[0];
1697
+ continue;
1698
+ } else {
1699
+ _this.logger.warn("missed to pass in variable ".concat(matchedVar, " for interpolating ").concat(str));
1700
+ value = '';
1701
+ }
1702
+ } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {
1703
+ value = makeString(value);
1704
+ }
1705
+ var safeValue = todo.safeValue(value);
1706
+ str = str.replace(match[0], safeValue);
1707
+ if (skipOnVariables) {
1708
+ todo.regex.lastIndex += value.length;
1709
+ todo.regex.lastIndex -= match[0].length;
1710
+ } else {
1711
+ todo.regex.lastIndex = 0;
1712
+ }
1713
+ replaces++;
1714
+ if (replaces >= _this.maxReplaces) {
1715
+ break;
1716
+ }
1717
+ }
1718
+ });
1719
+ return str;
1720
+ }
1721
+ }, {
1722
+ key: "nest",
1723
+ value: function nest(str, fc) {
1724
+ var _this2 = this;
1725
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1726
+ var match;
1727
+ var value;
1728
+ var clonedOptions;
1729
+ function handleHasOptions(key, inheritedOptions) {
1730
+ var sep = this.nestingOptionsSeparator;
1731
+ if (key.indexOf(sep) < 0) return key;
1732
+ var c = key.split(new RegExp("".concat(sep, "[ ]*{")));
1733
+ var optionsString = "{".concat(c[1]);
1734
+ key = c[0];
1735
+ optionsString = this.interpolate(optionsString, clonedOptions);
1736
+ var matchedSingleQuotes = optionsString.match(/'/g);
1737
+ var matchedDoubleQuotes = optionsString.match(/"/g);
1738
+ if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {
1739
+ optionsString = optionsString.replace(/'/g, '"');
1740
+ }
1741
+ try {
1742
+ clonedOptions = JSON.parse(optionsString);
1743
+ if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);
1744
+ } catch (e) {
1745
+ this.logger.warn("failed parsing options string in nesting for key ".concat(key), e);
1746
+ return "".concat(key).concat(sep).concat(optionsString);
1747
+ }
1748
+ delete clonedOptions.defaultValue;
1749
+ return key;
1750
+ }
1751
+ while (match = this.nestingRegexp.exec(str)) {
1752
+ var formatters = [];
1753
+ clonedOptions = _objectSpread$3({}, options);
1754
+ clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;
1755
+ clonedOptions.applyPostProcessor = false;
1756
+ delete clonedOptions.defaultValue;
1757
+ var doReduce = false;
1758
+ if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {
1759
+ var r = match[1].split(this.formatSeparator).map(function (elem) {
1760
+ return elem.trim();
1761
+ });
1762
+ match[1] = r.shift();
1763
+ formatters = r;
1764
+ doReduce = true;
1765
+ }
1766
+ value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);
1767
+ if (value && match[0] === str && typeof value !== 'string') return value;
1768
+ if (typeof value !== 'string') value = makeString(value);
1769
+ if (!value) {
1770
+ this.logger.warn("missed to resolve ".concat(match[1], " for nesting ").concat(str));
1771
+ value = '';
1772
+ }
1773
+ if (doReduce) {
1774
+ value = formatters.reduce(function (v, f) {
1775
+ return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {
1776
+ interpolationkey: match[1].trim()
1777
+ }));
1778
+ }, value.trim());
1779
+ }
1780
+ str = str.replace(match[0], value);
1781
+ this.regexp.lastIndex = 0;
1782
+ }
1783
+ return str;
1784
+ }
1785
+ }]);
1786
+ return Interpolator;
1787
+ }();
1788
+
1789
+ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1790
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1791
+ function parseFormatStr(formatStr) {
1792
+ var formatName = formatStr.toLowerCase().trim();
1793
+ var formatOptions = {};
1794
+ if (formatStr.indexOf('(') > -1) {
1795
+ var p = formatStr.split('(');
1796
+ formatName = p[0].toLowerCase().trim();
1797
+ var optStr = p[1].substring(0, p[1].length - 1);
1798
+ if (formatName === 'currency' && optStr.indexOf(':') < 0) {
1799
+ if (!formatOptions.currency) formatOptions.currency = optStr.trim();
1800
+ } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {
1801
+ if (!formatOptions.range) formatOptions.range = optStr.trim();
1802
+ } else {
1803
+ var opts = optStr.split(';');
1804
+ opts.forEach(function (opt) {
1805
+ if (!opt) return;
1806
+ var _opt$split = opt.split(':'),
1807
+ _opt$split2 = _toArray(_opt$split),
1808
+ key = _opt$split2[0],
1809
+ rest = _opt$split2.slice(1);
1810
+ var val = rest.join(':').trim().replace(/^'+|'+$/g, '');
1811
+ if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;
1812
+ if (val === 'false') formatOptions[key.trim()] = false;
1813
+ if (val === 'true') formatOptions[key.trim()] = true;
1814
+ if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);
1815
+ });
1816
+ }
1817
+ }
1818
+ return {
1819
+ formatName: formatName,
1820
+ formatOptions: formatOptions
1821
+ };
1822
+ }
1823
+ function createCachedFormatter(fn) {
1824
+ var cache = {};
1825
+ return function invokeFormatter(val, lng, options) {
1826
+ var key = lng + JSON.stringify(options);
1827
+ var formatter = cache[key];
1828
+ if (!formatter) {
1829
+ formatter = fn(lng, options);
1830
+ cache[key] = formatter;
1831
+ }
1832
+ return formatter(val);
1833
+ };
1834
+ }
1835
+ var Formatter = function () {
1836
+ function Formatter() {
1837
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1838
+ _classCallCheck$1(this, Formatter);
1839
+ this.logger = baseLogger.create('formatter');
1840
+ this.options = options;
1841
+ this.formats = {
1842
+ number: createCachedFormatter(function (lng, opt) {
1843
+ var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));
1844
+ return function (val) {
1845
+ return formatter.format(val);
1846
+ };
1847
+ }),
1848
+ currency: createCachedFormatter(function (lng, opt) {
1849
+ var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {
1850
+ style: 'currency'
1851
+ }));
1852
+ return function (val) {
1853
+ return formatter.format(val);
1854
+ };
1855
+ }),
1856
+ datetime: createCachedFormatter(function (lng, opt) {
1857
+ var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));
1858
+ return function (val) {
1859
+ return formatter.format(val);
1860
+ };
1861
+ }),
1862
+ relativetime: createCachedFormatter(function (lng, opt) {
1863
+ var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));
1864
+ return function (val) {
1865
+ return formatter.format(val, opt.range || 'day');
1866
+ };
1867
+ }),
1868
+ list: createCachedFormatter(function (lng, opt) {
1869
+ var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));
1870
+ return function (val) {
1871
+ return formatter.format(val);
1872
+ };
1873
+ })
1874
+ };
1875
+ this.init(options);
1876
+ }
1877
+ _createClass$1(Formatter, [{
1878
+ key: "init",
1879
+ value: function init(services) {
1880
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
1881
+ interpolation: {}
1882
+ };
1883
+ var iOpts = options.interpolation;
1884
+ this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';
1885
+ }
1886
+ }, {
1887
+ key: "add",
1888
+ value: function add(name, fc) {
1889
+ this.formats[name.toLowerCase().trim()] = fc;
1890
+ }
1891
+ }, {
1892
+ key: "addCached",
1893
+ value: function addCached(name, fc) {
1894
+ this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);
1895
+ }
1896
+ }, {
1897
+ key: "format",
1898
+ value: function format(value, _format, lng) {
1899
+ var _this = this;
1900
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1901
+ var formats = _format.split(this.formatSeparator);
1902
+ var result = formats.reduce(function (mem, f) {
1903
+ var _parseFormatStr = parseFormatStr(f),
1904
+ formatName = _parseFormatStr.formatName,
1905
+ formatOptions = _parseFormatStr.formatOptions;
1906
+ if (_this.formats[formatName]) {
1907
+ var formatted = mem;
1908
+ try {
1909
+ var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};
1910
+ var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;
1911
+ formatted = _this.formats[formatName](mem, l, _objectSpread$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));
1912
+ } catch (error) {
1913
+ _this.logger.warn(error);
1914
+ }
1915
+ return formatted;
1916
+ } else {
1917
+ _this.logger.warn("there was no format function for ".concat(formatName));
1918
+ }
1919
+ return mem;
1920
+ }, value);
1921
+ return result;
1922
+ }
1923
+ }]);
1924
+ return Formatter;
1925
+ }();
1926
+
1927
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1928
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1929
+ function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1930
+ function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1931
+ function removePending(q, name) {
1932
+ if (q.pending[name] !== undefined) {
1933
+ delete q.pending[name];
1934
+ q.pendingCount--;
1935
+ }
1936
+ }
1937
+ var Connector = function (_EventEmitter) {
1938
+ _inherits(Connector, _EventEmitter);
1939
+ var _super = _createSuper$1(Connector);
1940
+ function Connector(backend, store, services) {
1941
+ var _this;
1942
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1943
+ _classCallCheck$1(this, Connector);
1944
+ _this = _super.call(this);
1945
+ if (isIE10) {
1946
+ EventEmitter.call(_assertThisInitialized(_this));
1947
+ }
1948
+ _this.backend = backend;
1949
+ _this.store = store;
1950
+ _this.services = services;
1951
+ _this.languageUtils = services.languageUtils;
1952
+ _this.options = options;
1953
+ _this.logger = baseLogger.create('backendConnector');
1954
+ _this.waitingReads = [];
1955
+ _this.maxParallelReads = options.maxParallelReads || 10;
1956
+ _this.readingCalls = 0;
1957
+ _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;
1958
+ _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;
1959
+ _this.state = {};
1960
+ _this.queue = [];
1961
+ if (_this.backend && _this.backend.init) {
1962
+ _this.backend.init(services, options.backend, options);
1963
+ }
1964
+ return _this;
1965
+ }
1966
+ _createClass$1(Connector, [{
1967
+ key: "queueLoad",
1968
+ value: function queueLoad(languages, namespaces, options, callback) {
1969
+ var _this2 = this;
1970
+ var toLoad = {};
1971
+ var pending = {};
1972
+ var toLoadLanguages = {};
1973
+ var toLoadNamespaces = {};
1974
+ languages.forEach(function (lng) {
1975
+ var hasAllNamespaces = true;
1976
+ namespaces.forEach(function (ns) {
1977
+ var name = "".concat(lng, "|").concat(ns);
1978
+ if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {
1979
+ _this2.state[name] = 2;
1980
+ } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {
1981
+ if (pending[name] === undefined) pending[name] = true;
1982
+ } else {
1983
+ _this2.state[name] = 1;
1984
+ hasAllNamespaces = false;
1985
+ if (pending[name] === undefined) pending[name] = true;
1986
+ if (toLoad[name] === undefined) toLoad[name] = true;
1987
+ if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;
1988
+ }
1989
+ });
1990
+ if (!hasAllNamespaces) toLoadLanguages[lng] = true;
1991
+ });
1992
+ if (Object.keys(toLoad).length || Object.keys(pending).length) {
1993
+ this.queue.push({
1994
+ pending: pending,
1995
+ pendingCount: Object.keys(pending).length,
1996
+ loaded: {},
1997
+ errors: [],
1998
+ callback: callback
1999
+ });
2000
+ }
2001
+ return {
2002
+ toLoad: Object.keys(toLoad),
2003
+ pending: Object.keys(pending),
2004
+ toLoadLanguages: Object.keys(toLoadLanguages),
2005
+ toLoadNamespaces: Object.keys(toLoadNamespaces)
2006
+ };
2007
+ }
2008
+ }, {
2009
+ key: "loaded",
2010
+ value: function loaded(name, err, data) {
2011
+ var s = name.split('|');
2012
+ var lng = s[0];
2013
+ var ns = s[1];
2014
+ if (err) this.emit('failedLoading', lng, ns, err);
2015
+ if (data) {
2016
+ this.store.addResourceBundle(lng, ns, data);
2017
+ }
2018
+ this.state[name] = err ? -1 : 2;
2019
+ var loaded = {};
2020
+ this.queue.forEach(function (q) {
2021
+ pushPath(q.loaded, [lng], ns);
2022
+ removePending(q, name);
2023
+ if (err) q.errors.push(err);
2024
+ if (q.pendingCount === 0 && !q.done) {
2025
+ Object.keys(q.loaded).forEach(function (l) {
2026
+ if (!loaded[l]) loaded[l] = {};
2027
+ var loadedKeys = q.loaded[l];
2028
+ if (loadedKeys.length) {
2029
+ loadedKeys.forEach(function (n) {
2030
+ if (loaded[l][n] === undefined) loaded[l][n] = true;
2031
+ });
2032
+ }
2033
+ });
2034
+ q.done = true;
2035
+ if (q.errors.length) {
2036
+ q.callback(q.errors);
2037
+ } else {
2038
+ q.callback();
2039
+ }
2040
+ }
2041
+ });
2042
+ this.emit('loaded', loaded);
2043
+ this.queue = this.queue.filter(function (q) {
2044
+ return !q.done;
2045
+ });
2046
+ }
2047
+ }, {
2048
+ key: "read",
2049
+ value: function read(lng, ns, fcName) {
2050
+ var _this3 = this;
2051
+ var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2052
+ var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;
2053
+ var callback = arguments.length > 5 ? arguments[5] : undefined;
2054
+ if (!lng.length) return callback(null, {});
2055
+ if (this.readingCalls >= this.maxParallelReads) {
2056
+ this.waitingReads.push({
2057
+ lng: lng,
2058
+ ns: ns,
2059
+ fcName: fcName,
2060
+ tried: tried,
2061
+ wait: wait,
2062
+ callback: callback
2063
+ });
2064
+ return;
2065
+ }
2066
+ this.readingCalls++;
2067
+ var resolver = function resolver(err, data) {
2068
+ _this3.readingCalls--;
2069
+ if (_this3.waitingReads.length > 0) {
2070
+ var next = _this3.waitingReads.shift();
2071
+ _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);
2072
+ }
2073
+ if (err && data && tried < _this3.maxRetries) {
2074
+ setTimeout(function () {
2075
+ _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);
2076
+ }, wait);
2077
+ return;
2078
+ }
2079
+ callback(err, data);
2080
+ };
2081
+ var fc = this.backend[fcName].bind(this.backend);
2082
+ if (fc.length === 2) {
2083
+ try {
2084
+ var r = fc(lng, ns);
2085
+ if (r && typeof r.then === 'function') {
2086
+ r.then(function (data) {
2087
+ return resolver(null, data);
2088
+ })["catch"](resolver);
2089
+ } else {
2090
+ resolver(null, r);
2091
+ }
2092
+ } catch (err) {
2093
+ resolver(err);
2094
+ }
2095
+ return;
2096
+ }
2097
+ return fc(lng, ns, resolver);
2098
+ }
2099
+ }, {
2100
+ key: "prepareLoading",
2101
+ value: function prepareLoading(languages, namespaces) {
2102
+ var _this4 = this;
2103
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2104
+ var callback = arguments.length > 3 ? arguments[3] : undefined;
2105
+ if (!this.backend) {
2106
+ this.logger.warn('No backend was added via i18next.use. Will not load resources.');
2107
+ return callback && callback();
2108
+ }
2109
+ if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);
2110
+ if (typeof namespaces === 'string') namespaces = [namespaces];
2111
+ var toLoad = this.queueLoad(languages, namespaces, options, callback);
2112
+ if (!toLoad.toLoad.length) {
2113
+ if (!toLoad.pending.length) callback();
2114
+ return null;
2115
+ }
2116
+ toLoad.toLoad.forEach(function (name) {
2117
+ _this4.loadOne(name);
2118
+ });
2119
+ }
2120
+ }, {
2121
+ key: "load",
2122
+ value: function load(languages, namespaces, callback) {
2123
+ this.prepareLoading(languages, namespaces, {}, callback);
2124
+ }
2125
+ }, {
2126
+ key: "reload",
2127
+ value: function reload(languages, namespaces, callback) {
2128
+ this.prepareLoading(languages, namespaces, {
2129
+ reload: true
2130
+ }, callback);
2131
+ }
2132
+ }, {
2133
+ key: "loadOne",
2134
+ value: function loadOne(name) {
2135
+ var _this5 = this;
2136
+ var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
2137
+ var s = name.split('|');
2138
+ var lng = s[0];
2139
+ var ns = s[1];
2140
+ this.read(lng, ns, 'read', undefined, undefined, function (err, data) {
2141
+ if (err) _this5.logger.warn("".concat(prefix, "loading namespace ").concat(ns, " for language ").concat(lng, " failed"), err);
2142
+ if (!err && data) _this5.logger.log("".concat(prefix, "loaded namespace ").concat(ns, " for language ").concat(lng), data);
2143
+ _this5.loaded(name, err, data);
2144
+ });
2145
+ }
2146
+ }, {
2147
+ key: "saveMissing",
2148
+ value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {
2149
+ var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
2150
+ var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};
2151
+ if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {
2152
+ this.logger.warn("did not save key \"".concat(key, "\" as the namespace \"").concat(namespace, "\" was not yet loaded"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');
2153
+ return;
2154
+ }
2155
+ if (key === undefined || key === null || key === '') return;
2156
+ if (this.backend && this.backend.create) {
2157
+ var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {
2158
+ isUpdate: isUpdate
2159
+ });
2160
+ var fc = this.backend.create.bind(this.backend);
2161
+ if (fc.length < 6) {
2162
+ try {
2163
+ var r;
2164
+ if (fc.length === 5) {
2165
+ r = fc(languages, namespace, key, fallbackValue, opts);
2166
+ } else {
2167
+ r = fc(languages, namespace, key, fallbackValue);
2168
+ }
2169
+ if (r && typeof r.then === 'function') {
2170
+ r.then(function (data) {
2171
+ return clb(null, data);
2172
+ })["catch"](clb);
2173
+ } else {
2174
+ clb(null, r);
2175
+ }
2176
+ } catch (err) {
2177
+ clb(err);
2178
+ }
2179
+ } else {
2180
+ fc(languages, namespace, key, fallbackValue, clb, opts);
2181
+ }
2182
+ }
2183
+ if (!languages || !languages[0]) return;
2184
+ this.store.addResource(languages[0], namespace, key, fallbackValue);
2185
+ }
2186
+ }]);
2187
+ return Connector;
2188
+ }(EventEmitter);
2189
+
2190
+ function get() {
2191
+ return {
2192
+ debug: false,
2193
+ initImmediate: true,
2194
+ ns: ['translation'],
2195
+ defaultNS: ['translation'],
2196
+ fallbackLng: ['dev'],
2197
+ fallbackNS: false,
2198
+ supportedLngs: false,
2199
+ nonExplicitSupportedLngs: false,
2200
+ load: 'all',
2201
+ preload: false,
2202
+ simplifyPluralSuffix: true,
2203
+ keySeparator: '.',
2204
+ nsSeparator: ':',
2205
+ pluralSeparator: '_',
2206
+ contextSeparator: '_',
2207
+ partialBundledLanguages: false,
2208
+ saveMissing: false,
2209
+ updateMissing: false,
2210
+ saveMissingTo: 'fallback',
2211
+ saveMissingPlurals: true,
2212
+ missingKeyHandler: false,
2213
+ missingInterpolationHandler: false,
2214
+ postProcess: false,
2215
+ postProcessPassResolved: false,
2216
+ returnNull: true,
2217
+ returnEmptyString: true,
2218
+ returnObjects: false,
2219
+ joinArrays: false,
2220
+ returnedObjectHandler: false,
2221
+ parseMissingKeyHandler: false,
2222
+ appendNamespaceToMissingKey: false,
2223
+ appendNamespaceToCIMode: false,
2224
+ overloadTranslationOptionHandler: function handle(args) {
2225
+ var ret = {};
2226
+ if (_typeof$1(args[1]) === 'object') ret = args[1];
2227
+ if (typeof args[1] === 'string') ret.defaultValue = args[1];
2228
+ if (typeof args[2] === 'string') ret.tDescription = args[2];
2229
+ if (_typeof$1(args[2]) === 'object' || _typeof$1(args[3]) === 'object') {
2230
+ var options = args[3] || args[2];
2231
+ Object.keys(options).forEach(function (key) {
2232
+ ret[key] = options[key];
2233
+ });
2234
+ }
2235
+ return ret;
2236
+ },
2237
+ interpolation: {
2238
+ escapeValue: true,
2239
+ format: function format(value, _format, lng, options) {
2240
+ return value;
2241
+ },
2242
+ prefix: '{{',
2243
+ suffix: '}}',
2244
+ formatSeparator: ',',
2245
+ unescapePrefix: '-',
2246
+ nestingPrefix: '$t(',
2247
+ nestingSuffix: ')',
2248
+ nestingOptionsSeparator: ',',
2249
+ maxReplaces: 1000,
2250
+ skipOnVariables: true
2251
+ }
2252
+ };
2253
+ }
2254
+ function transformOptions(options) {
2255
+ if (typeof options.ns === 'string') options.ns = [options.ns];
2256
+ if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];
2257
+ if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];
2258
+ if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {
2259
+ options.supportedLngs = options.supportedLngs.concat(['cimode']);
2260
+ }
2261
+ return options;
2262
+ }
2263
+
2264
+ function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2265
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2266
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
2267
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2268
+ function noop() {}
2269
+ function bindMemberFunctions(inst) {
2270
+ var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
2271
+ mems.forEach(function (mem) {
2272
+ if (typeof inst[mem] === 'function') {
2273
+ inst[mem] = inst[mem].bind(inst);
2274
+ }
2275
+ });
2276
+ }
2277
+ var I18n = function (_EventEmitter) {
2278
+ _inherits(I18n, _EventEmitter);
2279
+ var _super = _createSuper(I18n);
2280
+ function I18n() {
2281
+ var _this;
2282
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2283
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
2284
+ _classCallCheck$1(this, I18n);
2285
+ _this = _super.call(this);
2286
+ if (isIE10) {
2287
+ EventEmitter.call(_assertThisInitialized(_this));
2288
+ }
2289
+ _this.options = transformOptions(options);
2290
+ _this.services = {};
2291
+ _this.logger = baseLogger;
2292
+ _this.modules = {
2293
+ external: []
2294
+ };
2295
+ bindMemberFunctions(_assertThisInitialized(_this));
2296
+ if (callback && !_this.isInitialized && !options.isClone) {
2297
+ if (!_this.options.initImmediate) {
2298
+ _this.init(options, callback);
2299
+ return _possibleConstructorReturn(_this, _assertThisInitialized(_this));
2300
+ }
2301
+ setTimeout(function () {
2302
+ _this.init(options, callback);
2303
+ }, 0);
2304
+ }
2305
+ return _this;
2306
+ }
2307
+ _createClass$1(I18n, [{
2308
+ key: "init",
2309
+ value: function init() {
2310
+ var _this2 = this;
2311
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2312
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
2313
+ if (typeof options === 'function') {
2314
+ callback = options;
2315
+ options = {};
2316
+ }
2317
+ if (!options.defaultNS && options.defaultNS !== false && options.ns) {
2318
+ if (typeof options.ns === 'string') {
2319
+ options.defaultNS = options.ns;
2320
+ } else if (options.ns.indexOf('translation') < 0) {
2321
+ options.defaultNS = options.ns[0];
2322
+ }
2323
+ }
2324
+ var defOpts = get();
2325
+ this.options = _objectSpread$7(_objectSpread$7(_objectSpread$7({}, defOpts), this.options), transformOptions(options));
2326
+ if (this.options.compatibilityAPI !== 'v1') {
2327
+ this.options.interpolation = _objectSpread$7(_objectSpread$7({}, defOpts.interpolation), this.options.interpolation);
2328
+ }
2329
+ if (options.keySeparator !== undefined) {
2330
+ this.options.userDefinedKeySeparator = options.keySeparator;
2331
+ }
2332
+ if (options.nsSeparator !== undefined) {
2333
+ this.options.userDefinedNsSeparator = options.nsSeparator;
2334
+ }
2335
+ function createClassOnDemand(ClassOrObject) {
2336
+ if (!ClassOrObject) return null;
2337
+ if (typeof ClassOrObject === 'function') return new ClassOrObject();
2338
+ return ClassOrObject;
2339
+ }
2340
+ if (!this.options.isClone) {
2341
+ if (this.modules.logger) {
2342
+ baseLogger.init(createClassOnDemand(this.modules.logger), this.options);
2343
+ } else {
2344
+ baseLogger.init(null, this.options);
2345
+ }
2346
+ var formatter;
2347
+ if (this.modules.formatter) {
2348
+ formatter = this.modules.formatter;
2349
+ } else if (typeof Intl !== 'undefined') {
2350
+ formatter = Formatter;
2351
+ }
2352
+ var lu = new LanguageUtil(this.options);
2353
+ this.store = new ResourceStore(this.options.resources, this.options);
2354
+ var s = this.services;
2355
+ s.logger = baseLogger;
2356
+ s.resourceStore = this.store;
2357
+ s.languageUtils = lu;
2358
+ s.pluralResolver = new PluralResolver(lu, {
2359
+ prepend: this.options.pluralSeparator,
2360
+ compatibilityJSON: this.options.compatibilityJSON,
2361
+ simplifyPluralSuffix: this.options.simplifyPluralSuffix
2362
+ });
2363
+ if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {
2364
+ s.formatter = createClassOnDemand(formatter);
2365
+ s.formatter.init(s, this.options);
2366
+ this.options.interpolation.format = s.formatter.format.bind(s.formatter);
2367
+ }
2368
+ s.interpolator = new Interpolator(this.options);
2369
+ s.utils = {
2370
+ hasLoadedNamespace: this.hasLoadedNamespace.bind(this)
2371
+ };
2372
+ s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);
2373
+ s.backendConnector.on('*', function (event) {
2374
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2375
+ args[_key - 1] = arguments[_key];
2376
+ }
2377
+ _this2.emit.apply(_this2, [event].concat(args));
2378
+ });
2379
+ if (this.modules.languageDetector) {
2380
+ s.languageDetector = createClassOnDemand(this.modules.languageDetector);
2381
+ if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);
2382
+ }
2383
+ if (this.modules.i18nFormat) {
2384
+ s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);
2385
+ if (s.i18nFormat.init) s.i18nFormat.init(this);
2386
+ }
2387
+ this.translator = new Translator(this.services, this.options);
2388
+ this.translator.on('*', function (event) {
2389
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
2390
+ args[_key2 - 1] = arguments[_key2];
2391
+ }
2392
+ _this2.emit.apply(_this2, [event].concat(args));
2393
+ });
2394
+ this.modules.external.forEach(function (m) {
2395
+ if (m.init) m.init(_this2);
2396
+ });
2397
+ }
2398
+ this.format = this.options.interpolation.format;
2399
+ if (!callback) callback = noop;
2400
+ if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
2401
+ var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2402
+ if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];
2403
+ }
2404
+ if (!this.services.languageDetector && !this.options.lng) {
2405
+ this.logger.warn('init: no languageDetector is used and no lng is defined');
2406
+ }
2407
+ var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];
2408
+ storeApi.forEach(function (fcName) {
2409
+ _this2[fcName] = function () {
2410
+ var _this2$store;
2411
+ return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);
2412
+ };
2413
+ });
2414
+ var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];
2415
+ storeApiChained.forEach(function (fcName) {
2416
+ _this2[fcName] = function () {
2417
+ var _this2$store2;
2418
+ (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);
2419
+ return _this2;
2420
+ };
2421
+ });
2422
+ var deferred = defer();
2423
+ var load = function load() {
2424
+ var finish = function finish(err, t) {
2425
+ if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');
2426
+ _this2.isInitialized = true;
2427
+ if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);
2428
+ _this2.emit('initialized', _this2.options);
2429
+ deferred.resolve(t);
2430
+ callback(err, t);
2431
+ };
2432
+ if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));
2433
+ _this2.changeLanguage(_this2.options.lng, finish);
2434
+ };
2435
+ if (this.options.resources || !this.options.initImmediate) {
2436
+ load();
2437
+ } else {
2438
+ setTimeout(load, 0);
2439
+ }
2440
+ return deferred;
2441
+ }
2442
+ }, {
2443
+ key: "loadResources",
2444
+ value: function loadResources(language) {
2445
+ var _this3 = this;
2446
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
2447
+ var usedCallback = callback;
2448
+ var usedLng = typeof language === 'string' ? language : this.language;
2449
+ if (typeof language === 'function') usedCallback = language;
2450
+ if (!this.options.resources || this.options.partialBundledLanguages) {
2451
+ if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();
2452
+ var toLoad = [];
2453
+ var append = function append(lng) {
2454
+ if (!lng) return;
2455
+ var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);
2456
+ lngs.forEach(function (l) {
2457
+ if (toLoad.indexOf(l) < 0) toLoad.push(l);
2458
+ });
2459
+ };
2460
+ if (!usedLng) {
2461
+ var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2462
+ fallbacks.forEach(function (l) {
2463
+ return append(l);
2464
+ });
2465
+ } else {
2466
+ append(usedLng);
2467
+ }
2468
+ if (this.options.preload) {
2469
+ this.options.preload.forEach(function (l) {
2470
+ return append(l);
2471
+ });
2472
+ }
2473
+ this.services.backendConnector.load(toLoad, this.options.ns, function (e) {
2474
+ if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);
2475
+ usedCallback(e);
2476
+ });
2477
+ } else {
2478
+ usedCallback(null);
2479
+ }
2480
+ }
2481
+ }, {
2482
+ key: "reloadResources",
2483
+ value: function reloadResources(lngs, ns, callback) {
2484
+ var deferred = defer();
2485
+ if (!lngs) lngs = this.languages;
2486
+ if (!ns) ns = this.options.ns;
2487
+ if (!callback) callback = noop;
2488
+ this.services.backendConnector.reload(lngs, ns, function (err) {
2489
+ deferred.resolve();
2490
+ callback(err);
2491
+ });
2492
+ return deferred;
2493
+ }
2494
+ }, {
2495
+ key: "use",
2496
+ value: function use(module) {
2497
+ if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');
2498
+ if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');
2499
+ if (module.type === 'backend') {
2500
+ this.modules.backend = module;
2501
+ }
2502
+ if (module.type === 'logger' || module.log && module.warn && module.error) {
2503
+ this.modules.logger = module;
2504
+ }
2505
+ if (module.type === 'languageDetector') {
2506
+ this.modules.languageDetector = module;
2507
+ }
2508
+ if (module.type === 'i18nFormat') {
2509
+ this.modules.i18nFormat = module;
2510
+ }
2511
+ if (module.type === 'postProcessor') {
2512
+ postProcessor.addPostProcessor(module);
2513
+ }
2514
+ if (module.type === 'formatter') {
2515
+ this.modules.formatter = module;
2516
+ }
2517
+ if (module.type === '3rdParty') {
2518
+ this.modules.external.push(module);
2519
+ }
2520
+ return this;
2521
+ }
2522
+ }, {
2523
+ key: "setResolvedLanguage",
2524
+ value: function setResolvedLanguage(l) {
2525
+ if (!l || !this.languages) return;
2526
+ if (['cimode', 'dev'].indexOf(l) > -1) return;
2527
+ for (var li = 0; li < this.languages.length; li++) {
2528
+ var lngInLngs = this.languages[li];
2529
+ if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;
2530
+ if (this.store.hasLanguageSomeTranslations(lngInLngs)) {
2531
+ this.resolvedLanguage = lngInLngs;
2532
+ break;
2533
+ }
2534
+ }
2535
+ }
2536
+ }, {
2537
+ key: "changeLanguage",
2538
+ value: function changeLanguage(lng, callback) {
2539
+ var _this4 = this;
2540
+ this.isLanguageChangingTo = lng;
2541
+ var deferred = defer();
2542
+ this.emit('languageChanging', lng);
2543
+ var setLngProps = function setLngProps(l) {
2544
+ _this4.language = l;
2545
+ _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
2546
+ _this4.resolvedLanguage = undefined;
2547
+ _this4.setResolvedLanguage(l);
2548
+ };
2549
+ var done = function done(err, l) {
2550
+ if (l) {
2551
+ setLngProps(l);
2552
+ _this4.translator.changeLanguage(l);
2553
+ _this4.isLanguageChangingTo = undefined;
2554
+ _this4.emit('languageChanged', l);
2555
+ _this4.logger.log('languageChanged', l);
2556
+ } else {
2557
+ _this4.isLanguageChangingTo = undefined;
2558
+ }
2559
+ deferred.resolve(function () {
2560
+ return _this4.t.apply(_this4, arguments);
2561
+ });
2562
+ if (callback) callback(err, function () {
2563
+ return _this4.t.apply(_this4, arguments);
2564
+ });
2565
+ };
2566
+ var setLng = function setLng(lngs) {
2567
+ if (!lng && !lngs && _this4.services.languageDetector) lngs = [];
2568
+ var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);
2569
+ if (l) {
2570
+ if (!_this4.language) {
2571
+ setLngProps(l);
2572
+ }
2573
+ if (!_this4.translator.language) _this4.translator.changeLanguage(l);
2574
+ if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);
2575
+ }
2576
+ _this4.loadResources(l, function (err) {
2577
+ done(err, l);
2578
+ });
2579
+ };
2580
+ if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {
2581
+ setLng(this.services.languageDetector.detect());
2582
+ } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {
2583
+ if (this.services.languageDetector.detect.length === 0) {
2584
+ this.services.languageDetector.detect().then(setLng);
2585
+ } else {
2586
+ this.services.languageDetector.detect(setLng);
2587
+ }
2588
+ } else {
2589
+ setLng(lng);
2590
+ }
2591
+ return deferred;
2592
+ }
2593
+ }, {
2594
+ key: "getFixedT",
2595
+ value: function getFixedT(lng, ns, keyPrefix) {
2596
+ var _this5 = this;
2597
+ var fixedT = function fixedT(key, opts) {
2598
+ var options;
2599
+ if (_typeof$1(opts) !== 'object') {
2600
+ for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
2601
+ rest[_key3 - 2] = arguments[_key3];
2602
+ }
2603
+ options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));
2604
+ } else {
2605
+ options = _objectSpread$7({}, opts);
2606
+ }
2607
+ options.lng = options.lng || fixedT.lng;
2608
+ options.lngs = options.lngs || fixedT.lngs;
2609
+ options.ns = options.ns || fixedT.ns;
2610
+ options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;
2611
+ var keySeparator = _this5.options.keySeparator || '.';
2612
+ var resultKey;
2613
+ if (options.keyPrefix && Array.isArray(key)) {
2614
+ resultKey = key.map(function (k) {
2615
+ return "".concat(options.keyPrefix).concat(keySeparator).concat(k);
2616
+ });
2617
+ } else {
2618
+ resultKey = options.keyPrefix ? "".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;
2619
+ }
2620
+ return _this5.t(resultKey, options);
2621
+ };
2622
+ if (typeof lng === 'string') {
2623
+ fixedT.lng = lng;
2624
+ } else {
2625
+ fixedT.lngs = lng;
2626
+ }
2627
+ fixedT.ns = ns;
2628
+ fixedT.keyPrefix = keyPrefix;
2629
+ return fixedT;
2630
+ }
2631
+ }, {
2632
+ key: "t",
2633
+ value: function t() {
2634
+ var _this$translator;
2635
+ return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);
2636
+ }
2637
+ }, {
2638
+ key: "exists",
2639
+ value: function exists() {
2640
+ var _this$translator2;
2641
+ return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);
2642
+ }
2643
+ }, {
2644
+ key: "setDefaultNamespace",
2645
+ value: function setDefaultNamespace(ns) {
2646
+ this.options.defaultNS = ns;
2647
+ }
2648
+ }, {
2649
+ key: "hasLoadedNamespace",
2650
+ value: function hasLoadedNamespace(ns) {
2651
+ var _this6 = this;
2652
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2653
+ if (!this.isInitialized) {
2654
+ this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);
2655
+ return false;
2656
+ }
2657
+ if (!this.languages || !this.languages.length) {
2658
+ this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);
2659
+ return false;
2660
+ }
2661
+ var lng = options.lng || this.resolvedLanguage || this.languages[0];
2662
+ var fallbackLng = this.options ? this.options.fallbackLng : false;
2663
+ var lastLng = this.languages[this.languages.length - 1];
2664
+ if (lng.toLowerCase() === 'cimode') return true;
2665
+ var loadNotPending = function loadNotPending(l, n) {
2666
+ var loadState = _this6.services.backendConnector.state["".concat(l, "|").concat(n)];
2667
+ return loadState === -1 || loadState === 2;
2668
+ };
2669
+ if (options.precheck) {
2670
+ var preResult = options.precheck(this, loadNotPending);
2671
+ if (preResult !== undefined) return preResult;
2672
+ }
2673
+ if (this.hasResourceBundle(lng, ns)) return true;
2674
+ if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;
2675
+ if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
2676
+ return false;
2677
+ }
2678
+ }, {
2679
+ key: "loadNamespaces",
2680
+ value: function loadNamespaces(ns, callback) {
2681
+ var _this7 = this;
2682
+ var deferred = defer();
2683
+ if (!this.options.ns) {
2684
+ if (callback) callback();
2685
+ return Promise.resolve();
2686
+ }
2687
+ if (typeof ns === 'string') ns = [ns];
2688
+ ns.forEach(function (n) {
2689
+ if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);
2690
+ });
2691
+ this.loadResources(function (err) {
2692
+ deferred.resolve();
2693
+ if (callback) callback(err);
2694
+ });
2695
+ return deferred;
2696
+ }
2697
+ }, {
2698
+ key: "loadLanguages",
2699
+ value: function loadLanguages(lngs, callback) {
2700
+ var deferred = defer();
2701
+ if (typeof lngs === 'string') lngs = [lngs];
2702
+ var preloaded = this.options.preload || [];
2703
+ var newLngs = lngs.filter(function (lng) {
2704
+ return preloaded.indexOf(lng) < 0;
2705
+ });
2706
+ if (!newLngs.length) {
2707
+ if (callback) callback();
2708
+ return Promise.resolve();
2709
+ }
2710
+ this.options.preload = preloaded.concat(newLngs);
2711
+ this.loadResources(function (err) {
2712
+ deferred.resolve();
2713
+ if (callback) callback(err);
2714
+ });
2715
+ return deferred;
2716
+ }
2717
+ }, {
2718
+ key: "dir",
2719
+ value: function dir(lng) {
2720
+ if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);
2721
+ if (!lng) return 'rtl';
2722
+ var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];
2723
+ var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());
2724
+ return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
2725
+ }
2726
+ }, {
2727
+ key: "cloneInstance",
2728
+ value: function cloneInstance() {
2729
+ var _this8 = this;
2730
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2731
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
2732
+ var mergedOptions = _objectSpread$7(_objectSpread$7(_objectSpread$7({}, this.options), options), {
2733
+ isClone: true
2734
+ });
2735
+ var clone = new I18n(mergedOptions);
2736
+ if (options.debug !== undefined || options.prefix !== undefined) {
2737
+ clone.logger = clone.logger.clone(options);
2738
+ }
2739
+ var membersToCopy = ['store', 'services', 'language'];
2740
+ membersToCopy.forEach(function (m) {
2741
+ clone[m] = _this8[m];
2742
+ });
2743
+ clone.services = _objectSpread$7({}, this.services);
2744
+ clone.services.utils = {
2745
+ hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)
2746
+ };
2747
+ clone.translator = new Translator(clone.services, clone.options);
2748
+ clone.translator.on('*', function (event) {
2749
+ for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
2750
+ args[_key4 - 1] = arguments[_key4];
2751
+ }
2752
+ clone.emit.apply(clone, [event].concat(args));
2753
+ });
2754
+ clone.init(mergedOptions, callback);
2755
+ clone.translator.options = clone.options;
2756
+ clone.translator.backendConnector.services.utils = {
2757
+ hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)
2758
+ };
2759
+ return clone;
2760
+ }
2761
+ }, {
2762
+ key: "toJSON",
2763
+ value: function toJSON() {
2764
+ return {
2765
+ options: this.options,
2766
+ store: this.store,
2767
+ language: this.language,
2768
+ languages: this.languages,
2769
+ resolvedLanguage: this.resolvedLanguage
2770
+ };
2771
+ }
2772
+ }]);
2773
+ return I18n;
2774
+ }(EventEmitter);
2775
+ _defineProperty$1(I18n, "createInstance", function () {
2776
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2777
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
2778
+ return new I18n(options, callback);
2779
+ });
2780
+ var instance = I18n.createInstance();
2781
+ instance.createInstance = I18n.createInstance;
2782
+
2783
+ instance.createInstance;
2784
+ instance.dir;
2785
+ instance.init;
2786
+ instance.loadResources;
2787
+ instance.reloadResources;
2788
+ instance.use;
2789
+ instance.changeLanguage;
2790
+ instance.getFixedT;
2791
+ instance.t;
2792
+ instance.exists;
2793
+ instance.setDefaultNamespace;
2794
+ instance.hasLoadedNamespace;
2795
+ instance.loadNamespaces;
2796
+ instance.loadLanguages;
2797
+
2798
+ function _typeof(obj) {
2799
+ "@babel/helpers - typeof";
2800
+
2801
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
2802
+ return typeof obj;
2803
+ } : function (obj) {
2804
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2805
+ }, _typeof(obj);
2806
+ }
2807
+
2808
+ function _toPrimitive(input, hint) {
2809
+ if (_typeof(input) !== "object" || input === null) return input;
2810
+ var prim = input[Symbol.toPrimitive];
2811
+ if (prim !== undefined) {
2812
+ var res = prim.call(input, hint || "default");
2813
+ if (_typeof(res) !== "object") return res;
2814
+ throw new TypeError("@@toPrimitive must return a primitive value.");
2815
+ }
2816
+ return (hint === "string" ? String : Number)(input);
2817
+ }
2818
+
2819
+ function _toPropertyKey(arg) {
2820
+ var key = _toPrimitive(arg, "string");
2821
+ return _typeof(key) === "symbol" ? key : String(key);
2822
+ }
2823
+
2824
+ function _defineProperty(obj, key, value) {
2825
+ key = _toPropertyKey(key);
2826
+ if (key in obj) {
2827
+ Object.defineProperty(obj, key, {
2828
+ value: value,
2829
+ enumerable: true,
2830
+ configurable: true,
2831
+ writable: true
2832
+ });
2833
+ } else {
2834
+ obj[key] = value;
2835
+ }
2836
+ return obj;
2837
+ }
2838
+
150
2839
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
151
2840
 
2841
+ var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
2842
+ var htmlEntities = {
2843
+ '&amp;': '&',
2844
+ '&#38;': '&',
2845
+ '&lt;': '<',
2846
+ '&#60;': '<',
2847
+ '&gt;': '>',
2848
+ '&#62;': '>',
2849
+ '&apos;': "'",
2850
+ '&#39;': "'",
2851
+ '&quot;': '"',
2852
+ '&#34;': '"',
2853
+ '&nbsp;': ' ',
2854
+ '&#160;': ' ',
2855
+ '&copy;': '©',
2856
+ '&#169;': '©',
2857
+ '&reg;': '®',
2858
+ '&#174;': '®',
2859
+ '&hellip;': '…',
2860
+ '&#8230;': '…',
2861
+ '&#x2F;': '/',
2862
+ '&#47;': '/'
2863
+ };
2864
+
2865
+ var unescapeHtmlEntity = function unescapeHtmlEntity(m) {
2866
+ return htmlEntities[m];
2867
+ };
2868
+
2869
+ var unescape = function unescape(text) {
2870
+ return text.replace(matchHtmlEntity, unescapeHtmlEntity);
2871
+ };
2872
+
2873
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2874
+
2875
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2876
+ var defaultOptions = {
2877
+ bindI18n: 'languageChanged',
2878
+ bindI18nStore: '',
2879
+ transEmptyNodeValue: '',
2880
+ transSupportBasicHtmlNodes: true,
2881
+ transWrapTextNodes: '',
2882
+ transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],
2883
+ useSuspense: true,
2884
+ unescape: unescape
2885
+ };
2886
+ function setDefaults() {
2887
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2888
+ defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);
2889
+ }
2890
+
2891
+ function _classCallCheck(instance, Constructor) {
2892
+ if (!(instance instanceof Constructor)) {
2893
+ throw new TypeError("Cannot call a class as a function");
2894
+ }
2895
+ }
2896
+
2897
+ function _defineProperties(target, props) {
2898
+ for (var i = 0; i < props.length; i++) {
2899
+ var descriptor = props[i];
2900
+ descriptor.enumerable = descriptor.enumerable || false;
2901
+ descriptor.configurable = true;
2902
+ if ("value" in descriptor) descriptor.writable = true;
2903
+ Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
2904
+ }
2905
+ }
2906
+ function _createClass(Constructor, protoProps, staticProps) {
2907
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
2908
+ if (staticProps) _defineProperties(Constructor, staticProps);
2909
+ Object.defineProperty(Constructor, "prototype", {
2910
+ writable: false
2911
+ });
2912
+ return Constructor;
2913
+ }
2914
+
2915
+ var initReactI18next = {
2916
+ type: '3rdParty',
2917
+ init: function init(instance) {
2918
+ setDefaults(instance.options.react);
2919
+ }
2920
+ };
2921
+
2922
+ React.createContext();
2923
+ (function () {
2924
+ function ReportNamespaces() {
2925
+ _classCallCheck(this, ReportNamespaces);
2926
+
2927
+ this.usedNamespaces = {};
2928
+ }
2929
+
2930
+ _createClass(ReportNamespaces, [{
2931
+ key: "addUsedNamespaces",
2932
+ value: function addUsedNamespaces(namespaces) {
2933
+ var _this = this;
2934
+
2935
+ namespaces.forEach(function (ns) {
2936
+ if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;
2937
+ });
2938
+ }
2939
+ }, {
2940
+ key: "getUsedNamespaces",
2941
+ value: function getUsedNamespaces() {
2942
+ return Object.keys(this.usedNamespaces);
2943
+ }
2944
+ }]);
2945
+
2946
+ return ReportNamespaces;
2947
+ })();
2948
+
152
2949
  /** Detect free variable `global` from Node.js. */
153
2950
 
154
2951
  var freeGlobal$1 = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
@@ -570,7 +3367,7 @@ const amisRender = (root, schema, data = {}, env = {}, options) => {
570
3367
  * @Author: baozhoutao@steedos.com
571
3368
  * @Date: 2022-07-04 11:24:28
572
3369
  * @LastEditors: baozhoutao@steedos.com
573
- * @LastEditTime: 2023-02-23 09:20:32
3370
+ * @LastEditTime: 2023-06-12 11:51:15
574
3371
  * @Description:
575
3372
  */
576
3373
 
@@ -600,7 +3397,6 @@ async function fetchAPI(api, options = { credentials: 'include' }) {
600
3397
 
601
3398
  options.headers = Object.assign({}, headers, options.headers);
602
3399
  options.credentials = 'include';
603
-
604
3400
  const res = await fetch(`${getRootUrl()}${api}`, options);
605
3401
 
606
3402
  if(res.status === 401){
@@ -695,7 +3491,7 @@ function getRootUrl(defaultRootUrl){
695
3491
  if(rootUrl){
696
3492
  return rootUrl
697
3493
  }
698
- return defaultRootUrl;
3494
+ return defaultRootUrl || '';
699
3495
  }
700
3496
 
701
3497
  function setRootUrl(rootUrl){
@@ -1770,6 +4566,350 @@ const parseSingleExpression$1 = function (func, formData, dataPath, global, user
1770
4566
  }
1771
4567
  };
1772
4568
 
4569
+ var frontend_field_group_generalization$1 = "Generalization";
4570
+ var frontend_download$1 = "Download";
4571
+ var frontend_form_save$1 = "Save";
4572
+ var frontend_form_save_and_new$1 = "Save and New";
4573
+ var frontend_form_cancel$1 = "Cancel";
4574
+ var frontend_form_new$1 = "New";
4575
+ var frontend_form_edit$1 = "Edit";
4576
+ var frontend_form_select$1 = "Select";
4577
+ var frontend_form_confirm$1 = "Confirm";
4578
+ var frontend_form_delete$1 = "Delete";
4579
+ var frontend_form_view$1 = "view";
4580
+ var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
4581
+ var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
4582
+ var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
4583
+ var frontend_display_type_is_table$1 = "Table";
4584
+ var frontend_display_type_is_split$1 = "Split View";
4585
+ var frontend_display_as$1 = "Displayed as";
4586
+ var frontend_record_sum$1 = "items";
4587
+ var frontend_button_reload_tooltip$1 = "Refresh";
4588
+ var frontend_button_search_tooltip$1 = "Search";
4589
+ var frontend_fields_filter_button_search$1 = "Search";
4590
+ var frontend_fields_filter_button_settings$1 = "Set search options";
4591
+ var frontend_button_listview_control_tooltip$1 = "List View Controls";
4592
+ var frontend_button_listview_control_label$1 = "LIST VIEW CONTROLS";
4593
+ var frontend_listview_control_columns$1 = "Show List";
4594
+ var frontend_listview_control_columns_mobile_group$1 = "Mobile side";
4595
+ var frontend_listview_control_clone_label$1 = "Clone";
4596
+ var frontend_listview_control_clone_title$1 = "Clone List View";
4597
+ var frontend_listview_control_clone_defaultData_label_start$1 = "Copy of";
4598
+ var frontend_listview_control_clone_defaultData_label_end$1 = "";
4599
+ var frontend_listview_control_delete_label$1 = "Delete";
4600
+ var frontend_listview_control_delete_confirm_text$1 = "If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?";
4601
+ var frontend_listview_control_delete_message_success$1 = "Deletion successful";
4602
+ var frontend_listview_control_filters$1 = "Filter settings";
4603
+ var frontend_listview_control_filters_fields_extend$1 = "Conditional component 1";
4604
+ var frontend_listview_control_new_label$1 = "New";
4605
+ var frontend_listview_control_new_title$1 = "New List View";
4606
+ var frontend_listview_control_new_message_success$1 = "Success";
4607
+ var frontend_listview_control_new_message_failed$1 = "Failure";
4608
+ var frontend_listview_control_rename_label$1 = "Rename";
4609
+ var frontend_listview_control_rename_title$1 = "Rename List View";
4610
+ var frontend_listview_control_share$1 = "Sharing Settings";
4611
+ var frontend_listview_control_sort$1 = "Default sorting rule";
4612
+ var frontend_export_excel$1 = "Export Excel";
4613
+ var frontend_ercord_operation$1 = "Operation";
4614
+ var frontend_import_data$1 = "Import data";
4615
+ var frontend_import_data_object_name$1 = "Import object";
4616
+ var frontend_import_data_queue_import$1 = "Data import";
4617
+ var frontend_import_data_queue_import_description$1 = "Import description";
4618
+ var frontend_import_data_queue_import_encoding$1 = "Character code";
4619
+ var frontend_import_data_queue_import_template_url$1 = "Import template";
4620
+ var frontend_import_data_file$1 = "Excel file";
4621
+ var frontend_import_data_message_success$1 = "Importing has started...";
4622
+ var frontend_import_data_message_failed$1 = "Import failed";
4623
+ var frontend_record_detail_tab_detailed$1 = "Details";
4624
+ var frontend_record_detail_tab_related$1 = "Related";
4625
+ var frontend_all_apps$1 = "All apps";
4626
+ var frontend_all_projects$1 = "All projects";
4627
+ var frontend_application_launcher$1 = "Application launcher";
4628
+ var frontend_menu$1 = "Menu";
4629
+ var frontend_help$1 = "Help";
4630
+ var frontend_setup$1 = "Setup";
4631
+ var frontend_notifications$1 = "Notifications";
4632
+ var frontend_notifications_allread$1 = "Mark all as read";
4633
+ var frontend_notifications_allread_message$1 = "All marked as read";
4634
+ var frontend_profile$1 = "Profile";
4635
+ var frontend_about$1 = "About";
4636
+ var frontend_log_out$1 = "Log out";
4637
+ var frontend_listview_warning_start$1 = "The current ";
4638
+ var frontend_listview_warning_end$1 = " view does not exist!";
4639
+ var frontend_record_detail_related_list_warning$1 = "Missing parent object, parent record, or related list object property!";
4640
+ var frontend_record_detail_related_lists_warning$1 = "Missing parent object, or parent record property!";
4641
+ var frontend_record_detail_related_lists_info$1 = "No related child tables found";
4642
+ var frontend_calendar_listWeek$1 = "List";
4643
+ var frontend_message_no_permission_to_edit$1 = "You don't have permission to edit this record!";
4644
+ var frontend_message_modification_successful$1 = "Modification successful!";
4645
+ var frontend_message_modification_failed$1 = "Modification failed!";
4646
+ var en_us = {
4647
+ frontend_field_group_generalization: frontend_field_group_generalization$1,
4648
+ frontend_download: frontend_download$1,
4649
+ frontend_form_save: frontend_form_save$1,
4650
+ frontend_form_save_and_new: frontend_form_save_and_new$1,
4651
+ frontend_form_cancel: frontend_form_cancel$1,
4652
+ frontend_form_new: frontend_form_new$1,
4653
+ frontend_form_edit: frontend_form_edit$1,
4654
+ frontend_form_select: frontend_form_select$1,
4655
+ frontend_form_confirm: frontend_form_confirm$1,
4656
+ frontend_form_delete: frontend_form_delete$1,
4657
+ frontend_form_view: frontend_form_view$1,
4658
+ frontend_delete_confirm_text: frontend_delete_confirm_text$1,
4659
+ frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
4660
+ frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
4661
+ frontend_display_type_is_table: frontend_display_type_is_table$1,
4662
+ frontend_display_type_is_split: frontend_display_type_is_split$1,
4663
+ frontend_display_as: frontend_display_as$1,
4664
+ frontend_record_sum: frontend_record_sum$1,
4665
+ frontend_button_reload_tooltip: frontend_button_reload_tooltip$1,
4666
+ frontend_button_search_tooltip: frontend_button_search_tooltip$1,
4667
+ frontend_fields_filter_button_search: frontend_fields_filter_button_search$1,
4668
+ frontend_fields_filter_button_settings: frontend_fields_filter_button_settings$1,
4669
+ frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip$1,
4670
+ frontend_button_listview_control_label: frontend_button_listview_control_label$1,
4671
+ frontend_listview_control_columns: frontend_listview_control_columns$1,
4672
+ frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group$1,
4673
+ frontend_listview_control_clone_label: frontend_listview_control_clone_label$1,
4674
+ frontend_listview_control_clone_title: frontend_listview_control_clone_title$1,
4675
+ frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start$1,
4676
+ frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end$1,
4677
+ frontend_listview_control_delete_label: frontend_listview_control_delete_label$1,
4678
+ frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text$1,
4679
+ frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success$1,
4680
+ frontend_listview_control_filters: frontend_listview_control_filters$1,
4681
+ frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend$1,
4682
+ frontend_listview_control_new_label: frontend_listview_control_new_label$1,
4683
+ frontend_listview_control_new_title: frontend_listview_control_new_title$1,
4684
+ frontend_listview_control_new_message_success: frontend_listview_control_new_message_success$1,
4685
+ frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed$1,
4686
+ frontend_listview_control_rename_label: frontend_listview_control_rename_label$1,
4687
+ frontend_listview_control_rename_title: frontend_listview_control_rename_title$1,
4688
+ frontend_listview_control_share: frontend_listview_control_share$1,
4689
+ frontend_listview_control_sort: frontend_listview_control_sort$1,
4690
+ frontend_export_excel: frontend_export_excel$1,
4691
+ frontend_ercord_operation: frontend_ercord_operation$1,
4692
+ frontend_import_data: frontend_import_data$1,
4693
+ frontend_import_data_object_name: frontend_import_data_object_name$1,
4694
+ frontend_import_data_queue_import: frontend_import_data_queue_import$1,
4695
+ frontend_import_data_queue_import_description: frontend_import_data_queue_import_description$1,
4696
+ frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding$1,
4697
+ frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url$1,
4698
+ frontend_import_data_file: frontend_import_data_file$1,
4699
+ frontend_import_data_message_success: frontend_import_data_message_success$1,
4700
+ frontend_import_data_message_failed: frontend_import_data_message_failed$1,
4701
+ frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed$1,
4702
+ frontend_record_detail_tab_related: frontend_record_detail_tab_related$1,
4703
+ frontend_all_apps: frontend_all_apps$1,
4704
+ frontend_all_projects: frontend_all_projects$1,
4705
+ frontend_application_launcher: frontend_application_launcher$1,
4706
+ frontend_menu: frontend_menu$1,
4707
+ frontend_help: frontend_help$1,
4708
+ frontend_setup: frontend_setup$1,
4709
+ frontend_notifications: frontend_notifications$1,
4710
+ frontend_notifications_allread: frontend_notifications_allread$1,
4711
+ frontend_notifications_allread_message: frontend_notifications_allread_message$1,
4712
+ frontend_profile: frontend_profile$1,
4713
+ frontend_about: frontend_about$1,
4714
+ frontend_log_out: frontend_log_out$1,
4715
+ frontend_listview_warning_start: frontend_listview_warning_start$1,
4716
+ frontend_listview_warning_end: frontend_listview_warning_end$1,
4717
+ frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning$1,
4718
+ frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning$1,
4719
+ frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info$1,
4720
+ frontend_calendar_listWeek: frontend_calendar_listWeek$1,
4721
+ frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit$1,
4722
+ frontend_message_modification_successful: frontend_message_modification_successful$1,
4723
+ frontend_message_modification_failed: frontend_message_modification_failed$1
4724
+ };
4725
+
4726
+ var frontend_field_group_generalization = "通用";
4727
+ var frontend_download = "下载";
4728
+ var frontend_form_save = "保存";
4729
+ var frontend_form_save_and_new = "保存并新建";
4730
+ var frontend_form_cancel = "取消";
4731
+ var frontend_form_new = "新建";
4732
+ var frontend_form_edit = "编辑";
4733
+ var frontend_form_select = "选择";
4734
+ var frontend_form_confirm = "确认";
4735
+ var frontend_form_delete = "删除";
4736
+ var frontend_form_view = "查看";
4737
+ var frontend_delete_confirm_text = "确定要删除此项目?";
4738
+ var frontend_delete_many_selected_required = "请选择要删除的项";
4739
+ var frontend_delete_many_confirm_text = "确定要删除吗?";
4740
+ var frontend_display_type_is_table = "表格";
4741
+ var frontend_display_type_is_split = "分栏视图";
4742
+ var frontend_display_as = "显示为";
4743
+ var frontend_record_sum = "个项目";
4744
+ var frontend_button_reload_tooltip = "刷新";
4745
+ var frontend_button_search_tooltip = "搜索";
4746
+ var frontend_fields_filter_button_search = "搜索";
4747
+ var frontend_fields_filter_button_settings = "设置搜索项";
4748
+ var frontend_button_listview_control_tooltip = "列表视图控制";
4749
+ var frontend_button_listview_control_label = "列表视图控制";
4750
+ var frontend_listview_control_columns = "显示的列";
4751
+ var frontend_listview_control_columns_mobile_group = "手机端";
4752
+ var frontend_listview_control_clone = "复制";
4753
+ var frontend_listview_control_clone_label = "复制";
4754
+ var frontend_listview_control_clone_title = "复制 列表视图";
4755
+ var frontend_listview_control_clone_defaultData_label_start = "";
4756
+ var frontend_listview_control_clone_defaultData_label_end = "的副本";
4757
+ var frontend_listview_control_delete_label = "删除";
4758
+ var frontend_listview_control_delete_confirm_text = "如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?";
4759
+ var frontend_listview_control_delete_message_success = "删除成功";
4760
+ var frontend_listview_control_filters = "过滤设置";
4761
+ var frontend_listview_control_filters_fields_extend = "条件组件1";
4762
+ var frontend_listview_control_new_label = "新建";
4763
+ var frontend_listview_control_new_title = "新建 列表视图";
4764
+ var frontend_listview_control_new_message_success = "成功";
4765
+ var frontend_listview_control_new_message_failed = "失败";
4766
+ var frontend_listview_control_rename_label = "重命名";
4767
+ var frontend_listview_control_rename_title = "重命名 列表视图";
4768
+ var frontend_listview_control_share = "共享设置";
4769
+ var frontend_listview_control_sort = "默认排序规则";
4770
+ var frontend_export_excel = "导出excel";
4771
+ var frontend_ercord_operation = "操作";
4772
+ var frontend_import_data = "导入数据";
4773
+ var frontend_import_data_object_name = "导入对象";
4774
+ var frontend_import_data_queue_import = "数据导入";
4775
+ var frontend_import_data_queue_import_description = "导入描述";
4776
+ var frontend_import_data_queue_import_encoding = "字符代码";
4777
+ var frontend_import_data_queue_import_template_url = "导入模板";
4778
+ var frontend_import_data_file = "Excel文件";
4779
+ var frontend_import_data_message_success = "已开始导入...";
4780
+ var frontend_import_data_message_failed = "导入失败";
4781
+ var frontend_record_detail_tab_detailed = "详细";
4782
+ var frontend_record_detail_tab_related = "相关";
4783
+ var frontend_all_apps = "所有应用";
4784
+ var frontend_all_projects = "所有项目";
4785
+ var frontend_application_launcher = "应用程序启动器";
4786
+ var frontend_menu = "菜单";
4787
+ var frontend_help = "帮助";
4788
+ var frontend_setup = "设置";
4789
+ var frontend_notifications = "通知";
4790
+ var frontend_notifications_allread = "全部标记为已读";
4791
+ var frontend_notifications_allread_message = "已全部标记为已读";
4792
+ var frontend_profile = "个人资料";
4793
+ var frontend_about = "关于";
4794
+ var frontend_log_out = "注销";
4795
+ var frontend_listview_warning_start = "当前";
4796
+ var frontend_listview_warning_end = "视图不存在!";
4797
+ var frontend_record_detail_related_list_warning = "缺少父级对象、父级记录或相关列表对象属性!";
4798
+ var frontend_record_detail_related_lists_warning = "缺少父级对象或父级记录属性!";
4799
+ var frontend_record_detail_related_lists_info = "没有相关子表";
4800
+ var frontend_calendar_listWeek = "列表";
4801
+ var frontend_message_no_permission_to_edit = "您没有编辑该记录的权限!";
4802
+ var frontend_message_modification_successful = "修改成功!";
4803
+ var frontend_message_modification_failed = "修改失败!";
4804
+ var zh_cn = {
4805
+ frontend_field_group_generalization: frontend_field_group_generalization,
4806
+ frontend_download: frontend_download,
4807
+ frontend_form_save: frontend_form_save,
4808
+ frontend_form_save_and_new: frontend_form_save_and_new,
4809
+ frontend_form_cancel: frontend_form_cancel,
4810
+ frontend_form_new: frontend_form_new,
4811
+ frontend_form_edit: frontend_form_edit,
4812
+ frontend_form_select: frontend_form_select,
4813
+ frontend_form_confirm: frontend_form_confirm,
4814
+ frontend_form_delete: frontend_form_delete,
4815
+ frontend_form_view: frontend_form_view,
4816
+ frontend_delete_confirm_text: frontend_delete_confirm_text,
4817
+ frontend_delete_many_selected_required: frontend_delete_many_selected_required,
4818
+ frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
4819
+ frontend_display_type_is_table: frontend_display_type_is_table,
4820
+ frontend_display_type_is_split: frontend_display_type_is_split,
4821
+ frontend_display_as: frontend_display_as,
4822
+ frontend_record_sum: frontend_record_sum,
4823
+ frontend_button_reload_tooltip: frontend_button_reload_tooltip,
4824
+ frontend_button_search_tooltip: frontend_button_search_tooltip,
4825
+ frontend_fields_filter_button_search: frontend_fields_filter_button_search,
4826
+ frontend_fields_filter_button_settings: frontend_fields_filter_button_settings,
4827
+ frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip,
4828
+ frontend_button_listview_control_label: frontend_button_listview_control_label,
4829
+ frontend_listview_control_columns: frontend_listview_control_columns,
4830
+ frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group,
4831
+ frontend_listview_control_clone: frontend_listview_control_clone,
4832
+ frontend_listview_control_clone_label: frontend_listview_control_clone_label,
4833
+ frontend_listview_control_clone_title: frontend_listview_control_clone_title,
4834
+ frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start,
4835
+ frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end,
4836
+ frontend_listview_control_delete_label: frontend_listview_control_delete_label,
4837
+ frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text,
4838
+ frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success,
4839
+ frontend_listview_control_filters: frontend_listview_control_filters,
4840
+ frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend,
4841
+ frontend_listview_control_new_label: frontend_listview_control_new_label,
4842
+ frontend_listview_control_new_title: frontend_listview_control_new_title,
4843
+ frontend_listview_control_new_message_success: frontend_listview_control_new_message_success,
4844
+ frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed,
4845
+ frontend_listview_control_rename_label: frontend_listview_control_rename_label,
4846
+ frontend_listview_control_rename_title: frontend_listview_control_rename_title,
4847
+ frontend_listview_control_share: frontend_listview_control_share,
4848
+ frontend_listview_control_sort: frontend_listview_control_sort,
4849
+ frontend_export_excel: frontend_export_excel,
4850
+ frontend_ercord_operation: frontend_ercord_operation,
4851
+ frontend_import_data: frontend_import_data,
4852
+ frontend_import_data_object_name: frontend_import_data_object_name,
4853
+ frontend_import_data_queue_import: frontend_import_data_queue_import,
4854
+ frontend_import_data_queue_import_description: frontend_import_data_queue_import_description,
4855
+ frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding,
4856
+ frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url,
4857
+ frontend_import_data_file: frontend_import_data_file,
4858
+ frontend_import_data_message_success: frontend_import_data_message_success,
4859
+ frontend_import_data_message_failed: frontend_import_data_message_failed,
4860
+ frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed,
4861
+ frontend_record_detail_tab_related: frontend_record_detail_tab_related,
4862
+ frontend_all_apps: frontend_all_apps,
4863
+ frontend_all_projects: frontend_all_projects,
4864
+ frontend_application_launcher: frontend_application_launcher,
4865
+ frontend_menu: frontend_menu,
4866
+ frontend_help: frontend_help,
4867
+ frontend_setup: frontend_setup,
4868
+ frontend_notifications: frontend_notifications,
4869
+ frontend_notifications_allread: frontend_notifications_allread,
4870
+ frontend_notifications_allread_message: frontend_notifications_allread_message,
4871
+ frontend_profile: frontend_profile,
4872
+ frontend_about: frontend_about,
4873
+ frontend_log_out: frontend_log_out,
4874
+ frontend_listview_warning_start: frontend_listview_warning_start,
4875
+ frontend_listview_warning_end: frontend_listview_warning_end,
4876
+ frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning,
4877
+ frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning,
4878
+ frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info,
4879
+ frontend_calendar_listWeek: frontend_calendar_listWeek,
4880
+ frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit,
4881
+ frontend_message_modification_successful: frontend_message_modification_successful,
4882
+ frontend_message_modification_failed: frontend_message_modification_failed
4883
+ };
4884
+
4885
+ const resources = {
4886
+ "en-US": {
4887
+ translation: en_us
4888
+ },
4889
+ "zh-CN": {
4890
+ translation: zh_cn
4891
+ }
4892
+ };
4893
+ var locale = "zh-CN";
4894
+ if (typeof window != 'undefined') {
4895
+ if (window.Builder?.settings.locale == "en-us") {
4896
+ locale = "en-US";
4897
+ } else if (window.Builder?.settings.locale == "zh-cn") {
4898
+ locale = "zh-CN";
4899
+ }
4900
+ }
4901
+
4902
+
4903
+ instance
4904
+ .use(initReactI18next)
4905
+ .init({
4906
+ resources,
4907
+ lng: locale,
4908
+ interpolation: {
4909
+ escapeValue: false
4910
+ }
4911
+ });
4912
+
1773
4913
  /*
1774
4914
  * @Author: baozhoutao@steedos.com
1775
4915
  * @Date: 2022-11-01 15:51:00
@@ -1831,7 +4971,7 @@ const getSchema$4 = async (uiSchema, ctx) => {
1831
4971
  "body": [
1832
4972
  {
1833
4973
  "type": "button",
1834
- "label": "新建",
4974
+ "label": instance.t('frontend_form_new'),
1835
4975
  "id": "u:standard_new",
1836
4976
  "level": "default",
1837
4977
  "onEvent": {
@@ -1857,7 +4997,7 @@ const getSchema$4 = async (uiSchema, ctx) => {
1857
4997
  "isLookup": "${isLookup}",
1858
4998
  "listName": "${listName}"
1859
4999
  },
1860
- "title": "新建 ${uiSchema.label | raw}",
5000
+ "title":instance.t('frontend_form_new') + " ${uiSchema.label | raw}",
1861
5001
  "body": [
1862
5002
  {
1863
5003
  "type": "service",
@@ -1890,11 +5030,11 @@ const getSchema$4 = async (uiSchema, ctx) => {
1890
5030
  {
1891
5031
  type: 'button',
1892
5032
  actionType: 'cancel',
1893
- label: "取消"
5033
+ label: instance.t('frontend_form_cancel')
1894
5034
  },
1895
5035
  {
1896
5036
  type: 'button',
1897
- label: "保存并新建",
5037
+ label: instance.t('frontend_form_save_and_new'),
1898
5038
  actionType: 'confirm',
1899
5039
  close: false,
1900
5040
  id: "confirmAndNew"
@@ -1902,7 +5042,7 @@ const getSchema$4 = async (uiSchema, ctx) => {
1902
5042
  {
1903
5043
  type: 'button',
1904
5044
  actionType: 'confirm',
1905
- label: "保存",
5045
+ label: instance.t('frontend_form_save'),
1906
5046
  primary: true
1907
5047
  },
1908
5048
  ]
@@ -1953,7 +5093,7 @@ async function getPage({type, pageId = '', appId, objectName = '', recordId = ''
1953
5093
  */
1954
5094
 
1955
5095
  const getSchema$3 = async (uiSchema, ctx) => {
1956
- const title = "编辑 " + uiSchema.label;
5096
+ const title = instance.t('frontend_form_edit') + " " + uiSchema.label;
1957
5097
 
1958
5098
  const defaultFormSchema = {
1959
5099
  type: "steedos-object-form",
@@ -1983,7 +5123,7 @@ const getSchema$3 = async (uiSchema, ctx) => {
1983
5123
  body: [
1984
5124
  {
1985
5125
  type: "button",
1986
- label: "编辑",
5126
+ label: instance.t('frontend_form_edit'),
1987
5127
  id: "u:standard_edit",
1988
5128
  onEvent: {
1989
5129
  click: {
@@ -2027,8 +5167,8 @@ const getSchema$2 = (uiSchema)=>{
2027
5167
  "body": [
2028
5168
  {
2029
5169
  "type": "button",
2030
- "label": "删除",
2031
- "confirmText": "确定要删除此项目?",
5170
+ "label": instance.t('frontend_form_delete'),
5171
+ "confirmText": instance.t('frontend_delete_many_confirm_text'),
2032
5172
  "onEvent": {
2033
5173
  "click": {
2034
5174
  "actions": [
@@ -2095,7 +5235,7 @@ const getSchema$1 = (uiSchema) => {
2095
5235
  body: [
2096
5236
  {
2097
5237
  type: "button",
2098
- label: "导入数据",
5238
+ label: instance.t('frontend_import_data'),
2099
5239
  id: "u:import_data",
2100
5240
  onEvent: {
2101
5241
  click: {
@@ -2108,7 +5248,7 @@ const getSchema$1 = (uiSchema) => {
2108
5248
  "object_name": "${objectName}"
2109
5249
  },
2110
5250
  type: "dialog",
2111
- title: "导入数据",
5251
+ title: instance.t('frontend_import_data'),
2112
5252
  body: [
2113
5253
  {
2114
5254
  type: "form",
@@ -2143,12 +5283,12 @@ const getSchema$1 = (uiSchema) => {
2143
5283
  body: [
2144
5284
  {
2145
5285
  type: "fieldSet",
2146
- title: "通用",
5286
+ title: instance.t('frontend_field_group_generalization'),
2147
5287
  collapsable: true,
2148
5288
  body: [
2149
5289
  {
2150
5290
  name: "object_name",
2151
- label: "导入对象",
5291
+ label: instance.t('frontend_import_data_object_name'),
2152
5292
  required: false,
2153
5293
  type: "select",
2154
5294
  joinValues: false,
@@ -2184,7 +5324,7 @@ const getSchema$1 = (uiSchema) => {
2184
5324
  },
2185
5325
  {
2186
5326
  name: "queue_import",
2187
- label: "数据导入",
5327
+ label: instance.t('frontend_import_data_queue_import'),
2188
5328
  required: true,
2189
5329
  type: "picker",
2190
5330
  labelField: "description",
@@ -2230,7 +5370,7 @@ const getSchema$1 = (uiSchema) => {
2230
5370
  },
2231
5371
  {
2232
5372
  name: "description",
2233
- label: "导入描述",
5373
+ label: instance.t('frontend_import_data_queue_import_description'),
2234
5374
  type: "tpl",
2235
5375
  tpl: '<a href="/app/undefined/undefined/view/${undefined}">${description}</a>',
2236
5376
  className: "whitespace-nowrap",
@@ -2238,7 +5378,7 @@ const getSchema$1 = (uiSchema) => {
2238
5378
  },
2239
5379
  {
2240
5380
  name: "object_name",
2241
- label: "导入对象",
5381
+ label: instance.t('frontend_import_data_object_name'),
2242
5382
  type: "tpl",
2243
5383
  tpl: '<a href="/app/undefined/${_display.object_name.objectName}/view/${_display.object_name.value}">${_display.object_name.label}</a>',
2244
5384
  className: "whitespace-nowrap",
@@ -2246,7 +5386,7 @@ const getSchema$1 = (uiSchema) => {
2246
5386
  },
2247
5387
  {
2248
5388
  name: "encoding",
2249
- label: "字符代码",
5389
+ label: instance.t('frontend_import_data_queue_import_encoding'),
2250
5390
  type: "tpl",
2251
5391
  tpl: "<div>${_display.encoding}</div>",
2252
5392
  className: "whitespace-nowrap",
@@ -2254,12 +5394,12 @@ const getSchema$1 = (uiSchema) => {
2254
5394
  },
2255
5395
  {
2256
5396
  name: "template_url",
2257
- label: "导入模板",
5397
+ label: instance.t('frontend_import_data_queue_import_template_url'),
2258
5398
  type: "button-group",
2259
5399
  buttons: [
2260
5400
  {
2261
5401
  type: "button",
2262
- label: "下载",
5402
+ label: instance.t('frontend_download'),
2263
5403
  visibleOn: "${template_url}",
2264
5404
  level: "link",
2265
5405
  actionType: "download",
@@ -2293,7 +5433,7 @@ const getSchema$1 = (uiSchema) => {
2293
5433
  },
2294
5434
  {
2295
5435
  name: "file",
2296
- label: "Excel文件",
5436
+ label: instance.t('frontend_import_data_file'),
2297
5437
  required: true,
2298
5438
  type: "input-file",
2299
5439
  className: "m-1",
@@ -2349,8 +5489,8 @@ const getSchema$1 = (uiSchema) => {
2349
5489
  },
2350
5490
  },
2351
5491
  messages: {
2352
- success: "已开始导入...",
2353
- failed: "导入失败",
5492
+ success: instance.t('frontend_import_data_message_success'),
5493
+ failed: instance.t('frontend_import_data_message_failed'),
2354
5494
  },
2355
5495
  },
2356
5496
  actionType: "ajax",
@@ -2389,6 +5529,7 @@ const getSchema$1 = (uiSchema) => {
2389
5529
  * @LastEditTime: 2022-11-07 17:12:20
2390
5530
  * @Description:
2391
5531
  */
5532
+
2392
5533
  const getSchema$5 = (uiSchema)=>{
2393
5534
  return {
2394
5535
  "type": "service",
@@ -2396,7 +5537,7 @@ const getSchema$5 = (uiSchema)=>{
2396
5537
  "body": [
2397
5538
  {
2398
5539
  "type": "button",
2399
- "label": "查看",
5540
+ "label": instance.t('frontend_form_view'),
2400
5541
  "className": "border-none",
2401
5542
  "onEvent": {
2402
5543
  "click": {
@@ -2467,7 +5608,7 @@ const StandardButtons = {
2467
5608
  "items": [
2468
5609
  {
2469
5610
  "position": "top-right",
2470
- "body": "请选择要删除的项"
5611
+ "body": instance.t('frontend_delete_many_selected_required')
2471
5612
  }
2472
5613
  ]
2473
5614
  }
@@ -3243,7 +6384,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3243
6384
  if(_.isEmpty(defaultSearchableFields) && data.uiSchema){
3244
6385
  defaultSearchableFields = _.map(
3245
6386
  _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {
3246
- return field.searchable;
6387
+ return field.filterable;
3247
6388
  }), "sort_no"),
3248
6389
  "name"
3249
6390
  );
@@ -3410,7 +6551,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3410
6551
  {
3411
6552
  "type": "button",
3412
6553
  "id": btnSearchId,
3413
- "label": "搜索",
6554
+ "label": instance.t('frontend_fields_filter_button_search'),
3414
6555
  "icon": "fa fa-search",
3415
6556
  // "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
3416
6557
  "onEvent": {
@@ -3426,7 +6567,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3426
6567
  },
3427
6568
  {
3428
6569
  "type": "button",
3429
- "label": "取消",
6570
+ "label": instance.t('frontend_form_cancel'),
3430
6571
  "name": "btn_filter_form_cancel",
3431
6572
  // "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
3432
6573
  "onEvent": {
@@ -3442,7 +6583,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3442
6583
  },
3443
6584
  {
3444
6585
  "type": "button",
3445
- "label": "设置搜索项",
6586
+ "label": instance.t('frontend_fields_filter_button_settings'),
3446
6587
  "onEvent": {
3447
6588
  "click": {
3448
6589
  "actions": [
@@ -3451,7 +6592,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3451
6592
  "dialog": {
3452
6593
  "type": "dialog",
3453
6594
  "size": "md",
3454
- "title": "设置搜索项",
6595
+ "title": instance.t('frontend_fields_filter_button_settings'),
3455
6596
  "body": [
3456
6597
  {
3457
6598
  "type": "form",
@@ -3519,7 +6660,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3519
6660
  "actions": [
3520
6661
  {
3521
6662
  "type": "button",
3522
- "label": "取消",
6663
+ "label": instance.t('frontend_form_cancel'),
3523
6664
  "onEvent": {
3524
6665
  "click": {
3525
6666
  "actions": [
@@ -3535,7 +6676,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3535
6676
  },
3536
6677
  {
3537
6678
  "type": "button",
3538
- "label": "确认",
6679
+ "label": instance.t('frontend_form_confirm'),
3539
6680
  "onEvent": {
3540
6681
  "click": {
3541
6682
  "actions": [
@@ -4052,7 +7193,7 @@ const getExportExcelToolbarButtonSchema = ()=>{
4052
7193
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
4053
7194
  "tooltipPlacement": "bottom",
4054
7195
  "visibleOn": "${!isLookup && global.user.is_space_admin}",
4055
- "tooltip": "导出Excel",
7196
+ "tooltip": instance.t('frontend_export_excel'),
4056
7197
  "onEvent": {
4057
7198
  "click": {
4058
7199
  "weight": 0,
@@ -4138,7 +7279,7 @@ function requestAdaptor$1(){
4138
7279
  const getNewListviewButtonSchema = ()=>{
4139
7280
  return {
4140
7281
  "type": "button",
4141
- "label": "新建",
7282
+ "label": instance.t('frontend_listview_control_new_label'),
4142
7283
  "onEvent": {
4143
7284
  "click": {
4144
7285
  "weight": 0,
@@ -4146,7 +7287,7 @@ const getNewListviewButtonSchema = ()=>{
4146
7287
  {
4147
7288
  "dialog": {
4148
7289
  "type": "dialog",
4149
- "title": "新建 列表视图",
7290
+ "title": instance.t('frontend_listview_control_new_title'),
4150
7291
  "data": {
4151
7292
  //"&":"$$",2.7、2.9、3.0在此处失效
4152
7293
  "all": "${uiSchema.list_views.all}",
@@ -4188,8 +7329,8 @@ const getNewListviewButtonSchema = ()=>{
4188
7329
  }
4189
7330
  },
4190
7331
  "messages": {
4191
- "success": "成功",
4192
- "failed": "失败"
7332
+ "success": instance.t('frontend_listview_control_new_message_success'),
7333
+ "failed": instance.t('frontend_listview_control_new_message_failed')
4193
7334
  },
4194
7335
  }
4195
7336
  ],
@@ -4288,7 +7429,7 @@ function fieldsExtend$4(){
4288
7429
  const getCopyListviewButtonSchema = ()=>{
4289
7430
  return {
4290
7431
  "type": "button",
4291
- "label": "复制",
7432
+ "label": instance.t('frontend_listview_control_clone_label'),
4292
7433
  "onEvent": {
4293
7434
  "click": {
4294
7435
  "weight": 0,
@@ -4296,7 +7437,7 @@ const getCopyListviewButtonSchema = ()=>{
4296
7437
  {
4297
7438
  "dialog": {
4298
7439
  "type": "dialog",
4299
- "title": "复制 列表视图",
7440
+ "title": instance.t('frontend_listview_control_clone_title'),
4300
7441
  "data": {
4301
7442
  //"&":"$$",2.7、2.9、3.0在此处失效
4302
7443
  "listName": "${listName}",
@@ -4316,7 +7457,7 @@ const getCopyListviewButtonSchema = ()=>{
4316
7457
  "defaultData": {
4317
7458
  "&": "${list_view}",
4318
7459
  "name":"",
4319
- "label": "${list_view.label} 的副本",
7460
+ "label": instance.t('frontend_listview_control_clone_defaultData_label_start') + " ${list_view.label} " + instance.t('frontend_listview_control_clone_defaultData_label_end'),
4320
7461
  "shared":false
4321
7462
  },
4322
7463
  "fieldsExtend": fieldsExtend$3(),
@@ -4433,7 +7574,7 @@ function fieldsExtend$3(){
4433
7574
  const getRenameListviewButtonSchema = ()=>{
4434
7575
  return {
4435
7576
  "type": "button",
4436
- "label": "重命名",
7577
+ "label": instance.t('frontend_listview_control_rename_label'),
4437
7578
  "disabledOn": "!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",
4438
7579
  "onEvent": {
4439
7580
  "click": {
@@ -4442,7 +7583,7 @@ const getRenameListviewButtonSchema = ()=>{
4442
7583
  {
4443
7584
  "dialog": {
4444
7585
  "type": "dialog",
4445
- "title": "重命名 列表视图",
7586
+ "title": instance.t('frontend_listview_control_rename_title'),
4446
7587
  "data": {
4447
7588
  "targetObjectName": "${objectName}",
4448
7589
  "recordId": "${uiSchema.list_views[listName]._id}",
@@ -4492,7 +7633,7 @@ const getRenameListviewButtonSchema = ()=>{
4492
7633
  const getSetListviewShareButtonSchema = ()=>{
4493
7634
  return {
4494
7635
  "type": "button",
4495
- "label": "共享设置",
7636
+ "label": instance.t('frontend_listview_control_share'),
4496
7637
  "disabledOn": "!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",
4497
7638
  "onEvent": {
4498
7639
  "click": {
@@ -4501,7 +7642,7 @@ const getSetListviewShareButtonSchema = ()=>{
4501
7642
  {
4502
7643
  "dialog": {
4503
7644
  "type": "dialog",
4504
- "title": "共享设置",
7645
+ "title": instance.t('frontend_listview_control_share'),
4505
7646
  "data": {
4506
7647
  "recordId": "${uiSchema.list_views[listName]._id}",
4507
7648
  "context": "${context}"
@@ -4536,7 +7677,7 @@ const getSetListviewShareButtonSchema = ()=>{
4536
7677
  const getSetListviewFiltersButtonSchema = ()=>{
4537
7678
  return {
4538
7679
  "type": "button",
4539
- "label": "过滤设置",
7680
+ "label": instance.t('frontend_listview_control_filters'),
4540
7681
  "disabledOn": "!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",
4541
7682
  "onEvent": {
4542
7683
  "click": {
@@ -4545,7 +7686,7 @@ const getSetListviewFiltersButtonSchema = ()=>{
4545
7686
  {
4546
7687
  "dialog": {
4547
7688
  "type": "dialog",
4548
- "title": "过滤设置",
7689
+ "title": instance.t('frontend_listview_control_filters'),
4549
7690
  "data": {
4550
7691
  "targetObjectName": "${objectName}",
4551
7692
  "recordId": "${uiSchema.list_views[listName]._id}",
@@ -4666,7 +7807,7 @@ function fieldsExtend$2(){
4666
7807
  "visible_on": "true",
4667
7808
  "amis": {
4668
7809
  "type": "condition-builder",
4669
- "label": "条件组件1",
7810
+ "label": instance.t('frontend_listview_control_filters_fields_extend'),
4670
7811
  "source": {
4671
7812
  "method": "get",
4672
7813
  "url": "${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",
@@ -4683,7 +7824,7 @@ function fieldsExtend$2(){
4683
7824
  const getSetListviewColumnsButtonSchema = ()=>{
4684
7825
  return {
4685
7826
  "type": "button",
4686
- "label": "显示的列",
7827
+ "label": instance.t('frontend_listview_control_columns'),
4687
7828
  "disabledOn": "!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",
4688
7829
  "onEvent": {
4689
7830
  "click": {
@@ -4693,7 +7834,7 @@ const getSetListviewColumnsButtonSchema = ()=>{
4693
7834
  "args": {},
4694
7835
  "dialog": {
4695
7836
  "type": "dialog",
4696
- "title": "显示的列",
7837
+ "title": instance.t('frontend_listview_control_columns'),
4697
7838
  "data": {
4698
7839
  //"&":"$$",2.7、2.9、3.0在此处失效
4699
7840
  "targetObjectName": "${objectName}",
@@ -4763,7 +7904,7 @@ function fieldsExtend$1(){
4763
7904
  }
4764
7905
  },
4765
7906
  "mobile_columns": {
4766
- "group": "手机端",
7907
+ "group": instance.t('frontend_listview_control_columns_mobile_group'),
4767
7908
  "amis": {
4768
7909
  "type": "transfer",
4769
7910
  "sortable": true,
@@ -4838,7 +7979,7 @@ function apiRequestAdaptor$1(){
4838
7979
  const getSetListviewSortButtonSchema = ()=>{
4839
7980
  return {
4840
7981
  "type": "button",
4841
- "label": "默认排序规则",
7982
+ "label": instance.t('frontend_listview_control_sort'),
4842
7983
  "disabledOn": "!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",
4843
7984
  "onEvent": {
4844
7985
  "click": {
@@ -4847,7 +7988,7 @@ const getSetListviewSortButtonSchema = ()=>{
4847
7988
  {
4848
7989
  "dialog": {
4849
7990
  "type": "dialog",
4850
- "title": "默认排序规则",
7991
+ "title": instance.t('frontend_listview_control_sort'),
4851
7992
  "data": {
4852
7993
  //"&":"$$",2.7、2.9、3.0在此处失效
4853
7994
  "targetObjectName": "${objectName}",
@@ -4963,9 +8104,9 @@ function apiRequestAdaptor(){
4963
8104
  const getDeleteListviewButtonSchema = ()=>{
4964
8105
  return {
4965
8106
  "type": "button",
4966
- "label": "删除",
8107
+ "label": instance.t('frontend_listview_control_delete_label'),
4967
8108
  "disabledOn": "!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",
4968
- "confirmText": "如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",
8109
+ "confirmText": instance.t('frontend_listview_control_delete_confirm_text'),
4969
8110
  "onEvent": {
4970
8111
  "click": {
4971
8112
  "actions": [
@@ -4984,7 +8125,7 @@ const getDeleteListviewButtonSchema = ()=>{
4984
8125
  "recordId": "${uiSchema.list_views[listName]._id}"
4985
8126
  },
4986
8127
  "messages": {
4987
- "success": "删除成功"
8128
+ "success": instance.t('frontend_listview_control_delete_message_success')
4988
8129
  },
4989
8130
  "requestAdaptor": requestAdaptor(),
4990
8131
  "adaptor": adaptor(),
@@ -5031,13 +8172,13 @@ const getSettingListviewToolbarButtonSchema = ()=>{
5031
8172
  "type": "dropdown-button",
5032
8173
  "trigger": "click",
5033
8174
  "icon": "fa fa-cog",
5034
- "tooltip": "列表视图控制",
8175
+ "tooltip": instance.t('frontend_button_listview_control_tooltip'),
5035
8176
  "btnClassName": "antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",
5036
8177
  "align": "right",
5037
8178
  "visibleOn": "${!isLookup}",
5038
8179
  "buttons": [
5039
8180
  {
5040
- "label": "列表视图控制",
8181
+ "label": instance.t('frontend_button_listview_control_label'),
5041
8182
  "children": [
5042
8183
  getNewListviewButtonSchema(),
5043
8184
  getCopyListviewButtonSchema(),
@@ -5058,30 +8199,30 @@ const getDisplayAsButton = function(objectName, showDisplayAs){
5058
8199
  let buttons = [
5059
8200
  {
5060
8201
  "type": "button",
5061
- "label": "表格",
8202
+ "label": instance.t('frontend_display_type_is_table'),
5062
8203
  "onClick": "let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
5063
8204
  "rightIcon": displayAs != 'split' ? "fa fa-check" : null,
5064
8205
  "rightIconClassName": "m-l-sm"
5065
8206
  },
5066
8207
  {
5067
8208
  "type": "button",
5068
- "label": "分栏视图",
8209
+ "label": instance.t('frontend_display_type_is_split'),
5069
8210
  "onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
5070
8211
  "rightIcon": displayAs === 'split' ? "fa fa-check" : null,
5071
8212
  "rightIconClassName": "m-l-sm"
5072
8213
  }
5073
8214
  ];
5074
- const displayAsLabel = displayAs === 'split'? "分栏视图" : "表格";
8215
+ const displayAsLabel = displayAs === 'split'? instance.t('frontend_display_type_is_split') : instance.t('frontend_display_type_is_table');
5075
8216
  return {
5076
8217
  "type": "dropdown-button",
5077
8218
  "icon": "fa fa-table-columns",
5078
- "tooltip": `显示为 ${displayAsLabel}`,
8219
+ "tooltip": `${instance.t('frontend_display_as')} ${displayAsLabel}`,
5079
8220
  "btnClassName": "antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",
5080
8221
  "align": "right",
5081
8222
  "visibleOn": "${window:innerWidth > 768 && !!!isLookup}",
5082
8223
  "buttons": [
5083
8224
  {
5084
- "label": "显示为",
8225
+ "label": instance.t('frontend_display_as'),
5085
8226
  "children": buttons
5086
8227
  }
5087
8228
  ]
@@ -5149,13 +8290,13 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
5149
8290
  ...(headerToolbarItems || []),
5150
8291
  hiddenCount ? {} :{
5151
8292
  "type": "tpl",
5152
- "tpl": "${count} 个项目"
8293
+ "tpl": "${count} " + instance.t('frontend_record_sum')
5153
8294
  },
5154
8295
  {
5155
8296
  // "type": "reload",//不可以直接使用reload,因为它不会设置页码到第一页
5156
8297
  "type": "button",
5157
8298
  "align": "right",
5158
- "tooltip": "刷新",
8299
+ "tooltip": instance.t('frontend_button_reload_tooltip'),
5159
8300
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
5160
8301
  "label": "",
5161
8302
  "icon": "fa fa-sync",
@@ -5175,7 +8316,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
5175
8316
  "label": "",
5176
8317
  "icon": "fa fa-search",
5177
8318
  "type": "button",
5178
- "tooltip": "搜索",
8319
+ "tooltip": instance.t('frontend_button_search_tooltip'),
5179
8320
  "badge": {
5180
8321
  "offset": [
5181
8322
  -5,
@@ -5215,12 +8356,12 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
5215
8356
  // },
5216
8357
  hiddenCount ? {} : {
5217
8358
  "type": "tpl",
5218
- "tpl": "${count} 个项目"
8359
+ "tpl": "${count} " + instance.t('frontend_record_sum')
5219
8360
  },
5220
8361
  {
5221
8362
  "type": "reload",
5222
8363
  "align": "right",
5223
- "tooltip": "刷新",
8364
+ "tooltip": instance.t('frontend_button_reload_tooltip'),
5224
8365
  "tooltipPlacement": "bottom",
5225
8366
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500"
5226
8367
  },
@@ -5228,7 +8369,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
5228
8369
  filterVisible ? {
5229
8370
  "label": "",
5230
8371
  "icon": "fa fa-search",
5231
- "tooltip": "搜索",
8372
+ "tooltip": instance.t('frontend_button_search_tooltip'),
5232
8373
  "tooltipPlacement": "bottom",
5233
8374
  "type": "button",
5234
8375
  "align": "right",
@@ -7731,7 +10872,7 @@ async function getTableOperation(ctx){
7731
10872
  }
7732
10873
  return {
7733
10874
  type: 'operation',
7734
- label: '操作',
10875
+ label: instance.t('frontend_ercord_operation'),
7735
10876
  fixed: 'right',
7736
10877
  labelClassName: 'text-center',
7737
10878
  className: 'text-center steedos-listview-operation w-20',
@@ -8780,7 +11921,7 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
8780
11921
  // ObjectForm会认作用域下的变量值
8781
11922
  // TODO: 待组件支持initValues属性后应该改掉,不应该通过data直接传值
8782
11923
  // TODO: 全天事件属性传入doc了但是没有生效,需要手动在ObjectForm中勾选全天事件
8783
- const title = "新建 ${objectSchema.label}";
11924
+ const title = "${instance.t('frontend_form_new')} ${objectSchema.label}";
8784
11925
  doAction(
8785
11926
  {
8786
11927
  "actionType": "dialog",
@@ -8814,33 +11955,6 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
8814
11955
  });
8815
11956
  `;
8816
11957
 
8817
- const onEventClickScript = `
8818
- const data = event.data;
8819
- const eventData = data.event;
8820
- const appId = data.appId;
8821
- const objectName = data.objectName;
8822
- const eventId = data.event && data.event.id;
8823
- doAction({
8824
- "actionType": "dialog",
8825
- "dialog": {
8826
- "type": "dialog",
8827
- "title": "",
8828
- "body": [
8829
- {
8830
- "type": "steedos-record-detail",
8831
- "objectApiName": "\${objectName}",
8832
- "recordId": data.event && data.event.id
8833
- }
8834
- ],
8835
- "closeOnEsc": false,
8836
- "closeOnOutside": false,
8837
- "showCloseButton": true,
8838
- "size": "lg",
8839
- "actions": []
8840
- }
8841
- });
8842
- `;
8843
-
8844
11958
  const recordId = "${event.id}";
8845
11959
  const recordPermissionsApi = getCalendarRecordPermissionsApi(objectSchema, recordId);
8846
11960
  const recordSaveApi = getCalendarRecordSaveApi(objectSchema, calendarOptions);
@@ -8886,11 +12000,10 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
8886
12000
  "weight": 0,
8887
12001
  "actions": [
8888
12002
  {
8889
- "componentId": "",
12003
+ "actionType": "link",
8890
12004
  "args": {
8891
- },
8892
- "actionType": "custom",
8893
- "script": onEventClickScript
12005
+ "link": "/app/${appId}/${objectName}/view/${event.id}"
12006
+ }
8894
12007
  }
8895
12008
  ]
8896
12009
  },
@@ -8920,7 +12033,7 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
8920
12033
  "expression": "!event.data.editable",
8921
12034
  "args": {
8922
12035
  "msgType": "error",
8923
- "msg": "您没有编辑该记录的权限!",
12036
+ "msg": instance.t('frontend_message_no_permission_to_edit'),
8924
12037
  "position": "top-center"
8925
12038
  }
8926
12039
  },
@@ -8930,8 +12043,8 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
8930
12043
  "args": {
8931
12044
  "api": recordSaveApi,
8932
12045
  "messages": {
8933
- "success": objectSchema.label + "修改成功",
8934
- "failed": objectSchema.label + "修改失败!"
12046
+ "success": objectSchema.label + instance.t('frontend_message_modification_successful'),
12047
+ "failed": objectSchema.label + instance.t('frontend_message_modification_successful')
8935
12048
  }
8936
12049
  }
8937
12050
  }
@@ -9003,7 +12116,12 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
9003
12116
  "initialView": initialView,
9004
12117
  "businessHours": businessHours,
9005
12118
  ...config,
9006
- "onEvent": onEvent
12119
+ "onEvent": onEvent,
12120
+ "views":{
12121
+ listWeek: {
12122
+ buttonText: instance.t('frontend_calendar_listWeek')
12123
+ }
12124
+ }
9007
12125
  };
9008
12126
  return amisSchema;
9009
12127
  }
@@ -9022,7 +12140,7 @@ const getFieldSchemaArray = (formFields) => {
9022
12140
 
9023
12141
  ___default__namespace.forEach(formFields, (field) => {
9024
12142
  if (!field.group || field.group == 'null' || field.group == '-')
9025
- field.group = '通用';
12143
+ field.group = instance.t('frontend_field_group_generalization');
9026
12144
  const fieldName = field.name;
9027
12145
  let isObjectField = /\w+\.\w+/.test(fieldName);
9028
12146
  if (field.type == 'grid' || field.type == 'object') {
@@ -9187,7 +12305,7 @@ function getBulkActions(objectSchema){
9187
12305
  "level": "danger",
9188
12306
  "label": "批量删除",
9189
12307
  "actionType": "ajax",
9190
- "confirmText": "确定要删除吗",
12308
+ "confirmText": instance.t('frontend_delete_many_confirm_text'),
9191
12309
  "className": "hidden",
9192
12310
  "id": "batchDelete",
9193
12311
  "api": getBatchDelete(objectSchema.name),
@@ -10466,7 +13584,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
10466
13584
  const uiSchema = await getUISchema(objectName);
10467
13585
  const relatedLists = await getObjectRelatedList(objectName);
10468
13586
  const detailed = {
10469
- "title": "详细",
13587
+ "title": instance.t('frontend_record_detail_tab_detailed'),
10470
13588
  "className": "px-0 py-4",
10471
13589
  "body": [
10472
13590
  {
@@ -10481,7 +13599,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
10481
13599
  "id": "u:5d4e7e3f6ecc"
10482
13600
  };
10483
13601
  const related = {
10484
- "title": "相关",
13602
+ "title": instance.t('frontend_record_detail_tab_related'),
10485
13603
  "className": "px-0 pt-4",
10486
13604
  "body": [
10487
13605
  {
@@ -13538,7 +16656,8 @@ var index_esm$1 = /*#__PURE__*/Object.freeze({
13538
16656
  setSteedosAuth: setSteedosAuth,
13539
16657
  setUISchemaFunction: setUISchemaFunction,
13540
16658
  setVariable: setVariable,
13541
- standardButtonsTodo: standardButtonsTodo
16659
+ standardButtonsTodo: standardButtonsTodo,
16660
+ i18next: instance
13542
16661
  });
13543
16662
 
13544
16663
  var getSchema = function (field, value, ctx) { return __awaiter(void 0, void 0, void 0, function () {
@@ -14072,7 +17191,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
14072
17191
  if (!listView) {
14073
17192
  return [2 /*return*/, {
14074
17193
  "type": "alert",
14075
- "body": "\u5F53\u524D".concat(listName, "\u89C6\u56FE\u4E0D\u5B58\u5728\uFF01"),
17194
+ "body": "".concat(instance.t('frontend_listview_warning_start')).concat(listName).concat(instance.t('frontend_listview_warning_end')),
14076
17195
  "level": "warning",
14077
17196
  "showIcon": true,
14078
17197
  "className": "mb-3"
@@ -14401,7 +17520,7 @@ var AmisRecordDetailRelatedList = function (props) { return __awaiter(void 0, vo
14401
17520
  // if(!objectApiName || !relatedObjectApiName || !recordId){
14402
17521
  return [2 /*return*/, {
14403
17522
  "type": "alert",
14404
- "body": "缺少父级对象、父级记录或相关列表对象属性",
17523
+ "body": instance.t('frontend_record_detail_related_list_warning'),
14405
17524
  "level": "warning",
14406
17525
  "showIcon": true,
14407
17526
  "className": "mb-3"
@@ -14439,7 +17558,7 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
14439
17558
  // if(!objectApiName || !recordId){
14440
17559
  return [2 /*return*/, {
14441
17560
  "type": "alert",
14442
- "body": "缺少父级对象或父级记录属性",
17561
+ "body": instance.t('frontend_record_detail_related_lists_warning'),
14443
17562
  "level": "warning",
14444
17563
  "showIcon": true,
14445
17564
  "className": "mb-3"
@@ -14452,7 +17571,7 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
14452
17571
  if (!relatedLists || !relatedLists.length) {
14453
17572
  return [2 /*return*/, {
14454
17573
  "type": "alert",
14455
- "body": "没有相关子表",
17574
+ "body": instance.t('frontend_record_detail_related_lists_info'),
14456
17575
  "level": "info",
14457
17576
  "showIcon": true,
14458
17577
  "className": "mb-3"
@@ -14671,7 +17790,7 @@ var AmisAppLauncher = function (props) { return __awaiter(void 0, void 0, void 0
14671
17790
  {
14672
17791
  "type": "collapse",
14673
17792
  "key": "1",
14674
- "header": "所有应用",
17793
+ "header": instance.t('frontend_all_apps'),
14675
17794
  "body": [
14676
17795
  {
14677
17796
  "type": "each",
@@ -14740,7 +17859,7 @@ var AmisAppLauncher = function (props) { return __awaiter(void 0, void 0, void 0
14740
17859
  {
14741
17860
  "type": "collapse",
14742
17861
  "key": "2",
14743
- "header": "所有项目",
17862
+ "header": instance.t('frontend_all_projects'),
14744
17863
  "body": [
14745
17864
  {
14746
17865
  "type": "each",
@@ -14848,7 +17967,7 @@ var AmisAppLauncher = function (props) { return __awaiter(void 0, void 0, void 0
14848
17967
  "size": "xl",
14849
17968
  "title": {
14850
17969
  "type": "tpl",
14851
- "tpl": "应用程序启动器",
17970
+ "tpl": instance.t('frontend_application_launcher'),
14852
17971
  "className": "block text-xl text-center"
14853
17972
  },
14854
17973
  "actions": [],
@@ -14963,7 +18082,7 @@ var AmisGlobalFooter = function (props) { return __awaiter(void 0, void 0, void
14963
18082
  schemaApi: {
14964
18083
  "method": "get",
14965
18084
  "url": "${context.rootUrl}/service/api/apps/".concat(appId, "/menus?mobile=true"),
14966
- "adaptor": "\n try {\n\n if(payload.children.length == 0){\n payload.data = {};\n return payload\n }\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n let sum = 0;\n _.each(payload.children, (tab)=>{\n sum++;\n const classIcon = tab.icon.replace(/_/g,\"-\");\n if(sum >= 5){\n data.nav.push({\n \"label\": {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[12px] font-medium rounded-md flex-col leading-3 nav-label'><svg class=\"slds-icon slds-icon_container slds-icon-standard-`+classIcon+` flex-shrink-0 h-10 w-10\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg><span>${tab.name}</span><i class=\"fa fa-angle-right\" aria-hidden=\"true\" style=\"position: absolute;right: 20px;color: #bababa;\"></i></span>`,\n className:'h-full flex items-center'\n },\n \"to\": tab.path,\n \"target\":tab.target\n });\n }else{\n data.nav.push({\n \"label\": {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[12px] font-medium rounded-md flex-col leading-3 nav-label'><svg class=\"slds-icon slds-icon_container slds-icon-standard-`+classIcon+` flex-shrink-0 h-10 w-10\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`,\n className:'h-full flex items-center'\n },\n \"to\": tab.path,\n \"target\":tab.target\n });\n }\n \n })\n\n payload.data = {\n \"type\": \"nav\",\n className: payload.children.length ==1 ? '").concat(className1, "' : '").concat(className, "',\n \"stacked\": ").concat(stacked, ",\n \"overflow\": {\n \"enable\": true,\n \"maxVisibleCount\": 4,\n \"overflowPopoverClassName\": \"steedos-global-footer-popup\",\n \"overflowLabel\":{\n \"type\": 'tpl',\n \"tpl\": `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[12px] font-medium rounded-md flex-col leading-3 nav-label'><svg class=\" flex-shrink-0 h-10 w-10\" style=\"padding:7px\"><use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#rows\"></use></svg>\u83DC\u5355</span>`,\n \"className\":'h-full flex items-center'\n },\n \"overflowIndicator\":\"\"\n },\n \"indentSize\": ").concat(indentSize, ",\n \"links\": data.nav,\n };\n } catch (error) {\n console.log(`error`, error)\n }\n return payload;\n "),
18085
+ "adaptor": "\n try {\n\n if(payload.children.length == 0){\n payload.data = {};\n return payload\n }\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n let sum = 0;\n _.each(payload.children, (tab)=>{\n sum++;\n const classIcon = tab.icon.replace(/_/g,\"-\");\n if(sum >= 5){\n data.nav.push({\n \"label\": {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[12px] font-medium rounded-md flex-col leading-3 nav-label'><svg class=\"slds-icon slds-icon_container slds-icon-standard-`+classIcon+` flex-shrink-0 h-10 w-10\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg><span>${tab.name}</span><i class=\"fa fa-angle-right\" aria-hidden=\"true\" style=\"position: absolute;right: 20px;color: #bababa;\"></i></span>`,\n className:'h-full flex items-center'\n },\n \"to\": tab.path,\n \"target\":tab.target\n });\n }else{\n data.nav.push({\n \"label\": {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[12px] font-medium rounded-md flex-col leading-3 nav-label'><svg class=\"slds-icon slds-icon_container slds-icon-standard-`+classIcon+` flex-shrink-0 h-10 w-10\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`,\n className:'h-full flex items-center'\n },\n \"to\": tab.path,\n \"target\":tab.target\n });\n }\n \n })\n\n payload.data = {\n \"type\": \"nav\",\n className: payload.children.length ==1 ? '").concat(className1, "' : '").concat(className, "',\n \"stacked\": ").concat(stacked, ",\n \"overflow\": {\n \"enable\": true,\n \"maxVisibleCount\": 4,\n \"overflowPopoverClassName\": \"steedos-global-footer-popup\",\n \"overflowLabel\":{\n \"type\": 'tpl',\n \"tpl\": `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[12px] font-medium rounded-md flex-col leading-3 nav-label'><svg class=\" flex-shrink-0 h-10 w-10\" style=\"padding:7px\"><use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#rows\"></use></svg>").concat(instance.t('Menu'), "</span>`,\n \"className\":'h-full flex items-center'\n },\n \"overflowIndicator\":\"\"\n },\n \"indentSize\": ").concat(indentSize, ",\n \"links\": data.nav,\n };\n } catch (error) {\n console.log(`error`, error)\n }\n return payload;\n "),
14967
18086
  "headers": {
14968
18087
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
14969
18088
  }
@@ -15023,7 +18142,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15023
18142
  "className": "slds-button_icon slds-global-header__icon"
15024
18143
  }
15025
18144
  ],
15026
- "label": "帮助"
18145
+ "label": instance.t('frontend_help')
15027
18146
  },
15028
18147
  {
15029
18148
  "type": "button",
@@ -15052,7 +18171,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15052
18171
  "className": "slds-button_icon slds-global-header__icon"
15053
18172
  }
15054
18173
  ],
15055
- "label": "设置"
18174
+ "label": instance.t('frontend_setup')
15056
18175
  },
15057
18176
  {
15058
18177
  "type": "steedos-dropdown",
@@ -15114,7 +18233,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15114
18233
  "body": [
15115
18234
  {
15116
18235
  "type": "panel",
15117
- "title": "通知",
18236
+ "title": instance.t('frontend_notifications'),
15118
18237
  "className": "min-w-[300px] max-w-md",
15119
18238
  "body": [
15120
18239
  {
@@ -15162,7 +18281,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15162
18281
  actions: [
15163
18282
  {
15164
18283
  "type": "button",
15165
- "label": "全部标记为已读",
18284
+ "label": instance.t('frontend_notifications_allread'),
15166
18285
  "id": "u:5530f3779e3a",
15167
18286
  "onEvent": {
15168
18287
  "click": {
@@ -15178,7 +18297,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15178
18297
  }
15179
18298
  },
15180
18299
  "messages": {
15181
- "success": "已全部标记为已读"
18300
+ "success": instance.t('frontend_notifications_allread_message')
15182
18301
  }
15183
18302
  },
15184
18303
  "actionType": "ajax"
@@ -15292,7 +18411,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15292
18411
  },
15293
18412
  {
15294
18413
  "type": "button",
15295
- "label": "个人资料",
18414
+ "label": instance.t('frontend_profile'),
15296
18415
  "className": "flex",
15297
18416
  "onEvent": {
15298
18417
  "click": {
@@ -15311,7 +18430,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15311
18430
  },
15312
18431
  {
15313
18432
  "type": "button",
15314
- "label": "关于",
18433
+ "label": instance.t('frontend_about'),
15315
18434
  "className": "flex",
15316
18435
  "onEvent": {
15317
18436
  "click": {
@@ -15330,7 +18449,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
15330
18449
  },
15331
18450
  {
15332
18451
  "type": "button",
15333
- "label": "注销",
18452
+ "label": instance.t('frontend_log_out'),
15334
18453
  "className": "flex",
15335
18454
  "onEvent": {
15336
18455
  "click": {