@bigbinary/neeto-approvals-frontend 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -5,23 +5,21 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var Container = require('@bigbinary/neeto-molecules/Container');
7
7
  var reactRouterDom = require('react-router-dom');
8
+ var yup = require('yup');
8
9
  var constants = require('@bigbinary/neeto-commons-frontend/constants');
10
+ var neetoui = require('@bigbinary/neetoui');
9
11
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
12
  var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
11
- var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
12
- var neetoui = require('@bigbinary/neetoui');
13
13
  var ramda = require('ramda');
14
14
  var axios = require('axios');
15
15
  var reactQuery = require('react-query');
16
- var yup = require('yup');
17
16
  var formik = require('@bigbinary/neetoui/formik');
18
17
  var neetoIcons = require('@bigbinary/neeto-icons');
19
18
  var pure = require('@bigbinary/neeto-commons-frontend/pure');
20
- var Header$2 = require('@bigbinary/neeto-molecules/Header');
21
19
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
22
20
  var neetoEditor = require('@bigbinary/neeto-editor');
23
21
  var formik$1 = require('formik');
24
- var MenuBar = require('@bigbinary/neeto-molecules/MenuBar');
22
+ var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
25
23
 
26
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
25
 
@@ -45,21 +43,19 @@ function _interopNamespace(e) {
45
43
 
46
44
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
47
45
  var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
46
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
48
47
  var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
49
- var SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader);
50
48
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
51
- var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
52
- var Header__default = /*#__PURE__*/_interopDefaultLegacy(Header$2);
53
- var MenuBar__default = /*#__PURE__*/_interopDefaultLegacy(MenuBar);
49
+ var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
54
50
 
55
- function _typeof$2(obj) {
51
+ function _typeof$3(o) {
56
52
  "@babel/helpers - typeof";
57
53
 
58
- return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
59
- return typeof obj;
60
- } : function (obj) {
61
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
62
- }, _typeof$2(obj);
54
+ return _typeof$3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
55
+ return typeof o;
56
+ } : function (o) {
57
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
58
+ }, _typeof$3(o);
63
59
  }
64
60
 
65
61
  function _classCallCheck$2(instance, Constructor) {
@@ -68,20 +64,20 @@ function _classCallCheck$2(instance, Constructor) {
68
64
  }
69
65
  }
70
66
 
71
- function _toPrimitive$2(input, hint) {
72
- if (_typeof$2(input) !== "object" || input === null) return input;
67
+ function _toPrimitive$3(input, hint) {
68
+ if (_typeof$3(input) !== "object" || input === null) return input;
73
69
  var prim = input[Symbol.toPrimitive];
74
70
  if (prim !== undefined) {
75
71
  var res = prim.call(input, hint || "default");
76
- if (_typeof$2(res) !== "object") return res;
72
+ if (_typeof$3(res) !== "object") return res;
77
73
  throw new TypeError("@@toPrimitive must return a primitive value.");
78
74
  }
79
75
  return (hint === "string" ? String : Number)(input);
80
76
  }
81
77
 
82
- function _toPropertyKey$2(arg) {
83
- var key = _toPrimitive$2(arg, "string");
84
- return _typeof$2(key) === "symbol" ? key : String(key);
78
+ function _toPropertyKey$3(arg) {
79
+ var key = _toPrimitive$3(arg, "string");
80
+ return _typeof$3(key) === "symbol" ? key : String(key);
85
81
  }
86
82
 
87
83
  function _defineProperties$2(target, props) {
@@ -90,7 +86,7 @@ function _defineProperties$2(target, props) {
90
86
  descriptor.enumerable = descriptor.enumerable || false;
91
87
  descriptor.configurable = true;
92
88
  if ("value" in descriptor) descriptor.writable = true;
93
- Object.defineProperty(target, _toPropertyKey$2(descriptor.key), descriptor);
89
+ Object.defineProperty(target, _toPropertyKey$3(descriptor.key), descriptor);
94
90
  }
95
91
  }
96
92
  function _createClass$2(Constructor, protoProps, staticProps) {
@@ -135,7 +131,7 @@ function _inherits(subClass, superClass) {
135
131
  }
136
132
 
137
133
  function _possibleConstructorReturn(self, call) {
138
- if (call && (_typeof$2(call) === "object" || typeof call === "function")) {
134
+ if (call && (_typeof$3(call) === "object" || typeof call === "function")) {
139
135
  return call;
140
136
  } else if (call !== void 0) {
141
137
  throw new TypeError("Derived constructors may only return object or undefined");
@@ -150,8 +146,8 @@ function _getPrototypeOf(o) {
150
146
  return _getPrototypeOf(o);
151
147
  }
152
148
 
153
- function _defineProperty$1(obj, key, value) {
154
- key = _toPropertyKey$2(key);
149
+ function _defineProperty$2(obj, key, value) {
150
+ key = _toPropertyKey$3(key);
155
151
  if (key in obj) {
156
152
  Object.defineProperty(obj, key, {
157
153
  value: value,
@@ -165,41 +161,39 @@ function _defineProperty$1(obj, key, value) {
165
161
  return obj;
166
162
  }
167
163
 
168
- function _arrayWithHoles$1(arr) {
164
+ function _arrayWithHoles$2(arr) {
169
165
  if (Array.isArray(arr)) return arr;
170
166
  }
171
167
 
172
- function _iterableToArray(iter) {
168
+ function _iterableToArray$1(iter) {
173
169
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
174
170
  }
175
171
 
176
- function _arrayLikeToArray$1(arr, len) {
172
+ function _arrayLikeToArray$2(arr, len) {
177
173
  if (len == null || len > arr.length) len = arr.length;
178
174
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
179
175
  return arr2;
180
176
  }
181
177
 
182
- function _unsupportedIterableToArray$1(o, minLen) {
178
+ function _unsupportedIterableToArray$2(o, minLen) {
183
179
  if (!o) return;
184
- if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
180
+ if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
185
181
  var n = Object.prototype.toString.call(o).slice(8, -1);
186
182
  if (n === "Object" && o.constructor) n = o.constructor.name;
187
183
  if (n === "Map" || n === "Set") return Array.from(o);
188
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
184
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
189
185
  }
190
186
 
191
- function _nonIterableRest$1() {
187
+ function _nonIterableRest$2() {
192
188
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
193
189
  }
194
190
 
195
191
  function _toArray(arr) {
196
- return _arrayWithHoles$1(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableRest$1();
192
+ return _arrayWithHoles$2(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableRest$2();
197
193
  }
198
194
 
199
- function ownKeys$f(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; }
200
-
201
- function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
202
-
195
+ function ownKeys$6$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; }
196
+ function _objectSpread$6$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
203
197
  var consoleLogger = {
204
198
  type: 'logger',
205
199
  log: function log(args) {
@@ -215,16 +209,12 @@ var consoleLogger = {
215
209
  if (console && console[type]) console[type].apply(console, args);
216
210
  }
217
211
  };
218
-
219
212
  var Logger = function () {
220
213
  function Logger(concreteLogger) {
221
214
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
222
-
223
215
  _classCallCheck$2(this, Logger);
224
-
225
216
  this.init(concreteLogger, options);
226
217
  }
227
-
228
218
  _createClass$2(Logger, [{
229
219
  key: "init",
230
220
  value: function init(concreteLogger) {
@@ -245,7 +235,6 @@ var Logger = function () {
245
235
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
246
236
  args[_key] = arguments[_key];
247
237
  }
248
-
249
238
  return this.forward(args, 'log', '', true);
250
239
  }
251
240
  }, {
@@ -254,7 +243,6 @@ var Logger = function () {
254
243
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
255
244
  args[_key2] = arguments[_key2];
256
245
  }
257
-
258
246
  return this.forward(args, 'warn', '', true);
259
247
  }
260
248
  }, {
@@ -263,7 +251,6 @@ var Logger = function () {
263
251
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
264
252
  args[_key3] = arguments[_key3];
265
253
  }
266
-
267
254
  return this.forward(args, 'error', '');
268
255
  }
269
256
  }, {
@@ -272,7 +259,6 @@ var Logger = function () {
272
259
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
273
260
  args[_key4] = arguments[_key4];
274
261
  }
275
-
276
262
  return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);
277
263
  }
278
264
  }, {
@@ -285,32 +271,33 @@ var Logger = function () {
285
271
  }, {
286
272
  key: "create",
287
273
  value: function create(moduleName) {
288
- return new Logger(this.logger, _objectSpread$f(_objectSpread$f({}, {
274
+ return new Logger(this.logger, _objectSpread$6$1(_objectSpread$6$1({}, {
289
275
  prefix: "".concat(this.prefix, ":").concat(moduleName, ":")
290
276
  }), this.options));
291
277
  }
278
+ }, {
279
+ key: "clone",
280
+ value: function clone(options) {
281
+ options = options || this.options;
282
+ options.prefix = options.prefix || this.prefix;
283
+ return new Logger(this.logger, options);
284
+ }
292
285
  }]);
293
-
294
286
  return Logger;
295
287
  }();
296
-
297
288
  var baseLogger = new Logger();
298
289
 
299
290
  var EventEmitter = function () {
300
291
  function EventEmitter() {
301
292
  _classCallCheck$2(this, EventEmitter);
302
-
303
293
  this.observers = {};
304
294
  }
305
-
306
295
  _createClass$2(EventEmitter, [{
307
296
  key: "on",
308
297
  value: function on(events, listener) {
309
298
  var _this = this;
310
-
311
299
  events.split(' ').forEach(function (event) {
312
300
  _this.observers[event] = _this.observers[event] || [];
313
-
314
301
  _this.observers[event].push(listener);
315
302
  });
316
303
  return this;
@@ -319,12 +306,10 @@ var EventEmitter = function () {
319
306
  key: "off",
320
307
  value: function off(event, listener) {
321
308
  if (!this.observers[event]) return;
322
-
323
309
  if (!listener) {
324
310
  delete this.observers[event];
325
311
  return;
326
312
  }
327
-
328
313
  this.observers[event] = this.observers[event].filter(function (l) {
329
314
  return l !== listener;
330
315
  });
@@ -335,24 +320,20 @@ var EventEmitter = function () {
335
320
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
336
321
  args[_key - 1] = arguments[_key];
337
322
  }
338
-
339
323
  if (this.observers[event]) {
340
324
  var cloned = [].concat(this.observers[event]);
341
325
  cloned.forEach(function (observer) {
342
326
  observer.apply(void 0, args);
343
327
  });
344
328
  }
345
-
346
329
  if (this.observers['*']) {
347
330
  var _cloned = [].concat(this.observers['*']);
348
-
349
331
  _cloned.forEach(function (observer) {
350
332
  observer.apply(observer, [event].concat(args));
351
333
  });
352
334
  }
353
335
  }
354
336
  }]);
355
-
356
337
  return EventEmitter;
357
338
  }();
358
339
 
@@ -376,68 +357,56 @@ function copy(a, s, t) {
376
357
  if (s[m]) t[m] = s[m];
377
358
  });
378
359
  }
379
-
380
360
  function getLastOfPath(object, path, Empty) {
381
361
  function cleanKey(key) {
382
362
  return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;
383
363
  }
384
-
385
364
  function canNotTraverseDeeper() {
386
365
  return !object || typeof object === 'string';
387
366
  }
388
-
389
367
  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');
390
-
391
368
  while (stack.length > 1) {
392
369
  if (canNotTraverseDeeper()) return {};
393
370
  var key = cleanKey(stack.shift());
394
371
  if (!object[key] && Empty) object[key] = new Empty();
395
-
396
372
  if (Object.prototype.hasOwnProperty.call(object, key)) {
397
373
  object = object[key];
398
374
  } else {
399
375
  object = {};
400
376
  }
401
377
  }
402
-
403
378
  if (canNotTraverseDeeper()) return {};
404
379
  return {
405
380
  obj: object,
406
381
  k: cleanKey(stack.shift())
407
382
  };
408
383
  }
409
-
410
384
  function setPath(object, path, newValue) {
411
385
  var _getLastOfPath = getLastOfPath(object, path, Object),
412
- obj = _getLastOfPath.obj,
413
- k = _getLastOfPath.k;
414
-
386
+ obj = _getLastOfPath.obj,
387
+ k = _getLastOfPath.k;
415
388
  obj[k] = newValue;
416
389
  }
417
390
  function pushPath(object, path, newValue, concat) {
418
391
  var _getLastOfPath2 = getLastOfPath(object, path, Object),
419
- obj = _getLastOfPath2.obj,
420
- k = _getLastOfPath2.k;
421
-
392
+ obj = _getLastOfPath2.obj,
393
+ k = _getLastOfPath2.k;
422
394
  obj[k] = obj[k] || [];
423
395
  if (concat) obj[k] = obj[k].concat(newValue);
424
396
  if (!concat) obj[k].push(newValue);
425
397
  }
426
398
  function getPath(object, path) {
427
399
  var _getLastOfPath3 = getLastOfPath(object, path),
428
- obj = _getLastOfPath3.obj,
429
- k = _getLastOfPath3.k;
430
-
400
+ obj = _getLastOfPath3.obj,
401
+ k = _getLastOfPath3.k;
431
402
  if (!obj) return undefined;
432
403
  return obj[k];
433
404
  }
434
405
  function getPathWithDefaults(data, defaultData, key) {
435
406
  var value = getPath(data, key);
436
-
437
407
  if (value !== undefined) {
438
408
  return value;
439
409
  }
440
-
441
410
  return getPath(defaultData, key);
442
411
  }
443
412
  function deepExtend(target, source, overwrite) {
@@ -454,7 +423,6 @@ function deepExtend(target, source, overwrite) {
454
423
  }
455
424
  }
456
425
  }
457
-
458
426
  return target;
459
427
  }
460
428
  function regexEscape(str) {
@@ -474,10 +442,9 @@ function escape(data) {
474
442
  return _entityMap[s];
475
443
  });
476
444
  }
477
-
478
445
  return data;
479
446
  }
480
- var isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;
447
+ var isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;
481
448
  var chars = [' ', ',', '?', '!', ';'];
482
449
  function looksLikeObjectPath(key, nsSeparator, keySeparator) {
483
450
  nsSeparator = nsSeparator || '';
@@ -490,104 +457,77 @@ function looksLikeObjectPath(key, nsSeparator, keySeparator) {
490
457
  return c === '?' ? '\\?' : c;
491
458
  }).join('|'), ")"));
492
459
  var matched = !r.test(key);
493
-
494
460
  if (!matched) {
495
461
  var ki = key.indexOf(keySeparator);
496
-
497
462
  if (ki > 0 && !r.test(key.substring(0, ki))) {
498
463
  matched = true;
499
464
  }
500
465
  }
501
-
502
466
  return matched;
503
467
  }
504
-
505
- function ownKeys$1$1(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; }
506
-
507
- function _objectSpread$1$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
508
-
509
- 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); }; }
510
-
511
- 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; } }
512
-
513
468
  function deepFind(obj, path) {
514
469
  var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';
515
470
  if (!obj) return undefined;
516
471
  if (obj[path]) return obj[path];
517
472
  var paths = path.split(keySeparator);
518
473
  var current = obj;
519
-
520
474
  for (var i = 0; i < paths.length; ++i) {
521
475
  if (!current) return undefined;
522
-
523
476
  if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {
524
477
  return undefined;
525
478
  }
526
-
527
479
  if (current[paths[i]] === undefined) {
528
480
  var j = 2;
529
481
  var p = paths.slice(i, i + j).join(keySeparator);
530
482
  var mix = current[p];
531
-
532
483
  while (mix === undefined && paths.length > i + j) {
533
484
  j++;
534
485
  p = paths.slice(i, i + j).join(keySeparator);
535
486
  mix = current[p];
536
487
  }
537
-
538
488
  if (mix === undefined) return undefined;
539
-
489
+ if (mix === null) return null;
540
490
  if (path.endsWith(p)) {
541
491
  if (typeof mix === 'string') return mix;
542
492
  if (p && typeof mix[p] === 'string') return mix[p];
543
493
  }
544
-
545
494
  var joinedPath = paths.slice(i + j).join(keySeparator);
546
495
  if (joinedPath) return deepFind(mix, joinedPath, keySeparator);
547
496
  return undefined;
548
497
  }
549
-
550
498
  current = current[paths[i]];
551
499
  }
552
-
553
500
  return current;
554
501
  }
555
502
 
503
+ function ownKeys$5$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; }
504
+ function _objectSpread$5$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
505
+ 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); }; }
506
+ 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; } }
556
507
  var ResourceStore = function (_EventEmitter) {
557
508
  _inherits(ResourceStore, _EventEmitter);
558
-
559
- var _super = _createSuper(ResourceStore);
560
-
509
+ var _super = _createSuper$3(ResourceStore);
561
510
  function ResourceStore(data) {
562
511
  var _this;
563
-
564
512
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
565
513
  ns: ['translation'],
566
514
  defaultNS: 'translation'
567
515
  };
568
-
569
516
  _classCallCheck$2(this, ResourceStore);
570
-
571
517
  _this = _super.call(this);
572
-
573
518
  if (isIE10) {
574
519
  EventEmitter.call(_assertThisInitialized(_this));
575
520
  }
576
-
577
521
  _this.data = data || {};
578
522
  _this.options = options;
579
-
580
523
  if (_this.options.keySeparator === undefined) {
581
524
  _this.options.keySeparator = '.';
582
525
  }
583
-
584
526
  if (_this.options.ignoreJSONStructure === undefined) {
585
527
  _this.options.ignoreJSONStructure = true;
586
528
  }
587
-
588
529
  return _this;
589
530
  }
590
-
591
531
  _createClass$2(ResourceStore, [{
592
532
  key: "addNamespaces",
593
533
  value: function addNamespaces(ns) {
@@ -599,7 +539,6 @@ var ResourceStore = function (_EventEmitter) {
599
539
  key: "removeNamespaces",
600
540
  value: function removeNamespaces(ns) {
601
541
  var index = this.options.ns.indexOf(ns);
602
-
603
542
  if (index > -1) {
604
543
  this.options.ns.splice(index, 1);
605
544
  }
@@ -613,11 +552,9 @@ var ResourceStore = function (_EventEmitter) {
613
552
  var path = [lng, ns];
614
553
  if (key && typeof key !== 'string') path = path.concat(key);
615
554
  if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);
616
-
617
555
  if (lng.indexOf('.') > -1) {
618
556
  path = lng.split('.');
619
557
  }
620
-
621
558
  var result = getPath(this.data, path);
622
559
  if (result || !ignoreJSONStructure || typeof key !== 'string') return result;
623
560
  return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);
@@ -628,17 +565,14 @@ var ResourceStore = function (_EventEmitter) {
628
565
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
629
566
  silent: false
630
567
  };
631
- var keySeparator = this.options.keySeparator;
632
- if (keySeparator === undefined) keySeparator = '.';
568
+ var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
633
569
  var path = [lng, ns];
634
570
  if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);
635
-
636
571
  if (lng.indexOf('.') > -1) {
637
572
  path = lng.split('.');
638
573
  value = ns;
639
574
  ns = path[1];
640
575
  }
641
-
642
576
  this.addNamespaces(ns);
643
577
  setPath(this.data, path, value);
644
578
  if (!options.silent) this.emit('added', lng, ns, key, value);
@@ -649,13 +583,11 @@ var ResourceStore = function (_EventEmitter) {
649
583
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
650
584
  silent: false
651
585
  };
652
-
653
586
  for (var m in resources) {
654
587
  if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {
655
588
  silent: true
656
589
  });
657
590
  }
658
-
659
591
  if (!options.silent) this.emit('added', lng, ns, resources);
660
592
  }
661
593
  }, {
@@ -665,23 +597,19 @@ var ResourceStore = function (_EventEmitter) {
665
597
  silent: false
666
598
  };
667
599
  var path = [lng, ns];
668
-
669
600
  if (lng.indexOf('.') > -1) {
670
601
  path = lng.split('.');
671
602
  deep = resources;
672
603
  resources = ns;
673
604
  ns = path[1];
674
605
  }
675
-
676
606
  this.addNamespaces(ns);
677
607
  var pack = getPath(this.data, path) || {};
678
-
679
608
  if (deep) {
680
609
  deepExtend(pack, resources, overwrite);
681
610
  } else {
682
- pack = _objectSpread$1$1(_objectSpread$1$1({}, pack), resources);
611
+ pack = _objectSpread$5$1(_objectSpread$5$1({}, pack), resources);
683
612
  }
684
-
685
613
  setPath(this.data, path, pack);
686
614
  if (!options.silent) this.emit('added', lng, ns, resources);
687
615
  }
@@ -691,7 +619,6 @@ var ResourceStore = function (_EventEmitter) {
691
619
  if (this.hasResourceBundle(lng, ns)) {
692
620
  delete this.data[lng][ns];
693
621
  }
694
-
695
622
  this.removeNamespaces(ns);
696
623
  this.emit('removed', lng, ns);
697
624
  }
@@ -704,7 +631,7 @@ var ResourceStore = function (_EventEmitter) {
704
631
  key: "getResourceBundle",
705
632
  value: function getResourceBundle(lng, ns) {
706
633
  if (!ns) ns = this.options.defaultNS;
707
- if (this.options.compatibilityAPI === 'v1') return _objectSpread$1$1(_objectSpread$1$1({}, {}), this.getResource(lng, ns));
634
+ if (this.options.compatibilityAPI === 'v1') return _objectSpread$5$1(_objectSpread$5$1({}, {}), this.getResource(lng, ns));
708
635
  return this.getResource(lng, ns);
709
636
  }
710
637
  }, {
@@ -727,7 +654,6 @@ var ResourceStore = function (_EventEmitter) {
727
654
  return this.data;
728
655
  }
729
656
  }]);
730
-
731
657
  return ResourceStore;
732
658
  }(EventEmitter);
733
659
 
@@ -738,7 +664,6 @@ var postProcessor = {
738
664
  },
739
665
  handle: function handle(processors, value, key, options, translator) {
740
666
  var _this = this;
741
-
742
667
  processors.forEach(function (processor) {
743
668
  if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);
744
669
  });
@@ -746,44 +671,30 @@ var postProcessor = {
746
671
  }
747
672
  };
748
673
 
749
- function ownKeys$2$1(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; }
750
-
751
- function _objectSpread$2$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
752
-
753
- 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); }; }
754
-
755
- 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; } }
674
+ function ownKeys$4$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; }
675
+ function _objectSpread$4$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
676
+ 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); }; }
677
+ 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; } }
756
678
  var checkedLoadedFor = {};
757
-
758
679
  var Translator = function (_EventEmitter) {
759
680
  _inherits(Translator, _EventEmitter);
760
-
761
- var _super = _createSuper$1(Translator);
762
-
681
+ var _super = _createSuper$2(Translator);
763
682
  function Translator(services) {
764
683
  var _this;
765
-
766
684
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
767
-
768
685
  _classCallCheck$2(this, Translator);
769
-
770
686
  _this = _super.call(this);
771
-
772
687
  if (isIE10) {
773
688
  EventEmitter.call(_assertThisInitialized(_this));
774
689
  }
775
-
776
690
  copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));
777
691
  _this.options = options;
778
-
779
692
  if (_this.options.keySeparator === undefined) {
780
693
  _this.options.keySeparator = '.';
781
694
  }
782
-
783
695
  _this.logger = baseLogger.create('translator');
784
696
  return _this;
785
697
  }
786
-
787
698
  _createClass$2(Translator, [{
788
699
  key: "changeLanguage",
789
700
  value: function changeLanguage(lng) {
@@ -795,11 +706,9 @@ var Translator = function (_EventEmitter) {
795
706
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
796
707
  interpolation: {}
797
708
  };
798
-
799
709
  if (key === undefined || key === null) {
800
710
  return false;
801
711
  }
802
-
803
712
  var resolved = this.resolve(key, options);
804
713
  return resolved && resolved.res !== undefined;
805
714
  }
@@ -812,22 +721,18 @@ var Translator = function (_EventEmitter) {
812
721
  var namespaces = options.ns || this.options.defaultNS || [];
813
722
  var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;
814
723
  var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);
815
-
816
724
  if (wouldCheckForNsInKey && !seemsNaturalLanguage) {
817
725
  var m = key.match(this.interpolator.nestingRegexp);
818
-
819
726
  if (m && m.length > 0) {
820
727
  return {
821
728
  key: key,
822
729
  namespaces: namespaces
823
730
  };
824
731
  }
825
-
826
732
  var parts = key.split(nsSeparator);
827
733
  if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();
828
734
  key = parts.join(keySeparator);
829
735
  }
830
-
831
736
  if (typeof namespaces === 'string') namespaces = [namespaces];
832
737
  return {
833
738
  key: key,
@@ -838,45 +743,46 @@ var Translator = function (_EventEmitter) {
838
743
  key: "translate",
839
744
  value: function translate(keys, options, lastKey) {
840
745
  var _this2 = this;
841
-
842
- if (_typeof$2(options) !== 'object' && this.options.overloadTranslationOptionHandler) {
746
+ if (_typeof$3(options) !== 'object' && this.options.overloadTranslationOptionHandler) {
843
747
  options = this.options.overloadTranslationOptionHandler(arguments);
844
748
  }
845
-
749
+ if (_typeof$3(options) === 'object') options = _objectSpread$4$1({}, options);
846
750
  if (!options) options = {};
847
751
  if (keys === undefined || keys === null) return '';
848
752
  if (!Array.isArray(keys)) keys = [String(keys)];
849
753
  var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;
850
754
  var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
851
-
852
755
  var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),
853
- key = _this$extractFromKey.key,
854
- namespaces = _this$extractFromKey.namespaces;
855
-
756
+ key = _this$extractFromKey.key,
757
+ namespaces = _this$extractFromKey.namespaces;
856
758
  var namespace = namespaces[namespaces.length - 1];
857
759
  var lng = options.lng || this.language;
858
760
  var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
859
-
860
761
  if (lng && lng.toLowerCase() === 'cimode') {
861
762
  if (appendNamespaceToCIMode) {
862
763
  var nsSeparator = options.nsSeparator || this.options.nsSeparator;
863
-
864
764
  if (returnDetails) {
865
- resolved.res = "".concat(namespace).concat(nsSeparator).concat(key);
866
- return resolved;
765
+ return {
766
+ res: "".concat(namespace).concat(nsSeparator).concat(key),
767
+ usedKey: key,
768
+ exactUsedKey: key,
769
+ usedLng: lng,
770
+ usedNS: namespace
771
+ };
867
772
  }
868
-
869
773
  return "".concat(namespace).concat(nsSeparator).concat(key);
870
774
  }
871
-
872
775
  if (returnDetails) {
873
- resolved.res = key;
874
- return resolved;
776
+ return {
777
+ res: key,
778
+ usedKey: key,
779
+ exactUsedKey: key,
780
+ usedLng: lng,
781
+ usedNS: namespace
782
+ };
875
783
  }
876
-
877
784
  return key;
878
785
  }
879
-
880
786
  var resolved = this.resolve(keys, options);
881
787
  var res = resolved && resolved.res;
882
788
  var resUsedKey = resolved && resolved.usedKey || key;
@@ -886,41 +792,34 @@ var Translator = function (_EventEmitter) {
886
792
  var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;
887
793
  var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;
888
794
  var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';
889
-
890
795
  if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {
891
796
  if (!options.returnObjects && !this.options.returnObjects) {
892
797
  if (!this.options.returnedObjectHandler) {
893
798
  this.logger.warn('accessing an object - but returnObjects options is not enabled!');
894
799
  }
895
-
896
- var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2$1(_objectSpread$2$1({}, options), {}, {
800
+ var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4$1(_objectSpread$4$1({}, options), {}, {
897
801
  ns: namespaces
898
802
  })) : "key '".concat(key, " (").concat(this.language, ")' returned an object instead of string.");
899
-
900
803
  if (returnDetails) {
901
804
  resolved.res = r;
902
805
  return resolved;
903
806
  }
904
-
905
807
  return r;
906
808
  }
907
-
908
809
  if (keySeparator) {
909
810
  var resTypeIsArray = resType === '[object Array]';
910
811
  var copy = resTypeIsArray ? [] : {};
911
812
  var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;
912
-
913
813
  for (var m in res) {
914
814
  if (Object.prototype.hasOwnProperty.call(res, m)) {
915
815
  var deepKey = "".concat(newKeyToUse).concat(keySeparator).concat(m);
916
- copy[m] = this.translate(deepKey, _objectSpread$2$1(_objectSpread$2$1({}, options), {
816
+ copy[m] = this.translate(deepKey, _objectSpread$4$1(_objectSpread$4$1({}, options), {
917
817
  joinArrays: false,
918
818
  ns: namespaces
919
819
  }));
920
820
  if (copy[m] === deepKey) copy[m] = res[m];
921
821
  }
922
822
  }
923
-
924
823
  res = copy;
925
824
  }
926
825
  } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {
@@ -933,34 +832,27 @@ var Translator = function (_EventEmitter) {
933
832
  var hasDefaultValue = Translator.hasDefaultValue(options);
934
833
  var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';
935
834
  var defaultValue = options["defaultValue".concat(defaultValueSuffix)] || options.defaultValue;
936
-
937
835
  if (!this.isValidLookup(res) && hasDefaultValue) {
938
836
  usedDefault = true;
939
837
  res = defaultValue;
940
838
  }
941
-
942
839
  if (!this.isValidLookup(res)) {
943
840
  usedKey = true;
944
841
  res = key;
945
842
  }
946
-
947
843
  var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;
948
844
  var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;
949
845
  var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;
950
-
951
846
  if (usedKey || usedDefault || updateMissing) {
952
847
  this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);
953
-
954
848
  if (keySeparator) {
955
- var fk = this.resolve(key, _objectSpread$2$1(_objectSpread$2$1({}, options), {}, {
849
+ var fk = this.resolve(key, _objectSpread$4$1(_objectSpread$4$1({}, options), {}, {
956
850
  keySeparator: false
957
851
  }));
958
852
  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.');
959
853
  }
960
-
961
854
  var lngs = [];
962
855
  var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);
963
-
964
856
  if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {
965
857
  for (var i = 0; i < fallbackLngs.length; i++) {
966
858
  lngs.push(fallbackLngs[i]);
@@ -970,19 +862,15 @@ var Translator = function (_EventEmitter) {
970
862
  } else {
971
863
  lngs.push(options.lng || this.language);
972
864
  }
973
-
974
865
  var send = function send(l, k, specificDefaultValue) {
975
866
  var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;
976
-
977
867
  if (_this2.options.missingKeyHandler) {
978
868
  _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);
979
869
  } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {
980
870
  _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);
981
871
  }
982
-
983
872
  _this2.emit('missingKey', l, namespace, k, res);
984
873
  };
985
-
986
874
  if (this.options.saveMissing) {
987
875
  if (this.options.saveMissingPlurals && needsPluralHandling) {
988
876
  lngs.forEach(function (language) {
@@ -995,89 +883,74 @@ var Translator = function (_EventEmitter) {
995
883
  }
996
884
  }
997
885
  }
998
-
999
886
  res = this.extendTranslation(res, keys, options, resolved, lastKey);
1000
887
  if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = "".concat(namespace, ":").concat(key);
1001
-
1002
888
  if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {
1003
889
  if (this.options.compatibilityAPI !== 'v1') {
1004
- res = this.options.parseMissingKeyHandler(key, usedDefault ? res : undefined);
890
+ res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? "".concat(namespace, ":").concat(key) : key, usedDefault ? res : undefined);
1005
891
  } else {
1006
892
  res = this.options.parseMissingKeyHandler(res);
1007
893
  }
1008
894
  }
1009
895
  }
1010
-
1011
896
  if (returnDetails) {
1012
897
  resolved.res = res;
1013
898
  return resolved;
1014
899
  }
1015
-
1016
900
  return res;
1017
901
  }
1018
902
  }, {
1019
903
  key: "extendTranslation",
1020
904
  value: function extendTranslation(res, key, options, resolved, lastKey) {
1021
905
  var _this3 = this;
1022
-
1023
906
  if (this.i18nFormat && this.i18nFormat.parse) {
1024
- res = this.i18nFormat.parse(res, _objectSpread$2$1(_objectSpread$2$1({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {
907
+ res = this.i18nFormat.parse(res, _objectSpread$4$1(_objectSpread$4$1({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {
1025
908
  resolved: resolved
1026
909
  });
1027
910
  } else if (!options.skipInterpolation) {
1028
- if (options.interpolation) this.interpolator.init(_objectSpread$2$1(_objectSpread$2$1({}, options), {
1029
- interpolation: _objectSpread$2$1(_objectSpread$2$1({}, this.options.interpolation), options.interpolation)
911
+ if (options.interpolation) this.interpolator.init(_objectSpread$4$1(_objectSpread$4$1({}, options), {
912
+ interpolation: _objectSpread$4$1(_objectSpread$4$1({}, this.options.interpolation), options.interpolation)
1030
913
  }));
1031
914
  var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);
1032
915
  var nestBef;
1033
-
1034
916
  if (skipOnVariables) {
1035
917
  var nb = res.match(this.interpolator.nestingRegexp);
1036
918
  nestBef = nb && nb.length;
1037
919
  }
1038
-
1039
920
  var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;
1040
- if (this.options.interpolation.defaultVariables) data = _objectSpread$2$1(_objectSpread$2$1({}, this.options.interpolation.defaultVariables), data);
921
+ if (this.options.interpolation.defaultVariables) data = _objectSpread$4$1(_objectSpread$4$1({}, this.options.interpolation.defaultVariables), data);
1041
922
  res = this.interpolator.interpolate(res, data, options.lng || this.language, options);
1042
-
1043
923
  if (skipOnVariables) {
1044
924
  var na = res.match(this.interpolator.nestingRegexp);
1045
925
  var nestAft = na && na.length;
1046
926
  if (nestBef < nestAft) options.nest = false;
1047
927
  }
1048
-
928
+ if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;
1049
929
  if (options.nest !== false) res = this.interpolator.nest(res, function () {
1050
930
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1051
931
  args[_key] = arguments[_key];
1052
932
  }
1053
-
1054
933
  if (lastKey && lastKey[0] === args[0] && !options.context) {
1055
934
  _this3.logger.warn("It seems you are nesting recursively key: ".concat(args[0], " in key: ").concat(key[0]));
1056
-
1057
935
  return null;
1058
936
  }
1059
-
1060
937
  return _this3.translate.apply(_this3, args.concat([key]));
1061
938
  }, options);
1062
939
  if (options.interpolation) this.interpolator.reset();
1063
940
  }
1064
-
1065
941
  var postProcess = options.postProcess || this.options.postProcess;
1066
942
  var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;
1067
-
1068
943
  if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {
1069
- res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2$1({
944
+ res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4$1({
1070
945
  i18nResolved: resolved
1071
946
  }, options) : options, this);
1072
947
  }
1073
-
1074
948
  return res;
1075
949
  }
1076
950
  }, {
1077
951
  key: "resolve",
1078
952
  value: function resolve(keys) {
1079
953
  var _this4 = this;
1080
-
1081
954
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1082
955
  var found;
1083
956
  var usedKey;
@@ -1087,65 +960,50 @@ var Translator = function (_EventEmitter) {
1087
960
  if (typeof keys === 'string') keys = [keys];
1088
961
  keys.forEach(function (k) {
1089
962
  if (_this4.isValidLookup(found)) return;
1090
-
1091
963
  var extracted = _this4.extractFromKey(k, options);
1092
-
1093
964
  var key = extracted.key;
1094
965
  usedKey = key;
1095
966
  var namespaces = extracted.namespaces;
1096
967
  if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);
1097
968
  var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';
1098
-
1099
969
  var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();
1100
-
1101
970
  var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';
1102
971
  var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);
1103
972
  namespaces.forEach(function (ns) {
1104
973
  if (_this4.isValidLookup(found)) return;
1105
974
  usedNS = ns;
1106
-
1107
975
  if (!checkedLoadedFor["".concat(codes[0], "-").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {
1108
976
  checkedLoadedFor["".concat(codes[0], "-").concat(ns)] = true;
1109
-
1110
977
  _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!!!');
1111
978
  }
1112
-
1113
979
  codes.forEach(function (code) {
1114
980
  if (_this4.isValidLookup(found)) return;
1115
981
  usedLng = code;
1116
982
  var finalKeys = [key];
1117
-
1118
983
  if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {
1119
984
  _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);
1120
985
  } else {
1121
986
  var pluralSuffix;
1122
987
  if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);
1123
- var zeroSuffix = '_zero';
1124
-
988
+ var zeroSuffix = "".concat(_this4.options.pluralSeparator, "zero");
1125
989
  if (needsPluralHandling) {
1126
990
  finalKeys.push(key + pluralSuffix);
1127
-
1128
991
  if (needsZeroSuffixLookup) {
1129
992
  finalKeys.push(key + zeroSuffix);
1130
993
  }
1131
994
  }
1132
-
1133
995
  if (needsContextHandling) {
1134
996
  var contextKey = "".concat(key).concat(_this4.options.contextSeparator).concat(options.context);
1135
997
  finalKeys.push(contextKey);
1136
-
1137
998
  if (needsPluralHandling) {
1138
999
  finalKeys.push(contextKey + pluralSuffix);
1139
-
1140
1000
  if (needsZeroSuffixLookup) {
1141
1001
  finalKeys.push(contextKey + zeroSuffix);
1142
1002
  }
1143
1003
  }
1144
1004
  }
1145
1005
  }
1146
-
1147
1006
  var possibleKey;
1148
-
1149
1007
  while (possibleKey = finalKeys.pop()) {
1150
1008
  if (!_this4.isValidLookup(found)) {
1151
1009
  exactUsedKey = possibleKey;
@@ -1179,33 +1037,27 @@ var Translator = function (_EventEmitter) {
1179
1037
  key: "hasDefaultValue",
1180
1038
  value: function hasDefaultValue(options) {
1181
1039
  var prefix = 'defaultValue';
1182
-
1183
1040
  for (var option in options) {
1184
1041
  if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {
1185
1042
  return true;
1186
1043
  }
1187
1044
  }
1188
-
1189
1045
  return false;
1190
1046
  }
1191
1047
  }]);
1192
-
1193
1048
  return Translator;
1194
1049
  }(EventEmitter);
1195
1050
 
1196
1051
  function capitalize(string) {
1197
1052
  return string.charAt(0).toUpperCase() + string.slice(1);
1198
1053
  }
1199
-
1200
1054
  var LanguageUtil = function () {
1201
1055
  function LanguageUtil(options) {
1202
1056
  _classCallCheck$2(this, LanguageUtil);
1203
-
1204
1057
  this.options = options;
1205
1058
  this.supportedLngs = this.options.supportedLngs || false;
1206
1059
  this.logger = baseLogger.create('languageUtils');
1207
1060
  }
1208
-
1209
1061
  _createClass$2(LanguageUtil, [{
1210
1062
  key: "getScriptPartFromCode",
1211
1063
  value: function getScriptPartFromCode(code) {
@@ -1229,7 +1081,6 @@ var LanguageUtil = function () {
1229
1081
  if (typeof code === 'string' && code.indexOf('-') > -1) {
1230
1082
  var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];
1231
1083
  var p = code.split('-');
1232
-
1233
1084
  if (this.options.lowerCaseLng) {
1234
1085
  p = p.map(function (part) {
1235
1086
  return part.toLowerCase();
@@ -1245,10 +1096,8 @@ var LanguageUtil = function () {
1245
1096
  if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
1246
1097
  if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());
1247
1098
  }
1248
-
1249
1099
  return p.join('-');
1250
1100
  }
1251
-
1252
1101
  return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;
1253
1102
  }
1254
1103
  }, {
@@ -1257,37 +1106,31 @@ var LanguageUtil = function () {
1257
1106
  if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {
1258
1107
  code = this.getLanguagePartFromCode(code);
1259
1108
  }
1260
-
1261
1109
  return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;
1262
1110
  }
1263
1111
  }, {
1264
1112
  key: "getBestMatchFromCodes",
1265
1113
  value: function getBestMatchFromCodes(codes) {
1266
1114
  var _this = this;
1267
-
1268
1115
  if (!codes) return null;
1269
1116
  var found;
1270
1117
  codes.forEach(function (code) {
1271
1118
  if (found) return;
1272
-
1273
1119
  var cleanedLng = _this.formatLanguageCode(code);
1274
-
1275
1120
  if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;
1276
1121
  });
1277
-
1278
1122
  if (!found && this.options.supportedLngs) {
1279
1123
  codes.forEach(function (code) {
1280
1124
  if (found) return;
1281
-
1282
1125
  var lngOnly = _this.getLanguagePartFromCode(code);
1283
-
1284
1126
  if (_this.isSupportedCode(lngOnly)) return found = lngOnly;
1285
1127
  found = _this.options.supportedLngs.find(function (supportedLng) {
1128
+ if (supportedLng === lngOnly) return supportedLng;
1129
+ if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;
1286
1130
  if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;
1287
1131
  });
1288
1132
  });
1289
1133
  }
1290
-
1291
1134
  if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];
1292
1135
  return found;
1293
1136
  }
@@ -1310,20 +1153,16 @@ var LanguageUtil = function () {
1310
1153
  key: "toResolveHierarchy",
1311
1154
  value: function toResolveHierarchy(code, fallbackCode) {
1312
1155
  var _this2 = this;
1313
-
1314
1156
  var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);
1315
1157
  var codes = [];
1316
-
1317
1158
  var addCode = function addCode(c) {
1318
1159
  if (!c) return;
1319
-
1320
1160
  if (_this2.isSupportedCode(c)) {
1321
1161
  codes.push(c);
1322
1162
  } else {
1323
1163
  _this2.logger.warn("rejecting language code not found in supportedLngs: ".concat(c));
1324
1164
  }
1325
1165
  };
1326
-
1327
1166
  if (typeof code === 'string' && code.indexOf('-') > -1) {
1328
1167
  if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));
1329
1168
  if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));
@@ -1331,14 +1170,12 @@ var LanguageUtil = function () {
1331
1170
  } else if (typeof code === 'string') {
1332
1171
  addCode(this.formatLanguageCode(code));
1333
1172
  }
1334
-
1335
1173
  fallbackCodes.forEach(function (fc) {
1336
1174
  if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));
1337
1175
  });
1338
1176
  return codes;
1339
1177
  }
1340
1178
  }]);
1341
-
1342
1179
  return LanguageUtil;
1343
1180
  }();
1344
1181
 
@@ -1512,7 +1349,6 @@ var suffixesOrder = {
1512
1349
  many: 4,
1513
1350
  other: 5
1514
1351
  };
1515
-
1516
1352
  function createRules() {
1517
1353
  var rules = {};
1518
1354
  sets.forEach(function (set) {
@@ -1525,25 +1361,19 @@ function createRules() {
1525
1361
  });
1526
1362
  return rules;
1527
1363
  }
1528
-
1529
1364
  var PluralResolver = function () {
1530
1365
  function PluralResolver(languageUtils) {
1531
1366
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1532
-
1533
1367
  _classCallCheck$2(this, PluralResolver);
1534
-
1535
1368
  this.languageUtils = languageUtils;
1536
1369
  this.options = options;
1537
1370
  this.logger = baseLogger.create('pluralResolver');
1538
-
1539
1371
  if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {
1540
1372
  this.options.compatibilityJSON = 'v3';
1541
1373
  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.');
1542
1374
  }
1543
-
1544
1375
  this.rules = createRules();
1545
1376
  }
1546
-
1547
1377
  _createClass$2(PluralResolver, [{
1548
1378
  key: "addRule",
1549
1379
  value: function addRule(lng, obj) {
@@ -1553,7 +1383,6 @@ var PluralResolver = function () {
1553
1383
  key: "getRule",
1554
1384
  value: function getRule(code) {
1555
1385
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1556
-
1557
1386
  if (this.shouldUseIntlApi()) {
1558
1387
  try {
1559
1388
  return new Intl.PluralRules(code, {
@@ -1563,7 +1392,6 @@ var PluralResolver = function () {
1563
1392
  return;
1564
1393
  }
1565
1394
  }
1566
-
1567
1395
  return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];
1568
1396
  }
1569
1397
  }, {
@@ -1571,11 +1399,9 @@ var PluralResolver = function () {
1571
1399
  value: function needsPlural(code) {
1572
1400
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1573
1401
  var rule = this.getRule(code, options);
1574
-
1575
1402
  if (this.shouldUseIntlApi()) {
1576
1403
  return rule && rule.resolvedOptions().pluralCategories.length > 1;
1577
1404
  }
1578
-
1579
1405
  return rule && rule.numbers.length > 1;
1580
1406
  }
1581
1407
  }, {
@@ -1590,14 +1416,11 @@ var PluralResolver = function () {
1590
1416
  key: "getSuffixes",
1591
1417
  value: function getSuffixes(code) {
1592
1418
  var _this = this;
1593
-
1594
1419
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1595
1420
  var rule = this.getRule(code, options);
1596
-
1597
1421
  if (!rule) {
1598
1422
  return [];
1599
1423
  }
1600
-
1601
1424
  if (this.shouldUseIntlApi()) {
1602
1425
  return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {
1603
1426
  return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];
@@ -1605,7 +1428,6 @@ var PluralResolver = function () {
1605
1428
  return "".concat(_this.options.prepend).concat(pluralCategory);
1606
1429
  });
1607
1430
  }
1608
-
1609
1431
  return rule.numbers.map(function (number) {
1610
1432
  return _this.getSuffix(code, number, options);
1611
1433
  });
@@ -1615,15 +1437,12 @@ var PluralResolver = function () {
1615
1437
  value: function getSuffix(code, count) {
1616
1438
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1617
1439
  var rule = this.getRule(code, options);
1618
-
1619
1440
  if (rule) {
1620
1441
  if (this.shouldUseIntlApi()) {
1621
1442
  return "".concat(this.options.prepend).concat(rule.select(count));
1622
1443
  }
1623
-
1624
1444
  return this.getSuffixRetroCompatible(rule, count);
1625
1445
  }
1626
-
1627
1446
  this.logger.warn("no plural rule found for: ".concat(code));
1628
1447
  return '';
1629
1448
  }
@@ -1631,10 +1450,8 @@ var PluralResolver = function () {
1631
1450
  key: "getSuffixRetroCompatible",
1632
1451
  value: function getSuffixRetroCompatible(rule, count) {
1633
1452
  var _this2 = this;
1634
-
1635
1453
  var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));
1636
1454
  var suffix = rule.numbers[idx];
1637
-
1638
1455
  if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
1639
1456
  if (suffix === 2) {
1640
1457
  suffix = 'plural';
@@ -1642,11 +1459,9 @@ var PluralResolver = function () {
1642
1459
  suffix = '';
1643
1460
  }
1644
1461
  }
1645
-
1646
1462
  var returnSuffix = function returnSuffix() {
1647
1463
  return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();
1648
1464
  };
1649
-
1650
1465
  if (this.options.compatibilityJSON === 'v1') {
1651
1466
  if (suffix === 1) return '';
1652
1467
  if (typeof suffix === 'number') return "_plural_".concat(suffix.toString());
@@ -1656,7 +1471,6 @@ var PluralResolver = function () {
1656
1471
  } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
1657
1472
  return returnSuffix();
1658
1473
  }
1659
-
1660
1474
  return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();
1661
1475
  }
1662
1476
  }, {
@@ -1665,30 +1479,32 @@ var PluralResolver = function () {
1665
1479
  return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);
1666
1480
  }
1667
1481
  }]);
1668
-
1669
1482
  return PluralResolver;
1670
1483
  }();
1671
1484
 
1672
- function ownKeys$3$1(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; }
1673
-
1674
- function _objectSpread$3$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1675
-
1485
+ function ownKeys$3$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; }
1486
+ function _objectSpread$3$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1487
+ function deepFindWithDefaults(data, defaultData, key) {
1488
+ var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';
1489
+ var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
1490
+ var path = getPathWithDefaults(data, defaultData, key);
1491
+ if (!path && ignoreJSONStructure && typeof key === 'string') {
1492
+ path = deepFind(data, key, keySeparator);
1493
+ if (path === undefined) path = deepFind(defaultData, key, keySeparator);
1494
+ }
1495
+ return path;
1496
+ }
1676
1497
  var Interpolator = function () {
1677
1498
  function Interpolator() {
1678
1499
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1679
-
1680
1500
  _classCallCheck$2(this, Interpolator);
1681
-
1682
1501
  this.logger = baseLogger.create('interpolator');
1683
1502
  this.options = options;
1684
-
1685
1503
  this.format = options.interpolation && options.interpolation.format || function (value) {
1686
1504
  return value;
1687
1505
  };
1688
-
1689
1506
  this.init(options);
1690
1507
  }
1691
-
1692
1508
  _createClass$2(Interpolator, [{
1693
1509
  key: "init",
1694
1510
  value: function init() {
@@ -1731,32 +1547,27 @@ var Interpolator = function () {
1731
1547
  key: "interpolate",
1732
1548
  value: function interpolate(str, data, lng, options) {
1733
1549
  var _this = this;
1734
-
1735
1550
  var match;
1736
1551
  var value;
1737
1552
  var replaces;
1738
1553
  var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};
1739
-
1740
1554
  function regexSafe(val) {
1741
1555
  return val.replace(/\$/g, '$$$$');
1742
1556
  }
1743
-
1744
1557
  var handleFormat = function handleFormat(key) {
1745
1558
  if (key.indexOf(_this.formatSeparator) < 0) {
1746
- var path = getPathWithDefaults(data, defaultData, key);
1559
+ var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);
1747
1560
  return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3$1(_objectSpread$3$1(_objectSpread$3$1({}, options), data), {}, {
1748
1561
  interpolationkey: key
1749
1562
  })) : path;
1750
1563
  }
1751
-
1752
1564
  var p = key.split(_this.formatSeparator);
1753
1565
  var k = p.shift().trim();
1754
1566
  var f = p.join(_this.formatSeparator).trim();
1755
- return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3$1(_objectSpread$3$1(_objectSpread$3$1({}, options), data), {}, {
1567
+ return _this.format(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3$1(_objectSpread$3$1(_objectSpread$3$1({}, options), data), {}, {
1756
1568
  interpolationkey: k
1757
1569
  }));
1758
1570
  };
1759
-
1760
1571
  this.resetRegExp();
1761
1572
  var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;
1762
1573
  var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;
@@ -1773,41 +1584,34 @@ var Interpolator = function () {
1773
1584
  }];
1774
1585
  todos.forEach(function (todo) {
1775
1586
  replaces = 0;
1776
-
1777
1587
  while (match = todo.regex.exec(str)) {
1778
1588
  var matchedVar = match[1].trim();
1779
1589
  value = handleFormat(matchedVar);
1780
-
1781
1590
  if (value === undefined) {
1782
1591
  if (typeof missingInterpolationHandler === 'function') {
1783
1592
  var temp = missingInterpolationHandler(str, match, options);
1784
1593
  value = typeof temp === 'string' ? temp : '';
1785
- } else if (options && options.hasOwnProperty(matchedVar)) {
1594
+ } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {
1786
1595
  value = '';
1787
1596
  } else if (skipOnVariables) {
1788
1597
  value = match[0];
1789
1598
  continue;
1790
1599
  } else {
1791
1600
  _this.logger.warn("missed to pass in variable ".concat(matchedVar, " for interpolating ").concat(str));
1792
-
1793
1601
  value = '';
1794
1602
  }
1795
1603
  } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {
1796
1604
  value = makeString(value);
1797
1605
  }
1798
-
1799
1606
  var safeValue = todo.safeValue(value);
1800
1607
  str = str.replace(match[0], safeValue);
1801
-
1802
1608
  if (skipOnVariables) {
1803
- todo.regex.lastIndex += safeValue.length;
1609
+ todo.regex.lastIndex += value.length;
1804
1610
  todo.regex.lastIndex -= match[0].length;
1805
1611
  } else {
1806
1612
  todo.regex.lastIndex = 0;
1807
1613
  }
1808
-
1809
1614
  replaces++;
1810
-
1811
1615
  if (replaces >= _this.maxReplaces) {
1812
1616
  break;
1813
1617
  }
@@ -1819,16 +1623,10 @@ var Interpolator = function () {
1819
1623
  key: "nest",
1820
1624
  value: function nest(str, fc) {
1821
1625
  var _this2 = this;
1822
-
1823
1626
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1824
1627
  var match;
1825
1628
  var value;
1826
-
1827
- var clonedOptions = _objectSpread$3$1({}, options);
1828
-
1829
- clonedOptions.applyPostProcessor = false;
1830
- delete clonedOptions.defaultValue;
1831
-
1629
+ var clonedOptions;
1832
1630
  function handleHasOptions(key, inheritedOptions) {
1833
1631
  var sep = this.nestingOptionsSeparator;
1834
1632
  if (key.indexOf(sep) < 0) return key;
@@ -1836,8 +1634,11 @@ var Interpolator = function () {
1836
1634
  var optionsString = "{".concat(c[1]);
1837
1635
  key = c[0];
1838
1636
  optionsString = this.interpolate(optionsString, clonedOptions);
1839
- optionsString = optionsString.replace(/'/g, '"');
1840
-
1637
+ var matchedSingleQuotes = optionsString.match(/'/g);
1638
+ var matchedDoubleQuotes = optionsString.match(/"/g);
1639
+ if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {
1640
+ optionsString = optionsString.replace(/'/g, '"');
1641
+ }
1841
1642
  try {
1842
1643
  clonedOptions = JSON.parse(optionsString);
1843
1644
  if (inheritedOptions) clonedOptions = _objectSpread$3$1(_objectSpread$3$1({}, inheritedOptions), clonedOptions);
@@ -1845,15 +1646,16 @@ var Interpolator = function () {
1845
1646
  this.logger.warn("failed parsing options string in nesting for key ".concat(key), e);
1846
1647
  return "".concat(key).concat(sep).concat(optionsString);
1847
1648
  }
1848
-
1849
1649
  delete clonedOptions.defaultValue;
1850
1650
  return key;
1851
1651
  }
1852
-
1853
1652
  while (match = this.nestingRegexp.exec(str)) {
1854
1653
  var formatters = [];
1654
+ clonedOptions = _objectSpread$3$1({}, options);
1655
+ clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;
1656
+ clonedOptions.applyPostProcessor = false;
1657
+ delete clonedOptions.defaultValue;
1855
1658
  var doReduce = false;
1856
-
1857
1659
  if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {
1858
1660
  var r = match[1].split(this.formatSeparator).map(function (elem) {
1859
1661
  return elem.trim();
@@ -1862,16 +1664,13 @@ var Interpolator = function () {
1862
1664
  formatters = r;
1863
1665
  doReduce = true;
1864
1666
  }
1865
-
1866
1667
  value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);
1867
1668
  if (value && match[0] === str && typeof value !== 'string') return value;
1868
1669
  if (typeof value !== 'string') value = makeString(value);
1869
-
1870
1670
  if (!value) {
1871
1671
  this.logger.warn("missed to resolve ".concat(match[1], " for nesting ").concat(str));
1872
1672
  value = '';
1873
1673
  }
1874
-
1875
1674
  if (doReduce) {
1876
1675
  value = formatters.reduce(function (v, f) {
1877
1676
  return _this2.format(v, f, options.lng, _objectSpread$3$1(_objectSpread$3$1({}, options), {}, {
@@ -1879,31 +1678,24 @@ var Interpolator = function () {
1879
1678
  }));
1880
1679
  }, value.trim());
1881
1680
  }
1882
-
1883
1681
  str = str.replace(match[0], value);
1884
1682
  this.regexp.lastIndex = 0;
1885
1683
  }
1886
-
1887
1684
  return str;
1888
1685
  }
1889
1686
  }]);
1890
-
1891
1687
  return Interpolator;
1892
1688
  }();
1893
1689
 
1894
- function ownKeys$4$1(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; }
1895
-
1896
- function _objectSpread$4$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1897
-
1690
+ function ownKeys$2$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; }
1691
+ function _objectSpread$2$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1898
1692
  function parseFormatStr(formatStr) {
1899
1693
  var formatName = formatStr.toLowerCase().trim();
1900
1694
  var formatOptions = {};
1901
-
1902
1695
  if (formatStr.indexOf('(') > -1) {
1903
1696
  var p = formatStr.split('(');
1904
1697
  formatName = p[0].toLowerCase().trim();
1905
1698
  var optStr = p[1].substring(0, p[1].length - 1);
1906
-
1907
1699
  if (formatName === 'currency' && optStr.indexOf(':') < 0) {
1908
1700
  if (!formatOptions.currency) formatOptions.currency = optStr.trim();
1909
1701
  } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {
@@ -1912,57 +1704,77 @@ function parseFormatStr(formatStr) {
1912
1704
  var opts = optStr.split(';');
1913
1705
  opts.forEach(function (opt) {
1914
1706
  if (!opt) return;
1915
-
1916
1707
  var _opt$split = opt.split(':'),
1917
- _opt$split2 = _toArray(_opt$split),
1918
- key = _opt$split2[0],
1919
- rest = _opt$split2.slice(1);
1920
-
1921
- var val = rest.join(':');
1922
- if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();
1923
- if (val.trim() === 'false') formatOptions[key.trim()] = false;
1924
- if (val.trim() === 'true') formatOptions[key.trim()] = true;
1925
- if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);
1708
+ _opt$split2 = _toArray(_opt$split),
1709
+ key = _opt$split2[0],
1710
+ rest = _opt$split2.slice(1);
1711
+ var val = rest.join(':').trim().replace(/^'+|'+$/g, '');
1712
+ if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;
1713
+ if (val === 'false') formatOptions[key.trim()] = false;
1714
+ if (val === 'true') formatOptions[key.trim()] = true;
1715
+ if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);
1926
1716
  });
1927
1717
  }
1928
1718
  }
1929
-
1930
1719
  return {
1931
1720
  formatName: formatName,
1932
1721
  formatOptions: formatOptions
1933
1722
  };
1934
1723
  }
1935
-
1724
+ function createCachedFormatter(fn) {
1725
+ var cache = {};
1726
+ return function invokeFormatter(val, lng, options) {
1727
+ var key = lng + JSON.stringify(options);
1728
+ var formatter = cache[key];
1729
+ if (!formatter) {
1730
+ formatter = fn(lng, options);
1731
+ cache[key] = formatter;
1732
+ }
1733
+ return formatter(val);
1734
+ };
1735
+ }
1936
1736
  var Formatter = function () {
1937
1737
  function Formatter() {
1938
1738
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1939
-
1940
1739
  _classCallCheck$2(this, Formatter);
1941
-
1942
1740
  this.logger = baseLogger.create('formatter');
1943
1741
  this.options = options;
1944
1742
  this.formats = {
1945
- number: function number(val, lng, options) {
1946
- return new Intl.NumberFormat(lng, options).format(val);
1947
- },
1948
- currency: function currency(val, lng, options) {
1949
- return new Intl.NumberFormat(lng, _objectSpread$4$1(_objectSpread$4$1({}, options), {}, {
1743
+ number: createCachedFormatter(function (lng, opt) {
1744
+ var formatter = new Intl.NumberFormat(lng, _objectSpread$2$1({}, opt));
1745
+ return function (val) {
1746
+ return formatter.format(val);
1747
+ };
1748
+ }),
1749
+ currency: createCachedFormatter(function (lng, opt) {
1750
+ var formatter = new Intl.NumberFormat(lng, _objectSpread$2$1(_objectSpread$2$1({}, opt), {}, {
1950
1751
  style: 'currency'
1951
- })).format(val);
1952
- },
1953
- datetime: function datetime(val, lng, options) {
1954
- return new Intl.DateTimeFormat(lng, _objectSpread$4$1({}, options)).format(val);
1955
- },
1956
- relativetime: function relativetime(val, lng, options) {
1957
- return new Intl.RelativeTimeFormat(lng, _objectSpread$4$1({}, options)).format(val, options.range || 'day');
1958
- },
1959
- list: function list(val, lng, options) {
1960
- return new Intl.ListFormat(lng, _objectSpread$4$1({}, options)).format(val);
1961
- }
1752
+ }));
1753
+ return function (val) {
1754
+ return formatter.format(val);
1755
+ };
1756
+ }),
1757
+ datetime: createCachedFormatter(function (lng, opt) {
1758
+ var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2$1({}, opt));
1759
+ return function (val) {
1760
+ return formatter.format(val);
1761
+ };
1762
+ }),
1763
+ relativetime: createCachedFormatter(function (lng, opt) {
1764
+ var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2$1({}, opt));
1765
+ return function (val) {
1766
+ return formatter.format(val, opt.range || 'day');
1767
+ };
1768
+ }),
1769
+ list: createCachedFormatter(function (lng, opt) {
1770
+ var formatter = new Intl.ListFormat(lng, _objectSpread$2$1({}, opt));
1771
+ return function (val) {
1772
+ return formatter.format(val);
1773
+ };
1774
+ })
1962
1775
  };
1963
1776
  this.init(options);
1964
1777
  }
1965
-
1966
1778
  _createClass$2(Formatter, [{
1967
1779
  key: "init",
1968
1780
  value: function init(services) {
@@ -1977,137 +1789,121 @@ var Formatter = function () {
1977
1789
  value: function add(name, fc) {
1978
1790
  this.formats[name.toLowerCase().trim()] = fc;
1979
1791
  }
1792
+ }, {
1793
+ key: "addCached",
1794
+ value: function addCached(name, fc) {
1795
+ this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);
1796
+ }
1980
1797
  }, {
1981
1798
  key: "format",
1982
- value: function format(value, _format, lng, options) {
1799
+ value: function format(value, _format, lng) {
1983
1800
  var _this = this;
1984
-
1801
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1985
1802
  var formats = _format.split(this.formatSeparator);
1986
-
1987
1803
  var result = formats.reduce(function (mem, f) {
1988
1804
  var _parseFormatStr = parseFormatStr(f),
1989
- formatName = _parseFormatStr.formatName,
1990
- formatOptions = _parseFormatStr.formatOptions;
1991
-
1805
+ formatName = _parseFormatStr.formatName,
1806
+ formatOptions = _parseFormatStr.formatOptions;
1992
1807
  if (_this.formats[formatName]) {
1993
1808
  var formatted = mem;
1994
-
1995
1809
  try {
1996
1810
  var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};
1997
1811
  var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;
1998
- formatted = _this.formats[formatName](mem, l, _objectSpread$4$1(_objectSpread$4$1(_objectSpread$4$1({}, formatOptions), options), valOptions));
1812
+ formatted = _this.formats[formatName](mem, l, _objectSpread$2$1(_objectSpread$2$1(_objectSpread$2$1({}, formatOptions), options), valOptions));
1999
1813
  } catch (error) {
2000
1814
  _this.logger.warn(error);
2001
1815
  }
2002
-
2003
1816
  return formatted;
2004
1817
  } else {
2005
1818
  _this.logger.warn("there was no format function for ".concat(formatName));
2006
1819
  }
2007
-
2008
1820
  return mem;
2009
1821
  }, value);
2010
1822
  return result;
2011
1823
  }
2012
1824
  }]);
2013
-
2014
1825
  return Formatter;
2015
1826
  }();
2016
1827
 
2017
- function ownKeys$5$1(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; }
2018
-
2019
- function _objectSpread$5$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2020
-
2021
- 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); }; }
2022
-
2023
- 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; } }
2024
-
2025
- function remove(arr, what) {
2026
- var found = arr.indexOf(what);
2027
-
2028
- while (found !== -1) {
2029
- arr.splice(found, 1);
2030
- found = arr.indexOf(what);
1828
+ function ownKeys$1$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; }
1829
+ function _objectSpread$1$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1830
+ 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); }; }
1831
+ 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; } }
1832
+ function removePending(q, name) {
1833
+ if (q.pending[name] !== undefined) {
1834
+ delete q.pending[name];
1835
+ q.pendingCount--;
2031
1836
  }
2032
1837
  }
2033
-
2034
1838
  var Connector = function (_EventEmitter) {
2035
1839
  _inherits(Connector, _EventEmitter);
2036
-
2037
- var _super = _createSuper$2(Connector);
2038
-
1840
+ var _super = _createSuper$1(Connector);
2039
1841
  function Connector(backend, store, services) {
2040
1842
  var _this;
2041
-
2042
1843
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
2043
-
2044
1844
  _classCallCheck$2(this, Connector);
2045
-
2046
1845
  _this = _super.call(this);
2047
-
2048
1846
  if (isIE10) {
2049
1847
  EventEmitter.call(_assertThisInitialized(_this));
2050
1848
  }
2051
-
2052
1849
  _this.backend = backend;
2053
1850
  _this.store = store;
2054
1851
  _this.services = services;
2055
1852
  _this.languageUtils = services.languageUtils;
2056
1853
  _this.options = options;
2057
1854
  _this.logger = baseLogger.create('backendConnector');
1855
+ _this.waitingReads = [];
1856
+ _this.maxParallelReads = options.maxParallelReads || 10;
1857
+ _this.readingCalls = 0;
1858
+ _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;
1859
+ _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;
2058
1860
  _this.state = {};
2059
1861
  _this.queue = [];
2060
-
2061
1862
  if (_this.backend && _this.backend.init) {
2062
1863
  _this.backend.init(services, options.backend, options);
2063
1864
  }
2064
-
2065
1865
  return _this;
2066
1866
  }
2067
-
2068
1867
  _createClass$2(Connector, [{
2069
1868
  key: "queueLoad",
2070
1869
  value: function queueLoad(languages, namespaces, options, callback) {
2071
1870
  var _this2 = this;
2072
-
2073
- var toLoad = [];
2074
- var pending = [];
2075
- var toLoadLanguages = [];
2076
- var toLoadNamespaces = [];
1871
+ var toLoad = {};
1872
+ var pending = {};
1873
+ var toLoadLanguages = {};
1874
+ var toLoadNamespaces = {};
2077
1875
  languages.forEach(function (lng) {
2078
1876
  var hasAllNamespaces = true;
2079
1877
  namespaces.forEach(function (ns) {
2080
1878
  var name = "".concat(lng, "|").concat(ns);
2081
-
2082
1879
  if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {
2083
1880
  _this2.state[name] = 2;
2084
1881
  } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {
2085
- if (pending.indexOf(name) < 0) pending.push(name);
1882
+ if (pending[name] === undefined) pending[name] = true;
2086
1883
  } else {
2087
1884
  _this2.state[name] = 1;
2088
1885
  hasAllNamespaces = false;
2089
- if (pending.indexOf(name) < 0) pending.push(name);
2090
- if (toLoad.indexOf(name) < 0) toLoad.push(name);
2091
- if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);
1886
+ if (pending[name] === undefined) pending[name] = true;
1887
+ if (toLoad[name] === undefined) toLoad[name] = true;
1888
+ if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;
2092
1889
  }
2093
1890
  });
2094
- if (!hasAllNamespaces) toLoadLanguages.push(lng);
1891
+ if (!hasAllNamespaces) toLoadLanguages[lng] = true;
2095
1892
  });
2096
-
2097
- if (toLoad.length || pending.length) {
1893
+ if (Object.keys(toLoad).length || Object.keys(pending).length) {
2098
1894
  this.queue.push({
2099
1895
  pending: pending,
1896
+ pendingCount: Object.keys(pending).length,
2100
1897
  loaded: {},
2101
1898
  errors: [],
2102
1899
  callback: callback
2103
1900
  });
2104
1901
  }
2105
-
2106
1902
  return {
2107
- toLoad: toLoad,
2108
- pending: pending,
2109
- toLoadLanguages: toLoadLanguages,
2110
- toLoadNamespaces: toLoadNamespaces
1903
+ toLoad: Object.keys(toLoad),
1904
+ pending: Object.keys(pending),
1905
+ toLoadLanguages: Object.keys(toLoadLanguages),
1906
+ toLoadNamespaces: Object.keys(toLoadNamespaces)
2111
1907
  };
2112
1908
  }
2113
1909
  }, {
@@ -2117,30 +1913,26 @@ var Connector = function (_EventEmitter) {
2117
1913
  var lng = s[0];
2118
1914
  var ns = s[1];
2119
1915
  if (err) this.emit('failedLoading', lng, ns, err);
2120
-
2121
1916
  if (data) {
2122
1917
  this.store.addResourceBundle(lng, ns, data);
2123
1918
  }
2124
-
2125
1919
  this.state[name] = err ? -1 : 2;
2126
1920
  var loaded = {};
2127
1921
  this.queue.forEach(function (q) {
2128
1922
  pushPath(q.loaded, [lng], ns);
2129
- remove(q.pending, name);
1923
+ removePending(q, name);
2130
1924
  if (err) q.errors.push(err);
2131
-
2132
- if (q.pending.length === 0 && !q.done) {
1925
+ if (q.pendingCount === 0 && !q.done) {
2133
1926
  Object.keys(q.loaded).forEach(function (l) {
2134
- if (!loaded[l]) loaded[l] = [];
2135
-
2136
- if (q.loaded[l].length) {
2137
- q.loaded[l].forEach(function (ns) {
2138
- if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);
1927
+ if (!loaded[l]) loaded[l] = {};
1928
+ var loadedKeys = q.loaded[l];
1929
+ if (loadedKeys.length) {
1930
+ loadedKeys.forEach(function (n) {
1931
+ if (loaded[l][n] === undefined) loaded[l][n] = true;
2139
1932
  });
2140
1933
  }
2141
1934
  });
2142
1935
  q.done = true;
2143
-
2144
1936
  if (q.errors.length) {
2145
1937
  q.callback(q.errors);
2146
1938
  } else {
@@ -2157,44 +1949,71 @@ var Connector = function (_EventEmitter) {
2157
1949
  key: "read",
2158
1950
  value: function read(lng, ns, fcName) {
2159
1951
  var _this3 = this;
2160
-
2161
1952
  var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2162
- var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;
1953
+ var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;
2163
1954
  var callback = arguments.length > 5 ? arguments[5] : undefined;
2164
1955
  if (!lng.length) return callback(null, {});
2165
- return this.backend[fcName](lng, ns, function (err, data) {
2166
- if (err && data && tried < 5) {
1956
+ if (this.readingCalls >= this.maxParallelReads) {
1957
+ this.waitingReads.push({
1958
+ lng: lng,
1959
+ ns: ns,
1960
+ fcName: fcName,
1961
+ tried: tried,
1962
+ wait: wait,
1963
+ callback: callback
1964
+ });
1965
+ return;
1966
+ }
1967
+ this.readingCalls++;
1968
+ var resolver = function resolver(err, data) {
1969
+ _this3.readingCalls--;
1970
+ if (_this3.waitingReads.length > 0) {
1971
+ var next = _this3.waitingReads.shift();
1972
+ _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);
1973
+ }
1974
+ if (err && data && tried < _this3.maxRetries) {
2167
1975
  setTimeout(function () {
2168
1976
  _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);
2169
1977
  }, wait);
2170
1978
  return;
2171
1979
  }
2172
-
2173
1980
  callback(err, data);
2174
- });
1981
+ };
1982
+ var fc = this.backend[fcName].bind(this.backend);
1983
+ if (fc.length === 2) {
1984
+ try {
1985
+ var r = fc(lng, ns);
1986
+ if (r && typeof r.then === 'function') {
1987
+ r.then(function (data) {
1988
+ return resolver(null, data);
1989
+ })["catch"](resolver);
1990
+ } else {
1991
+ resolver(null, r);
1992
+ }
1993
+ } catch (err) {
1994
+ resolver(err);
1995
+ }
1996
+ return;
1997
+ }
1998
+ return fc(lng, ns, resolver);
2175
1999
  }
2176
2000
  }, {
2177
2001
  key: "prepareLoading",
2178
2002
  value: function prepareLoading(languages, namespaces) {
2179
2003
  var _this4 = this;
2180
-
2181
2004
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2182
2005
  var callback = arguments.length > 3 ? arguments[3] : undefined;
2183
-
2184
2006
  if (!this.backend) {
2185
2007
  this.logger.warn('No backend was added via i18next.use. Will not load resources.');
2186
2008
  return callback && callback();
2187
2009
  }
2188
-
2189
2010
  if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);
2190
2011
  if (typeof namespaces === 'string') namespaces = [namespaces];
2191
2012
  var toLoad = this.queueLoad(languages, namespaces, options, callback);
2192
-
2193
2013
  if (!toLoad.toLoad.length) {
2194
2014
  if (!toLoad.pending.length) callback();
2195
2015
  return null;
2196
2016
  }
2197
-
2198
2017
  toLoad.toLoad.forEach(function (name) {
2199
2018
  _this4.loadOne(name);
2200
2019
  });
@@ -2215,7 +2034,6 @@ var Connector = function (_EventEmitter) {
2215
2034
  key: "loadOne",
2216
2035
  value: function loadOne(name) {
2217
2036
  var _this5 = this;
2218
-
2219
2037
  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
2220
2038
  var s = name.split('|');
2221
2039
  var lng = s[0];
@@ -2223,7 +2041,6 @@ var Connector = function (_EventEmitter) {
2223
2041
  this.read(lng, ns, 'read', undefined, undefined, function (err, data) {
2224
2042
  if (err) _this5.logger.warn("".concat(prefix, "loading namespace ").concat(ns, " for language ").concat(lng, " failed"), err);
2225
2043
  if (!err && data) _this5.logger.log("".concat(prefix, "loaded namespace ").concat(ns, " for language ").concat(lng), data);
2226
-
2227
2044
  _this5.loaded(name, err, data);
2228
2045
  });
2229
2046
  }
@@ -2231,25 +2048,43 @@ var Connector = function (_EventEmitter) {
2231
2048
  key: "saveMissing",
2232
2049
  value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {
2233
2050
  var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
2234
-
2051
+ var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};
2235
2052
  if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {
2236
2053
  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!!!');
2237
2054
  return;
2238
2055
  }
2239
-
2240
2056
  if (key === undefined || key === null || key === '') return;
2241
-
2242
2057
  if (this.backend && this.backend.create) {
2243
- this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5$1(_objectSpread$5$1({}, options), {}, {
2058
+ var opts = _objectSpread$1$1(_objectSpread$1$1({}, options), {}, {
2244
2059
  isUpdate: isUpdate
2245
- }));
2060
+ });
2061
+ var fc = this.backend.create.bind(this.backend);
2062
+ if (fc.length < 6) {
2063
+ try {
2064
+ var r;
2065
+ if (fc.length === 5) {
2066
+ r = fc(languages, namespace, key, fallbackValue, opts);
2067
+ } else {
2068
+ r = fc(languages, namespace, key, fallbackValue);
2069
+ }
2070
+ if (r && typeof r.then === 'function') {
2071
+ r.then(function (data) {
2072
+ return clb(null, data);
2073
+ })["catch"](clb);
2074
+ } else {
2075
+ clb(null, r);
2076
+ }
2077
+ } catch (err) {
2078
+ clb(err);
2079
+ }
2080
+ } else {
2081
+ fc(languages, namespace, key, fallbackValue, clb, opts);
2082
+ }
2246
2083
  }
2247
-
2248
2084
  if (!languages || !languages[0]) return;
2249
2085
  this.store.addResource(languages[0], namespace, key, fallbackValue);
2250
2086
  }
2251
2087
  }]);
2252
-
2253
2088
  return Connector;
2254
2089
  }(EventEmitter);
2255
2090
 
@@ -2289,17 +2124,15 @@ function get() {
2289
2124
  appendNamespaceToCIMode: false,
2290
2125
  overloadTranslationOptionHandler: function handle(args) {
2291
2126
  var ret = {};
2292
- if (_typeof$2(args[1]) === 'object') ret = args[1];
2127
+ if (_typeof$3(args[1]) === 'object') ret = args[1];
2293
2128
  if (typeof args[1] === 'string') ret.defaultValue = args[1];
2294
2129
  if (typeof args[2] === 'string') ret.tDescription = args[2];
2295
-
2296
- if (_typeof$2(args[2]) === 'object' || _typeof$2(args[3]) === 'object') {
2130
+ if (_typeof$3(args[2]) === 'object' || _typeof$3(args[3]) === 'object') {
2297
2131
  var options = args[3] || args[2];
2298
2132
  Object.keys(options).forEach(function (key) {
2299
2133
  ret[key] = options[key];
2300
2134
  });
2301
2135
  }
2302
-
2303
2136
  return ret;
2304
2137
  },
2305
2138
  interpolation: {
@@ -2323,24 +2156,17 @@ function transformOptions(options) {
2323
2156
  if (typeof options.ns === 'string') options.ns = [options.ns];
2324
2157
  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];
2325
2158
  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];
2326
-
2327
2159
  if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {
2328
2160
  options.supportedLngs = options.supportedLngs.concat(['cimode']);
2329
2161
  }
2330
-
2331
2162
  return options;
2332
2163
  }
2333
2164
 
2334
- function ownKeys$6$1(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; }
2335
-
2336
- function _objectSpread$6$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2337
-
2338
- 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); }; }
2339
-
2340
- 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; } }
2341
-
2165
+ function ownKeys$g(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; }
2166
+ function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$g(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2167
+ 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); }; }
2168
+ 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; } }
2342
2169
  function noop() {}
2343
-
2344
2170
  function bindMemberFunctions(inst) {
2345
2171
  var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
2346
2172
  mems.forEach(function (mem) {
@@ -2349,26 +2175,18 @@ function bindMemberFunctions(inst) {
2349
2175
  }
2350
2176
  });
2351
2177
  }
2352
-
2353
2178
  var I18n = function (_EventEmitter) {
2354
2179
  _inherits(I18n, _EventEmitter);
2355
-
2356
- var _super = _createSuper$3(I18n);
2357
-
2180
+ var _super = _createSuper(I18n);
2358
2181
  function I18n() {
2359
2182
  var _this;
2360
-
2361
2183
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2362
2184
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2363
-
2364
2185
  _classCallCheck$2(this, I18n);
2365
-
2366
2186
  _this = _super.call(this);
2367
-
2368
2187
  if (isIE10) {
2369
2188
  EventEmitter.call(_assertThisInitialized(_this));
2370
2189
  }
2371
-
2372
2190
  _this.options = transformOptions(options);
2373
2191
  _this.services = {};
2374
2192
  _this.logger = baseLogger;
@@ -2376,79 +2194,62 @@ var I18n = function (_EventEmitter) {
2376
2194
  external: []
2377
2195
  };
2378
2196
  bindMemberFunctions(_assertThisInitialized(_this));
2379
-
2380
2197
  if (callback && !_this.isInitialized && !options.isClone) {
2381
2198
  if (!_this.options.initImmediate) {
2382
2199
  _this.init(options, callback);
2383
-
2384
2200
  return _possibleConstructorReturn(_this, _assertThisInitialized(_this));
2385
2201
  }
2386
-
2387
2202
  setTimeout(function () {
2388
2203
  _this.init(options, callback);
2389
2204
  }, 0);
2390
2205
  }
2391
-
2392
2206
  return _this;
2393
2207
  }
2394
-
2395
2208
  _createClass$2(I18n, [{
2396
2209
  key: "init",
2397
2210
  value: function init() {
2398
2211
  var _this2 = this;
2399
-
2400
2212
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2401
2213
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2402
-
2403
2214
  if (typeof options === 'function') {
2404
2215
  callback = options;
2405
2216
  options = {};
2406
2217
  }
2407
-
2408
- if (!options.defaultNS && options.ns) {
2218
+ if (!options.defaultNS && options.defaultNS !== false && options.ns) {
2409
2219
  if (typeof options.ns === 'string') {
2410
2220
  options.defaultNS = options.ns;
2411
2221
  } else if (options.ns.indexOf('translation') < 0) {
2412
2222
  options.defaultNS = options.ns[0];
2413
2223
  }
2414
2224
  }
2415
-
2416
2225
  var defOpts = get();
2417
- this.options = _objectSpread$6$1(_objectSpread$6$1(_objectSpread$6$1({}, defOpts), this.options), transformOptions(options));
2418
-
2226
+ this.options = _objectSpread$g(_objectSpread$g(_objectSpread$g({}, defOpts), this.options), transformOptions(options));
2419
2227
  if (this.options.compatibilityAPI !== 'v1') {
2420
- this.options.interpolation = _objectSpread$6$1(_objectSpread$6$1({}, defOpts.interpolation), this.options.interpolation);
2228
+ this.options.interpolation = _objectSpread$g(_objectSpread$g({}, defOpts.interpolation), this.options.interpolation);
2421
2229
  }
2422
-
2423
2230
  if (options.keySeparator !== undefined) {
2424
2231
  this.options.userDefinedKeySeparator = options.keySeparator;
2425
2232
  }
2426
-
2427
2233
  if (options.nsSeparator !== undefined) {
2428
2234
  this.options.userDefinedNsSeparator = options.nsSeparator;
2429
2235
  }
2430
-
2431
2236
  function createClassOnDemand(ClassOrObject) {
2432
2237
  if (!ClassOrObject) return null;
2433
2238
  if (typeof ClassOrObject === 'function') return new ClassOrObject();
2434
2239
  return ClassOrObject;
2435
2240
  }
2436
-
2437
2241
  if (!this.options.isClone) {
2438
2242
  if (this.modules.logger) {
2439
2243
  baseLogger.init(createClassOnDemand(this.modules.logger), this.options);
2440
2244
  } else {
2441
2245
  baseLogger.init(null, this.options);
2442
2246
  }
2443
-
2444
2247
  var formatter;
2445
-
2446
2248
  if (this.modules.formatter) {
2447
2249
  formatter = this.modules.formatter;
2448
2250
  } else if (typeof Intl !== 'undefined') {
2449
2251
  formatter = Formatter;
2450
2252
  }
2451
-
2452
2253
  var lu = new LanguageUtil(this.options);
2453
2254
  this.store = new ResourceStore(this.options.resources, this.options);
2454
2255
  var s = this.services;
@@ -2460,13 +2261,11 @@ var I18n = function (_EventEmitter) {
2460
2261
  compatibilityJSON: this.options.compatibilityJSON,
2461
2262
  simplifyPluralSuffix: this.options.simplifyPluralSuffix
2462
2263
  });
2463
-
2464
2264
  if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {
2465
2265
  s.formatter = createClassOnDemand(formatter);
2466
2266
  s.formatter.init(s, this.options);
2467
2267
  this.options.interpolation.format = s.formatter.format.bind(s.formatter);
2468
2268
  }
2469
-
2470
2269
  s.interpolator = new Interpolator(this.options);
2471
2270
  s.utils = {
2472
2271
  hasLoadedNamespace: this.hasLoadedNamespace.bind(this)
@@ -2476,50 +2275,40 @@ var I18n = function (_EventEmitter) {
2476
2275
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2477
2276
  args[_key - 1] = arguments[_key];
2478
2277
  }
2479
-
2480
2278
  _this2.emit.apply(_this2, [event].concat(args));
2481
2279
  });
2482
-
2483
2280
  if (this.modules.languageDetector) {
2484
2281
  s.languageDetector = createClassOnDemand(this.modules.languageDetector);
2485
- s.languageDetector.init(s, this.options.detection, this.options);
2282
+ if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);
2486
2283
  }
2487
-
2488
2284
  if (this.modules.i18nFormat) {
2489
2285
  s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);
2490
2286
  if (s.i18nFormat.init) s.i18nFormat.init(this);
2491
2287
  }
2492
-
2493
2288
  this.translator = new Translator(this.services, this.options);
2494
2289
  this.translator.on('*', function (event) {
2495
2290
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
2496
2291
  args[_key2 - 1] = arguments[_key2];
2497
2292
  }
2498
-
2499
2293
  _this2.emit.apply(_this2, [event].concat(args));
2500
2294
  });
2501
2295
  this.modules.external.forEach(function (m) {
2502
2296
  if (m.init) m.init(_this2);
2503
2297
  });
2504
2298
  }
2505
-
2506
2299
  this.format = this.options.interpolation.format;
2507
2300
  if (!callback) callback = noop;
2508
-
2509
2301
  if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
2510
2302
  var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2511
2303
  if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];
2512
2304
  }
2513
-
2514
2305
  if (!this.services.languageDetector && !this.options.lng) {
2515
2306
  this.logger.warn('init: no languageDetector is used and no lng is defined');
2516
2307
  }
2517
-
2518
2308
  var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];
2519
2309
  storeApi.forEach(function (fcName) {
2520
2310
  _this2[fcName] = function () {
2521
2311
  var _this2$store;
2522
-
2523
2312
  return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);
2524
2313
  };
2525
2314
  });
@@ -2527,63 +2316,48 @@ var I18n = function (_EventEmitter) {
2527
2316
  storeApiChained.forEach(function (fcName) {
2528
2317
  _this2[fcName] = function () {
2529
2318
  var _this2$store2;
2530
-
2531
2319
  (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);
2532
-
2533
2320
  return _this2;
2534
2321
  };
2535
2322
  });
2536
2323
  var deferred = defer();
2537
-
2538
2324
  var load = function load() {
2539
2325
  var finish = function finish(err, t) {
2540
2326
  if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');
2541
2327
  _this2.isInitialized = true;
2542
2328
  if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);
2543
-
2544
2329
  _this2.emit('initialized', _this2.options);
2545
-
2546
2330
  deferred.resolve(t);
2547
2331
  callback(err, t);
2548
2332
  };
2549
-
2550
2333
  if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));
2551
-
2552
2334
  _this2.changeLanguage(_this2.options.lng, finish);
2553
2335
  };
2554
-
2555
2336
  if (this.options.resources || !this.options.initImmediate) {
2556
2337
  load();
2557
2338
  } else {
2558
2339
  setTimeout(load, 0);
2559
2340
  }
2560
-
2561
2341
  return deferred;
2562
2342
  }
2563
2343
  }, {
2564
2344
  key: "loadResources",
2565
2345
  value: function loadResources(language) {
2566
2346
  var _this3 = this;
2567
-
2568
2347
  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
2569
2348
  var usedCallback = callback;
2570
2349
  var usedLng = typeof language === 'string' ? language : this.language;
2571
2350
  if (typeof language === 'function') usedCallback = language;
2572
-
2573
2351
  if (!this.options.resources || this.options.partialBundledLanguages) {
2574
2352
  if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();
2575
2353
  var toLoad = [];
2576
-
2577
2354
  var append = function append(lng) {
2578
2355
  if (!lng) return;
2579
-
2580
2356
  var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);
2581
-
2582
2357
  lngs.forEach(function (l) {
2583
2358
  if (toLoad.indexOf(l) < 0) toLoad.push(l);
2584
2359
  });
2585
2360
  };
2586
-
2587
2361
  if (!usedLng) {
2588
2362
  var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2589
2363
  fallbacks.forEach(function (l) {
@@ -2592,13 +2366,11 @@ var I18n = function (_EventEmitter) {
2592
2366
  } else {
2593
2367
  append(usedLng);
2594
2368
  }
2595
-
2596
2369
  if (this.options.preload) {
2597
2370
  this.options.preload.forEach(function (l) {
2598
2371
  return append(l);
2599
2372
  });
2600
2373
  }
2601
-
2602
2374
  this.services.backendConnector.load(toLoad, this.options.ns, function (e) {
2603
2375
  if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);
2604
2376
  usedCallback(e);
@@ -2625,35 +2397,27 @@ var I18n = function (_EventEmitter) {
2625
2397
  value: function use(module) {
2626
2398
  if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');
2627
2399
  if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');
2628
-
2629
2400
  if (module.type === 'backend') {
2630
2401
  this.modules.backend = module;
2631
2402
  }
2632
-
2633
2403
  if (module.type === 'logger' || module.log && module.warn && module.error) {
2634
2404
  this.modules.logger = module;
2635
2405
  }
2636
-
2637
2406
  if (module.type === 'languageDetector') {
2638
2407
  this.modules.languageDetector = module;
2639
2408
  }
2640
-
2641
2409
  if (module.type === 'i18nFormat') {
2642
2410
  this.modules.i18nFormat = module;
2643
2411
  }
2644
-
2645
2412
  if (module.type === 'postProcessor') {
2646
2413
  postProcessor.addPostProcessor(module);
2647
2414
  }
2648
-
2649
2415
  if (module.type === 'formatter') {
2650
2416
  this.modules.formatter = module;
2651
2417
  }
2652
-
2653
2418
  if (module.type === '3rdParty') {
2654
2419
  this.modules.external.push(module);
2655
2420
  }
2656
-
2657
2421
  return this;
2658
2422
  }
2659
2423
  }, {
@@ -2661,11 +2425,9 @@ var I18n = function (_EventEmitter) {
2661
2425
  value: function setResolvedLanguage(l) {
2662
2426
  if (!l || !this.languages) return;
2663
2427
  if (['cimode', 'dev'].indexOf(l) > -1) return;
2664
-
2665
2428
  for (var li = 0; li < this.languages.length; li++) {
2666
2429
  var lngInLngs = this.languages[li];
2667
2430
  if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;
2668
-
2669
2431
  if (this.store.hasLanguageSomeTranslations(lngInLngs)) {
2670
2432
  this.resolvedLanguage = lngInLngs;
2671
2433
  break;
@@ -2676,34 +2438,25 @@ var I18n = function (_EventEmitter) {
2676
2438
  key: "changeLanguage",
2677
2439
  value: function changeLanguage(lng, callback) {
2678
2440
  var _this4 = this;
2679
-
2680
2441
  this.isLanguageChangingTo = lng;
2681
2442
  var deferred = defer();
2682
2443
  this.emit('languageChanging', lng);
2683
-
2684
2444
  var setLngProps = function setLngProps(l) {
2685
2445
  _this4.language = l;
2686
2446
  _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
2687
2447
  _this4.resolvedLanguage = undefined;
2688
-
2689
2448
  _this4.setResolvedLanguage(l);
2690
2449
  };
2691
-
2692
2450
  var done = function done(err, l) {
2693
2451
  if (l) {
2694
2452
  setLngProps(l);
2695
-
2696
2453
  _this4.translator.changeLanguage(l);
2697
-
2698
2454
  _this4.isLanguageChangingTo = undefined;
2699
-
2700
2455
  _this4.emit('languageChanged', l);
2701
-
2702
2456
  _this4.logger.log('languageChanged', l);
2703
2457
  } else {
2704
2458
  _this4.isLanguageChangingTo = undefined;
2705
2459
  }
2706
-
2707
2460
  deferred.resolve(function () {
2708
2461
  return _this4.t.apply(_this4, arguments);
2709
2462
  });
@@ -2711,67 +2464,67 @@ var I18n = function (_EventEmitter) {
2711
2464
  return _this4.t.apply(_this4, arguments);
2712
2465
  });
2713
2466
  };
2714
-
2715
2467
  var setLng = function setLng(lngs) {
2716
2468
  if (!lng && !lngs && _this4.services.languageDetector) lngs = [];
2717
2469
  var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);
2718
-
2719
2470
  if (l) {
2720
2471
  if (!_this4.language) {
2721
2472
  setLngProps(l);
2722
2473
  }
2723
-
2724
2474
  if (!_this4.translator.language) _this4.translator.changeLanguage(l);
2725
- if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);
2475
+ if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);
2726
2476
  }
2727
-
2728
2477
  _this4.loadResources(l, function (err) {
2729
2478
  done(err, l);
2730
2479
  });
2731
2480
  };
2732
-
2733
2481
  if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {
2734
2482
  setLng(this.services.languageDetector.detect());
2735
2483
  } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {
2736
- this.services.languageDetector.detect(setLng);
2484
+ if (this.services.languageDetector.detect.length === 0) {
2485
+ this.services.languageDetector.detect().then(setLng);
2486
+ } else {
2487
+ this.services.languageDetector.detect(setLng);
2488
+ }
2737
2489
  } else {
2738
2490
  setLng(lng);
2739
2491
  }
2740
-
2741
2492
  return deferred;
2742
2493
  }
2743
2494
  }, {
2744
2495
  key: "getFixedT",
2745
2496
  value: function getFixedT(lng, ns, keyPrefix) {
2746
2497
  var _this5 = this;
2747
-
2748
2498
  var fixedT = function fixedT(key, opts) {
2749
2499
  var options;
2750
-
2751
- if (_typeof$2(opts) !== 'object') {
2500
+ if (_typeof$3(opts) !== 'object') {
2752
2501
  for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
2753
2502
  rest[_key3 - 2] = arguments[_key3];
2754
2503
  }
2755
-
2756
2504
  options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));
2757
2505
  } else {
2758
- options = _objectSpread$6$1({}, opts);
2506
+ options = _objectSpread$g({}, opts);
2759
2507
  }
2760
-
2761
2508
  options.lng = options.lng || fixedT.lng;
2762
2509
  options.lngs = options.lngs || fixedT.lngs;
2763
2510
  options.ns = options.ns || fixedT.ns;
2511
+ options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;
2764
2512
  var keySeparator = _this5.options.keySeparator || '.';
2765
- var resultKey = keyPrefix ? "".concat(keyPrefix).concat(keySeparator).concat(key) : key;
2513
+ var resultKey;
2514
+ if (options.keyPrefix && Array.isArray(key)) {
2515
+ resultKey = key.map(function (k) {
2516
+ return "".concat(options.keyPrefix).concat(keySeparator).concat(k);
2517
+ });
2518
+ } else {
2519
+ resultKey = options.keyPrefix ? "".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;
2520
+ }
2766
2521
  return _this5.t(resultKey, options);
2767
2522
  };
2768
-
2769
2523
  if (typeof lng === 'string') {
2770
2524
  fixedT.lng = lng;
2771
2525
  } else {
2772
2526
  fixedT.lngs = lng;
2773
2527
  }
2774
-
2775
2528
  fixedT.ns = ns;
2776
2529
  fixedT.keyPrefix = keyPrefix;
2777
2530
  return fixedT;
@@ -2780,14 +2533,12 @@ var I18n = function (_EventEmitter) {
2780
2533
  key: "t",
2781
2534
  value: function t() {
2782
2535
  var _this$translator;
2783
-
2784
2536
  return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);
2785
2537
  }
2786
2538
  }, {
2787
2539
  key: "exists",
2788
2540
  value: function exists() {
2789
2541
  var _this$translator2;
2790
-
2791
2542
  return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);
2792
2543
  }
2793
2544
  }, {
@@ -2799,35 +2550,27 @@ var I18n = function (_EventEmitter) {
2799
2550
  key: "hasLoadedNamespace",
2800
2551
  value: function hasLoadedNamespace(ns) {
2801
2552
  var _this6 = this;
2802
-
2803
2553
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2804
-
2805
2554
  if (!this.isInitialized) {
2806
2555
  this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);
2807
2556
  return false;
2808
2557
  }
2809
-
2810
2558
  if (!this.languages || !this.languages.length) {
2811
2559
  this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);
2812
2560
  return false;
2813
2561
  }
2814
-
2815
- var lng = this.resolvedLanguage || this.languages[0];
2562
+ var lng = options.lng || this.resolvedLanguage || this.languages[0];
2816
2563
  var fallbackLng = this.options ? this.options.fallbackLng : false;
2817
2564
  var lastLng = this.languages[this.languages.length - 1];
2818
2565
  if (lng.toLowerCase() === 'cimode') return true;
2819
-
2820
2566
  var loadNotPending = function loadNotPending(l, n) {
2821
2567
  var loadState = _this6.services.backendConnector.state["".concat(l, "|").concat(n)];
2822
-
2823
2568
  return loadState === -1 || loadState === 2;
2824
2569
  };
2825
-
2826
2570
  if (options.precheck) {
2827
2571
  var preResult = options.precheck(this, loadNotPending);
2828
2572
  if (preResult !== undefined) return preResult;
2829
2573
  }
2830
-
2831
2574
  if (this.hasResourceBundle(lng, ns)) return true;
2832
2575
  if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;
2833
2576
  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
@@ -2837,14 +2580,11 @@ var I18n = function (_EventEmitter) {
2837
2580
  key: "loadNamespaces",
2838
2581
  value: function loadNamespaces(ns, callback) {
2839
2582
  var _this7 = this;
2840
-
2841
2583
  var deferred = defer();
2842
-
2843
2584
  if (!this.options.ns) {
2844
- callback && callback();
2585
+ if (callback) callback();
2845
2586
  return Promise.resolve();
2846
2587
  }
2847
-
2848
2588
  if (typeof ns === 'string') ns = [ns];
2849
2589
  ns.forEach(function (n) {
2850
2590
  if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);
@@ -2864,12 +2604,10 @@ var I18n = function (_EventEmitter) {
2864
2604
  var newLngs = lngs.filter(function (lng) {
2865
2605
  return preloaded.indexOf(lng) < 0;
2866
2606
  });
2867
-
2868
2607
  if (!newLngs.length) {
2869
2608
  if (callback) callback();
2870
2609
  return Promise.resolve();
2871
2610
  }
2872
-
2873
2611
  this.options.preload = preloaded.concat(newLngs);
2874
2612
  this.loadResources(function (err) {
2875
2613
  deferred.resolve();
@@ -2883,26 +2621,27 @@ var I18n = function (_EventEmitter) {
2883
2621
  if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);
2884
2622
  if (!lng) return 'rtl';
2885
2623
  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'];
2886
- return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
2624
+ var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());
2625
+ return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
2887
2626
  }
2888
2627
  }, {
2889
2628
  key: "cloneInstance",
2890
2629
  value: function cloneInstance() {
2891
2630
  var _this8 = this;
2892
-
2893
2631
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2894
2632
  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
2895
-
2896
- var mergedOptions = _objectSpread$6$1(_objectSpread$6$1(_objectSpread$6$1({}, this.options), options), {
2633
+ var mergedOptions = _objectSpread$g(_objectSpread$g(_objectSpread$g({}, this.options), options), {
2897
2634
  isClone: true
2898
2635
  });
2899
-
2900
2636
  var clone = new I18n(mergedOptions);
2637
+ if (options.debug !== undefined || options.prefix !== undefined) {
2638
+ clone.logger = clone.logger.clone(options);
2639
+ }
2901
2640
  var membersToCopy = ['store', 'services', 'language'];
2902
2641
  membersToCopy.forEach(function (m) {
2903
2642
  clone[m] = _this8[m];
2904
2643
  });
2905
- clone.services = _objectSpread$6$1({}, this.services);
2644
+ clone.services = _objectSpread$g({}, this.services);
2906
2645
  clone.services.utils = {
2907
2646
  hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)
2908
2647
  };
@@ -2911,7 +2650,6 @@ var I18n = function (_EventEmitter) {
2911
2650
  for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
2912
2651
  args[_key4 - 1] = arguments[_key4];
2913
2652
  }
2914
-
2915
2653
  clone.emit.apply(clone, [event].concat(args));
2916
2654
  });
2917
2655
  clone.init(mergedOptions, callback);
@@ -2933,20 +2671,18 @@ var I18n = function (_EventEmitter) {
2933
2671
  };
2934
2672
  }
2935
2673
  }]);
2936
-
2937
2674
  return I18n;
2938
2675
  }(EventEmitter);
2939
-
2940
- _defineProperty$1(I18n, "createInstance", function () {
2676
+ _defineProperty$2(I18n, "createInstance", function () {
2941
2677
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2942
2678
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2943
2679
  return new I18n(options, callback);
2944
2680
  });
2945
-
2946
2681
  var instance = I18n.createInstance();
2947
2682
  instance.createInstance = I18n.createInstance;
2948
2683
 
2949
2684
  instance.createInstance;
2685
+ instance.dir;
2950
2686
  instance.init;
2951
2687
  instance.loadResources;
2952
2688
  instance.reloadResources;
@@ -2966,30 +2702,30 @@ function _classCallCheck$1(instance, Constructor) {
2966
2702
  }
2967
2703
  }
2968
2704
 
2969
- function _typeof$1(obj) {
2705
+ function _typeof$2(obj) {
2970
2706
  "@babel/helpers - typeof";
2971
2707
 
2972
- return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
2708
+ return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
2973
2709
  return typeof obj;
2974
2710
  } : function (obj) {
2975
2711
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2976
- }, _typeof$1(obj);
2712
+ }, _typeof$2(obj);
2977
2713
  }
2978
2714
 
2979
- function _toPrimitive$1(input, hint) {
2980
- if (_typeof$1(input) !== "object" || input === null) return input;
2715
+ function _toPrimitive$2(input, hint) {
2716
+ if (_typeof$2(input) !== "object" || input === null) return input;
2981
2717
  var prim = input[Symbol.toPrimitive];
2982
2718
  if (prim !== undefined) {
2983
2719
  var res = prim.call(input, hint || "default");
2984
- if (_typeof$1(res) !== "object") return res;
2720
+ if (_typeof$2(res) !== "object") return res;
2985
2721
  throw new TypeError("@@toPrimitive must return a primitive value.");
2986
2722
  }
2987
2723
  return (hint === "string" ? String : Number)(input);
2988
2724
  }
2989
2725
 
2990
- function _toPropertyKey$1(arg) {
2991
- var key = _toPrimitive$1(arg, "string");
2992
- return _typeof$1(key) === "symbol" ? key : String(key);
2726
+ function _toPropertyKey$2(arg) {
2727
+ var key = _toPrimitive$2(arg, "string");
2728
+ return _typeof$2(key) === "symbol" ? key : String(key);
2993
2729
  }
2994
2730
 
2995
2731
  function _defineProperties$1(target, props) {
@@ -2998,7 +2734,7 @@ function _defineProperties$1(target, props) {
2998
2734
  descriptor.enumerable = descriptor.enumerable || false;
2999
2735
  descriptor.configurable = true;
3000
2736
  if ("value" in descriptor) descriptor.writable = true;
3001
- Object.defineProperty(target, _toPropertyKey$1(descriptor.key), descriptor);
2737
+ Object.defineProperty(target, _toPropertyKey$2(descriptor.key), descriptor);
3002
2738
  }
3003
2739
  }
3004
2740
  function _createClass$1(Constructor, protoProps, staticProps) {
@@ -3359,7 +3095,7 @@ var Browser = /*#__PURE__*/function () {
3359
3095
  }();
3360
3096
  Browser.type = 'languageDetector';
3361
3097
 
3362
- function _objectWithoutPropertiesLoose(source, excluded) {
3098
+ function _objectWithoutPropertiesLoose$1(source, excluded) {
3363
3099
  if (source == null) return {};
3364
3100
  var target = {};
3365
3101
  var sourceKeys = Object.keys(source);
@@ -3372,9 +3108,9 @@ function _objectWithoutPropertiesLoose(source, excluded) {
3372
3108
  return target;
3373
3109
  }
3374
3110
 
3375
- function _objectWithoutProperties(source, excluded) {
3111
+ function _objectWithoutProperties$1(source, excluded) {
3376
3112
  if (source == null) return {};
3377
- var target = _objectWithoutPropertiesLoose(source, excluded);
3113
+ var target = _objectWithoutPropertiesLoose$1(source, excluded);
3378
3114
  var key, i;
3379
3115
  if (Object.getOwnPropertySymbols) {
3380
3116
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -3388,34 +3124,34 @@ function _objectWithoutProperties(source, excluded) {
3388
3124
  return target;
3389
3125
  }
3390
3126
 
3391
- function _typeof(obj) {
3127
+ function _typeof$1(obj) {
3392
3128
  "@babel/helpers - typeof";
3393
3129
 
3394
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
3130
+ return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
3395
3131
  return typeof obj;
3396
3132
  } : function (obj) {
3397
3133
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
3398
- }, _typeof(obj);
3134
+ }, _typeof$1(obj);
3399
3135
  }
3400
3136
 
3401
- function _toPrimitive(input, hint) {
3402
- if (_typeof(input) !== "object" || input === null) return input;
3137
+ function _toPrimitive$1(input, hint) {
3138
+ if (_typeof$1(input) !== "object" || input === null) return input;
3403
3139
  var prim = input[Symbol.toPrimitive];
3404
3140
  if (prim !== undefined) {
3405
3141
  var res = prim.call(input, hint || "default");
3406
- if (_typeof(res) !== "object") return res;
3142
+ if (_typeof$1(res) !== "object") return res;
3407
3143
  throw new TypeError("@@toPrimitive must return a primitive value.");
3408
3144
  }
3409
3145
  return (hint === "string" ? String : Number)(input);
3410
3146
  }
3411
3147
 
3412
- function _toPropertyKey(arg) {
3413
- var key = _toPrimitive(arg, "string");
3414
- return _typeof(key) === "symbol" ? key : String(key);
3148
+ function _toPropertyKey$1(arg) {
3149
+ var key = _toPrimitive$1(arg, "string");
3150
+ return _typeof$1(key) === "symbol" ? key : String(key);
3415
3151
  }
3416
3152
 
3417
- function _defineProperty(obj, key, value) {
3418
- key = _toPropertyKey(key);
3153
+ function _defineProperty$1(obj, key, value) {
3154
+ key = _toPropertyKey$1(key);
3419
3155
  if (key in obj) {
3420
3156
  Object.defineProperty(obj, key, {
3421
3157
  value: value,
@@ -3509,7 +3245,7 @@ function _defineProperties(target, props) {
3509
3245
  descriptor.enumerable = descriptor.enumerable || false;
3510
3246
  descriptor.configurable = true;
3511
3247
  if ("value" in descriptor) descriptor.writable = true;
3512
- Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
3248
+ Object.defineProperty(target, _toPropertyKey$1(descriptor.key), descriptor);
3513
3249
  }
3514
3250
  }
3515
3251
  function _createClass(Constructor, protoProps, staticProps) {
@@ -3521,9 +3257,9 @@ function _createClass(Constructor, protoProps, staticProps) {
3521
3257
  return Constructor;
3522
3258
  }
3523
3259
 
3524
- function ownKeys$e(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; }
3260
+ function ownKeys$f(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; }
3525
3261
 
3526
- function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3262
+ function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3527
3263
  var defaultOptions = {
3528
3264
  bindI18n: 'languageChanged',
3529
3265
  bindI18nStore: '',
@@ -3537,7 +3273,7 @@ var i18nInstance;
3537
3273
  var I18nContext = React__default["default"].createContext();
3538
3274
  function setDefaults() {
3539
3275
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3540
- defaultOptions = _objectSpread$e(_objectSpread$e({}, defaultOptions), options);
3276
+ defaultOptions = _objectSpread$f(_objectSpread$f({}, defaultOptions), options);
3541
3277
  }
3542
3278
  function getDefaults() {
3543
3279
  return defaultOptions;
@@ -3661,12 +3397,12 @@ function hasLoadedNamespace(ns, i18n) {
3661
3397
  });
3662
3398
  }
3663
3399
 
3664
- var _excluded = ["format"],
3400
+ var _excluded$2 = ["format"],
3665
3401
  _excluded2 = ["children", "count", "parent", "i18nKey", "context", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
3666
3402
 
3667
- function ownKeys$d(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; }
3403
+ function ownKeys$e(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; }
3668
3404
 
3669
- function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3405
+ function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3670
3406
 
3671
3407
  function hasChildren(node, checkLength) {
3672
3408
  if (!node) return false;
@@ -3692,7 +3428,7 @@ function getAsArray(data) {
3692
3428
  }
3693
3429
 
3694
3430
  function mergeProps(source, target) {
3695
- var newTarget = _objectSpread$d({}, target);
3431
+ var newTarget = _objectSpread$e({}, target);
3696
3432
 
3697
3433
  newTarget.props = Object.assign(source.props, target.props);
3698
3434
  return newTarget;
@@ -3725,9 +3461,9 @@ function nodesToString(children, i18nOptions) {
3725
3461
  }
3726
3462
  } else if (child === null) {
3727
3463
  warn("Trans: the passed in value is invalid - seems you passed in a null child.");
3728
- } else if (_typeof(child) === 'object') {
3464
+ } else if (_typeof$1(child) === 'object') {
3729
3465
  var format = child.format,
3730
- clone = _objectWithoutProperties(child, _excluded);
3466
+ clone = _objectWithoutProperties$1(child, _excluded$2);
3731
3467
 
3732
3468
  var keys = Object.keys(clone);
3733
3469
 
@@ -3755,14 +3491,14 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3755
3491
  var childrenArray = getAsArray(childs);
3756
3492
  childrenArray.forEach(function (child) {
3757
3493
  if (typeof child === 'string') return;
3758
- if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React__default["default"].isValidElement(child)) Object.assign(data, child);
3494
+ if (hasChildren(child)) getData(getChildren(child));else if (_typeof$1(child) === 'object' && !React__default["default"].isValidElement(child)) Object.assign(data, child);
3759
3495
  });
3760
3496
  }
3761
3497
 
3762
3498
  getData(children);
3763
3499
  var ast = c.parse("<0>".concat(targetString, "</0>"));
3764
3500
 
3765
- var opts = _objectSpread$d(_objectSpread$d({}, data), combinedTOpts);
3501
+ var opts = _objectSpread$e(_objectSpread$e({}, data), combinedTOpts);
3766
3502
 
3767
3503
  function renderInner(child, node, rootReactNode) {
3768
3504
  var childs = getChildren(child);
@@ -3772,7 +3508,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3772
3508
 
3773
3509
  function pushTranslatedJSX(child, inner, mem, i, isVoid) {
3774
3510
  if (child.dummy) child.children = inner;
3775
- mem.push(React__default["default"].cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3511
+ mem.push(React__default["default"].cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3776
3512
  key: i
3777
3513
  }), isVoid ? undefined : inner));
3778
3514
  }
@@ -3792,8 +3528,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3792
3528
  }, tmp) : tmp;
3793
3529
  var isElement = React__default["default"].isValidElement(child);
3794
3530
  var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;
3795
- var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;
3796
- var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
3531
+ var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof$1(child) === 'object' && child.dummy && !isElement;
3532
+ var isKnownComponent = _typeof$1(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
3797
3533
 
3798
3534
  if (typeof child === 'string') {
3799
3535
  var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
@@ -3804,7 +3540,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3804
3540
  } else if (isEmptyTransWithHTML) {
3805
3541
  var _inner = mapAST(reactNodes, node.children, rootReactNode);
3806
3542
 
3807
- mem.push(React__default["default"].cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3543
+ mem.push(React__default["default"].cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3808
3544
  key: i
3809
3545
  }), _inner));
3810
3546
  } else if (Number.isNaN(parseFloat(node.name))) {
@@ -3831,15 +3567,15 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3831
3567
 
3832
3568
  mem.push("<".concat(node.name, ">").concat(_inner4, "</").concat(node.name, ">"));
3833
3569
  }
3834
- } else if (_typeof(child) === 'object' && !isElement) {
3570
+ } else if (_typeof$1(child) === 'object' && !isElement) {
3835
3571
  var content = node.children[0] ? translationContent : null;
3836
3572
  if (content) mem.push(content);
3837
3573
  } else if (node.children.length === 1 && translationContent) {
3838
- mem.push(React__default["default"].cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3574
+ mem.push(React__default["default"].cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3839
3575
  key: i
3840
3576
  }), translationContent));
3841
3577
  } else {
3842
- mem.push(React__default["default"].cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3578
+ mem.push(React__default["default"].cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3843
3579
  key: i
3844
3580
  })));
3845
3581
  }
@@ -3883,7 +3619,7 @@ function Trans(_ref) {
3883
3619
  i18nFromProps = _ref.i18n,
3884
3620
  tFromProps = _ref.t,
3885
3621
  shouldUnescape = _ref.shouldUnescape,
3886
- additionalProps = _objectWithoutProperties(_ref, _excluded2);
3622
+ additionalProps = _objectWithoutProperties$1(_ref, _excluded2);
3887
3623
 
3888
3624
  var _ref2 = React.useContext(I18nContext) || {},
3889
3625
  i18nFromContext = _ref2.i18n,
@@ -3902,7 +3638,7 @@ function Trans(_ref) {
3902
3638
 
3903
3639
  if (context) tOptions.context = context;
3904
3640
 
3905
- var reactI18nextOptions = _objectSpread$d(_objectSpread$d({}, getDefaults()), i18n.options && i18n.options.react);
3641
+ var reactI18nextOptions = _objectSpread$e(_objectSpread$e({}, getDefaults()), i18n.options && i18n.options.react);
3906
3642
 
3907
3643
  var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
3908
3644
  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
@@ -3910,13 +3646,13 @@ function Trans(_ref) {
3910
3646
  var hashTransKey = reactI18nextOptions.hashTransKey;
3911
3647
  var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);
3912
3648
  var interpolationOverride = values ? tOptions.interpolation : {
3913
- interpolation: _objectSpread$d(_objectSpread$d({}, tOptions.interpolation), {}, {
3649
+ interpolation: _objectSpread$e(_objectSpread$e({}, tOptions.interpolation), {}, {
3914
3650
  prefix: '#$?',
3915
3651
  suffix: '?$#'
3916
3652
  })
3917
3653
  };
3918
3654
 
3919
- var combinedTOpts = _objectSpread$d(_objectSpread$d(_objectSpread$d(_objectSpread$d({}, tOptions), {}, {
3655
+ var combinedTOpts = _objectSpread$e(_objectSpread$e(_objectSpread$e(_objectSpread$e({}, tOptions), {}, {
3920
3656
  count: count
3921
3657
  }, values), interpolationOverride), {}, {
3922
3658
  defaultValue: defaultValue,
@@ -3929,7 +3665,7 @@ function Trans(_ref) {
3929
3665
  return useAsParent ? React__default["default"].createElement(useAsParent, additionalProps, content) : content;
3930
3666
  }
3931
3667
 
3932
- function _arrayWithHoles(arr) {
3668
+ function _arrayWithHoles$1(arr) {
3933
3669
  if (Array.isArray(arr)) return arr;
3934
3670
  }
3935
3671
 
@@ -3961,32 +3697,32 @@ function _iterableToArrayLimit$1(arr, i) {
3961
3697
  }
3962
3698
  }
3963
3699
 
3964
- function _arrayLikeToArray(arr, len) {
3700
+ function _arrayLikeToArray$1(arr, len) {
3965
3701
  if (len == null || len > arr.length) len = arr.length;
3966
3702
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
3967
3703
  return arr2;
3968
3704
  }
3969
3705
 
3970
- function _unsupportedIterableToArray(o, minLen) {
3706
+ function _unsupportedIterableToArray$1(o, minLen) {
3971
3707
  if (!o) return;
3972
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
3708
+ if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
3973
3709
  var n = Object.prototype.toString.call(o).slice(8, -1);
3974
3710
  if (n === "Object" && o.constructor) n = o.constructor.name;
3975
3711
  if (n === "Map" || n === "Set") return Array.from(o);
3976
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
3712
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
3977
3713
  }
3978
3714
 
3979
- function _nonIterableRest() {
3715
+ function _nonIterableRest$1() {
3980
3716
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3981
3717
  }
3982
3718
 
3983
3719
  function _slicedToArray$1(arr, i) {
3984
- return _arrayWithHoles(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
3720
+ return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
3985
3721
  }
3986
3722
 
3987
- function ownKeys$c(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; }
3723
+ function ownKeys$d(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; }
3988
3724
 
3989
- function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3725
+ function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3990
3726
  function useTranslation(ns) {
3991
3727
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3992
3728
  var i18nFromProps = props.i18n;
@@ -4014,7 +3750,7 @@ function useTranslation(ns) {
4014
3750
 
4015
3751
  if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');
4016
3752
 
4017
- var i18nOptions = _objectSpread$c(_objectSpread$c(_objectSpread$c({}, getDefaults()), i18n.options.react), props);
3753
+ var i18nOptions = _objectSpread$d(_objectSpread$d(_objectSpread$d({}, getDefaults()), i18n.options.react), props);
4018
3754
 
4019
3755
  var useSuspense = i18nOptions.useSuspense,
4020
3756
  keyPrefix = i18nOptions.keyPrefix;
@@ -4176,6 +3912,10 @@ var select = {
4176
3912
  },
4177
3913
  approval: "Select approval"
4178
3914
  };
3915
+ var example = {
3916
+ settings: "Settings",
3917
+ general: "General"
3918
+ };
4179
3919
  var en = {
4180
3920
  alerts: alerts$1,
4181
3921
  buttons: buttons$1,
@@ -4184,7 +3924,8 @@ var en = {
4184
3924
  sidebar: sidebar,
4185
3925
  inputs: inputs,
4186
3926
  typography: typography,
4187
- select: select
3927
+ select: select,
3928
+ example: example
4188
3929
  };
4189
3930
 
4190
3931
  var alerts = {
@@ -4299,6 +4040,51 @@ instance.use(Browser).use(initReactI18next).init({
4299
4040
  }
4300
4041
  });
4301
4042
 
4043
+ function _typeof(obj) {
4044
+ "@babel/helpers - typeof";
4045
+
4046
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
4047
+ return typeof obj;
4048
+ } : function (obj) {
4049
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
4050
+ }, _typeof(obj);
4051
+ }
4052
+
4053
+ function _toPrimitive(input, hint) {
4054
+ if (_typeof(input) !== "object" || input === null) return input;
4055
+ var prim = input[Symbol.toPrimitive];
4056
+ if (prim !== undefined) {
4057
+ var res = prim.call(input, hint || "default");
4058
+ if (_typeof(res) !== "object") return res;
4059
+ throw new TypeError("@@toPrimitive must return a primitive value.");
4060
+ }
4061
+ return (hint === "string" ? String : Number)(input);
4062
+ }
4063
+
4064
+ function _toPropertyKey(arg) {
4065
+ var key = _toPrimitive(arg, "string");
4066
+ return _typeof(key) === "symbol" ? key : String(key);
4067
+ }
4068
+
4069
+ function _defineProperty(obj, key, value) {
4070
+ key = _toPropertyKey(key);
4071
+ if (key in obj) {
4072
+ Object.defineProperty(obj, key, {
4073
+ value: value,
4074
+ enumerable: true,
4075
+ configurable: true,
4076
+ writable: true
4077
+ });
4078
+ } else {
4079
+ obj[key] = value;
4080
+ }
4081
+ return obj;
4082
+ }
4083
+
4084
+ function _arrayWithHoles(arr) {
4085
+ if (Array.isArray(arr)) return arr;
4086
+ }
4087
+
4302
4088
  function _iterableToArrayLimit(arr, i) {
4303
4089
  var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
4304
4090
  if (null != _i) {
@@ -4327,8 +4113,27 @@ function _iterableToArrayLimit(arr, i) {
4327
4113
  }
4328
4114
  }
4329
4115
 
4116
+ function _arrayLikeToArray(arr, len) {
4117
+ if (len == null || len > arr.length) len = arr.length;
4118
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
4119
+ return arr2;
4120
+ }
4121
+
4122
+ function _unsupportedIterableToArray(o, minLen) {
4123
+ if (!o) return;
4124
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
4125
+ var n = Object.prototype.toString.call(o).slice(8, -1);
4126
+ if (n === "Object" && o.constructor) n = o.constructor.name;
4127
+ if (n === "Map" || n === "Set") return Array.from(o);
4128
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
4129
+ }
4130
+
4131
+ function _nonIterableRest() {
4132
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4133
+ }
4134
+
4330
4135
  function _slicedToArray(arr, i) {
4331
- return _arrayWithHoles$1(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
4136
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
4332
4137
  }
4333
4138
 
4334
4139
  var BASE_URL = "neeto_approvals";
@@ -4347,20 +4152,42 @@ var routes = {
4347
4152
  "public": "approvals/public/request/:id"
4348
4153
  };
4349
4154
 
4350
- function _extends() {
4351
- _extends = Object.assign ? Object.assign.bind() : function (target) {
4352
- for (var i = 1; i < arguments.length; i++) {
4353
- var source = arguments[i];
4354
- for (var key in source) {
4355
- if (Object.prototype.hasOwnProperty.call(source, key)) {
4356
- target[key] = source[key];
4357
- }
4358
- }
4359
- }
4360
- return target;
4361
- };
4362
- return _extends.apply(this, arguments);
4363
- }
4155
+ new URLSearchParams(window.location.search);
4156
+ var DEFAULT_PAGE_SIZE = 8;
4157
+ var DEFAULT_FILTER_VALUES = {
4158
+ search: "",
4159
+ sortBy: "",
4160
+ sortDirection: ""
4161
+ };
4162
+ var SEARCH_DELAY = 750;
4163
+ var STATUSES = {
4164
+ approved: "approved",
4165
+ rejected: "rejected",
4166
+ pending: "pending",
4167
+ cancelled: "cancelled"
4168
+ };
4169
+ var STATUS_TAG_STYLE = {
4170
+ pending: "primary",
4171
+ approved: "success",
4172
+ rejected: "danger",
4173
+ cancelled: "warning"
4174
+ };
4175
+ var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
4176
+ message: "",
4177
+ variables: []
4178
+ };
4179
+ var APPROVAL_REQUEST_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
4180
+ variables: yup__namespace.array().of(yup__namespace.object().shape({
4181
+ variable: yup__namespace.string().trim().required(t$2("validations.required", {
4182
+ what: t$2("common.field")
4183
+ }))
4184
+ }))
4185
+ });
4186
+ var STATUS_UPDATED_BY = {
4187
+ rejected: t$2("common.rejectedBy"),
4188
+ approved: t$2("common.approvedBy"),
4189
+ cancelled: t$2("common.cancelledBy")
4190
+ };
4364
4191
 
4365
4192
  var handleEmptyPage = function handleEmptyPage(data, pageProperties, handleTablePagination) {
4366
4193
  if (ramda.isEmpty(data) && pageProperties.index !== 1) {
@@ -4405,14 +4232,14 @@ var QUERY_KEYS = {
4405
4232
  VIEWS: "neeto-approvals-views"
4406
4233
  };
4407
4234
 
4408
- function ownKeys$b(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; }
4409
- function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4235
+ function ownKeys$c(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; }
4236
+ function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$c(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4410
4237
  var useFetchApprovers = function useFetchApprovers() {
4411
4238
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4412
4239
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4413
4240
  return reactQuery.useQuery([QUERY_KEYS.APPROVERS, params], function () {
4414
4241
  return approversApi.fetch(params);
4415
- }, _objectSpread$b({
4242
+ }, _objectSpread$c({
4416
4243
  select: function select(response) {
4417
4244
  return response.data || response;
4418
4245
  },
@@ -4426,7 +4253,7 @@ var useFetchApprovers = function useFetchApprovers() {
4426
4253
  };
4427
4254
  var useCreateApprover = function useCreateApprover(options) {
4428
4255
  var queryClient = reactQuery.useQueryClient();
4429
- return reactQuery.useMutation(approversApi.create, _objectSpread$b(_objectSpread$b({}, options), {}, {
4256
+ return reactQuery.useMutation(approversApi.create, _objectSpread$c(_objectSpread$c({}, options), {}, {
4430
4257
  onSuccess: function onSuccess() {
4431
4258
  queryClient.invalidateQueries(QUERY_KEYS.APPROVERS);
4432
4259
  queryClient.invalidateQueries(QUERY_KEYS.VIEWS);
@@ -4436,7 +4263,7 @@ var useCreateApprover = function useCreateApprover(options) {
4436
4263
  };
4437
4264
  var useUpdateApprover = function useUpdateApprover(options) {
4438
4265
  var queryClient = reactQuery.useQueryClient();
4439
- return reactQuery.useMutation(approversApi.update, _objectSpread$b(_objectSpread$b({}, options), {}, {
4266
+ return reactQuery.useMutation(approversApi.update, _objectSpread$c(_objectSpread$c({}, options), {}, {
4440
4267
  onSuccess: function onSuccess() {
4441
4268
  queryClient.invalidateQueries(QUERY_KEYS.APPROVERS);
4442
4269
  options === null || options === void 0 ? void 0 : options.onSuccess();
@@ -4454,43 +4281,6 @@ var useDeleteApprover = function useDeleteApprover(options) {
4454
4281
  });
4455
4282
  };
4456
4283
 
4457
- new URLSearchParams(window.location.search);
4458
- var DEFAULT_PAGE_SIZE = 12;
4459
- var DEFAULT_FILTER_VALUES = {
4460
- search: "",
4461
- sortBy: "",
4462
- sortDirection: ""
4463
- };
4464
- var SEARCH_DELAY = 750;
4465
- var STATUSES = {
4466
- approved: "approved",
4467
- rejected: "rejected",
4468
- pending: "pending",
4469
- cancelled: "cancelled"
4470
- };
4471
- var STATUS_TAG_STYLE = {
4472
- pending: "primary",
4473
- approved: "success",
4474
- rejected: "danger",
4475
- cancelled: "warning"
4476
- };
4477
- var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
4478
- message: "",
4479
- variables: []
4480
- };
4481
- var APPROVAL_REQUEST_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
4482
- variables: yup__namespace.array().of(yup__namespace.object().shape({
4483
- variable: yup__namespace.string().trim().required(t$2("validations.required", {
4484
- what: t$2("common.field")
4485
- }))
4486
- }))
4487
- });
4488
- var STATUS_UPDATED_BY = {
4489
- rejected: t$2("common.rejectedBy"),
4490
- approved: t$2("common.approvedBy"),
4491
- cancelled: t$2("common.cancelledBy")
4492
- };
4493
-
4494
4284
  var useUrlSearchParams = function useUrlSearchParams() {
4495
4285
  var _useLocation = reactRouterDom.useLocation(),
4496
4286
  search = _useLocation.search;
@@ -4534,26 +4324,7 @@ var usePaginate = function usePaginate() {
4534
4324
  };
4535
4325
  };
4536
4326
 
4537
- var renderNoDataHelpText = function renderNoDataHelpText(_ref) {
4538
- var entity = _ref.entity,
4539
- url = _ref.url;
4540
- return /*#__PURE__*/React__default["default"].createElement(Trans, {
4541
- i18nKey: "common.noDataHelpText",
4542
- values: {
4543
- entity: entity
4544
- },
4545
- components: {
4546
- a: /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
4547
- className: "neeto-ui-text-primary-600 underline",
4548
- target: "_blank",
4549
- to: {
4550
- pathname: url
4551
- }
4552
- })
4553
- }
4554
- });
4555
- };
4556
-
4327
+ var _t$1, _t2;
4557
4328
  var MAX_NAME_LENGTH = 40;
4558
4329
  var APPROVER_FORM_INITIAL_VALUES = {
4559
4330
  firstName: "",
@@ -4562,13 +4333,13 @@ var APPROVER_FORM_INITIAL_VALUES = {
4562
4333
  };
4563
4334
  var APPROVER_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
4564
4335
  firstName: yup__namespace.string().trim().max(MAX_NAME_LENGTH, t$2("validations.limitExceeded", {
4565
- what: t$2("inputs.labels.firstName").toLocaleLowerCase(),
4336
+ what: (_t$1 = t$2("inputs.labels.firstName")) === null || _t$1 === void 0 ? void 0 : _t$1.toLocaleLowerCase(),
4566
4337
  limit: MAX_NAME_LENGTH
4567
4338
  })).required(t$2("validations.required", {
4568
4339
  what: t$2("inputs.labels.firstName")
4569
4340
  })),
4570
4341
  lastName: yup__namespace.string().trim().max(MAX_NAME_LENGTH, t$2("validations.limitExceeded", {
4571
- what: t$2("inputs.labels.lastName").toLocaleLowerCase(),
4342
+ what: (_t2 = t$2("inputs.labels.lastName")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
4572
4343
  limit: MAX_NAME_LENGTH
4573
4344
  })).required(t$2("validations.required", {
4574
4345
  what: t$2("inputs.labels.lastName")
@@ -4700,7 +4471,7 @@ var Edit$1 = function Edit(_ref) {
4700
4471
  };
4701
4472
  var Edit$2 = /*#__PURE__*/React__default["default"].memo(Edit$1);
4702
4473
 
4703
- var Menu$2 = neetoui.Dropdown.Menu,
4474
+ var Menu$1 = neetoui.Dropdown.Menu,
4704
4475
  MenuItem$1 = neetoui.Dropdown.MenuItem;
4705
4476
  var columnData$1 = function columnData(_ref) {
4706
4477
  var onEditClick = _ref.onEditClick,
@@ -4733,7 +4504,7 @@ var columnData$1 = function columnData(_ref) {
4733
4504
  buttonProps: {
4734
4505
  style: "text"
4735
4506
  }
4736
- }, /*#__PURE__*/React__default["default"].createElement(Menu$2, null, /*#__PURE__*/React__default["default"].createElement(MenuItem$1.Button, {
4507
+ }, /*#__PURE__*/React__default["default"].createElement(Menu$1, null, /*#__PURE__*/React__default["default"].createElement(MenuItem$1.Button, {
4737
4508
  "data-cy": "approvers-edit-button",
4738
4509
  onClick: function onClick() {
4739
4510
  return onEditClick(approver);
@@ -4748,56 +4519,161 @@ var columnData$1 = function columnData(_ref) {
4748
4519
  }];
4749
4520
  };
4750
4521
 
4751
- var Header = function Header(_ref) {
4752
- var title = _ref.title,
4753
- filters = _ref.filters,
4754
- setIsMenubarOpen = _ref.setIsMenubarOpen,
4755
- setFilters = _ref.setFilters,
4756
- _ref$actionBlock = _ref.actionBlock,
4757
- actionBlock = _ref$actionBlock === void 0 ? pure.noop : _ref$actionBlock,
4758
- placeholder = _ref.placeholder;
4759
- var _useTranslation = useTranslation(),
4760
- t = _useTranslation.t;
4761
- return /*#__PURE__*/React__default["default"].createElement(Header__default["default"], {
4762
- actionBlock: actionBlock,
4763
- menuBarToggle: function menuBarToggle() {
4764
- return setIsMenubarOpen(ramda.not);
4765
- },
4766
- title: title,
4767
- searchProps: {
4768
- onChange: function onChange(event) {
4769
- return setFilters(ramda.assoc("search", event.target.value));
4770
- },
4771
- value: filters.search,
4772
- placeholder: t("inputs.placeholders.search_", {
4773
- what: placeholder.toLocaleLowerCase()
4774
- })
4775
- }
4776
- });
4777
- };
4778
- var Header$1 = /*#__PURE__*/React__default["default"].memo(Header);
4779
-
4780
- function ownKeys$a(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; }
4781
- function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4782
- var Approvers = function Approvers(_ref) {
4783
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
4784
- helpDocUrl = _ref.helpDocUrl;
4785
- var _useState = React.useState(DEFAULT_FILTER_VALUES),
4522
+ function _extends() {
4523
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
4524
+ for (var i = 1; i < arguments.length; i++) {
4525
+ var source = arguments[i];
4526
+ for (var key in source) {
4527
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
4528
+ target[key] = source[key];
4529
+ }
4530
+ }
4531
+ }
4532
+ return target;
4533
+ };
4534
+ return _extends.apply(this, arguments);
4535
+ }
4536
+
4537
+ function _objectWithoutPropertiesLoose(source, excluded) {
4538
+ if (source == null) return {};
4539
+ var target = {};
4540
+ var sourceKeys = Object.keys(source);
4541
+ var key, i;
4542
+ for (i = 0; i < sourceKeys.length; i++) {
4543
+ key = sourceKeys[i];
4544
+ if (excluded.indexOf(key) >= 0) continue;
4545
+ target[key] = source[key];
4546
+ }
4547
+ return target;
4548
+ }
4549
+
4550
+ function _objectWithoutProperties(source, excluded) {
4551
+ if (source == null) return {};
4552
+ var target = _objectWithoutPropertiesLoose(source, excluded);
4553
+ var key, i;
4554
+ if (Object.getOwnPropertySymbols) {
4555
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
4556
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
4557
+ key = sourceSymbolKeys[i];
4558
+ if (excluded.indexOf(key) >= 0) continue;
4559
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
4560
+ target[key] = source[key];
4561
+ }
4562
+ }
4563
+ return target;
4564
+ }
4565
+
4566
+ var renderNoDataHelpText = function renderNoDataHelpText(_ref) {
4567
+ var entity = _ref.entity,
4568
+ url = _ref.url;
4569
+ return /*#__PURE__*/React__default["default"].createElement(Trans, {
4570
+ i18nKey: "common.noDataHelpText",
4571
+ values: {
4572
+ entity: entity
4573
+ },
4574
+ components: {
4575
+ a: /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
4576
+ className: "neeto-ui-text-primary-600 underline",
4577
+ target: "_blank",
4578
+ to: {
4579
+ pathname: url
4580
+ }
4581
+ })
4582
+ }
4583
+ });
4584
+ };
4585
+
4586
+ var _excluded$1 = ["entity", "columnData", "items", "totalCount", "filters", "setFilters", "setIsPaneOpen", "helpDocUrl", "onEditClick", "onDeleteClick"];
4587
+ function ownKeys$b(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; }
4588
+ function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4589
+ var Table = function Table(_ref) {
4590
+ var _t;
4591
+ var entity = _ref.entity,
4592
+ columnData = _ref.columnData,
4593
+ items = _ref.items,
4594
+ totalCount = _ref.totalCount,
4595
+ filters = _ref.filters,
4596
+ setFilters = _ref.setFilters,
4597
+ setIsPaneOpen = _ref.setIsPaneOpen,
4598
+ helpDocUrl = _ref.helpDocUrl,
4599
+ onEditClick = _ref.onEditClick,
4600
+ onDeleteClick = _ref.onDeleteClick,
4601
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
4602
+ var _usePaginate = usePaginate(),
4603
+ pageProperties = _usePaginate.pageProperties,
4604
+ handleTablePagination = _usePaginate.handleTablePagination;
4605
+ var _useTranslation = useTranslation(),
4606
+ t = _useTranslation.t;
4607
+ var columns = columnData({
4608
+ onEditClick: onEditClick,
4609
+ onDeleteClick: onDeleteClick
4610
+ });
4611
+ var handleTableChange = function handleTableChange(_, __, sorter) {
4612
+ setFilters(_objectSpread$b(_objectSpread$b({}, filters), {}, {
4613
+ sortBy: sorter.field,
4614
+ sortDirection: sorter.order
4615
+ }));
4616
+ };
4617
+ var noDataProps = {
4618
+ primaryButtonProps: {
4619
+ label: t("common.add_", {
4620
+ what: (_t = t("common.template", constants.SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
4621
+ }),
4622
+ onClick: function onClick() {
4623
+ return setIsPaneOpen(true);
4624
+ }
4625
+ },
4626
+ helpText: renderNoDataHelpText({
4627
+ entity: entity,
4628
+ url: helpDocUrl
4629
+ })
4630
+ };
4631
+ if (ramda.isEmpty(items)) {
4632
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4633
+ className: "flex h-full w-full flex-grow items-center justify-center"
4634
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, _extends({
4635
+ title: t("common.notFound_", {
4636
+ what: entity
4637
+ })
4638
+ }, !filters.search && noDataProps)));
4639
+ }
4640
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4641
+ className: "neeto-approvals__table-wrapper"
4642
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, _extends({
4643
+ fixedHeight: true,
4644
+ columnData: columns,
4645
+ currentPageNumber: pageProperties.index,
4646
+ defaultPageSize: pageProperties.size,
4647
+ handlePageChange: function handlePageChange(index, size) {
4648
+ return handleTablePagination(index, size);
4649
+ },
4650
+ rowData: items,
4651
+ paginationProps: {
4652
+ hideOnSinglePage: (items === null || items === void 0 ? void 0 : items.length) < DEFAULT_PAGE_SIZE + 1
4653
+ },
4654
+ onChange: handleTableChange
4655
+ }, _objectSpread$b({
4656
+ totalCount: totalCount
4657
+ }, otherProps))));
4658
+ };
4659
+
4660
+ function ownKeys$a(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; }
4661
+ function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4662
+ var Approvers = function Approvers(_ref) {
4663
+ var _t, _t2, _t3;
4664
+ var filters = _ref.filters,
4665
+ isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
4666
+ setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
4667
+ helpDocUrl = _ref.helpDocUrl,
4668
+ setFilters = _ref.setFilters;
4669
+ var _useState = React.useState(""),
4786
4670
  _useState2 = _slicedToArray(_useState, 2),
4787
- filters = _useState2[0],
4788
- setFilters = _useState2[1];
4789
- var _useState3 = React.useState(false),
4671
+ approverToEdit = _useState2[0],
4672
+ setApproverToEdit = _useState2[1];
4673
+ var _useState3 = React.useState(""),
4790
4674
  _useState4 = _slicedToArray(_useState3, 2),
4791
- isNewApproverPaneOpen = _useState4[0],
4792
- setIsNewApproverPaneOpen = _useState4[1];
4793
- var _useState5 = React.useState(""),
4794
- _useState6 = _slicedToArray(_useState5, 2),
4795
- approverToEdit = _useState6[0],
4796
- setApproverToEdit = _useState6[1];
4797
- var _useState7 = React.useState(""),
4798
- _useState8 = _slicedToArray(_useState7, 2),
4799
- approverToDelete = _useState8[0],
4800
- setApproverToDelete = _useState8[1];
4675
+ approverToDelete = _useState4[0],
4676
+ setApproverToDelete = _useState4[1];
4801
4677
  var debouncedSearch = reactUtils.useDebounce(filters.search, SEARCH_DELAY);
4802
4678
  var _usePaginate = usePaginate(),
4803
4679
  pageProperties = _usePaginate.pageProperties,
@@ -4831,90 +4707,25 @@ var Approvers = function Approvers(_ref) {
4831
4707
  var onDeleteClick = function onDeleteClick(approver) {
4832
4708
  setApproverToDelete(approver);
4833
4709
  };
4834
- var columns = columnData$1({
4835
- onEditClick: onEditClick,
4836
- onDeleteClick: onDeleteClick
4837
- });
4710
+ var entity = (_t = t("common.approver", constants.PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase();
4838
4711
  var handleDelete = function handleDelete(approverId) {
4839
4712
  deleteApprover({
4840
4713
  approverId: approverId
4841
4714
  });
4842
4715
  setApproverToDelete("");
4843
4716
  };
4844
- var handleTableChange = function handleTableChange(_, __, sorter) {
4845
- setFilters(_objectSpread$a(_objectSpread$a({}, filters), {}, {
4846
- sortBy: sorter.field,
4847
- sortDirection: sorter.order
4848
- }));
4849
- };
4850
- var ActionBlock = function ActionBlock() {
4851
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
4852
- label: t("common.add_", {
4853
- what: t("common.approver", constants.SINGULAR).toLocaleLowerCase()
4854
- }),
4855
- onClick: function onClick() {
4856
- return setIsNewApproverPaneOpen(true);
4857
- }
4858
- });
4859
- };
4860
- var entity = t("common.approver", constants.PLURAL).toLocaleLowerCase();
4861
- var otherProps = {
4862
- primaryButtonProps: {
4863
- label: t("common.add_", {
4864
- what: t("common.approver", constants.SINGULAR).toLocaleLowerCase()
4865
- }),
4866
- onClick: function onClick() {
4867
- return setIsNewApproverPaneOpen(true);
4868
- }
4869
- },
4870
- helpText: renderNoDataHelpText({
4871
- entity: entity,
4872
- url: helpDocUrl
4873
- })
4874
- };
4875
- if (isApproverLoading) {
4876
- return /*#__PURE__*/React__default["default"].createElement("div", {
4877
- className: "neeto-approvals-page-loader"
4878
- }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
4879
- }
4880
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header$1, {
4881
- actionBlock: /*#__PURE__*/React__default["default"].createElement(ActionBlock, null),
4717
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isApproverLoading ? /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null) : /*#__PURE__*/React__default["default"].createElement(Table, {
4718
+ items: approvers,
4719
+ setIsPaneOpen: setIsNewApproverPaneOpen,
4720
+ columnData: columnData$1,
4721
+ entity: entity,
4882
4722
  filters: filters,
4723
+ helpDocUrl: helpDocUrl,
4724
+ onDeleteClick: onDeleteClick,
4725
+ onEditClick: onEditClick,
4883
4726
  setFilters: setFilters,
4884
- setIsMenubarOpen: setIsMenubarOpen,
4885
- placeholder: t("common.approver", constants.PLURAL),
4886
- title: t("common.approver", constants.PLURAL)
4887
- }), /*#__PURE__*/React__default["default"].createElement(SubHeader__default["default"], {
4888
- leftActionBlock: !!totalCount && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4889
- component: "h4",
4890
- style: "h4"
4891
- }, totalCount, " ", t("common.approver", {
4892
- count: totalCount
4893
- }).toLocaleLowerCase())
4894
- }), !ramda.isEmpty(approvers) ? /*#__PURE__*/React__default["default"].createElement("div", {
4895
- className: "neeto-approvals__table-wrapper"
4896
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
4897
- fixedHeight: true,
4898
- allowRowClick: false,
4899
- columnData: columns,
4900
- currentPageNumber: pageProperties.index,
4901
- defaultPageSize: pageProperties.size,
4902
- rowData: approvers,
4903
- totalCount: totalCount,
4904
- handlePageChange: function handlePageChange(index, size) {
4905
- return handleTablePagination(index, size);
4906
- },
4907
- paginationProps: {
4908
- hideOnSinglePage: (approvers === null || approvers === void 0 ? void 0 : approvers.length) < DEFAULT_PAGE_SIZE + 1
4909
- },
4910
- onChange: handleTableChange
4911
- })) : /*#__PURE__*/React__default["default"].createElement("div", {
4912
- className: "flex h-full w-full flex-grow items-center justify-center"
4913
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, _extends({
4914
- title: t("common.notFound_", {
4915
- what: entity
4916
- })
4917
- }, !filters.search && otherProps))), /*#__PURE__*/React__default["default"].createElement(Create$2, {
4727
+ totalCount: totalCount
4728
+ }), /*#__PURE__*/React__default["default"].createElement(Create$2, {
4918
4729
  handleTablePagination: handleTablePagination,
4919
4730
  isNewApproverPaneOpen: isNewApproverPaneOpen,
4920
4731
  pageProperties: pageProperties,
@@ -4930,12 +4741,12 @@ var Approvers = function Approvers(_ref) {
4930
4741
  message: /*#__PURE__*/React__default["default"].createElement(Trans, {
4931
4742
  i18nKey: "alerts.deleting_",
4932
4743
  values: {
4933
- what: t("common.approver", constants.SINGULAR).toLocaleLowerCase(),
4744
+ what: (_t2 = t("common.approver", constants.SINGULAR)) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
4934
4745
  name: approverToDelete === null || approverToDelete === void 0 ? void 0 : approverToDelete.name
4935
4746
  }
4936
4747
  }),
4937
4748
  title: t("common.delete_", {
4938
- what: t("common.approver", constants.SINGULAR).toLocaleLowerCase()
4749
+ what: (_t3 = t("common.approver", constants.SINGULAR)) === null || _t3 === void 0 ? void 0 : _t3.toLocaleLowerCase()
4939
4750
  }),
4940
4751
  onClose: function onClose() {
4941
4752
  return setApproverToDelete("");
@@ -4964,7 +4775,7 @@ var requestsApi = {
4964
4775
  };
4965
4776
 
4966
4777
  function ownKeys$9(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; }
4967
- function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4778
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4968
4779
  var useFetchRequests = function useFetchRequests() {
4969
4780
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4970
4781
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -5005,9 +4816,9 @@ var HISTORY_TABLE_COLUMNS = [{
5005
4816
  var requestableUrl = _ref.requestableUrl;
5006
4817
  var url = new URL(requestableUrl || window.location.origin);
5007
4818
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5008
- to: url.pathname,
5009
4819
  label: approvalLabel,
5010
- style: "link"
4820
+ style: "link",
4821
+ to: url.pathname
5011
4822
  });
5012
4823
  }
5013
4824
  }, {
@@ -5041,7 +4852,7 @@ var HISTORY_TABLE_COLUMNS = [{
5041
4852
 
5042
4853
  var MemoizedEditorContent$1 = /*#__PURE__*/React__default["default"].memo(neetoEditor.EditorContent);
5043
4854
  var ApprovalsDetails = function ApprovalsDetails(_ref) {
5044
- var _window$globalProps, _window$globalProps$u;
4855
+ var _window$globalProps, _window$globalProps$u, _t;
5045
4856
  var isOpen = _ref.isOpen,
5046
4857
  onClose = _ref.onClose,
5047
4858
  approvalDetails = _ref.approvalDetails,
@@ -5122,7 +4933,7 @@ var ApprovalsDetails = function ApprovalsDetails(_ref) {
5122
4933
  label: t("common.note"),
5123
4934
  value: note,
5124
4935
  placeholder: t("inputs.placeholders.add_", {
5125
- what: t("common.note").toLocaleLowerCase()
4936
+ what: (_t = t("common.note")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5126
4937
  }),
5127
4938
  onChange: utils.withEventTargetValue(setNote)
5128
4939
  }), !isPending && note && /*#__PURE__*/React__default["default"].createElement("div", {
@@ -5181,10 +4992,10 @@ var getApprovalFilter = function getApprovalFilter() {
5181
4992
  };
5182
4993
 
5183
4994
  function ownKeys$8(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; }
5184
- function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4995
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5185
4996
  var History = function History(_ref) {
5186
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
5187
- requestUrl = _ref.requestUrl;
4997
+ var _t;
4998
+ var requestUrl = _ref.requestUrl;
5188
4999
  var _useState = React.useState(DEFAULT_FILTER_VALUES),
5189
5000
  _useState2 = _slicedToArray(_useState, 2),
5190
5001
  filters = _useState2[0],
@@ -5225,20 +5036,7 @@ var History = function History(_ref) {
5225
5036
  sortDirection: sorter.order
5226
5037
  }));
5227
5038
  };
5228
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header$1, {
5229
- filters: filters,
5230
- setFilters: setFilters,
5231
- setIsMenubarOpen: setIsMenubarOpen,
5232
- placeholder: t("common.history"),
5233
- title: t("common.approvalHistory")
5234
- }), /*#__PURE__*/React__default["default"].createElement(SubHeader__default["default"], {
5235
- leftActionBlock: !!totalCount && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5236
- component: "h4",
5237
- style: "h4"
5238
- }, totalCount, " ", t("common.record", {
5239
- count: totalCount
5240
- }).toLocaleLowerCase())
5241
- }), !ramda.isEmpty(approvalHistories) ? /*#__PURE__*/React__default["default"].createElement("div", {
5039
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !ramda.isEmpty(approvalHistories) ? /*#__PURE__*/React__default["default"].createElement("div", {
5242
5040
  className: "neeto-approvals__table-wrapper"
5243
5041
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
5244
5042
  allowRowClick: true,
@@ -5262,7 +5060,7 @@ var History = function History(_ref) {
5262
5060
  className: "flex h-full w-full flex-grow items-center justify-center"
5263
5061
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
5264
5062
  title: t("common.notFound_", {
5265
- what: t("common.record", constants.PLURAL).toLocaleLowerCase()
5063
+ what: (_t = t("common.record", constants.PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5266
5064
  })
5267
5065
  })), /*#__PURE__*/React__default["default"].createElement(ApprovalsDetails, {
5268
5066
  approvalDetails: approvalDetails,
@@ -5278,10 +5076,10 @@ var PENDING_TABLE_COLUMNS = pure.removeBy({
5278
5076
  }, HISTORY_TABLE_COLUMNS);
5279
5077
 
5280
5078
  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; }
5281
- 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; }
5079
+ 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(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; }
5282
5080
  var PendingRequests = function PendingRequests(_ref) {
5283
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
5284
- requestUrl = _ref.requestUrl;
5081
+ var _t;
5082
+ var requestUrl = _ref.requestUrl;
5285
5083
  var _useState = React.useState(DEFAULT_FILTER_VALUES),
5286
5084
  _useState2 = _slicedToArray(_useState, 2),
5287
5085
  filters = _useState2[0],
@@ -5329,20 +5127,7 @@ var PendingRequests = function PendingRequests(_ref) {
5329
5127
  }
5330
5128
  });
5331
5129
  };
5332
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header$1, {
5333
- filters: filters,
5334
- setFilters: setFilters,
5335
- setIsMenubarOpen: setIsMenubarOpen,
5336
- placeholder: t("common.pendingApproval", constants.PLURAL),
5337
- title: t("common.pendingApproval", constants.PLURAL)
5338
- }), /*#__PURE__*/React__default["default"].createElement(SubHeader__default["default"], {
5339
- leftActionBlock: !!totalCount && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5340
- component: "h4",
5341
- style: "h4"
5342
- }, totalCount, " ", t("common.pendingApproval", {
5343
- count: totalCount
5344
- }).toLocaleLowerCase())
5345
- }), !ramda.isEmpty(pendingRequests) ? /*#__PURE__*/React__default["default"].createElement("div", {
5130
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !ramda.isEmpty(pendingRequests) ? /*#__PURE__*/React__default["default"].createElement("div", {
5346
5131
  className: "neeto-approvals__table-wrapper"
5347
5132
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
5348
5133
  allowRowClick: true,
@@ -5366,7 +5151,7 @@ var PendingRequests = function PendingRequests(_ref) {
5366
5151
  className: "flex h-full w-full flex-grow items-center justify-center"
5367
5152
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
5368
5153
  title: t("common.notFound_", {
5369
- what: t("common.pendingApproval", constants.PLURAL).toLocaleLowerCase()
5154
+ what: (_t = t("common.pendingApproval", constants.PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5370
5155
  })
5371
5156
  })), /*#__PURE__*/React__default["default"].createElement(ApprovalsDetails, {
5372
5157
  isPending: true,
@@ -5414,7 +5199,7 @@ var templatesApi = {
5414
5199
  };
5415
5200
 
5416
5201
  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; }
5417
- 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; }
5202
+ 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(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; }
5418
5203
  var useFetchTemplates = function useFetchTemplates() {
5419
5204
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5420
5205
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -5432,12 +5217,6 @@ var useFetchTemplates = function useFetchTemplates() {
5432
5217
  }
5433
5218
  }, options));
5434
5219
  };
5435
- var useFetchTemplate = function useFetchTemplate(_ref2) {
5436
- var templateId = _ref2.templateId;
5437
- return reactQuery.useQuery([QUERY_KEYS.SHOW_TEMPLATE, templateId], function () {
5438
- return templatesApi.show(templateId);
5439
- });
5440
- };
5441
5220
  var useCreateTemplate = function useCreateTemplate(options) {
5442
5221
  var queryClient = reactQuery.useQueryClient();
5443
5222
  return reactQuery.useMutation(templatesApi.create, _objectSpread$6(_objectSpread$6({}, options), {}, {
@@ -5473,19 +5252,23 @@ var useDeleteTemplate = function useDeleteTemplate(options) {
5473
5252
  });
5474
5253
  };
5475
5254
 
5476
- var Field = function Field(_ref) {
5477
- var label = _ref.label,
5478
- value = _ref.value;
5479
- return /*#__PURE__*/React__default["default"].createElement("div", {
5480
- className: "flex flex-col items-start justify-center"
5481
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5482
- className: "mb-1 font-normal"
5483
- }, label), /*#__PURE__*/React__default["default"].createElement("p", {
5484
- className: "neeto-ui-text-gray-800 break-words text-base font-medium"
5485
- }, value));
5486
- };
5487
- var Field$1 = /*#__PURE__*/React__default["default"].memo(Field);
5255
+ function _arrayWithoutHoles(arr) {
5256
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
5257
+ }
5258
+
5259
+ function _iterableToArray(iter) {
5260
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
5261
+ }
5262
+
5263
+ function _nonIterableSpread() {
5264
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5265
+ }
5266
+
5267
+ function _toConsumableArray(arr) {
5268
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
5269
+ }
5488
5270
 
5271
+ var _t;
5489
5272
  var VALID_VARIABLE_NAME_REGEX = /^[a-z](?:\w*[a-z0-9])*$/i;
5490
5273
  var TEMPLATE_FORM_INITIAL_VALUES = {
5491
5274
  name: "",
@@ -5507,7 +5290,7 @@ var TEMPLATE_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
5507
5290
  }),
5508
5291
  variables: yup__namespace.array().of(yup__namespace.object().shape({
5509
5292
  variable: yup__namespace.string().trim().required(t$2("validations.pleaseEnter_", {
5510
- what: t$2("common.variable").toLocaleLowerCase()
5293
+ what: (_t = t$2("common.variable")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5511
5294
  })).matches(VALID_VARIABLE_NAME_REGEX, t$2("validations.variableName"))
5512
5295
  }))
5513
5296
  });
@@ -5516,285 +5299,7 @@ var EVERYONE_VISIBILITY = {
5516
5299
  value: "everyone"
5517
5300
  };
5518
5301
 
5519
- var MemoizedEditorContent = /*#__PURE__*/React__default["default"].memo(neetoEditor.EditorContent);
5520
- var TemplateDetails = function TemplateDetails(_ref) {
5521
- var _Object$entries;
5522
- var isOpen = _ref.isOpen,
5523
- onClose = _ref.onClose,
5524
- templateDetails = _ref.templateDetails;
5525
- var _useTranslation = useTranslation(),
5526
- t = _useTranslation.t;
5527
- var name = templateDetails.name,
5528
- description = templateDetails.description,
5529
- approverName = templateDetails.approverName,
5530
- accessible = templateDetails.accessible,
5531
- variables = templateDetails.variables,
5532
- message = templateDetails.message;
5533
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
5534
- isOpen: isOpen,
5535
- onClose: onClose
5536
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, {
5537
- className: "space-y-2"
5538
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5539
- style: "h2"
5540
- }, t("common.templateDetails"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
5541
- className: "space-y-6"
5542
- }, /*#__PURE__*/React__default["default"].createElement(Field$1, {
5543
- label: t("common.name"),
5544
- value: name
5545
- }), /*#__PURE__*/React__default["default"].createElement(Field$1, {
5546
- label: t("inputs.labels.description"),
5547
- value: description
5548
- }), /*#__PURE__*/React__default["default"].createElement(Field$1, {
5549
- label: t("common.approver", constants.SINGULAR),
5550
- value: approverName
5551
- }), /*#__PURE__*/React__default["default"].createElement(Field$1, {
5552
- label: t("common.visibility"),
5553
- value: (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label
5554
- }), (_Object$entries = Object.entries(variables || {})) === null || _Object$entries === void 0 ? void 0 : _Object$entries.map(function (_ref2) {
5555
- var _ref3 = _slicedToArray(_ref2, 2),
5556
- variable = _ref3[0],
5557
- value = _ref3[1];
5558
- return /*#__PURE__*/React__default["default"].createElement(Field$1, {
5559
- key: value,
5560
- label: pure.capitalize(variable),
5561
- value: value
5562
- });
5563
- }), /*#__PURE__*/React__default["default"].createElement("div", {
5564
- className: "flex w-full flex-col space-y-4"
5565
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5566
- className: "mb-1 font-normal"
5567
- }, t("inputs.labels.message")), /*#__PURE__*/React__default["default"].createElement(MemoizedEditorContent, {
5568
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg p-3",
5569
- content: message
5570
- }))));
5571
- };
5572
-
5573
- var Menu$1 = neetoui.Dropdown.Menu,
5574
- MenuItem = neetoui.Dropdown.MenuItem;
5575
- var columnData = function columnData(_ref) {
5576
- var onEditClick = _ref.onEditClick,
5577
- onDeleteClick = _ref.onDeleteClick;
5578
- return [{
5579
- dataIndex: "name",
5580
- key: "name",
5581
- sorter: true,
5582
- title: instance.t("common.name")
5583
- }, {
5584
- dataIndex: "visibility",
5585
- key: "visibility",
5586
- title: instance.t("common.visibility"),
5587
- render: function render(_, _ref2) {
5588
- var accessible = _ref2.accessible;
5589
- return (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label;
5590
- }
5591
- }, {
5592
- key: "actions",
5593
- ellipsis: true,
5594
- render: function render(_, template) {
5595
- return /*#__PURE__*/React__default["default"].createElement("div", {
5596
- className: "flex flex-row items-center justify-end space-x-3",
5597
- onClick: function onClick(event) {
5598
- return event.stopPropagation();
5599
- }
5600
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
5601
- autoWidth: true,
5602
- buttonProps: {
5603
- style: "text"
5604
- },
5605
- className: "flex-shrink-0",
5606
- icon: neetoIcons.MenuHorizontal,
5607
- position: "bottom-end",
5608
- strategy: "fixed"
5609
- }, /*#__PURE__*/React__default["default"].createElement(Menu$1, null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
5610
- "data-cy": "approvers-edit-button",
5611
- onClick: function onClick() {
5612
- return onEditClick(template.id);
5613
- }
5614
- }, instance.t("common.edit")), /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
5615
- "data-cy": "approvers-delete-button",
5616
- onClick: function onClick() {
5617
- return onDeleteClick(template);
5618
- }
5619
- }, instance.t("common.delete")))));
5620
- }
5621
- }];
5622
- };
5623
-
5624
- 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; }
5625
- 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; }
5626
- var Templates = function Templates(_ref) {
5627
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
5628
- approvalsPath = _ref.approvalsPath,
5629
- helpDocUrl = _ref.helpDocUrl;
5630
- var _useState = React.useState(DEFAULT_FILTER_VALUES),
5631
- _useState2 = _slicedToArray(_useState, 2),
5632
- filters = _useState2[0],
5633
- setFilters = _useState2[1];
5634
- var _useState3 = React.useState(""),
5635
- _useState4 = _slicedToArray(_useState3, 2),
5636
- templateToDelete = _useState4[0],
5637
- setTemplateToDelete = _useState4[1];
5638
- var _useState5 = React.useState(""),
5639
- _useState6 = _slicedToArray(_useState5, 2),
5640
- templateDetails = _useState6[0],
5641
- setTemplateDetails = _useState6[1];
5642
- var debouncedSearch = reactUtils.useDebounce(filters.search, SEARCH_DELAY);
5643
- var history = reactRouterDom.useHistory();
5644
- var _usePaginate = usePaginate(),
5645
- pageProperties = _usePaginate.pageProperties,
5646
- handleTablePagination = _usePaginate.handleTablePagination;
5647
- var _useTranslation = useTranslation(),
5648
- t = _useTranslation.t;
5649
- var _useFetchTemplates = useFetchTemplates(_objectSpread$5(_objectSpread$5(_objectSpread$5({}, pageProperties), filters), {}, {
5650
- search: debouncedSearch.trim()
5651
- }), {
5652
- onSuccess: function onSuccess(templates) {
5653
- handleEmptyPage(templates, pageProperties, handleTablePagination);
5654
- }
5655
- }),
5656
- _useFetchTemplates$da = _useFetchTemplates.data,
5657
- _useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
5658
- _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
5659
- templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
5660
- _useFetchTemplates$da4 = _useFetchTemplates$da2.totalCount,
5661
- totalCount = _useFetchTemplates$da4 === void 0 ? 0 : _useFetchTemplates$da4,
5662
- isTemplateLoading = _useFetchTemplates.isLoading;
5663
- var _useDeleteTemplate = useDeleteTemplate(),
5664
- deleteTemplate = _useDeleteTemplate.mutate,
5665
- isDeleting = _useDeleteTemplate.isLoading;
5666
- var onEditClick = function onEditClick(id) {
5667
- history.push(utils.buildUrl("".concat(approvalsPath).concat(routes.templates.edit), {
5668
- id: id
5669
- }));
5670
- };
5671
- var onDeleteClick = function onDeleteClick(template) {
5672
- setTemplateToDelete(template);
5673
- };
5674
- var columns = columnData({
5675
- onEditClick: onEditClick,
5676
- onDeleteClick: onDeleteClick
5677
- });
5678
- var handleDelete = function handleDelete(templateId) {
5679
- deleteTemplate({
5680
- templateId: templateId
5681
- });
5682
- setTemplateToDelete("");
5683
- };
5684
- var handleTableChange = function handleTableChange(_, __, sorter) {
5685
- setFilters(_objectSpread$5(_objectSpread$5({}, filters), {}, {
5686
- sortBy: sorter.field,
5687
- sortDirection: sorter.order
5688
- }));
5689
- };
5690
- var ActionBlock = function ActionBlock() {
5691
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5692
- to: "".concat(approvalsPath).concat(routes.templates["new"]),
5693
- label: t("common.add_", {
5694
- what: t("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
5695
- })
5696
- });
5697
- };
5698
- var entity = t("common.template", constants.PLURAL).toLocaleLowerCase();
5699
- var otherProps = {
5700
- primaryButtonProps: {
5701
- label: t("common.add_", {
5702
- what: t("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
5703
- }),
5704
- to: "".concat(approvalsPath).concat(routes.templates["new"])
5705
- },
5706
- helpText: renderNoDataHelpText({
5707
- entity: entity,
5708
- url: helpDocUrl
5709
- })
5710
- };
5711
- if (isTemplateLoading) {
5712
- return /*#__PURE__*/React__default["default"].createElement("div", {
5713
- className: "neeto-approvals-page-loader"
5714
- }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
5715
- }
5716
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header$1, {
5717
- actionBlock: /*#__PURE__*/React__default["default"].createElement(ActionBlock, null),
5718
- filters: filters,
5719
- setFilters: setFilters,
5720
- setIsMenubarOpen: setIsMenubarOpen,
5721
- placeholder: t("common.template", constants.PLURAL),
5722
- title: t("common.template", constants.PLURAL)
5723
- }), /*#__PURE__*/React__default["default"].createElement(SubHeader__default["default"], {
5724
- leftActionBlock: !!totalCount && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5725
- component: "h4",
5726
- style: "h4"
5727
- }, totalCount, " ", t("common.approvalTemplate", {
5728
- count: totalCount
5729
- }).toLocaleLowerCase())
5730
- }), !ramda.isEmpty(templates) ? /*#__PURE__*/React__default["default"].createElement("div", {
5731
- className: "neeto-approvals__table-wrapper"
5732
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
5733
- allowRowClick: true,
5734
- fixedHeight: true,
5735
- columnData: columns,
5736
- currentPageNumber: pageProperties.index,
5737
- defaultPageSize: pageProperties.size,
5738
- rowData: templates,
5739
- totalCount: totalCount,
5740
- handlePageChange: function handlePageChange(index, size) {
5741
- return handleTablePagination(index, size);
5742
- },
5743
- paginationProps: {
5744
- hideOnSinglePage: (templates === null || templates === void 0 ? void 0 : templates.length) < DEFAULT_PAGE_SIZE + 1
5745
- },
5746
- onChange: handleTableChange,
5747
- onRowClick: function onRowClick(_, templateDetails) {
5748
- return setTemplateDetails(templateDetails);
5749
- }
5750
- })) : /*#__PURE__*/React__default["default"].createElement("div", {
5751
- className: "flex h-full w-full flex-grow items-center justify-center"
5752
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, _extends({
5753
- title: t("common.notFound_", {
5754
- what: entity
5755
- })
5756
- }, !filters.search && otherProps))), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
5757
- isOpen: !!templateToDelete,
5758
- isSubmitting: isDeleting,
5759
- submitButtonLabel: t("buttons.delete"),
5760
- message: /*#__PURE__*/React__default["default"].createElement(Trans, {
5761
- i18nKey: "alerts.deleting_",
5762
- values: {
5763
- what: t("common.template", constants.SINGULAR).toLocaleLowerCase(),
5764
- name: templateToDelete === null || templateToDelete === void 0 ? void 0 : templateToDelete.name
5765
- }
5766
- }),
5767
- title: t("common.delete_", {
5768
- what: t("common.template", constants.SINGULAR).toLocaleLowerCase()
5769
- }),
5770
- onClose: function onClose() {
5771
- return setTemplateToDelete("");
5772
- },
5773
- onSubmit: function onSubmit() {
5774
- return handleDelete(templateToDelete === null || templateToDelete === void 0 ? void 0 : templateToDelete.id);
5775
- }
5776
- }), /*#__PURE__*/React__default["default"].createElement(TemplateDetails, {
5777
- isOpen: !!templateDetails,
5778
- templateDetails: templateDetails,
5779
- onClose: function onClose() {
5780
- return setTemplateDetails("");
5781
- }
5782
- }));
5783
- };
5784
-
5785
- function _arrayWithoutHoles(arr) {
5786
- if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
5787
- }
5788
-
5789
- function _nonIterableSpread() {
5790
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5791
- }
5792
-
5793
- function _toConsumableArray(arr) {
5794
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
5795
- }
5796
-
5797
- var DynamicBlock = function DynamicBlock() {
5302
+ var DynamicBlock = function DynamicBlock() {
5798
5303
  var _useTranslation = useTranslation(),
5799
5304
  t = _useTranslation.t;
5800
5305
  var _useFormikContext = formik$1.useFormikContext(),
@@ -5864,14 +5369,17 @@ var DynamicBlock = function DynamicBlock() {
5864
5369
  };
5865
5370
 
5866
5371
  var Form$1 = function Form(_ref) {
5867
- var _ref$initialData = _ref.initialData,
5372
+ var _t, _t2;
5373
+ var isOpen = _ref.isOpen,
5374
+ onClose = _ref.onClose,
5375
+ _ref$initialData = _ref.initialData,
5868
5376
  initialData = _ref$initialData === void 0 ? {} : _ref$initialData,
5869
5377
  _ref$onSubmit = _ref.onSubmit,
5870
5378
  onSubmit = _ref$onSubmit === void 0 ? pure.noop : _ref$onSubmit,
5871
5379
  _ref$isLoading = _ref.isLoading,
5872
5380
  isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
5873
5381
  visibilityOptions = _ref.visibilityOptions;
5874
- var history = reactRouterDom.useHistory();
5382
+ var inputReference = React.useRef(null);
5875
5383
  var _useTranslation = useTranslation(),
5876
5384
  t = _useTranslation.t;
5877
5385
  var _useFetchApprovers = useFetchApprovers(),
@@ -5879,16 +5387,27 @@ var Form$1 = function Form(_ref) {
5879
5387
  _useFetchApprovers$da2 = _useFetchApprovers$da === void 0 ? {} : _useFetchApprovers$da,
5880
5388
  _useFetchApprovers$da3 = _useFetchApprovers$da2.approvers,
5881
5389
  approvers = _useFetchApprovers$da3 === void 0 ? [] : _useFetchApprovers$da3;
5882
- return /*#__PURE__*/React__default["default"].createElement("div", {
5883
- className: "w-full"
5884
- }, /*#__PURE__*/React__default["default"].createElement(formik.Form, {
5390
+ var header = ramda.isEmpty(initialData) ? t("common.add_", {
5391
+ what: t("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
5392
+ }) : t("common.edit_", {
5393
+ what: t("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
5394
+ });
5395
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
5396
+ initialFocusRef: inputReference,
5397
+ size: "large",
5398
+ isOpen: isOpen,
5399
+ onClose: onClose
5400
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5401
+ style: "h2"
5402
+ }, header)), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
5885
5403
  formikProps: {
5404
+ enableReinitialize: true,
5886
5405
  initialValues: pure.isPresent(initialData) ? initialData : TEMPLATE_FORM_INITIAL_VALUES,
5887
5406
  validationSchema: TEMPLATE_FORM_VALIDATION_SCHEMA,
5888
5407
  onSubmit: onSubmit
5889
5408
  }
5890
- }, /*#__PURE__*/React__default["default"].createElement("div", {
5891
- className: "flex flex-col space-y-6"
5409
+ }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
5410
+ className: "flex w-full flex-col space-y-6"
5892
5411
  }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
5893
5412
  autoFocus: true,
5894
5413
  className: "w-1/2",
@@ -5912,17 +5431,17 @@ var Form$1 = function Form(_ref) {
5912
5431
  };
5913
5432
  }),
5914
5433
  placeholder: t("inputs.placeholders.select_", {
5915
- what: t("common.approver", constants.SINGULAR).toLocaleLowerCase()
5434
+ what: (_t = t("common.approver", constants.SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5916
5435
  })
5917
5436
  }), /*#__PURE__*/React__default["default"].createElement(formik.Select, {
5918
5437
  label: t("common.visibility"),
5919
5438
  name: "visibility",
5920
5439
  options: [].concat(_toConsumableArray(visibilityOptions), [EVERYONE_VISIBILITY]),
5921
5440
  placeholder: t("inputs.placeholders.select_", {
5922
- what: t("common.visibility").toLocaleLowerCase()
5441
+ what: (_t2 = t("common.visibility")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase()
5923
5442
  })
5924
- })), /*#__PURE__*/React__default["default"].createElement(DynamicBlock, null), /*#__PURE__*/React__default["default"].createElement("div", {
5925
- className: "space-x-4 pb-6"
5443
+ })), /*#__PURE__*/React__default["default"].createElement(DynamicBlock, null))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
5444
+ className: "flex gap-x-2"
5926
5445
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5927
5446
  label: t("buttons.saveChanges"),
5928
5447
  loading: isLoading,
@@ -5930,14 +5449,12 @@ var Form$1 = function Form(_ref) {
5930
5449
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5931
5450
  label: t("buttons.cancel"),
5932
5451
  style: "text",
5933
- onClick: function onClick() {
5934
- return history.goBack();
5935
- }
5452
+ onClick: onClose
5936
5453
  })))));
5937
5454
  };
5938
5455
 
5939
- 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; }
5940
- 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; }
5456
+ 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; }
5457
+ 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(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; }
5941
5458
  var buildTemplatePayload = function buildTemplatePayload(template) {
5942
5459
  var variables = template.variables,
5943
5460
  visibility = template.visibility,
@@ -5947,7 +5464,7 @@ var buildTemplatePayload = function buildTemplatePayload(template) {
5947
5464
  return ["variable".concat(index + 1), variable];
5948
5465
  });
5949
5466
  var payload = {
5950
- template: _objectSpread$4(_objectSpread$4({}, template), {}, {
5467
+ template: _objectSpread$5(_objectSpread$5({}, template), {}, {
5951
5468
  accessibleId: visibility.value || visibility,
5952
5469
  approverId: approver.value,
5953
5470
  variables: ramda.fromPairs(indexedVariables)
@@ -5955,14 +5472,26 @@ var buildTemplatePayload = function buildTemplatePayload(template) {
5955
5472
  };
5956
5473
  return payload;
5957
5474
  };
5475
+ var generateInitialData = function generateInitialData(template) {
5476
+ return _objectSpread$5(_objectSpread$5({}, template), {}, {
5477
+ visibility: template.accessibleId || EVERYONE_VISIBILITY.value,
5478
+ approver: {
5479
+ label: template.approverName,
5480
+ value: template.approverId
5481
+ },
5482
+ variables: template.variables && Object.values(template.variables).map(function (variable) {
5483
+ return {
5484
+ variable: variable
5485
+ };
5486
+ })
5487
+ });
5488
+ };
5958
5489
 
5959
5490
  var Create = function Create(_ref) {
5960
- var approvalsPath = _ref.approvalsPath,
5961
- visibilityOptions = _ref.visibilityOptions,
5962
- templateUrl = _ref.templateUrl;
5963
- var history = reactRouterDom.useHistory();
5964
- var _useTranslation = useTranslation(),
5965
- t = _useTranslation.t;
5491
+ var visibilityOptions = _ref.visibilityOptions,
5492
+ templateUrl = _ref.templateUrl,
5493
+ isOpen = _ref.isOpen,
5494
+ onClose = _ref.onClose;
5966
5495
  var _useCreateTemplate = useCreateTemplate(),
5967
5496
  createTemplate = _useCreateTemplate.mutate,
5968
5497
  isLoading = _useCreateTemplate.isLoading;
@@ -5972,53 +5501,28 @@ var Create = function Create(_ref) {
5972
5501
  url: templateUrl,
5973
5502
  payload: payload
5974
5503
  }, {
5975
- onSuccess: function onSuccess() {
5976
- return (
5977
- // eslint-disable-next-line @bigbinary/neeto/use-common-routes
5978
- history.push("".concat(approvalsPath).concat(routes.templates.index))
5979
- );
5980
- }
5504
+ onSuccess: onClose
5981
5505
  });
5982
5506
  };
5983
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], {
5984
- breadcrumbs: [{
5985
- link: "".concat(approvalsPath).concat(routes.templates.index),
5986
- text: t("common.template", constants.PLURAL)
5987
- }],
5988
- title: t("common.add_", {
5989
- what: t("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
5990
- })
5991
- }), /*#__PURE__*/React__default["default"].createElement(Form$1, {
5507
+ return /*#__PURE__*/React__default["default"].createElement(Form$1, {
5992
5508
  isLoading: isLoading,
5509
+ isOpen: isOpen,
5510
+ onClose: onClose,
5993
5511
  onSubmit: onSubmit,
5994
5512
  visibilityOptions: visibilityOptions
5995
- }));
5513
+ });
5996
5514
  };
5997
5515
 
5998
- 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; }
5999
- 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; }
6000
5516
  var Edit = function Edit(_ref) {
6001
- var _template$approver, _template$approver2;
6002
- var approvalsPath = _ref.approvalsPath,
6003
- visibilityOptions = _ref.visibilityOptions,
6004
- templateUrl = _ref.templateUrl;
6005
- var _useParams = reactRouterDom.useParams(),
6006
- id = _useParams.id;
6007
- var history = reactRouterDom.useHistory();
6008
- var _useTranslation = useTranslation(),
6009
- t = _useTranslation.t;
6010
- var _useFetchTemplate = useFetchTemplate({
6011
- templateId: id
6012
- }),
6013
- _useFetchTemplate$dat = _useFetchTemplate.data,
6014
- _useFetchTemplate$dat2 = _useFetchTemplate$dat === void 0 ? {} : _useFetchTemplate$dat,
6015
- _useFetchTemplate$dat3 = _useFetchTemplate$dat2.template,
6016
- template = _useFetchTemplate$dat3 === void 0 ? {} : _useFetchTemplate$dat3,
6017
- isFetchingTemplate = _useFetchTemplate.isLoading;
5517
+ var visibilityOptions = _ref.visibilityOptions,
5518
+ templateUrl = _ref.templateUrl,
5519
+ template = _ref.template,
5520
+ setTemplate = _ref.setTemplate,
5521
+ isOpen = _ref.isOpen,
5522
+ onClose = _ref.onClose;
6018
5523
  var _useUpdateTemplate = useUpdateTemplate({
6019
- // eslint-disable-next-line @bigbinary/neeto/use-common-routes
6020
5524
  onSuccess: function onSuccess() {
6021
- return history.push("".concat(approvalsPath).concat(routes.templates.index));
5525
+ return setTemplate({});
6022
5526
  }
6023
5527
  }),
6024
5528
  updateTemplate = _useUpdateTemplate.mutate,
@@ -6026,77 +5530,365 @@ var Edit = function Edit(_ref) {
6026
5530
  var onSubmit = function onSubmit(template) {
6027
5531
  var payload = buildTemplatePayload(template);
6028
5532
  updateTemplate({
6029
- id: id,
5533
+ id: template.id,
6030
5534
  payload: payload,
6031
5535
  url: templateUrl
6032
5536
  });
6033
5537
  };
6034
- if (isFetchingTemplate) {
6035
- return /*#__PURE__*/React__default["default"].createElement("div", {
6036
- className: "neeto-approvals-page-loader"
6037
- }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
6038
- }
6039
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], {
6040
- breadcrumbs: [{
6041
- link: "".concat(approvalsPath).concat(routes.templates.index),
6042
- text: t("common.template", constants.PLURAL)
6043
- }],
6044
- title: t("common.edit_", {
6045
- what: t("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
6046
- })
6047
- }), /*#__PURE__*/React__default["default"].createElement(Form$1, {
5538
+ return /*#__PURE__*/React__default["default"].createElement(Form$1, {
5539
+ initialData: generateInitialData(template),
6048
5540
  isLoading: isUpdating,
5541
+ isOpen: isOpen,
5542
+ onClose: onClose,
6049
5543
  onSubmit: onSubmit,
6050
- visibilityOptions: visibilityOptions,
6051
- initialData: _objectSpread$3(_objectSpread$3({}, template), {}, {
6052
- visibility: template.accessible.id || EVERYONE_VISIBILITY.value,
6053
- approver: {
6054
- label: (_template$approver = template.approver) === null || _template$approver === void 0 ? void 0 : _template$approver.name,
6055
- value: (_template$approver2 = template.approver) === null || _template$approver2 === void 0 ? void 0 : _template$approver2.id
6056
- },
6057
- variables: Object.values(template.variables).map(function (variable) {
6058
- return {
6059
- variable: variable
6060
- };
6061
- })
6062
- })
5544
+ visibilityOptions: visibilityOptions
5545
+ });
5546
+ };
5547
+
5548
+ var Field = function Field(_ref) {
5549
+ var label = _ref.label,
5550
+ value = _ref.value;
5551
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5552
+ className: "flex flex-col items-start justify-center"
5553
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5554
+ className: "mb-1 font-normal"
5555
+ }, label), /*#__PURE__*/React__default["default"].createElement("p", {
5556
+ className: "neeto-ui-text-gray-800 break-words text-base font-medium"
5557
+ }, value));
5558
+ };
5559
+ var Field$1 = /*#__PURE__*/React__default["default"].memo(Field);
5560
+
5561
+ var MemoizedEditorContent = /*#__PURE__*/React__default["default"].memo(neetoEditor.EditorContent);
5562
+ var TemplateDetails = function TemplateDetails(_ref) {
5563
+ var _Object$entries;
5564
+ var isOpen = _ref.isOpen,
5565
+ onClose = _ref.onClose,
5566
+ template = _ref.template;
5567
+ var _useTranslation = useTranslation(),
5568
+ t = _useTranslation.t;
5569
+ var name = template.name,
5570
+ description = template.description,
5571
+ approverName = template.approverName,
5572
+ accessible = template.accessible,
5573
+ variables = template.variables,
5574
+ message = template.message;
5575
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
5576
+ isOpen: isOpen,
5577
+ onClose: onClose
5578
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, {
5579
+ className: "space-y-2"
5580
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5581
+ style: "h2"
5582
+ }, t("common.templateDetails"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
5583
+ className: "space-y-6"
5584
+ }, /*#__PURE__*/React__default["default"].createElement(Field$1, {
5585
+ label: t("common.name"),
5586
+ value: name
5587
+ }), /*#__PURE__*/React__default["default"].createElement(Field$1, {
5588
+ label: t("inputs.labels.description"),
5589
+ value: description
5590
+ }), /*#__PURE__*/React__default["default"].createElement(Field$1, {
5591
+ label: t("common.approver", constants.SINGULAR),
5592
+ value: approverName
5593
+ }), /*#__PURE__*/React__default["default"].createElement(Field$1, {
5594
+ label: t("common.visibility"),
5595
+ value: (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label
5596
+ }), (_Object$entries = Object.entries(variables || {})) === null || _Object$entries === void 0 ? void 0 : _Object$entries.map(function (_ref2) {
5597
+ var _ref3 = _slicedToArray(_ref2, 2),
5598
+ variable = _ref3[0],
5599
+ value = _ref3[1];
5600
+ return /*#__PURE__*/React__default["default"].createElement(Field$1, {
5601
+ key: value,
5602
+ label: pure.capitalize(variable),
5603
+ value: value
5604
+ });
5605
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
5606
+ className: "flex w-full flex-col space-y-4"
5607
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5608
+ className: "mb-1 font-normal"
5609
+ }, t("inputs.labels.message")), /*#__PURE__*/React__default["default"].createElement(MemoizedEditorContent, {
5610
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg p-3",
5611
+ content: message
5612
+ }))));
5613
+ };
5614
+
5615
+ var Menu = neetoui.Dropdown.Menu,
5616
+ MenuItem = neetoui.Dropdown.MenuItem;
5617
+ var columnData = function columnData(_ref) {
5618
+ var onEditClick = _ref.onEditClick,
5619
+ onDeleteClick = _ref.onDeleteClick;
5620
+ return [{
5621
+ dataIndex: "name",
5622
+ key: "name",
5623
+ sorter: true,
5624
+ title: instance.t("common.name")
5625
+ }, {
5626
+ dataIndex: "visibility",
5627
+ key: "visibility",
5628
+ title: instance.t("common.visibility"),
5629
+ render: function render(_, _ref2) {
5630
+ var accessible = _ref2.accessible;
5631
+ return (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label;
5632
+ }
5633
+ }, {
5634
+ key: "actions",
5635
+ ellipsis: true,
5636
+ render: function render(_, template) {
5637
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5638
+ className: "flex flex-row items-center justify-end space-x-3",
5639
+ onClick: function onClick(event) {
5640
+ return event.stopPropagation();
5641
+ }
5642
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
5643
+ autoWidth: true,
5644
+ buttonProps: {
5645
+ style: "text"
5646
+ },
5647
+ className: "flex-shrink-0",
5648
+ icon: neetoIcons.MenuHorizontal,
5649
+ position: "bottom-end",
5650
+ strategy: "fixed"
5651
+ }, /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
5652
+ "data-cy": "approvers-edit-button",
5653
+ onClick: function onClick() {
5654
+ return onEditClick(template);
5655
+ }
5656
+ }, instance.t("common.edit")), /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
5657
+ "data-cy": "approvers-delete-button",
5658
+ onClick: function onClick() {
5659
+ return onDeleteClick(template);
5660
+ }
5661
+ }, instance.t("common.delete")))));
5662
+ }
5663
+ }];
5664
+ };
5665
+
5666
+ var _excluded = ["filters", "isNewTemplatePaneOpen", "setFilters", "setIsNewTemplatePaneOpen", "helpDocUrl"];
5667
+ 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; }
5668
+ 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(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; }
5669
+ var Templates = function Templates(_ref) {
5670
+ var _t, _t2, _t3;
5671
+ var filters = _ref.filters,
5672
+ isNewTemplatePaneOpen = _ref.isNewTemplatePaneOpen,
5673
+ setFilters = _ref.setFilters,
5674
+ setIsNewTemplatePaneOpen = _ref.setIsNewTemplatePaneOpen,
5675
+ helpDocUrl = _ref.helpDocUrl,
5676
+ otherProps = _objectWithoutProperties(_ref, _excluded);
5677
+ var _useState = React.useState({}),
5678
+ _useState2 = _slicedToArray(_useState, 2),
5679
+ selectedTemplate = _useState2[0],
5680
+ setSelectedTemplate = _useState2[1];
5681
+ var _useState3 = React.useState(false),
5682
+ _useState4 = _slicedToArray(_useState3, 2),
5683
+ isDeleteAlertOpen = _useState4[0],
5684
+ setIsDeleteAlertOpen = _useState4[1];
5685
+ var _useState5 = React.useState(false),
5686
+ _useState6 = _slicedToArray(_useState5, 2),
5687
+ isEditPaneOpen = _useState6[0],
5688
+ setIsEditPaneOpen = _useState6[1];
5689
+ var _useState7 = React.useState(false),
5690
+ _useState8 = _slicedToArray(_useState7, 2),
5691
+ isShowPaneOpen = _useState8[0],
5692
+ setIsShowPaneOpen = _useState8[1];
5693
+ var debouncedSearch = reactUtils.useDebounce(filters.search, SEARCH_DELAY);
5694
+ var _usePaginate = usePaginate(),
5695
+ pageProperties = _usePaginate.pageProperties,
5696
+ handleTablePagination = _usePaginate.handleTablePagination;
5697
+ var _useTranslation = useTranslation(),
5698
+ t = _useTranslation.t;
5699
+ var _useFetchTemplates = useFetchTemplates(_objectSpread$4(_objectSpread$4(_objectSpread$4({}, pageProperties), filters), {}, {
5700
+ search: debouncedSearch.trim()
5701
+ }), {
5702
+ onSuccess: function onSuccess(templates) {
5703
+ handleEmptyPage(templates, pageProperties, handleTablePagination);
5704
+ }
5705
+ }),
5706
+ _useFetchTemplates$da = _useFetchTemplates.data,
5707
+ _useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
5708
+ _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
5709
+ templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
5710
+ _useFetchTemplates$da4 = _useFetchTemplates$da2.totalCount,
5711
+ totalCount = _useFetchTemplates$da4 === void 0 ? 0 : _useFetchTemplates$da4,
5712
+ isTemplateLoading = _useFetchTemplates.isLoading;
5713
+ var _useDeleteTemplate = useDeleteTemplate(),
5714
+ deleteTemplate = _useDeleteTemplate.mutate,
5715
+ isDeleting = _useDeleteTemplate.isLoading;
5716
+ React.useEffect(function () {
5717
+ if (ramda.isEmpty(selectedTemplate)) {
5718
+ setIsDeleteAlertOpen(false);
5719
+ setIsEditPaneOpen(false);
5720
+ setIsShowPaneOpen(false);
5721
+ }
5722
+ }, [selectedTemplate]);
5723
+ var onEditClick = function onEditClick(template) {
5724
+ setSelectedTemplate(template);
5725
+ setIsEditPaneOpen(true);
5726
+ };
5727
+ var onRowClick = function onRowClick(_, templateDetails) {
5728
+ setSelectedTemplate(templateDetails);
5729
+ setIsShowPaneOpen(true);
5730
+ };
5731
+ var onDeleteClick = function onDeleteClick(template) {
5732
+ setSelectedTemplate(template);
5733
+ setIsDeleteAlertOpen(true);
5734
+ };
5735
+ var handleDelete = function handleDelete(templateId) {
5736
+ deleteTemplate({
5737
+ templateId: templateId
5738
+ });
5739
+ setSelectedTemplate({});
5740
+ };
5741
+ var entity = (_t = t("common.template", constants.PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase();
5742
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isTemplateLoading ? /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null) : /*#__PURE__*/React__default["default"].createElement(Table, {
5743
+ items: templates,
5744
+ setIsPaneOpen: setIsNewTemplatePaneOpen,
5745
+ columnData: columnData,
5746
+ entity: entity,
5747
+ filters: filters,
5748
+ helpDocUrl: helpDocUrl,
5749
+ onDeleteClick: onDeleteClick,
5750
+ onEditClick: onEditClick,
5751
+ onRowClick: onRowClick,
5752
+ setFilters: setFilters,
5753
+ totalCount: totalCount
5754
+ }), /*#__PURE__*/React__default["default"].createElement(Create, _extends({
5755
+ isOpen: isNewTemplatePaneOpen,
5756
+ onClose: function onClose() {
5757
+ return setIsNewTemplatePaneOpen(false);
5758
+ }
5759
+ }, otherProps)), /*#__PURE__*/React__default["default"].createElement(Edit, _extends({
5760
+ isOpen: isEditPaneOpen,
5761
+ setTemplate: setSelectedTemplate,
5762
+ template: selectedTemplate
5763
+ }, otherProps, {
5764
+ onClose: function onClose() {
5765
+ return setIsEditPaneOpen(false);
5766
+ }
5767
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
5768
+ isOpen: isDeleteAlertOpen,
5769
+ isSubmitting: isDeleting,
5770
+ submitButtonLabel: t("buttons.delete"),
5771
+ message: /*#__PURE__*/React__default["default"].createElement(Trans, {
5772
+ i18nKey: "alerts.deleting_",
5773
+ values: {
5774
+ what: (_t2 = t("common.template", constants.SINGULAR)) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
5775
+ name: selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.name
5776
+ }
5777
+ }),
5778
+ title: t("common.delete_", {
5779
+ what: (_t3 = t("common.template", constants.SINGULAR)) === null || _t3 === void 0 ? void 0 : _t3.toLocaleLowerCase()
5780
+ }),
5781
+ onClose: function onClose() {
5782
+ return setSelectedTemplate({});
5783
+ },
5784
+ onSubmit: function onSubmit() {
5785
+ return handleDelete(selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.id);
5786
+ }
5787
+ }), /*#__PURE__*/React__default["default"].createElement(TemplateDetails, {
5788
+ isOpen: isShowPaneOpen,
5789
+ template: selectedTemplate,
5790
+ onClose: function onClose() {
5791
+ return setSelectedTemplate({});
5792
+ }
6063
5793
  }));
6064
5794
  };
6065
5795
 
6066
- var createRoutes = function createRoutes(props) {
5796
+ 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; }
5797
+ 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(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; }
5798
+ var createRoutes = function createRoutes(_ref) {
5799
+ var config = _ref.config,
5800
+ filters = _ref.filters,
5801
+ isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
5802
+ isNewTemplatePaneOpen = _ref.isNewTemplatePaneOpen,
5803
+ setFilters = _ref.setFilters,
5804
+ setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
5805
+ setIsNewTemplatePaneOpen = _ref.setIsNewTemplatePaneOpen;
6067
5806
  return [{
6068
5807
  component: function component() {
6069
- return /*#__PURE__*/React__default["default"].createElement(Approvers, props);
5808
+ return /*#__PURE__*/React__default["default"].createElement(Approvers, _objectSpread$3({
5809
+ filters: filters,
5810
+ isNewApproverPaneOpen: isNewApproverPaneOpen,
5811
+ setFilters: setFilters,
5812
+ setIsNewApproverPaneOpen: setIsNewApproverPaneOpen
5813
+ }, config));
6070
5814
  },
6071
- path: "".concat(props.approvalsPath).concat(routes.approvers)
6072
- }, {
6073
- component: function component() {
6074
- return /*#__PURE__*/React__default["default"].createElement(Templates, props);
5815
+ path: "".concat(config.approvalsPath).concat(routes.approvers),
5816
+ actionBlock: function actionBlock() {
5817
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5818
+ label: t$2("common.add_", {
5819
+ what: t$2("common.approver", constants.SINGULAR).toLocaleLowerCase()
5820
+ }),
5821
+ onClick: function onClick() {
5822
+ return setIsNewApproverPaneOpen(true);
5823
+ }
5824
+ });
6075
5825
  },
6076
- path: "".concat(props.approvalsPath).concat(routes.templates.index)
5826
+ searchPlaceholder: t$2("inputs.placeholders.search_", {
5827
+ what: t$2("common.approver", constants.PLURAL).toLocaleLowerCase()
5828
+ })
6077
5829
  }, {
6078
5830
  component: function component() {
6079
- return /*#__PURE__*/React__default["default"].createElement(Create, props);
5831
+ return /*#__PURE__*/React__default["default"].createElement(Templates, _objectSpread$3({
5832
+ filters: filters,
5833
+ isNewTemplatePaneOpen: isNewTemplatePaneOpen,
5834
+ setFilters: setFilters,
5835
+ setIsNewTemplatePaneOpen: setIsNewTemplatePaneOpen
5836
+ }, config));
6080
5837
  },
6081
- path: "".concat(props.approvalsPath).concat(routes.templates["new"])
6082
- }, {
6083
- component: function component() {
6084
- return /*#__PURE__*/React__default["default"].createElement(Edit, props);
5838
+ path: "".concat(config.approvalsPath).concat(routes.templates.index),
5839
+ actionBlock: function actionBlock() {
5840
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5841
+ label: t$2("common.add_", {
5842
+ what: t$2("common.approvalTemplate", constants.SINGULAR).toLocaleLowerCase()
5843
+ }),
5844
+ onClick: function onClick() {
5845
+ return setIsNewTemplatePaneOpen(true);
5846
+ }
5847
+ });
6085
5848
  },
6086
- path: "".concat(props.approvalsPath).concat(routes.templates.edit)
5849
+ searchPlaceholder: t$2("inputs.placeholders.search_", {
5850
+ what: t$2("common.template", constants.PLURAL).toLocaleLowerCase()
5851
+ })
6087
5852
  }, {
6088
5853
  component: function component() {
6089
- return /*#__PURE__*/React__default["default"].createElement(PendingRequests, props);
5854
+ return /*#__PURE__*/React__default["default"].createElement(PendingRequests, config);
6090
5855
  },
6091
- path: "".concat(props.approvalsPath).concat(routes.pending)
5856
+ path: "".concat(config.approvalsPath).concat(routes.pending)
6092
5857
  }, {
6093
5858
  component: function component() {
6094
- return /*#__PURE__*/React__default["default"].createElement(History, props);
5859
+ return /*#__PURE__*/React__default["default"].createElement(History, config);
6095
5860
  },
6096
- path: "".concat(props.approvalsPath).concat(routes.history)
5861
+ path: "".concat(config.approvalsPath).concat(routes.history)
6097
5862
  }];
6098
5863
  };
6099
5864
 
5865
+ var Header = function Header(_ref) {
5866
+ var _currentTab$actionBlo;
5867
+ var appRoutes = _ref.appRoutes,
5868
+ breadcrumbs = _ref.breadcrumbs,
5869
+ filters = _ref.filters,
5870
+ setFilters = _ref.setFilters;
5871
+ var _useTranslation = useTranslation(),
5872
+ t = _useTranslation.t;
5873
+ var _useLocation = reactRouterDom.useLocation(),
5874
+ pathname = _useLocation.pathname;
5875
+ var currentTab = pure.findBy({
5876
+ path: pathname
5877
+ }, appRoutes);
5878
+ return /*#__PURE__*/React__default["default"].createElement(NeetoHeader__default["default"], {
5879
+ actionBlock: currentTab === null || currentTab === void 0 ? void 0 : (_currentTab$actionBlo = currentTab.actionBlock) === null || _currentTab$actionBlo === void 0 ? void 0 : _currentTab$actionBlo.call(currentTab),
5880
+ title: t("common.approval", constants.PLURAL),
5881
+ searchProps: (currentTab === null || currentTab === void 0 ? void 0 : currentTab.searchPlaceholder) && {
5882
+ onChange: function onChange(event) {
5883
+ return setFilters(ramda.assoc("search", event.target.value));
5884
+ },
5885
+ value: filters.search,
5886
+ placeholder: currentTab === null || currentTab === void 0 ? void 0 : currentTab.searchPlaceholder
5887
+ },
5888
+ breadcrumbs: breadcrumbs
5889
+ });
5890
+ };
5891
+
6100
5892
  var fetch = function fetch() {
6101
5893
  return axios__default["default"].get("".concat(BASE_URL, "/views"));
6102
5894
  };
@@ -6105,7 +5897,7 @@ var viewsApi = {
6105
5897
  };
6106
5898
 
6107
5899
  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; }
6108
- 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; }
5900
+ 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(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; }
6109
5901
  var useFetchViews = function useFetchViews() {
6110
5902
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6111
5903
  return reactQuery.useQuery([QUERY_KEYS.VIEWS], function () {
@@ -6117,16 +5909,14 @@ var useFetchViews = function useFetchViews() {
6117
5909
  }, options));
6118
5910
  };
6119
5911
 
6120
- var Menu = function Menu(_ref) {
5912
+ var Tab = function Tab(_ref) {
6121
5913
  var _pathname$split$;
6122
- var isMenuOpen = _ref.isMenuOpen,
6123
- approvalsPath = _ref.approvalsPath;
6124
- var approvalFilter = getApprovalFilter();
6125
- var approvalFilterKeys = ramda.keys(approvalFilter);
5914
+ var approvalsPath = _ref.approvalsPath;
6126
5915
  var _useLocation = reactRouterDom.useLocation(),
6127
5916
  pathname = _useLocation.pathname;
6128
- var _useTranslation = useTranslation(),
6129
- t = _useTranslation.t;
5917
+ var history = reactRouterDom.useHistory();
5918
+ var approvalFilter = getApprovalFilter();
5919
+ var approvalFilterKeys = ramda.keys(approvalFilter);
6130
5920
  var category = (_pathname$split$ = pathname.split(routes.approvals)[1]) === null || _pathname$split$ === void 0 ? void 0 : _pathname$split$.toLocaleUpperCase();
6131
5921
  var isActive = function isActive(filter) {
6132
5922
  return category.includes(filter);
@@ -6139,46 +5929,60 @@ var Menu = function Menu(_ref) {
6139
5929
  _useFetchViews$data2 = _useFetchViews$data === void 0 ? {} : _useFetchViews$data,
6140
5930
  _useFetchViews$data2$ = _useFetchViews$data2.views,
6141
5931
  views = _useFetchViews$data2$ === void 0 ? {} : _useFetchViews$data2$;
6142
- return /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"], {
6143
- showMenu: isMenuOpen,
6144
- title: t("common.approval", constants.PLURAL)
6145
- }, approvalFilterKeys.map(function (filter) {
6146
- return /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Block, {
5932
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tab, null, approvalFilterKeys.map(function (filter) {
5933
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tab.Item, {
6147
5934
  active: isActive(filter),
6148
- count: views[filter.toLocaleLowerCase()],
5935
+ count: views[filter === null || filter === void 0 ? void 0 : filter.toLocaleLowerCase()],
6149
5936
  key: filter,
6150
5937
  label: approvalFilter[filter].label,
6151
- url: getRoute(filter)
6152
- });
5938
+ onClick: function onClick() {
5939
+ return history.push(getRoute(filter));
5940
+ }
5941
+ }, approvalFilter[filter].label, " (", views[filter === null || filter === void 0 ? void 0 : filter.toLocaleLowerCase()] || 0, ")");
6153
5942
  }));
6154
5943
  };
6155
5944
 
6156
5945
  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; }
6157
- 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; }
5946
+ 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(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; }
6158
5947
  var Approvals = function Approvals(_ref) {
6159
5948
  var config = _ref.config;
6160
- var _useState = React.useState(true),
5949
+ var _useState = React.useState(DEFAULT_FILTER_VALUES),
6161
5950
  _useState2 = _slicedToArray(_useState, 2),
6162
- isMenubarOpen = _useState2[0],
6163
- setIsMenubarOpen = _useState2[1];
6164
- var appRoutes = createRoutes(_objectSpread$1(_objectSpread$1({}, config), {}, {
6165
- setIsMenubarOpen: setIsMenubarOpen
6166
- }));
5951
+ filters = _useState2[0],
5952
+ setFilters = _useState2[1];
5953
+ var _useState3 = React.useState(false),
5954
+ _useState4 = _slicedToArray(_useState3, 2),
5955
+ isNewTemplatePaneOpen = _useState4[0],
5956
+ setIsNewTemplatePaneOpen = _useState4[1];
5957
+ var _useState5 = React.useState(false),
5958
+ _useState6 = _slicedToArray(_useState5, 2),
5959
+ isNewApproverPaneOpen = _useState6[0],
5960
+ setIsNewApproverPaneOpen = _useState6[1];
5961
+ var appRoutes = createRoutes({
5962
+ config: config,
5963
+ filters: filters,
5964
+ isNewApproverPaneOpen: isNewApproverPaneOpen,
5965
+ isNewTemplatePaneOpen: isNewTemplatePaneOpen,
5966
+ setFilters: setFilters,
5967
+ setIsNewApproverPaneOpen: setIsNewApproverPaneOpen,
5968
+ setIsNewTemplatePaneOpen: setIsNewTemplatePaneOpen
5969
+ });
6167
5970
  return /*#__PURE__*/React__default["default"].createElement("div", {
6168
5971
  className: "neeto-approvals"
6169
- }, /*#__PURE__*/React__default["default"].createElement("div", {
6170
- className: "neeto-approvals-wrapper"
6171
- }, /*#__PURE__*/React__default["default"].createElement(Menu, {
6172
- approvalsPath: config.approvalsPath,
6173
- isMenuOpen: isMenubarOpen
6174
- }), /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Switch, null, appRoutes.map(function (_ref2) {
5972
+ }, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Header, _objectSpread$1({
5973
+ appRoutes: appRoutes,
5974
+ filters: filters,
5975
+ setFilters: setFilters
5976
+ }, config)), /*#__PURE__*/React__default["default"].createElement(Tab, {
5977
+ approvalsPath: config.approvalsPath
5978
+ }), /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Switch, null, appRoutes.map(function (_ref2) {
6175
5979
  var path = _ref2.path,
6176
5980
  component = _ref2.component;
6177
5981
  return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Route, {
6178
5982
  exact: true,
6179
5983
  component: component,
6180
- key: path,
6181
- path: path
5984
+ path: path,
5985
+ key: path
6182
5986
  });
6183
5987
  }), /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Redirect, {
6184
5988
  exact: true,
@@ -6186,10 +5990,11 @@ var Approvals = function Approvals(_ref) {
6186
5990
  // eslint-disable-next-line @bigbinary/neeto/use-common-routes
6187
5991
  ,
6188
5992
  to: "".concat(config.approvalsPath).concat(routes.pending)
6189
- })))));
5993
+ }))));
6190
5994
  };
6191
5995
 
6192
5996
  var Form = function Form(_ref) {
5997
+ var _t;
6193
5998
  var isOpen = _ref.isOpen,
6194
5999
  setIsPaneOpen = _ref.setIsPaneOpen,
6195
6000
  onSubmit = _ref.onSubmit,
@@ -6254,7 +6059,7 @@ var Form = function Form(_ref) {
6254
6059
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
6255
6060
  style: "h2"
6256
6061
  }, t("common.add_", {
6257
- what: t("common.approval", constants.SINGULAR).toLocaleLowerCase()
6062
+ what: (_t = t("common.approval", constants.SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
6258
6063
  }))), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
6259
6064
  formikProps: {
6260
6065
  onSubmit: handleSubmit,
@@ -6333,7 +6138,7 @@ var publicRequestsApi = {
6333
6138
  };
6334
6139
 
6335
6140
  function ownKeys(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; }
6336
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6141
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6337
6142
  var useFetchPublicRequest = function useFetchPublicRequest(_ref, options) {
6338
6143
  var requestId = _ref.requestId;
6339
6144
  return reactQuery.useQuery([QUERY_KEYS.SHOW_PUBLIC_REQUEST, requestId], function () {
@@ -6368,6 +6173,7 @@ var useDeclinePendingRequest = function useDeclinePendingRequest(options) {
6368
6173
  };
6369
6174
 
6370
6175
  var Public = function Public() {
6176
+ var _t;
6371
6177
  var _useState = React.useState(""),
6372
6178
  _useState2 = _slicedToArray(_useState, 2),
6373
6179
  note = _useState2[0],
@@ -6402,7 +6208,7 @@ var Public = function Public() {
6402
6208
  className: "h-screen items-center justify-center"
6403
6209
  }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
6404
6210
  }
6405
- return /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], {
6211
+ return /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(NeetoHeader__default["default"], {
6406
6212
  title: t("common.approval", constants.PLURAL)
6407
6213
  }), /*#__PURE__*/React__default["default"].createElement("div", {
6408
6214
  className: "flex h-screen w-full flex-col items-center"
@@ -6417,7 +6223,7 @@ var Public = function Public() {
6417
6223
  }), !hideTextArea && /*#__PURE__*/React__default["default"].createElement(neetoui.Textarea, {
6418
6224
  label: t("common.note"),
6419
6225
  placeholder: t("inputs.placeholders.add_", {
6420
- what: t("common.note").toLocaleLowerCase()
6226
+ what: (_t = t("common.note")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
6421
6227
  }),
6422
6228
  value: note,
6423
6229
  disabled: approvalRequest.status !== STATUSES.pending,
@@ -6460,7 +6266,7 @@ var Public = function Public() {
6460
6266
 
6461
6267
  var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
6462
6268
 
6463
- var css = ".neeto-approvals-dropdown__button{border-radius:0!important;font-weight:var(--neeto-ui-font-normal);min-height:34px;min-width:150px;text-align:left;width:100%}.neeto-approvals-scrollbar__inner{height:200px;width:100%}.neeto-approvals-scrollbar__outer{height:150px;left:0;overflow:\"hidden\";position:\"absolute\";top:0;visibility:\"hidden\";width:200px}.neeto-approvals-empty-state{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.neeto-approvals-empty-state__image{align-items:center;display:flex;justify-content:center;margin-bottom:2rem}.neeto-approvals-empty-state__title--with-action-block{margin-bottom:1rem}.neeto-approvals-empty-state__action-block{display:flex;justify-content:center}.neeto-approvals{overflow:auto;width:100%}.neeto-approvals-wrapper{display:flex}.neeto-approvals-page-loader{height:100vh;width:100%}.neeto-approvals__table-wrapper{height:calc(100vh - 205px);width:100%}.neeto-approvals-table__column{align-items:center;display:flex;gap:.5rem}.neeto-approvals-form__header{margin-bottom:.5rem}.neeto-approvals-form__body{padding-bottom:1rem;width:100%}.neeto-approvals-form__body>*+*{margin-top:1rem}.neeto-approvals-form__footer{display:flex;gap:.5rem}.neeto-ui-subheader .neeto-ui-subheader__left-wrapper .neeto-ui-subheader__left{max-width:none}td.ant-table-column-sort{background:transparent}";
6269
+ var css = ".neeto-approvals-dropdown__button{border-radius:0!important;font-weight:var(--neeto-ui-font-normal);min-height:34px;min-width:150px;text-align:left;width:100%}.neeto-approvals-scrollbar__inner{height:200px;width:100%}.neeto-approvals-scrollbar__outer{height:150px;left:0;overflow:\"hidden\";position:\"absolute\";top:0;visibility:\"hidden\";width:200px}.neeto-approvals-empty-state{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.neeto-approvals-empty-state__image{align-items:center;display:flex;justify-content:center;margin-bottom:2rem}.neeto-approvals-empty-state__title--with-action-block{margin-bottom:1rem}.neeto-approvals-empty-state__action-block{display:flex;justify-content:center}.neeto-approvals{overflow:auto;width:100%}.neeto-approvals__table-wrapper{height:calc(100vh - 205px);margin-top:3rem;width:100%}.neeto-approvals-table__column{align-items:center;display:flex;gap:.5rem}.neeto-approvals-form__header{margin-bottom:.5rem}.neeto-approvals-form__body{padding-bottom:1rem;width:100%}.neeto-approvals-form__body>*+*{margin-top:1rem}.neeto-approvals-form__footer{display:flex;gap:.5rem}.neeto-ui-subheader .neeto-ui-subheader__left-wrapper .neeto-ui-subheader__left{max-width:none}td.ant-table-column-sort{background:transparent}";
6464
6270
  n(css,{});
6465
6271
 
6466
6272
  exports.Approvals = Approvals;