@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.js CHANGED
@@ -1,32 +1,30 @@
1
1
  import React, { useContext, useState, useRef, useEffect, useMemo, useCallback } from 'react';
2
2
  import Container from '@bigbinary/neeto-molecules/Container';
3
- import { useLocation, useHistory, Link, useParams, Switch, Route, Redirect } from 'react-router-dom';
4
- import { DEFAULT_PAGE_INDEX, PLURAL, SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
3
+ import { useLocation, useHistory, Link, Switch, Route, Redirect, useParams } from 'react-router-dom';
4
+ import * as yup from 'yup';
5
+ import { DEFAULT_PAGE_INDEX, SINGULAR, PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
6
+ import { Pane, Typography, Button, Dropdown, NoData, Table as Table$1, Alert, Tag, Label, Textarea, Tab as Tab$1, Select as Select$1, Callout } from '@bigbinary/neetoui';
5
7
  import { useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
6
8
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
7
- import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
8
- import { Pane, Typography, Button, Dropdown, Table, NoData, Alert, Tag, Label, Textarea, Select as Select$1, Callout } from '@bigbinary/neetoui';
9
- import { isEmpty, not, assoc, fromPairs, keys, modify } from 'ramda';
9
+ import { isEmpty, fromPairs, assoc, keys, modify } from 'ramda';
10
10
  import axios from 'axios';
11
11
  import { useQuery, useQueryClient, useMutation } from 'react-query';
12
- import * as yup from 'yup';
13
12
  import { Form as Form$3, Input, Textarea as Textarea$1, Select } from '@bigbinary/neetoui/formik';
14
13
  import { MenuHorizontal, Delete } from '@bigbinary/neeto-icons';
15
- import { noop as noop$1, capitalize as capitalize$1, isPresent, findBy, camelToSnakeCase, removeBy, findById } from '@bigbinary/neeto-commons-frontend/pure';
16
- import Header$2 from '@bigbinary/neeto-molecules/Header';
17
- import { dateFormat, withEventTargetValue, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
14
+ import { capitalize as capitalize$1, noop as noop$1, isPresent, findBy, camelToSnakeCase, removeBy, findById } from '@bigbinary/neeto-commons-frontend/pure';
15
+ import { dateFormat, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils';
18
16
  import { EditorContent, isEditorEmpty, FormikEditor, substituteVariables } from '@bigbinary/neeto-editor';
19
17
  import { useFormikContext, FieldArray } from 'formik';
20
- import MenuBar from '@bigbinary/neeto-molecules/MenuBar';
18
+ import NeetoHeader from '@bigbinary/neeto-molecules/Header';
21
19
 
22
- function _typeof$2(obj) {
20
+ function _typeof$3(o) {
23
21
  "@babel/helpers - typeof";
24
22
 
25
- return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
26
- return typeof obj;
27
- } : function (obj) {
28
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
29
- }, _typeof$2(obj);
23
+ return _typeof$3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
24
+ return typeof o;
25
+ } : function (o) {
26
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
27
+ }, _typeof$3(o);
30
28
  }
31
29
 
32
30
  function _classCallCheck$2(instance, Constructor) {
@@ -35,20 +33,20 @@ function _classCallCheck$2(instance, Constructor) {
35
33
  }
36
34
  }
37
35
 
38
- function _toPrimitive$2(input, hint) {
39
- if (_typeof$2(input) !== "object" || input === null) return input;
36
+ function _toPrimitive$3(input, hint) {
37
+ if (_typeof$3(input) !== "object" || input === null) return input;
40
38
  var prim = input[Symbol.toPrimitive];
41
39
  if (prim !== undefined) {
42
40
  var res = prim.call(input, hint || "default");
43
- if (_typeof$2(res) !== "object") return res;
41
+ if (_typeof$3(res) !== "object") return res;
44
42
  throw new TypeError("@@toPrimitive must return a primitive value.");
45
43
  }
46
44
  return (hint === "string" ? String : Number)(input);
47
45
  }
48
46
 
49
- function _toPropertyKey$2(arg) {
50
- var key = _toPrimitive$2(arg, "string");
51
- return _typeof$2(key) === "symbol" ? key : String(key);
47
+ function _toPropertyKey$3(arg) {
48
+ var key = _toPrimitive$3(arg, "string");
49
+ return _typeof$3(key) === "symbol" ? key : String(key);
52
50
  }
53
51
 
54
52
  function _defineProperties$2(target, props) {
@@ -57,7 +55,7 @@ function _defineProperties$2(target, props) {
57
55
  descriptor.enumerable = descriptor.enumerable || false;
58
56
  descriptor.configurable = true;
59
57
  if ("value" in descriptor) descriptor.writable = true;
60
- Object.defineProperty(target, _toPropertyKey$2(descriptor.key), descriptor);
58
+ Object.defineProperty(target, _toPropertyKey$3(descriptor.key), descriptor);
61
59
  }
62
60
  }
63
61
  function _createClass$2(Constructor, protoProps, staticProps) {
@@ -102,7 +100,7 @@ function _inherits(subClass, superClass) {
102
100
  }
103
101
 
104
102
  function _possibleConstructorReturn(self, call) {
105
- if (call && (_typeof$2(call) === "object" || typeof call === "function")) {
103
+ if (call && (_typeof$3(call) === "object" || typeof call === "function")) {
106
104
  return call;
107
105
  } else if (call !== void 0) {
108
106
  throw new TypeError("Derived constructors may only return object or undefined");
@@ -117,8 +115,8 @@ function _getPrototypeOf(o) {
117
115
  return _getPrototypeOf(o);
118
116
  }
119
117
 
120
- function _defineProperty$1(obj, key, value) {
121
- key = _toPropertyKey$2(key);
118
+ function _defineProperty$2(obj, key, value) {
119
+ key = _toPropertyKey$3(key);
122
120
  if (key in obj) {
123
121
  Object.defineProperty(obj, key, {
124
122
  value: value,
@@ -132,41 +130,39 @@ function _defineProperty$1(obj, key, value) {
132
130
  return obj;
133
131
  }
134
132
 
135
- function _arrayWithHoles$1(arr) {
133
+ function _arrayWithHoles$2(arr) {
136
134
  if (Array.isArray(arr)) return arr;
137
135
  }
138
136
 
139
- function _iterableToArray(iter) {
137
+ function _iterableToArray$1(iter) {
140
138
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
141
139
  }
142
140
 
143
- function _arrayLikeToArray$1(arr, len) {
141
+ function _arrayLikeToArray$2(arr, len) {
144
142
  if (len == null || len > arr.length) len = arr.length;
145
143
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
146
144
  return arr2;
147
145
  }
148
146
 
149
- function _unsupportedIterableToArray$1(o, minLen) {
147
+ function _unsupportedIterableToArray$2(o, minLen) {
150
148
  if (!o) return;
151
- if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
149
+ if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
152
150
  var n = Object.prototype.toString.call(o).slice(8, -1);
153
151
  if (n === "Object" && o.constructor) n = o.constructor.name;
154
152
  if (n === "Map" || n === "Set") return Array.from(o);
155
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
153
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
156
154
  }
157
155
 
158
- function _nonIterableRest$1() {
156
+ function _nonIterableRest$2() {
159
157
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
160
158
  }
161
159
 
162
160
  function _toArray(arr) {
163
- return _arrayWithHoles$1(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableRest$1();
161
+ return _arrayWithHoles$2(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableRest$2();
164
162
  }
165
163
 
166
- 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; }
167
-
168
- 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; }
169
-
164
+ 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; }
165
+ 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; }
170
166
  var consoleLogger = {
171
167
  type: 'logger',
172
168
  log: function log(args) {
@@ -182,16 +178,12 @@ var consoleLogger = {
182
178
  if (console && console[type]) console[type].apply(console, args);
183
179
  }
184
180
  };
185
-
186
181
  var Logger = function () {
187
182
  function Logger(concreteLogger) {
188
183
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
189
-
190
184
  _classCallCheck$2(this, Logger);
191
-
192
185
  this.init(concreteLogger, options);
193
186
  }
194
-
195
187
  _createClass$2(Logger, [{
196
188
  key: "init",
197
189
  value: function init(concreteLogger) {
@@ -212,7 +204,6 @@ var Logger = function () {
212
204
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
213
205
  args[_key] = arguments[_key];
214
206
  }
215
-
216
207
  return this.forward(args, 'log', '', true);
217
208
  }
218
209
  }, {
@@ -221,7 +212,6 @@ var Logger = function () {
221
212
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
222
213
  args[_key2] = arguments[_key2];
223
214
  }
224
-
225
215
  return this.forward(args, 'warn', '', true);
226
216
  }
227
217
  }, {
@@ -230,7 +220,6 @@ var Logger = function () {
230
220
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
231
221
  args[_key3] = arguments[_key3];
232
222
  }
233
-
234
223
  return this.forward(args, 'error', '');
235
224
  }
236
225
  }, {
@@ -239,7 +228,6 @@ var Logger = function () {
239
228
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
240
229
  args[_key4] = arguments[_key4];
241
230
  }
242
-
243
231
  return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);
244
232
  }
245
233
  }, {
@@ -252,32 +240,33 @@ var Logger = function () {
252
240
  }, {
253
241
  key: "create",
254
242
  value: function create(moduleName) {
255
- return new Logger(this.logger, _objectSpread$f(_objectSpread$f({}, {
243
+ return new Logger(this.logger, _objectSpread$6$1(_objectSpread$6$1({}, {
256
244
  prefix: "".concat(this.prefix, ":").concat(moduleName, ":")
257
245
  }), this.options));
258
246
  }
247
+ }, {
248
+ key: "clone",
249
+ value: function clone(options) {
250
+ options = options || this.options;
251
+ options.prefix = options.prefix || this.prefix;
252
+ return new Logger(this.logger, options);
253
+ }
259
254
  }]);
260
-
261
255
  return Logger;
262
256
  }();
263
-
264
257
  var baseLogger = new Logger();
265
258
 
266
259
  var EventEmitter = function () {
267
260
  function EventEmitter() {
268
261
  _classCallCheck$2(this, EventEmitter);
269
-
270
262
  this.observers = {};
271
263
  }
272
-
273
264
  _createClass$2(EventEmitter, [{
274
265
  key: "on",
275
266
  value: function on(events, listener) {
276
267
  var _this = this;
277
-
278
268
  events.split(' ').forEach(function (event) {
279
269
  _this.observers[event] = _this.observers[event] || [];
280
-
281
270
  _this.observers[event].push(listener);
282
271
  });
283
272
  return this;
@@ -286,12 +275,10 @@ var EventEmitter = function () {
286
275
  key: "off",
287
276
  value: function off(event, listener) {
288
277
  if (!this.observers[event]) return;
289
-
290
278
  if (!listener) {
291
279
  delete this.observers[event];
292
280
  return;
293
281
  }
294
-
295
282
  this.observers[event] = this.observers[event].filter(function (l) {
296
283
  return l !== listener;
297
284
  });
@@ -302,24 +289,20 @@ var EventEmitter = function () {
302
289
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
303
290
  args[_key - 1] = arguments[_key];
304
291
  }
305
-
306
292
  if (this.observers[event]) {
307
293
  var cloned = [].concat(this.observers[event]);
308
294
  cloned.forEach(function (observer) {
309
295
  observer.apply(void 0, args);
310
296
  });
311
297
  }
312
-
313
298
  if (this.observers['*']) {
314
299
  var _cloned = [].concat(this.observers['*']);
315
-
316
300
  _cloned.forEach(function (observer) {
317
301
  observer.apply(observer, [event].concat(args));
318
302
  });
319
303
  }
320
304
  }
321
305
  }]);
322
-
323
306
  return EventEmitter;
324
307
  }();
325
308
 
@@ -343,68 +326,56 @@ function copy(a, s, t) {
343
326
  if (s[m]) t[m] = s[m];
344
327
  });
345
328
  }
346
-
347
329
  function getLastOfPath(object, path, Empty) {
348
330
  function cleanKey(key) {
349
331
  return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;
350
332
  }
351
-
352
333
  function canNotTraverseDeeper() {
353
334
  return !object || typeof object === 'string';
354
335
  }
355
-
356
336
  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');
357
-
358
337
  while (stack.length > 1) {
359
338
  if (canNotTraverseDeeper()) return {};
360
339
  var key = cleanKey(stack.shift());
361
340
  if (!object[key] && Empty) object[key] = new Empty();
362
-
363
341
  if (Object.prototype.hasOwnProperty.call(object, key)) {
364
342
  object = object[key];
365
343
  } else {
366
344
  object = {};
367
345
  }
368
346
  }
369
-
370
347
  if (canNotTraverseDeeper()) return {};
371
348
  return {
372
349
  obj: object,
373
350
  k: cleanKey(stack.shift())
374
351
  };
375
352
  }
376
-
377
353
  function setPath(object, path, newValue) {
378
354
  var _getLastOfPath = getLastOfPath(object, path, Object),
379
- obj = _getLastOfPath.obj,
380
- k = _getLastOfPath.k;
381
-
355
+ obj = _getLastOfPath.obj,
356
+ k = _getLastOfPath.k;
382
357
  obj[k] = newValue;
383
358
  }
384
359
  function pushPath(object, path, newValue, concat) {
385
360
  var _getLastOfPath2 = getLastOfPath(object, path, Object),
386
- obj = _getLastOfPath2.obj,
387
- k = _getLastOfPath2.k;
388
-
361
+ obj = _getLastOfPath2.obj,
362
+ k = _getLastOfPath2.k;
389
363
  obj[k] = obj[k] || [];
390
364
  if (concat) obj[k] = obj[k].concat(newValue);
391
365
  if (!concat) obj[k].push(newValue);
392
366
  }
393
367
  function getPath(object, path) {
394
368
  var _getLastOfPath3 = getLastOfPath(object, path),
395
- obj = _getLastOfPath3.obj,
396
- k = _getLastOfPath3.k;
397
-
369
+ obj = _getLastOfPath3.obj,
370
+ k = _getLastOfPath3.k;
398
371
  if (!obj) return undefined;
399
372
  return obj[k];
400
373
  }
401
374
  function getPathWithDefaults(data, defaultData, key) {
402
375
  var value = getPath(data, key);
403
-
404
376
  if (value !== undefined) {
405
377
  return value;
406
378
  }
407
-
408
379
  return getPath(defaultData, key);
409
380
  }
410
381
  function deepExtend(target, source, overwrite) {
@@ -421,7 +392,6 @@ function deepExtend(target, source, overwrite) {
421
392
  }
422
393
  }
423
394
  }
424
-
425
395
  return target;
426
396
  }
427
397
  function regexEscape(str) {
@@ -441,10 +411,9 @@ function escape(data) {
441
411
  return _entityMap[s];
442
412
  });
443
413
  }
444
-
445
414
  return data;
446
415
  }
447
- var isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;
416
+ var isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;
448
417
  var chars = [' ', ',', '?', '!', ';'];
449
418
  function looksLikeObjectPath(key, nsSeparator, keySeparator) {
450
419
  nsSeparator = nsSeparator || '';
@@ -457,104 +426,77 @@ function looksLikeObjectPath(key, nsSeparator, keySeparator) {
457
426
  return c === '?' ? '\\?' : c;
458
427
  }).join('|'), ")"));
459
428
  var matched = !r.test(key);
460
-
461
429
  if (!matched) {
462
430
  var ki = key.indexOf(keySeparator);
463
-
464
431
  if (ki > 0 && !r.test(key.substring(0, ki))) {
465
432
  matched = true;
466
433
  }
467
434
  }
468
-
469
435
  return matched;
470
436
  }
471
-
472
- 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; }
473
-
474
- 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; }
475
-
476
- 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); }; }
477
-
478
- 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; } }
479
-
480
437
  function deepFind(obj, path) {
481
438
  var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';
482
439
  if (!obj) return undefined;
483
440
  if (obj[path]) return obj[path];
484
441
  var paths = path.split(keySeparator);
485
442
  var current = obj;
486
-
487
443
  for (var i = 0; i < paths.length; ++i) {
488
444
  if (!current) return undefined;
489
-
490
445
  if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {
491
446
  return undefined;
492
447
  }
493
-
494
448
  if (current[paths[i]] === undefined) {
495
449
  var j = 2;
496
450
  var p = paths.slice(i, i + j).join(keySeparator);
497
451
  var mix = current[p];
498
-
499
452
  while (mix === undefined && paths.length > i + j) {
500
453
  j++;
501
454
  p = paths.slice(i, i + j).join(keySeparator);
502
455
  mix = current[p];
503
456
  }
504
-
505
457
  if (mix === undefined) return undefined;
506
-
458
+ if (mix === null) return null;
507
459
  if (path.endsWith(p)) {
508
460
  if (typeof mix === 'string') return mix;
509
461
  if (p && typeof mix[p] === 'string') return mix[p];
510
462
  }
511
-
512
463
  var joinedPath = paths.slice(i + j).join(keySeparator);
513
464
  if (joinedPath) return deepFind(mix, joinedPath, keySeparator);
514
465
  return undefined;
515
466
  }
516
-
517
467
  current = current[paths[i]];
518
468
  }
519
-
520
469
  return current;
521
470
  }
522
471
 
472
+ 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; }
473
+ 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; }
474
+ 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); }; }
475
+ 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; } }
523
476
  var ResourceStore = function (_EventEmitter) {
524
477
  _inherits(ResourceStore, _EventEmitter);
525
-
526
- var _super = _createSuper(ResourceStore);
527
-
478
+ var _super = _createSuper$3(ResourceStore);
528
479
  function ResourceStore(data) {
529
480
  var _this;
530
-
531
481
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
532
482
  ns: ['translation'],
533
483
  defaultNS: 'translation'
534
484
  };
535
-
536
485
  _classCallCheck$2(this, ResourceStore);
537
-
538
486
  _this = _super.call(this);
539
-
540
487
  if (isIE10) {
541
488
  EventEmitter.call(_assertThisInitialized(_this));
542
489
  }
543
-
544
490
  _this.data = data || {};
545
491
  _this.options = options;
546
-
547
492
  if (_this.options.keySeparator === undefined) {
548
493
  _this.options.keySeparator = '.';
549
494
  }
550
-
551
495
  if (_this.options.ignoreJSONStructure === undefined) {
552
496
  _this.options.ignoreJSONStructure = true;
553
497
  }
554
-
555
498
  return _this;
556
499
  }
557
-
558
500
  _createClass$2(ResourceStore, [{
559
501
  key: "addNamespaces",
560
502
  value: function addNamespaces(ns) {
@@ -566,7 +508,6 @@ var ResourceStore = function (_EventEmitter) {
566
508
  key: "removeNamespaces",
567
509
  value: function removeNamespaces(ns) {
568
510
  var index = this.options.ns.indexOf(ns);
569
-
570
511
  if (index > -1) {
571
512
  this.options.ns.splice(index, 1);
572
513
  }
@@ -580,11 +521,9 @@ var ResourceStore = function (_EventEmitter) {
580
521
  var path = [lng, ns];
581
522
  if (key && typeof key !== 'string') path = path.concat(key);
582
523
  if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);
583
-
584
524
  if (lng.indexOf('.') > -1) {
585
525
  path = lng.split('.');
586
526
  }
587
-
588
527
  var result = getPath(this.data, path);
589
528
  if (result || !ignoreJSONStructure || typeof key !== 'string') return result;
590
529
  return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);
@@ -595,17 +534,14 @@ var ResourceStore = function (_EventEmitter) {
595
534
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
596
535
  silent: false
597
536
  };
598
- var keySeparator = this.options.keySeparator;
599
- if (keySeparator === undefined) keySeparator = '.';
537
+ var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
600
538
  var path = [lng, ns];
601
539
  if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);
602
-
603
540
  if (lng.indexOf('.') > -1) {
604
541
  path = lng.split('.');
605
542
  value = ns;
606
543
  ns = path[1];
607
544
  }
608
-
609
545
  this.addNamespaces(ns);
610
546
  setPath(this.data, path, value);
611
547
  if (!options.silent) this.emit('added', lng, ns, key, value);
@@ -616,13 +552,11 @@ var ResourceStore = function (_EventEmitter) {
616
552
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
617
553
  silent: false
618
554
  };
619
-
620
555
  for (var m in resources) {
621
556
  if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {
622
557
  silent: true
623
558
  });
624
559
  }
625
-
626
560
  if (!options.silent) this.emit('added', lng, ns, resources);
627
561
  }
628
562
  }, {
@@ -632,23 +566,19 @@ var ResourceStore = function (_EventEmitter) {
632
566
  silent: false
633
567
  };
634
568
  var path = [lng, ns];
635
-
636
569
  if (lng.indexOf('.') > -1) {
637
570
  path = lng.split('.');
638
571
  deep = resources;
639
572
  resources = ns;
640
573
  ns = path[1];
641
574
  }
642
-
643
575
  this.addNamespaces(ns);
644
576
  var pack = getPath(this.data, path) || {};
645
-
646
577
  if (deep) {
647
578
  deepExtend(pack, resources, overwrite);
648
579
  } else {
649
- pack = _objectSpread$1$1(_objectSpread$1$1({}, pack), resources);
580
+ pack = _objectSpread$5$1(_objectSpread$5$1({}, pack), resources);
650
581
  }
651
-
652
582
  setPath(this.data, path, pack);
653
583
  if (!options.silent) this.emit('added', lng, ns, resources);
654
584
  }
@@ -658,7 +588,6 @@ var ResourceStore = function (_EventEmitter) {
658
588
  if (this.hasResourceBundle(lng, ns)) {
659
589
  delete this.data[lng][ns];
660
590
  }
661
-
662
591
  this.removeNamespaces(ns);
663
592
  this.emit('removed', lng, ns);
664
593
  }
@@ -671,7 +600,7 @@ var ResourceStore = function (_EventEmitter) {
671
600
  key: "getResourceBundle",
672
601
  value: function getResourceBundle(lng, ns) {
673
602
  if (!ns) ns = this.options.defaultNS;
674
- if (this.options.compatibilityAPI === 'v1') return _objectSpread$1$1(_objectSpread$1$1({}, {}), this.getResource(lng, ns));
603
+ if (this.options.compatibilityAPI === 'v1') return _objectSpread$5$1(_objectSpread$5$1({}, {}), this.getResource(lng, ns));
675
604
  return this.getResource(lng, ns);
676
605
  }
677
606
  }, {
@@ -694,7 +623,6 @@ var ResourceStore = function (_EventEmitter) {
694
623
  return this.data;
695
624
  }
696
625
  }]);
697
-
698
626
  return ResourceStore;
699
627
  }(EventEmitter);
700
628
 
@@ -705,7 +633,6 @@ var postProcessor = {
705
633
  },
706
634
  handle: function handle(processors, value, key, options, translator) {
707
635
  var _this = this;
708
-
709
636
  processors.forEach(function (processor) {
710
637
  if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);
711
638
  });
@@ -713,44 +640,30 @@ var postProcessor = {
713
640
  }
714
641
  };
715
642
 
716
- 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; }
717
-
718
- 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; }
719
-
720
- 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); }; }
721
-
722
- 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; } }
643
+ 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; }
644
+ 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; }
645
+ 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); }; }
646
+ 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; } }
723
647
  var checkedLoadedFor = {};
724
-
725
648
  var Translator = function (_EventEmitter) {
726
649
  _inherits(Translator, _EventEmitter);
727
-
728
- var _super = _createSuper$1(Translator);
729
-
650
+ var _super = _createSuper$2(Translator);
730
651
  function Translator(services) {
731
652
  var _this;
732
-
733
653
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
734
-
735
654
  _classCallCheck$2(this, Translator);
736
-
737
655
  _this = _super.call(this);
738
-
739
656
  if (isIE10) {
740
657
  EventEmitter.call(_assertThisInitialized(_this));
741
658
  }
742
-
743
659
  copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));
744
660
  _this.options = options;
745
-
746
661
  if (_this.options.keySeparator === undefined) {
747
662
  _this.options.keySeparator = '.';
748
663
  }
749
-
750
664
  _this.logger = baseLogger.create('translator');
751
665
  return _this;
752
666
  }
753
-
754
667
  _createClass$2(Translator, [{
755
668
  key: "changeLanguage",
756
669
  value: function changeLanguage(lng) {
@@ -762,11 +675,9 @@ var Translator = function (_EventEmitter) {
762
675
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
763
676
  interpolation: {}
764
677
  };
765
-
766
678
  if (key === undefined || key === null) {
767
679
  return false;
768
680
  }
769
-
770
681
  var resolved = this.resolve(key, options);
771
682
  return resolved && resolved.res !== undefined;
772
683
  }
@@ -779,22 +690,18 @@ var Translator = function (_EventEmitter) {
779
690
  var namespaces = options.ns || this.options.defaultNS || [];
780
691
  var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;
781
692
  var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);
782
-
783
693
  if (wouldCheckForNsInKey && !seemsNaturalLanguage) {
784
694
  var m = key.match(this.interpolator.nestingRegexp);
785
-
786
695
  if (m && m.length > 0) {
787
696
  return {
788
697
  key: key,
789
698
  namespaces: namespaces
790
699
  };
791
700
  }
792
-
793
701
  var parts = key.split(nsSeparator);
794
702
  if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();
795
703
  key = parts.join(keySeparator);
796
704
  }
797
-
798
705
  if (typeof namespaces === 'string') namespaces = [namespaces];
799
706
  return {
800
707
  key: key,
@@ -805,45 +712,46 @@ var Translator = function (_EventEmitter) {
805
712
  key: "translate",
806
713
  value: function translate(keys, options, lastKey) {
807
714
  var _this2 = this;
808
-
809
- if (_typeof$2(options) !== 'object' && this.options.overloadTranslationOptionHandler) {
715
+ if (_typeof$3(options) !== 'object' && this.options.overloadTranslationOptionHandler) {
810
716
  options = this.options.overloadTranslationOptionHandler(arguments);
811
717
  }
812
-
718
+ if (_typeof$3(options) === 'object') options = _objectSpread$4$1({}, options);
813
719
  if (!options) options = {};
814
720
  if (keys === undefined || keys === null) return '';
815
721
  if (!Array.isArray(keys)) keys = [String(keys)];
816
722
  var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;
817
723
  var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
818
-
819
724
  var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),
820
- key = _this$extractFromKey.key,
821
- namespaces = _this$extractFromKey.namespaces;
822
-
725
+ key = _this$extractFromKey.key,
726
+ namespaces = _this$extractFromKey.namespaces;
823
727
  var namespace = namespaces[namespaces.length - 1];
824
728
  var lng = options.lng || this.language;
825
729
  var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
826
-
827
730
  if (lng && lng.toLowerCase() === 'cimode') {
828
731
  if (appendNamespaceToCIMode) {
829
732
  var nsSeparator = options.nsSeparator || this.options.nsSeparator;
830
-
831
733
  if (returnDetails) {
832
- resolved.res = "".concat(namespace).concat(nsSeparator).concat(key);
833
- return resolved;
734
+ return {
735
+ res: "".concat(namespace).concat(nsSeparator).concat(key),
736
+ usedKey: key,
737
+ exactUsedKey: key,
738
+ usedLng: lng,
739
+ usedNS: namespace
740
+ };
834
741
  }
835
-
836
742
  return "".concat(namespace).concat(nsSeparator).concat(key);
837
743
  }
838
-
839
744
  if (returnDetails) {
840
- resolved.res = key;
841
- return resolved;
745
+ return {
746
+ res: key,
747
+ usedKey: key,
748
+ exactUsedKey: key,
749
+ usedLng: lng,
750
+ usedNS: namespace
751
+ };
842
752
  }
843
-
844
753
  return key;
845
754
  }
846
-
847
755
  var resolved = this.resolve(keys, options);
848
756
  var res = resolved && resolved.res;
849
757
  var resUsedKey = resolved && resolved.usedKey || key;
@@ -853,41 +761,34 @@ var Translator = function (_EventEmitter) {
853
761
  var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;
854
762
  var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;
855
763
  var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';
856
-
857
764
  if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {
858
765
  if (!options.returnObjects && !this.options.returnObjects) {
859
766
  if (!this.options.returnedObjectHandler) {
860
767
  this.logger.warn('accessing an object - but returnObjects options is not enabled!');
861
768
  }
862
-
863
- var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2$1(_objectSpread$2$1({}, options), {}, {
769
+ var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4$1(_objectSpread$4$1({}, options), {}, {
864
770
  ns: namespaces
865
771
  })) : "key '".concat(key, " (").concat(this.language, ")' returned an object instead of string.");
866
-
867
772
  if (returnDetails) {
868
773
  resolved.res = r;
869
774
  return resolved;
870
775
  }
871
-
872
776
  return r;
873
777
  }
874
-
875
778
  if (keySeparator) {
876
779
  var resTypeIsArray = resType === '[object Array]';
877
780
  var copy = resTypeIsArray ? [] : {};
878
781
  var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;
879
-
880
782
  for (var m in res) {
881
783
  if (Object.prototype.hasOwnProperty.call(res, m)) {
882
784
  var deepKey = "".concat(newKeyToUse).concat(keySeparator).concat(m);
883
- copy[m] = this.translate(deepKey, _objectSpread$2$1(_objectSpread$2$1({}, options), {
785
+ copy[m] = this.translate(deepKey, _objectSpread$4$1(_objectSpread$4$1({}, options), {
884
786
  joinArrays: false,
885
787
  ns: namespaces
886
788
  }));
887
789
  if (copy[m] === deepKey) copy[m] = res[m];
888
790
  }
889
791
  }
890
-
891
792
  res = copy;
892
793
  }
893
794
  } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {
@@ -900,34 +801,27 @@ var Translator = function (_EventEmitter) {
900
801
  var hasDefaultValue = Translator.hasDefaultValue(options);
901
802
  var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';
902
803
  var defaultValue = options["defaultValue".concat(defaultValueSuffix)] || options.defaultValue;
903
-
904
804
  if (!this.isValidLookup(res) && hasDefaultValue) {
905
805
  usedDefault = true;
906
806
  res = defaultValue;
907
807
  }
908
-
909
808
  if (!this.isValidLookup(res)) {
910
809
  usedKey = true;
911
810
  res = key;
912
811
  }
913
-
914
812
  var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;
915
813
  var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;
916
814
  var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;
917
-
918
815
  if (usedKey || usedDefault || updateMissing) {
919
816
  this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);
920
-
921
817
  if (keySeparator) {
922
- var fk = this.resolve(key, _objectSpread$2$1(_objectSpread$2$1({}, options), {}, {
818
+ var fk = this.resolve(key, _objectSpread$4$1(_objectSpread$4$1({}, options), {}, {
923
819
  keySeparator: false
924
820
  }));
925
821
  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.');
926
822
  }
927
-
928
823
  var lngs = [];
929
824
  var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);
930
-
931
825
  if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {
932
826
  for (var i = 0; i < fallbackLngs.length; i++) {
933
827
  lngs.push(fallbackLngs[i]);
@@ -937,19 +831,15 @@ var Translator = function (_EventEmitter) {
937
831
  } else {
938
832
  lngs.push(options.lng || this.language);
939
833
  }
940
-
941
834
  var send = function send(l, k, specificDefaultValue) {
942
835
  var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;
943
-
944
836
  if (_this2.options.missingKeyHandler) {
945
837
  _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);
946
838
  } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {
947
839
  _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);
948
840
  }
949
-
950
841
  _this2.emit('missingKey', l, namespace, k, res);
951
842
  };
952
-
953
843
  if (this.options.saveMissing) {
954
844
  if (this.options.saveMissingPlurals && needsPluralHandling) {
955
845
  lngs.forEach(function (language) {
@@ -962,89 +852,74 @@ var Translator = function (_EventEmitter) {
962
852
  }
963
853
  }
964
854
  }
965
-
966
855
  res = this.extendTranslation(res, keys, options, resolved, lastKey);
967
856
  if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = "".concat(namespace, ":").concat(key);
968
-
969
857
  if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {
970
858
  if (this.options.compatibilityAPI !== 'v1') {
971
- res = this.options.parseMissingKeyHandler(key, usedDefault ? res : undefined);
859
+ res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? "".concat(namespace, ":").concat(key) : key, usedDefault ? res : undefined);
972
860
  } else {
973
861
  res = this.options.parseMissingKeyHandler(res);
974
862
  }
975
863
  }
976
864
  }
977
-
978
865
  if (returnDetails) {
979
866
  resolved.res = res;
980
867
  return resolved;
981
868
  }
982
-
983
869
  return res;
984
870
  }
985
871
  }, {
986
872
  key: "extendTranslation",
987
873
  value: function extendTranslation(res, key, options, resolved, lastKey) {
988
874
  var _this3 = this;
989
-
990
875
  if (this.i18nFormat && this.i18nFormat.parse) {
991
- res = this.i18nFormat.parse(res, _objectSpread$2$1(_objectSpread$2$1({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {
876
+ res = this.i18nFormat.parse(res, _objectSpread$4$1(_objectSpread$4$1({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {
992
877
  resolved: resolved
993
878
  });
994
879
  } else if (!options.skipInterpolation) {
995
- if (options.interpolation) this.interpolator.init(_objectSpread$2$1(_objectSpread$2$1({}, options), {
996
- interpolation: _objectSpread$2$1(_objectSpread$2$1({}, this.options.interpolation), options.interpolation)
880
+ if (options.interpolation) this.interpolator.init(_objectSpread$4$1(_objectSpread$4$1({}, options), {
881
+ interpolation: _objectSpread$4$1(_objectSpread$4$1({}, this.options.interpolation), options.interpolation)
997
882
  }));
998
883
  var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);
999
884
  var nestBef;
1000
-
1001
885
  if (skipOnVariables) {
1002
886
  var nb = res.match(this.interpolator.nestingRegexp);
1003
887
  nestBef = nb && nb.length;
1004
888
  }
1005
-
1006
889
  var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;
1007
- if (this.options.interpolation.defaultVariables) data = _objectSpread$2$1(_objectSpread$2$1({}, this.options.interpolation.defaultVariables), data);
890
+ if (this.options.interpolation.defaultVariables) data = _objectSpread$4$1(_objectSpread$4$1({}, this.options.interpolation.defaultVariables), data);
1008
891
  res = this.interpolator.interpolate(res, data, options.lng || this.language, options);
1009
-
1010
892
  if (skipOnVariables) {
1011
893
  var na = res.match(this.interpolator.nestingRegexp);
1012
894
  var nestAft = na && na.length;
1013
895
  if (nestBef < nestAft) options.nest = false;
1014
896
  }
1015
-
897
+ if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;
1016
898
  if (options.nest !== false) res = this.interpolator.nest(res, function () {
1017
899
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1018
900
  args[_key] = arguments[_key];
1019
901
  }
1020
-
1021
902
  if (lastKey && lastKey[0] === args[0] && !options.context) {
1022
903
  _this3.logger.warn("It seems you are nesting recursively key: ".concat(args[0], " in key: ").concat(key[0]));
1023
-
1024
904
  return null;
1025
905
  }
1026
-
1027
906
  return _this3.translate.apply(_this3, args.concat([key]));
1028
907
  }, options);
1029
908
  if (options.interpolation) this.interpolator.reset();
1030
909
  }
1031
-
1032
910
  var postProcess = options.postProcess || this.options.postProcess;
1033
911
  var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;
1034
-
1035
912
  if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {
1036
- res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2$1({
913
+ res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4$1({
1037
914
  i18nResolved: resolved
1038
915
  }, options) : options, this);
1039
916
  }
1040
-
1041
917
  return res;
1042
918
  }
1043
919
  }, {
1044
920
  key: "resolve",
1045
921
  value: function resolve(keys) {
1046
922
  var _this4 = this;
1047
-
1048
923
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1049
924
  var found;
1050
925
  var usedKey;
@@ -1054,65 +929,50 @@ var Translator = function (_EventEmitter) {
1054
929
  if (typeof keys === 'string') keys = [keys];
1055
930
  keys.forEach(function (k) {
1056
931
  if (_this4.isValidLookup(found)) return;
1057
-
1058
932
  var extracted = _this4.extractFromKey(k, options);
1059
-
1060
933
  var key = extracted.key;
1061
934
  usedKey = key;
1062
935
  var namespaces = extracted.namespaces;
1063
936
  if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);
1064
937
  var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';
1065
-
1066
938
  var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();
1067
-
1068
939
  var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';
1069
940
  var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);
1070
941
  namespaces.forEach(function (ns) {
1071
942
  if (_this4.isValidLookup(found)) return;
1072
943
  usedNS = ns;
1073
-
1074
944
  if (!checkedLoadedFor["".concat(codes[0], "-").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {
1075
945
  checkedLoadedFor["".concat(codes[0], "-").concat(ns)] = true;
1076
-
1077
946
  _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!!!');
1078
947
  }
1079
-
1080
948
  codes.forEach(function (code) {
1081
949
  if (_this4.isValidLookup(found)) return;
1082
950
  usedLng = code;
1083
951
  var finalKeys = [key];
1084
-
1085
952
  if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {
1086
953
  _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);
1087
954
  } else {
1088
955
  var pluralSuffix;
1089
956
  if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);
1090
- var zeroSuffix = '_zero';
1091
-
957
+ var zeroSuffix = "".concat(_this4.options.pluralSeparator, "zero");
1092
958
  if (needsPluralHandling) {
1093
959
  finalKeys.push(key + pluralSuffix);
1094
-
1095
960
  if (needsZeroSuffixLookup) {
1096
961
  finalKeys.push(key + zeroSuffix);
1097
962
  }
1098
963
  }
1099
-
1100
964
  if (needsContextHandling) {
1101
965
  var contextKey = "".concat(key).concat(_this4.options.contextSeparator).concat(options.context);
1102
966
  finalKeys.push(contextKey);
1103
-
1104
967
  if (needsPluralHandling) {
1105
968
  finalKeys.push(contextKey + pluralSuffix);
1106
-
1107
969
  if (needsZeroSuffixLookup) {
1108
970
  finalKeys.push(contextKey + zeroSuffix);
1109
971
  }
1110
972
  }
1111
973
  }
1112
974
  }
1113
-
1114
975
  var possibleKey;
1115
-
1116
976
  while (possibleKey = finalKeys.pop()) {
1117
977
  if (!_this4.isValidLookup(found)) {
1118
978
  exactUsedKey = possibleKey;
@@ -1146,33 +1006,27 @@ var Translator = function (_EventEmitter) {
1146
1006
  key: "hasDefaultValue",
1147
1007
  value: function hasDefaultValue(options) {
1148
1008
  var prefix = 'defaultValue';
1149
-
1150
1009
  for (var option in options) {
1151
1010
  if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {
1152
1011
  return true;
1153
1012
  }
1154
1013
  }
1155
-
1156
1014
  return false;
1157
1015
  }
1158
1016
  }]);
1159
-
1160
1017
  return Translator;
1161
1018
  }(EventEmitter);
1162
1019
 
1163
1020
  function capitalize(string) {
1164
1021
  return string.charAt(0).toUpperCase() + string.slice(1);
1165
1022
  }
1166
-
1167
1023
  var LanguageUtil = function () {
1168
1024
  function LanguageUtil(options) {
1169
1025
  _classCallCheck$2(this, LanguageUtil);
1170
-
1171
1026
  this.options = options;
1172
1027
  this.supportedLngs = this.options.supportedLngs || false;
1173
1028
  this.logger = baseLogger.create('languageUtils');
1174
1029
  }
1175
-
1176
1030
  _createClass$2(LanguageUtil, [{
1177
1031
  key: "getScriptPartFromCode",
1178
1032
  value: function getScriptPartFromCode(code) {
@@ -1196,7 +1050,6 @@ var LanguageUtil = function () {
1196
1050
  if (typeof code === 'string' && code.indexOf('-') > -1) {
1197
1051
  var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];
1198
1052
  var p = code.split('-');
1199
-
1200
1053
  if (this.options.lowerCaseLng) {
1201
1054
  p = p.map(function (part) {
1202
1055
  return part.toLowerCase();
@@ -1212,10 +1065,8 @@ var LanguageUtil = function () {
1212
1065
  if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
1213
1066
  if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());
1214
1067
  }
1215
-
1216
1068
  return p.join('-');
1217
1069
  }
1218
-
1219
1070
  return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;
1220
1071
  }
1221
1072
  }, {
@@ -1224,37 +1075,31 @@ var LanguageUtil = function () {
1224
1075
  if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {
1225
1076
  code = this.getLanguagePartFromCode(code);
1226
1077
  }
1227
-
1228
1078
  return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;
1229
1079
  }
1230
1080
  }, {
1231
1081
  key: "getBestMatchFromCodes",
1232
1082
  value: function getBestMatchFromCodes(codes) {
1233
1083
  var _this = this;
1234
-
1235
1084
  if (!codes) return null;
1236
1085
  var found;
1237
1086
  codes.forEach(function (code) {
1238
1087
  if (found) return;
1239
-
1240
1088
  var cleanedLng = _this.formatLanguageCode(code);
1241
-
1242
1089
  if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;
1243
1090
  });
1244
-
1245
1091
  if (!found && this.options.supportedLngs) {
1246
1092
  codes.forEach(function (code) {
1247
1093
  if (found) return;
1248
-
1249
1094
  var lngOnly = _this.getLanguagePartFromCode(code);
1250
-
1251
1095
  if (_this.isSupportedCode(lngOnly)) return found = lngOnly;
1252
1096
  found = _this.options.supportedLngs.find(function (supportedLng) {
1097
+ if (supportedLng === lngOnly) return supportedLng;
1098
+ if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;
1253
1099
  if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;
1254
1100
  });
1255
1101
  });
1256
1102
  }
1257
-
1258
1103
  if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];
1259
1104
  return found;
1260
1105
  }
@@ -1277,20 +1122,16 @@ var LanguageUtil = function () {
1277
1122
  key: "toResolveHierarchy",
1278
1123
  value: function toResolveHierarchy(code, fallbackCode) {
1279
1124
  var _this2 = this;
1280
-
1281
1125
  var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);
1282
1126
  var codes = [];
1283
-
1284
1127
  var addCode = function addCode(c) {
1285
1128
  if (!c) return;
1286
-
1287
1129
  if (_this2.isSupportedCode(c)) {
1288
1130
  codes.push(c);
1289
1131
  } else {
1290
1132
  _this2.logger.warn("rejecting language code not found in supportedLngs: ".concat(c));
1291
1133
  }
1292
1134
  };
1293
-
1294
1135
  if (typeof code === 'string' && code.indexOf('-') > -1) {
1295
1136
  if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));
1296
1137
  if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));
@@ -1298,14 +1139,12 @@ var LanguageUtil = function () {
1298
1139
  } else if (typeof code === 'string') {
1299
1140
  addCode(this.formatLanguageCode(code));
1300
1141
  }
1301
-
1302
1142
  fallbackCodes.forEach(function (fc) {
1303
1143
  if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));
1304
1144
  });
1305
1145
  return codes;
1306
1146
  }
1307
1147
  }]);
1308
-
1309
1148
  return LanguageUtil;
1310
1149
  }();
1311
1150
 
@@ -1479,7 +1318,6 @@ var suffixesOrder = {
1479
1318
  many: 4,
1480
1319
  other: 5
1481
1320
  };
1482
-
1483
1321
  function createRules() {
1484
1322
  var rules = {};
1485
1323
  sets.forEach(function (set) {
@@ -1492,25 +1330,19 @@ function createRules() {
1492
1330
  });
1493
1331
  return rules;
1494
1332
  }
1495
-
1496
1333
  var PluralResolver = function () {
1497
1334
  function PluralResolver(languageUtils) {
1498
1335
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1499
-
1500
1336
  _classCallCheck$2(this, PluralResolver);
1501
-
1502
1337
  this.languageUtils = languageUtils;
1503
1338
  this.options = options;
1504
1339
  this.logger = baseLogger.create('pluralResolver');
1505
-
1506
1340
  if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {
1507
1341
  this.options.compatibilityJSON = 'v3';
1508
1342
  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.');
1509
1343
  }
1510
-
1511
1344
  this.rules = createRules();
1512
1345
  }
1513
-
1514
1346
  _createClass$2(PluralResolver, [{
1515
1347
  key: "addRule",
1516
1348
  value: function addRule(lng, obj) {
@@ -1520,7 +1352,6 @@ var PluralResolver = function () {
1520
1352
  key: "getRule",
1521
1353
  value: function getRule(code) {
1522
1354
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1523
-
1524
1355
  if (this.shouldUseIntlApi()) {
1525
1356
  try {
1526
1357
  return new Intl.PluralRules(code, {
@@ -1530,7 +1361,6 @@ var PluralResolver = function () {
1530
1361
  return;
1531
1362
  }
1532
1363
  }
1533
-
1534
1364
  return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];
1535
1365
  }
1536
1366
  }, {
@@ -1538,11 +1368,9 @@ var PluralResolver = function () {
1538
1368
  value: function needsPlural(code) {
1539
1369
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1540
1370
  var rule = this.getRule(code, options);
1541
-
1542
1371
  if (this.shouldUseIntlApi()) {
1543
1372
  return rule && rule.resolvedOptions().pluralCategories.length > 1;
1544
1373
  }
1545
-
1546
1374
  return rule && rule.numbers.length > 1;
1547
1375
  }
1548
1376
  }, {
@@ -1557,14 +1385,11 @@ var PluralResolver = function () {
1557
1385
  key: "getSuffixes",
1558
1386
  value: function getSuffixes(code) {
1559
1387
  var _this = this;
1560
-
1561
1388
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1562
1389
  var rule = this.getRule(code, options);
1563
-
1564
1390
  if (!rule) {
1565
1391
  return [];
1566
1392
  }
1567
-
1568
1393
  if (this.shouldUseIntlApi()) {
1569
1394
  return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {
1570
1395
  return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];
@@ -1572,7 +1397,6 @@ var PluralResolver = function () {
1572
1397
  return "".concat(_this.options.prepend).concat(pluralCategory);
1573
1398
  });
1574
1399
  }
1575
-
1576
1400
  return rule.numbers.map(function (number) {
1577
1401
  return _this.getSuffix(code, number, options);
1578
1402
  });
@@ -1582,15 +1406,12 @@ var PluralResolver = function () {
1582
1406
  value: function getSuffix(code, count) {
1583
1407
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1584
1408
  var rule = this.getRule(code, options);
1585
-
1586
1409
  if (rule) {
1587
1410
  if (this.shouldUseIntlApi()) {
1588
1411
  return "".concat(this.options.prepend).concat(rule.select(count));
1589
1412
  }
1590
-
1591
1413
  return this.getSuffixRetroCompatible(rule, count);
1592
1414
  }
1593
-
1594
1415
  this.logger.warn("no plural rule found for: ".concat(code));
1595
1416
  return '';
1596
1417
  }
@@ -1598,10 +1419,8 @@ var PluralResolver = function () {
1598
1419
  key: "getSuffixRetroCompatible",
1599
1420
  value: function getSuffixRetroCompatible(rule, count) {
1600
1421
  var _this2 = this;
1601
-
1602
1422
  var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));
1603
1423
  var suffix = rule.numbers[idx];
1604
-
1605
1424
  if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
1606
1425
  if (suffix === 2) {
1607
1426
  suffix = 'plural';
@@ -1609,11 +1428,9 @@ var PluralResolver = function () {
1609
1428
  suffix = '';
1610
1429
  }
1611
1430
  }
1612
-
1613
1431
  var returnSuffix = function returnSuffix() {
1614
1432
  return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();
1615
1433
  };
1616
-
1617
1434
  if (this.options.compatibilityJSON === 'v1') {
1618
1435
  if (suffix === 1) return '';
1619
1436
  if (typeof suffix === 'number') return "_plural_".concat(suffix.toString());
@@ -1623,7 +1440,6 @@ var PluralResolver = function () {
1623
1440
  } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
1624
1441
  return returnSuffix();
1625
1442
  }
1626
-
1627
1443
  return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();
1628
1444
  }
1629
1445
  }, {
@@ -1632,30 +1448,32 @@ var PluralResolver = function () {
1632
1448
  return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);
1633
1449
  }
1634
1450
  }]);
1635
-
1636
1451
  return PluralResolver;
1637
1452
  }();
1638
1453
 
1639
- 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; }
1640
-
1641
- 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; }
1642
-
1454
+ 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; }
1455
+ 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; }
1456
+ function deepFindWithDefaults(data, defaultData, key) {
1457
+ var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';
1458
+ var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
1459
+ var path = getPathWithDefaults(data, defaultData, key);
1460
+ if (!path && ignoreJSONStructure && typeof key === 'string') {
1461
+ path = deepFind(data, key, keySeparator);
1462
+ if (path === undefined) path = deepFind(defaultData, key, keySeparator);
1463
+ }
1464
+ return path;
1465
+ }
1643
1466
  var Interpolator = function () {
1644
1467
  function Interpolator() {
1645
1468
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1646
-
1647
1469
  _classCallCheck$2(this, Interpolator);
1648
-
1649
1470
  this.logger = baseLogger.create('interpolator');
1650
1471
  this.options = options;
1651
-
1652
1472
  this.format = options.interpolation && options.interpolation.format || function (value) {
1653
1473
  return value;
1654
1474
  };
1655
-
1656
1475
  this.init(options);
1657
1476
  }
1658
-
1659
1477
  _createClass$2(Interpolator, [{
1660
1478
  key: "init",
1661
1479
  value: function init() {
@@ -1698,32 +1516,27 @@ var Interpolator = function () {
1698
1516
  key: "interpolate",
1699
1517
  value: function interpolate(str, data, lng, options) {
1700
1518
  var _this = this;
1701
-
1702
1519
  var match;
1703
1520
  var value;
1704
1521
  var replaces;
1705
1522
  var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};
1706
-
1707
1523
  function regexSafe(val) {
1708
1524
  return val.replace(/\$/g, '$$$$');
1709
1525
  }
1710
-
1711
1526
  var handleFormat = function handleFormat(key) {
1712
1527
  if (key.indexOf(_this.formatSeparator) < 0) {
1713
- var path = getPathWithDefaults(data, defaultData, key);
1528
+ var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);
1714
1529
  return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3$1(_objectSpread$3$1(_objectSpread$3$1({}, options), data), {}, {
1715
1530
  interpolationkey: key
1716
1531
  })) : path;
1717
1532
  }
1718
-
1719
1533
  var p = key.split(_this.formatSeparator);
1720
1534
  var k = p.shift().trim();
1721
1535
  var f = p.join(_this.formatSeparator).trim();
1722
- return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3$1(_objectSpread$3$1(_objectSpread$3$1({}, options), data), {}, {
1536
+ 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), {}, {
1723
1537
  interpolationkey: k
1724
1538
  }));
1725
1539
  };
1726
-
1727
1540
  this.resetRegExp();
1728
1541
  var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;
1729
1542
  var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;
@@ -1740,41 +1553,34 @@ var Interpolator = function () {
1740
1553
  }];
1741
1554
  todos.forEach(function (todo) {
1742
1555
  replaces = 0;
1743
-
1744
1556
  while (match = todo.regex.exec(str)) {
1745
1557
  var matchedVar = match[1].trim();
1746
1558
  value = handleFormat(matchedVar);
1747
-
1748
1559
  if (value === undefined) {
1749
1560
  if (typeof missingInterpolationHandler === 'function') {
1750
1561
  var temp = missingInterpolationHandler(str, match, options);
1751
1562
  value = typeof temp === 'string' ? temp : '';
1752
- } else if (options && options.hasOwnProperty(matchedVar)) {
1563
+ } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {
1753
1564
  value = '';
1754
1565
  } else if (skipOnVariables) {
1755
1566
  value = match[0];
1756
1567
  continue;
1757
1568
  } else {
1758
1569
  _this.logger.warn("missed to pass in variable ".concat(matchedVar, " for interpolating ").concat(str));
1759
-
1760
1570
  value = '';
1761
1571
  }
1762
1572
  } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {
1763
1573
  value = makeString(value);
1764
1574
  }
1765
-
1766
1575
  var safeValue = todo.safeValue(value);
1767
1576
  str = str.replace(match[0], safeValue);
1768
-
1769
1577
  if (skipOnVariables) {
1770
- todo.regex.lastIndex += safeValue.length;
1578
+ todo.regex.lastIndex += value.length;
1771
1579
  todo.regex.lastIndex -= match[0].length;
1772
1580
  } else {
1773
1581
  todo.regex.lastIndex = 0;
1774
1582
  }
1775
-
1776
1583
  replaces++;
1777
-
1778
1584
  if (replaces >= _this.maxReplaces) {
1779
1585
  break;
1780
1586
  }
@@ -1786,16 +1592,10 @@ var Interpolator = function () {
1786
1592
  key: "nest",
1787
1593
  value: function nest(str, fc) {
1788
1594
  var _this2 = this;
1789
-
1790
1595
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1791
1596
  var match;
1792
1597
  var value;
1793
-
1794
- var clonedOptions = _objectSpread$3$1({}, options);
1795
-
1796
- clonedOptions.applyPostProcessor = false;
1797
- delete clonedOptions.defaultValue;
1798
-
1598
+ var clonedOptions;
1799
1599
  function handleHasOptions(key, inheritedOptions) {
1800
1600
  var sep = this.nestingOptionsSeparator;
1801
1601
  if (key.indexOf(sep) < 0) return key;
@@ -1803,8 +1603,11 @@ var Interpolator = function () {
1803
1603
  var optionsString = "{".concat(c[1]);
1804
1604
  key = c[0];
1805
1605
  optionsString = this.interpolate(optionsString, clonedOptions);
1806
- optionsString = optionsString.replace(/'/g, '"');
1807
-
1606
+ var matchedSingleQuotes = optionsString.match(/'/g);
1607
+ var matchedDoubleQuotes = optionsString.match(/"/g);
1608
+ if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {
1609
+ optionsString = optionsString.replace(/'/g, '"');
1610
+ }
1808
1611
  try {
1809
1612
  clonedOptions = JSON.parse(optionsString);
1810
1613
  if (inheritedOptions) clonedOptions = _objectSpread$3$1(_objectSpread$3$1({}, inheritedOptions), clonedOptions);
@@ -1812,15 +1615,16 @@ var Interpolator = function () {
1812
1615
  this.logger.warn("failed parsing options string in nesting for key ".concat(key), e);
1813
1616
  return "".concat(key).concat(sep).concat(optionsString);
1814
1617
  }
1815
-
1816
1618
  delete clonedOptions.defaultValue;
1817
1619
  return key;
1818
1620
  }
1819
-
1820
1621
  while (match = this.nestingRegexp.exec(str)) {
1821
1622
  var formatters = [];
1623
+ clonedOptions = _objectSpread$3$1({}, options);
1624
+ clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;
1625
+ clonedOptions.applyPostProcessor = false;
1626
+ delete clonedOptions.defaultValue;
1822
1627
  var doReduce = false;
1823
-
1824
1628
  if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {
1825
1629
  var r = match[1].split(this.formatSeparator).map(function (elem) {
1826
1630
  return elem.trim();
@@ -1829,16 +1633,13 @@ var Interpolator = function () {
1829
1633
  formatters = r;
1830
1634
  doReduce = true;
1831
1635
  }
1832
-
1833
1636
  value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);
1834
1637
  if (value && match[0] === str && typeof value !== 'string') return value;
1835
1638
  if (typeof value !== 'string') value = makeString(value);
1836
-
1837
1639
  if (!value) {
1838
1640
  this.logger.warn("missed to resolve ".concat(match[1], " for nesting ").concat(str));
1839
1641
  value = '';
1840
1642
  }
1841
-
1842
1643
  if (doReduce) {
1843
1644
  value = formatters.reduce(function (v, f) {
1844
1645
  return _this2.format(v, f, options.lng, _objectSpread$3$1(_objectSpread$3$1({}, options), {}, {
@@ -1846,31 +1647,24 @@ var Interpolator = function () {
1846
1647
  }));
1847
1648
  }, value.trim());
1848
1649
  }
1849
-
1850
1650
  str = str.replace(match[0], value);
1851
1651
  this.regexp.lastIndex = 0;
1852
1652
  }
1853
-
1854
1653
  return str;
1855
1654
  }
1856
1655
  }]);
1857
-
1858
1656
  return Interpolator;
1859
1657
  }();
1860
1658
 
1861
- 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; }
1862
-
1863
- 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; }
1864
-
1659
+ 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; }
1660
+ 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; }
1865
1661
  function parseFormatStr(formatStr) {
1866
1662
  var formatName = formatStr.toLowerCase().trim();
1867
1663
  var formatOptions = {};
1868
-
1869
1664
  if (formatStr.indexOf('(') > -1) {
1870
1665
  var p = formatStr.split('(');
1871
1666
  formatName = p[0].toLowerCase().trim();
1872
1667
  var optStr = p[1].substring(0, p[1].length - 1);
1873
-
1874
1668
  if (formatName === 'currency' && optStr.indexOf(':') < 0) {
1875
1669
  if (!formatOptions.currency) formatOptions.currency = optStr.trim();
1876
1670
  } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {
@@ -1879,57 +1673,77 @@ function parseFormatStr(formatStr) {
1879
1673
  var opts = optStr.split(';');
1880
1674
  opts.forEach(function (opt) {
1881
1675
  if (!opt) return;
1882
-
1883
1676
  var _opt$split = opt.split(':'),
1884
- _opt$split2 = _toArray(_opt$split),
1885
- key = _opt$split2[0],
1886
- rest = _opt$split2.slice(1);
1887
-
1888
- var val = rest.join(':');
1889
- if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();
1890
- if (val.trim() === 'false') formatOptions[key.trim()] = false;
1891
- if (val.trim() === 'true') formatOptions[key.trim()] = true;
1892
- if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);
1677
+ _opt$split2 = _toArray(_opt$split),
1678
+ key = _opt$split2[0],
1679
+ rest = _opt$split2.slice(1);
1680
+ var val = rest.join(':').trim().replace(/^'+|'+$/g, '');
1681
+ if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;
1682
+ if (val === 'false') formatOptions[key.trim()] = false;
1683
+ if (val === 'true') formatOptions[key.trim()] = true;
1684
+ if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);
1893
1685
  });
1894
1686
  }
1895
1687
  }
1896
-
1897
1688
  return {
1898
1689
  formatName: formatName,
1899
1690
  formatOptions: formatOptions
1900
1691
  };
1901
1692
  }
1902
-
1693
+ function createCachedFormatter(fn) {
1694
+ var cache = {};
1695
+ return function invokeFormatter(val, lng, options) {
1696
+ var key = lng + JSON.stringify(options);
1697
+ var formatter = cache[key];
1698
+ if (!formatter) {
1699
+ formatter = fn(lng, options);
1700
+ cache[key] = formatter;
1701
+ }
1702
+ return formatter(val);
1703
+ };
1704
+ }
1903
1705
  var Formatter = function () {
1904
1706
  function Formatter() {
1905
1707
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1906
-
1907
1708
  _classCallCheck$2(this, Formatter);
1908
-
1909
1709
  this.logger = baseLogger.create('formatter');
1910
1710
  this.options = options;
1911
1711
  this.formats = {
1912
- number: function number(val, lng, options) {
1913
- return new Intl.NumberFormat(lng, options).format(val);
1914
- },
1915
- currency: function currency(val, lng, options) {
1916
- return new Intl.NumberFormat(lng, _objectSpread$4$1(_objectSpread$4$1({}, options), {}, {
1712
+ number: createCachedFormatter(function (lng, opt) {
1713
+ var formatter = new Intl.NumberFormat(lng, _objectSpread$2$1({}, opt));
1714
+ return function (val) {
1715
+ return formatter.format(val);
1716
+ };
1717
+ }),
1718
+ currency: createCachedFormatter(function (lng, opt) {
1719
+ var formatter = new Intl.NumberFormat(lng, _objectSpread$2$1(_objectSpread$2$1({}, opt), {}, {
1917
1720
  style: 'currency'
1918
- })).format(val);
1919
- },
1920
- datetime: function datetime(val, lng, options) {
1921
- return new Intl.DateTimeFormat(lng, _objectSpread$4$1({}, options)).format(val);
1922
- },
1923
- relativetime: function relativetime(val, lng, options) {
1924
- return new Intl.RelativeTimeFormat(lng, _objectSpread$4$1({}, options)).format(val, options.range || 'day');
1925
- },
1926
- list: function list(val, lng, options) {
1927
- return new Intl.ListFormat(lng, _objectSpread$4$1({}, options)).format(val);
1928
- }
1721
+ }));
1722
+ return function (val) {
1723
+ return formatter.format(val);
1724
+ };
1725
+ }),
1726
+ datetime: createCachedFormatter(function (lng, opt) {
1727
+ var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2$1({}, opt));
1728
+ return function (val) {
1729
+ return formatter.format(val);
1730
+ };
1731
+ }),
1732
+ relativetime: createCachedFormatter(function (lng, opt) {
1733
+ var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2$1({}, opt));
1734
+ return function (val) {
1735
+ return formatter.format(val, opt.range || 'day');
1736
+ };
1737
+ }),
1738
+ list: createCachedFormatter(function (lng, opt) {
1739
+ var formatter = new Intl.ListFormat(lng, _objectSpread$2$1({}, opt));
1740
+ return function (val) {
1741
+ return formatter.format(val);
1742
+ };
1743
+ })
1929
1744
  };
1930
1745
  this.init(options);
1931
1746
  }
1932
-
1933
1747
  _createClass$2(Formatter, [{
1934
1748
  key: "init",
1935
1749
  value: function init(services) {
@@ -1944,137 +1758,121 @@ var Formatter = function () {
1944
1758
  value: function add(name, fc) {
1945
1759
  this.formats[name.toLowerCase().trim()] = fc;
1946
1760
  }
1761
+ }, {
1762
+ key: "addCached",
1763
+ value: function addCached(name, fc) {
1764
+ this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);
1765
+ }
1947
1766
  }, {
1948
1767
  key: "format",
1949
- value: function format(value, _format, lng, options) {
1768
+ value: function format(value, _format, lng) {
1950
1769
  var _this = this;
1951
-
1770
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1952
1771
  var formats = _format.split(this.formatSeparator);
1953
-
1954
1772
  var result = formats.reduce(function (mem, f) {
1955
1773
  var _parseFormatStr = parseFormatStr(f),
1956
- formatName = _parseFormatStr.formatName,
1957
- formatOptions = _parseFormatStr.formatOptions;
1958
-
1774
+ formatName = _parseFormatStr.formatName,
1775
+ formatOptions = _parseFormatStr.formatOptions;
1959
1776
  if (_this.formats[formatName]) {
1960
1777
  var formatted = mem;
1961
-
1962
1778
  try {
1963
1779
  var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};
1964
1780
  var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;
1965
- formatted = _this.formats[formatName](mem, l, _objectSpread$4$1(_objectSpread$4$1(_objectSpread$4$1({}, formatOptions), options), valOptions));
1781
+ formatted = _this.formats[formatName](mem, l, _objectSpread$2$1(_objectSpread$2$1(_objectSpread$2$1({}, formatOptions), options), valOptions));
1966
1782
  } catch (error) {
1967
1783
  _this.logger.warn(error);
1968
1784
  }
1969
-
1970
1785
  return formatted;
1971
1786
  } else {
1972
1787
  _this.logger.warn("there was no format function for ".concat(formatName));
1973
1788
  }
1974
-
1975
1789
  return mem;
1976
1790
  }, value);
1977
1791
  return result;
1978
1792
  }
1979
1793
  }]);
1980
-
1981
1794
  return Formatter;
1982
1795
  }();
1983
1796
 
1984
- 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; }
1985
-
1986
- 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; }
1987
-
1988
- 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); }; }
1989
-
1990
- 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; } }
1991
-
1992
- function remove(arr, what) {
1993
- var found = arr.indexOf(what);
1994
-
1995
- while (found !== -1) {
1996
- arr.splice(found, 1);
1997
- found = arr.indexOf(what);
1797
+ 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; }
1798
+ 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; }
1799
+ 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); }; }
1800
+ 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; } }
1801
+ function removePending(q, name) {
1802
+ if (q.pending[name] !== undefined) {
1803
+ delete q.pending[name];
1804
+ q.pendingCount--;
1998
1805
  }
1999
1806
  }
2000
-
2001
1807
  var Connector = function (_EventEmitter) {
2002
1808
  _inherits(Connector, _EventEmitter);
2003
-
2004
- var _super = _createSuper$2(Connector);
2005
-
1809
+ var _super = _createSuper$1(Connector);
2006
1810
  function Connector(backend, store, services) {
2007
1811
  var _this;
2008
-
2009
1812
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
2010
-
2011
1813
  _classCallCheck$2(this, Connector);
2012
-
2013
1814
  _this = _super.call(this);
2014
-
2015
1815
  if (isIE10) {
2016
1816
  EventEmitter.call(_assertThisInitialized(_this));
2017
1817
  }
2018
-
2019
1818
  _this.backend = backend;
2020
1819
  _this.store = store;
2021
1820
  _this.services = services;
2022
1821
  _this.languageUtils = services.languageUtils;
2023
1822
  _this.options = options;
2024
1823
  _this.logger = baseLogger.create('backendConnector');
1824
+ _this.waitingReads = [];
1825
+ _this.maxParallelReads = options.maxParallelReads || 10;
1826
+ _this.readingCalls = 0;
1827
+ _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;
1828
+ _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;
2025
1829
  _this.state = {};
2026
1830
  _this.queue = [];
2027
-
2028
1831
  if (_this.backend && _this.backend.init) {
2029
1832
  _this.backend.init(services, options.backend, options);
2030
1833
  }
2031
-
2032
1834
  return _this;
2033
1835
  }
2034
-
2035
1836
  _createClass$2(Connector, [{
2036
1837
  key: "queueLoad",
2037
1838
  value: function queueLoad(languages, namespaces, options, callback) {
2038
1839
  var _this2 = this;
2039
-
2040
- var toLoad = [];
2041
- var pending = [];
2042
- var toLoadLanguages = [];
2043
- var toLoadNamespaces = [];
1840
+ var toLoad = {};
1841
+ var pending = {};
1842
+ var toLoadLanguages = {};
1843
+ var toLoadNamespaces = {};
2044
1844
  languages.forEach(function (lng) {
2045
1845
  var hasAllNamespaces = true;
2046
1846
  namespaces.forEach(function (ns) {
2047
1847
  var name = "".concat(lng, "|").concat(ns);
2048
-
2049
1848
  if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {
2050
1849
  _this2.state[name] = 2;
2051
1850
  } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {
2052
- if (pending.indexOf(name) < 0) pending.push(name);
1851
+ if (pending[name] === undefined) pending[name] = true;
2053
1852
  } else {
2054
1853
  _this2.state[name] = 1;
2055
1854
  hasAllNamespaces = false;
2056
- if (pending.indexOf(name) < 0) pending.push(name);
2057
- if (toLoad.indexOf(name) < 0) toLoad.push(name);
2058
- if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);
1855
+ if (pending[name] === undefined) pending[name] = true;
1856
+ if (toLoad[name] === undefined) toLoad[name] = true;
1857
+ if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;
2059
1858
  }
2060
1859
  });
2061
- if (!hasAllNamespaces) toLoadLanguages.push(lng);
1860
+ if (!hasAllNamespaces) toLoadLanguages[lng] = true;
2062
1861
  });
2063
-
2064
- if (toLoad.length || pending.length) {
1862
+ if (Object.keys(toLoad).length || Object.keys(pending).length) {
2065
1863
  this.queue.push({
2066
1864
  pending: pending,
1865
+ pendingCount: Object.keys(pending).length,
2067
1866
  loaded: {},
2068
1867
  errors: [],
2069
1868
  callback: callback
2070
1869
  });
2071
1870
  }
2072
-
2073
1871
  return {
2074
- toLoad: toLoad,
2075
- pending: pending,
2076
- toLoadLanguages: toLoadLanguages,
2077
- toLoadNamespaces: toLoadNamespaces
1872
+ toLoad: Object.keys(toLoad),
1873
+ pending: Object.keys(pending),
1874
+ toLoadLanguages: Object.keys(toLoadLanguages),
1875
+ toLoadNamespaces: Object.keys(toLoadNamespaces)
2078
1876
  };
2079
1877
  }
2080
1878
  }, {
@@ -2084,30 +1882,26 @@ var Connector = function (_EventEmitter) {
2084
1882
  var lng = s[0];
2085
1883
  var ns = s[1];
2086
1884
  if (err) this.emit('failedLoading', lng, ns, err);
2087
-
2088
1885
  if (data) {
2089
1886
  this.store.addResourceBundle(lng, ns, data);
2090
1887
  }
2091
-
2092
1888
  this.state[name] = err ? -1 : 2;
2093
1889
  var loaded = {};
2094
1890
  this.queue.forEach(function (q) {
2095
1891
  pushPath(q.loaded, [lng], ns);
2096
- remove(q.pending, name);
1892
+ removePending(q, name);
2097
1893
  if (err) q.errors.push(err);
2098
-
2099
- if (q.pending.length === 0 && !q.done) {
1894
+ if (q.pendingCount === 0 && !q.done) {
2100
1895
  Object.keys(q.loaded).forEach(function (l) {
2101
- if (!loaded[l]) loaded[l] = [];
2102
-
2103
- if (q.loaded[l].length) {
2104
- q.loaded[l].forEach(function (ns) {
2105
- if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);
1896
+ if (!loaded[l]) loaded[l] = {};
1897
+ var loadedKeys = q.loaded[l];
1898
+ if (loadedKeys.length) {
1899
+ loadedKeys.forEach(function (n) {
1900
+ if (loaded[l][n] === undefined) loaded[l][n] = true;
2106
1901
  });
2107
1902
  }
2108
1903
  });
2109
1904
  q.done = true;
2110
-
2111
1905
  if (q.errors.length) {
2112
1906
  q.callback(q.errors);
2113
1907
  } else {
@@ -2124,44 +1918,71 @@ var Connector = function (_EventEmitter) {
2124
1918
  key: "read",
2125
1919
  value: function read(lng, ns, fcName) {
2126
1920
  var _this3 = this;
2127
-
2128
1921
  var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2129
- var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;
1922
+ var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;
2130
1923
  var callback = arguments.length > 5 ? arguments[5] : undefined;
2131
1924
  if (!lng.length) return callback(null, {});
2132
- return this.backend[fcName](lng, ns, function (err, data) {
2133
- if (err && data && tried < 5) {
1925
+ if (this.readingCalls >= this.maxParallelReads) {
1926
+ this.waitingReads.push({
1927
+ lng: lng,
1928
+ ns: ns,
1929
+ fcName: fcName,
1930
+ tried: tried,
1931
+ wait: wait,
1932
+ callback: callback
1933
+ });
1934
+ return;
1935
+ }
1936
+ this.readingCalls++;
1937
+ var resolver = function resolver(err, data) {
1938
+ _this3.readingCalls--;
1939
+ if (_this3.waitingReads.length > 0) {
1940
+ var next = _this3.waitingReads.shift();
1941
+ _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);
1942
+ }
1943
+ if (err && data && tried < _this3.maxRetries) {
2134
1944
  setTimeout(function () {
2135
1945
  _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);
2136
1946
  }, wait);
2137
1947
  return;
2138
1948
  }
2139
-
2140
1949
  callback(err, data);
2141
- });
1950
+ };
1951
+ var fc = this.backend[fcName].bind(this.backend);
1952
+ if (fc.length === 2) {
1953
+ try {
1954
+ var r = fc(lng, ns);
1955
+ if (r && typeof r.then === 'function') {
1956
+ r.then(function (data) {
1957
+ return resolver(null, data);
1958
+ })["catch"](resolver);
1959
+ } else {
1960
+ resolver(null, r);
1961
+ }
1962
+ } catch (err) {
1963
+ resolver(err);
1964
+ }
1965
+ return;
1966
+ }
1967
+ return fc(lng, ns, resolver);
2142
1968
  }
2143
1969
  }, {
2144
1970
  key: "prepareLoading",
2145
1971
  value: function prepareLoading(languages, namespaces) {
2146
1972
  var _this4 = this;
2147
-
2148
1973
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2149
1974
  var callback = arguments.length > 3 ? arguments[3] : undefined;
2150
-
2151
1975
  if (!this.backend) {
2152
1976
  this.logger.warn('No backend was added via i18next.use. Will not load resources.');
2153
1977
  return callback && callback();
2154
1978
  }
2155
-
2156
1979
  if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);
2157
1980
  if (typeof namespaces === 'string') namespaces = [namespaces];
2158
1981
  var toLoad = this.queueLoad(languages, namespaces, options, callback);
2159
-
2160
1982
  if (!toLoad.toLoad.length) {
2161
1983
  if (!toLoad.pending.length) callback();
2162
1984
  return null;
2163
1985
  }
2164
-
2165
1986
  toLoad.toLoad.forEach(function (name) {
2166
1987
  _this4.loadOne(name);
2167
1988
  });
@@ -2182,7 +2003,6 @@ var Connector = function (_EventEmitter) {
2182
2003
  key: "loadOne",
2183
2004
  value: function loadOne(name) {
2184
2005
  var _this5 = this;
2185
-
2186
2006
  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
2187
2007
  var s = name.split('|');
2188
2008
  var lng = s[0];
@@ -2190,7 +2010,6 @@ var Connector = function (_EventEmitter) {
2190
2010
  this.read(lng, ns, 'read', undefined, undefined, function (err, data) {
2191
2011
  if (err) _this5.logger.warn("".concat(prefix, "loading namespace ").concat(ns, " for language ").concat(lng, " failed"), err);
2192
2012
  if (!err && data) _this5.logger.log("".concat(prefix, "loaded namespace ").concat(ns, " for language ").concat(lng), data);
2193
-
2194
2013
  _this5.loaded(name, err, data);
2195
2014
  });
2196
2015
  }
@@ -2198,25 +2017,43 @@ var Connector = function (_EventEmitter) {
2198
2017
  key: "saveMissing",
2199
2018
  value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {
2200
2019
  var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
2201
-
2020
+ var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};
2202
2021
  if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {
2203
2022
  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!!!');
2204
2023
  return;
2205
2024
  }
2206
-
2207
2025
  if (key === undefined || key === null || key === '') return;
2208
-
2209
2026
  if (this.backend && this.backend.create) {
2210
- this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5$1(_objectSpread$5$1({}, options), {}, {
2027
+ var opts = _objectSpread$1$1(_objectSpread$1$1({}, options), {}, {
2211
2028
  isUpdate: isUpdate
2212
- }));
2029
+ });
2030
+ var fc = this.backend.create.bind(this.backend);
2031
+ if (fc.length < 6) {
2032
+ try {
2033
+ var r;
2034
+ if (fc.length === 5) {
2035
+ r = fc(languages, namespace, key, fallbackValue, opts);
2036
+ } else {
2037
+ r = fc(languages, namespace, key, fallbackValue);
2038
+ }
2039
+ if (r && typeof r.then === 'function') {
2040
+ r.then(function (data) {
2041
+ return clb(null, data);
2042
+ })["catch"](clb);
2043
+ } else {
2044
+ clb(null, r);
2045
+ }
2046
+ } catch (err) {
2047
+ clb(err);
2048
+ }
2049
+ } else {
2050
+ fc(languages, namespace, key, fallbackValue, clb, opts);
2051
+ }
2213
2052
  }
2214
-
2215
2053
  if (!languages || !languages[0]) return;
2216
2054
  this.store.addResource(languages[0], namespace, key, fallbackValue);
2217
2055
  }
2218
2056
  }]);
2219
-
2220
2057
  return Connector;
2221
2058
  }(EventEmitter);
2222
2059
 
@@ -2256,17 +2093,15 @@ function get() {
2256
2093
  appendNamespaceToCIMode: false,
2257
2094
  overloadTranslationOptionHandler: function handle(args) {
2258
2095
  var ret = {};
2259
- if (_typeof$2(args[1]) === 'object') ret = args[1];
2096
+ if (_typeof$3(args[1]) === 'object') ret = args[1];
2260
2097
  if (typeof args[1] === 'string') ret.defaultValue = args[1];
2261
2098
  if (typeof args[2] === 'string') ret.tDescription = args[2];
2262
-
2263
- if (_typeof$2(args[2]) === 'object' || _typeof$2(args[3]) === 'object') {
2099
+ if (_typeof$3(args[2]) === 'object' || _typeof$3(args[3]) === 'object') {
2264
2100
  var options = args[3] || args[2];
2265
2101
  Object.keys(options).forEach(function (key) {
2266
2102
  ret[key] = options[key];
2267
2103
  });
2268
2104
  }
2269
-
2270
2105
  return ret;
2271
2106
  },
2272
2107
  interpolation: {
@@ -2290,24 +2125,17 @@ function transformOptions(options) {
2290
2125
  if (typeof options.ns === 'string') options.ns = [options.ns];
2291
2126
  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];
2292
2127
  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];
2293
-
2294
2128
  if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {
2295
2129
  options.supportedLngs = options.supportedLngs.concat(['cimode']);
2296
2130
  }
2297
-
2298
2131
  return options;
2299
2132
  }
2300
2133
 
2301
- 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; }
2302
-
2303
- 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; }
2304
-
2305
- 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); }; }
2306
-
2307
- 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; } }
2308
-
2134
+ 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; }
2135
+ 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; }
2136
+ 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); }; }
2137
+ 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; } }
2309
2138
  function noop() {}
2310
-
2311
2139
  function bindMemberFunctions(inst) {
2312
2140
  var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
2313
2141
  mems.forEach(function (mem) {
@@ -2316,26 +2144,18 @@ function bindMemberFunctions(inst) {
2316
2144
  }
2317
2145
  });
2318
2146
  }
2319
-
2320
2147
  var I18n = function (_EventEmitter) {
2321
2148
  _inherits(I18n, _EventEmitter);
2322
-
2323
- var _super = _createSuper$3(I18n);
2324
-
2149
+ var _super = _createSuper(I18n);
2325
2150
  function I18n() {
2326
2151
  var _this;
2327
-
2328
2152
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2329
2153
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2330
-
2331
2154
  _classCallCheck$2(this, I18n);
2332
-
2333
2155
  _this = _super.call(this);
2334
-
2335
2156
  if (isIE10) {
2336
2157
  EventEmitter.call(_assertThisInitialized(_this));
2337
2158
  }
2338
-
2339
2159
  _this.options = transformOptions(options);
2340
2160
  _this.services = {};
2341
2161
  _this.logger = baseLogger;
@@ -2343,79 +2163,62 @@ var I18n = function (_EventEmitter) {
2343
2163
  external: []
2344
2164
  };
2345
2165
  bindMemberFunctions(_assertThisInitialized(_this));
2346
-
2347
2166
  if (callback && !_this.isInitialized && !options.isClone) {
2348
2167
  if (!_this.options.initImmediate) {
2349
2168
  _this.init(options, callback);
2350
-
2351
2169
  return _possibleConstructorReturn(_this, _assertThisInitialized(_this));
2352
2170
  }
2353
-
2354
2171
  setTimeout(function () {
2355
2172
  _this.init(options, callback);
2356
2173
  }, 0);
2357
2174
  }
2358
-
2359
2175
  return _this;
2360
2176
  }
2361
-
2362
2177
  _createClass$2(I18n, [{
2363
2178
  key: "init",
2364
2179
  value: function init() {
2365
2180
  var _this2 = this;
2366
-
2367
2181
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2368
2182
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2369
-
2370
2183
  if (typeof options === 'function') {
2371
2184
  callback = options;
2372
2185
  options = {};
2373
2186
  }
2374
-
2375
- if (!options.defaultNS && options.ns) {
2187
+ if (!options.defaultNS && options.defaultNS !== false && options.ns) {
2376
2188
  if (typeof options.ns === 'string') {
2377
2189
  options.defaultNS = options.ns;
2378
2190
  } else if (options.ns.indexOf('translation') < 0) {
2379
2191
  options.defaultNS = options.ns[0];
2380
2192
  }
2381
2193
  }
2382
-
2383
2194
  var defOpts = get();
2384
- this.options = _objectSpread$6$1(_objectSpread$6$1(_objectSpread$6$1({}, defOpts), this.options), transformOptions(options));
2385
-
2195
+ this.options = _objectSpread$g(_objectSpread$g(_objectSpread$g({}, defOpts), this.options), transformOptions(options));
2386
2196
  if (this.options.compatibilityAPI !== 'v1') {
2387
- this.options.interpolation = _objectSpread$6$1(_objectSpread$6$1({}, defOpts.interpolation), this.options.interpolation);
2197
+ this.options.interpolation = _objectSpread$g(_objectSpread$g({}, defOpts.interpolation), this.options.interpolation);
2388
2198
  }
2389
-
2390
2199
  if (options.keySeparator !== undefined) {
2391
2200
  this.options.userDefinedKeySeparator = options.keySeparator;
2392
2201
  }
2393
-
2394
2202
  if (options.nsSeparator !== undefined) {
2395
2203
  this.options.userDefinedNsSeparator = options.nsSeparator;
2396
2204
  }
2397
-
2398
2205
  function createClassOnDemand(ClassOrObject) {
2399
2206
  if (!ClassOrObject) return null;
2400
2207
  if (typeof ClassOrObject === 'function') return new ClassOrObject();
2401
2208
  return ClassOrObject;
2402
2209
  }
2403
-
2404
2210
  if (!this.options.isClone) {
2405
2211
  if (this.modules.logger) {
2406
2212
  baseLogger.init(createClassOnDemand(this.modules.logger), this.options);
2407
2213
  } else {
2408
2214
  baseLogger.init(null, this.options);
2409
2215
  }
2410
-
2411
2216
  var formatter;
2412
-
2413
2217
  if (this.modules.formatter) {
2414
2218
  formatter = this.modules.formatter;
2415
2219
  } else if (typeof Intl !== 'undefined') {
2416
2220
  formatter = Formatter;
2417
2221
  }
2418
-
2419
2222
  var lu = new LanguageUtil(this.options);
2420
2223
  this.store = new ResourceStore(this.options.resources, this.options);
2421
2224
  var s = this.services;
@@ -2427,13 +2230,11 @@ var I18n = function (_EventEmitter) {
2427
2230
  compatibilityJSON: this.options.compatibilityJSON,
2428
2231
  simplifyPluralSuffix: this.options.simplifyPluralSuffix
2429
2232
  });
2430
-
2431
2233
  if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {
2432
2234
  s.formatter = createClassOnDemand(formatter);
2433
2235
  s.formatter.init(s, this.options);
2434
2236
  this.options.interpolation.format = s.formatter.format.bind(s.formatter);
2435
2237
  }
2436
-
2437
2238
  s.interpolator = new Interpolator(this.options);
2438
2239
  s.utils = {
2439
2240
  hasLoadedNamespace: this.hasLoadedNamespace.bind(this)
@@ -2443,50 +2244,40 @@ var I18n = function (_EventEmitter) {
2443
2244
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2444
2245
  args[_key - 1] = arguments[_key];
2445
2246
  }
2446
-
2447
2247
  _this2.emit.apply(_this2, [event].concat(args));
2448
2248
  });
2449
-
2450
2249
  if (this.modules.languageDetector) {
2451
2250
  s.languageDetector = createClassOnDemand(this.modules.languageDetector);
2452
- s.languageDetector.init(s, this.options.detection, this.options);
2251
+ if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);
2453
2252
  }
2454
-
2455
2253
  if (this.modules.i18nFormat) {
2456
2254
  s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);
2457
2255
  if (s.i18nFormat.init) s.i18nFormat.init(this);
2458
2256
  }
2459
-
2460
2257
  this.translator = new Translator(this.services, this.options);
2461
2258
  this.translator.on('*', function (event) {
2462
2259
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
2463
2260
  args[_key2 - 1] = arguments[_key2];
2464
2261
  }
2465
-
2466
2262
  _this2.emit.apply(_this2, [event].concat(args));
2467
2263
  });
2468
2264
  this.modules.external.forEach(function (m) {
2469
2265
  if (m.init) m.init(_this2);
2470
2266
  });
2471
2267
  }
2472
-
2473
2268
  this.format = this.options.interpolation.format;
2474
2269
  if (!callback) callback = noop;
2475
-
2476
2270
  if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
2477
2271
  var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2478
2272
  if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];
2479
2273
  }
2480
-
2481
2274
  if (!this.services.languageDetector && !this.options.lng) {
2482
2275
  this.logger.warn('init: no languageDetector is used and no lng is defined');
2483
2276
  }
2484
-
2485
2277
  var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];
2486
2278
  storeApi.forEach(function (fcName) {
2487
2279
  _this2[fcName] = function () {
2488
2280
  var _this2$store;
2489
-
2490
2281
  return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);
2491
2282
  };
2492
2283
  });
@@ -2494,63 +2285,48 @@ var I18n = function (_EventEmitter) {
2494
2285
  storeApiChained.forEach(function (fcName) {
2495
2286
  _this2[fcName] = function () {
2496
2287
  var _this2$store2;
2497
-
2498
2288
  (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);
2499
-
2500
2289
  return _this2;
2501
2290
  };
2502
2291
  });
2503
2292
  var deferred = defer();
2504
-
2505
2293
  var load = function load() {
2506
2294
  var finish = function finish(err, t) {
2507
2295
  if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');
2508
2296
  _this2.isInitialized = true;
2509
2297
  if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);
2510
-
2511
2298
  _this2.emit('initialized', _this2.options);
2512
-
2513
2299
  deferred.resolve(t);
2514
2300
  callback(err, t);
2515
2301
  };
2516
-
2517
2302
  if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));
2518
-
2519
2303
  _this2.changeLanguage(_this2.options.lng, finish);
2520
2304
  };
2521
-
2522
2305
  if (this.options.resources || !this.options.initImmediate) {
2523
2306
  load();
2524
2307
  } else {
2525
2308
  setTimeout(load, 0);
2526
2309
  }
2527
-
2528
2310
  return deferred;
2529
2311
  }
2530
2312
  }, {
2531
2313
  key: "loadResources",
2532
2314
  value: function loadResources(language) {
2533
2315
  var _this3 = this;
2534
-
2535
2316
  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
2536
2317
  var usedCallback = callback;
2537
2318
  var usedLng = typeof language === 'string' ? language : this.language;
2538
2319
  if (typeof language === 'function') usedCallback = language;
2539
-
2540
2320
  if (!this.options.resources || this.options.partialBundledLanguages) {
2541
2321
  if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();
2542
2322
  var toLoad = [];
2543
-
2544
2323
  var append = function append(lng) {
2545
2324
  if (!lng) return;
2546
-
2547
2325
  var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);
2548
-
2549
2326
  lngs.forEach(function (l) {
2550
2327
  if (toLoad.indexOf(l) < 0) toLoad.push(l);
2551
2328
  });
2552
2329
  };
2553
-
2554
2330
  if (!usedLng) {
2555
2331
  var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2556
2332
  fallbacks.forEach(function (l) {
@@ -2559,13 +2335,11 @@ var I18n = function (_EventEmitter) {
2559
2335
  } else {
2560
2336
  append(usedLng);
2561
2337
  }
2562
-
2563
2338
  if (this.options.preload) {
2564
2339
  this.options.preload.forEach(function (l) {
2565
2340
  return append(l);
2566
2341
  });
2567
2342
  }
2568
-
2569
2343
  this.services.backendConnector.load(toLoad, this.options.ns, function (e) {
2570
2344
  if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);
2571
2345
  usedCallback(e);
@@ -2592,35 +2366,27 @@ var I18n = function (_EventEmitter) {
2592
2366
  value: function use(module) {
2593
2367
  if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');
2594
2368
  if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');
2595
-
2596
2369
  if (module.type === 'backend') {
2597
2370
  this.modules.backend = module;
2598
2371
  }
2599
-
2600
2372
  if (module.type === 'logger' || module.log && module.warn && module.error) {
2601
2373
  this.modules.logger = module;
2602
2374
  }
2603
-
2604
2375
  if (module.type === 'languageDetector') {
2605
2376
  this.modules.languageDetector = module;
2606
2377
  }
2607
-
2608
2378
  if (module.type === 'i18nFormat') {
2609
2379
  this.modules.i18nFormat = module;
2610
2380
  }
2611
-
2612
2381
  if (module.type === 'postProcessor') {
2613
2382
  postProcessor.addPostProcessor(module);
2614
2383
  }
2615
-
2616
2384
  if (module.type === 'formatter') {
2617
2385
  this.modules.formatter = module;
2618
2386
  }
2619
-
2620
2387
  if (module.type === '3rdParty') {
2621
2388
  this.modules.external.push(module);
2622
2389
  }
2623
-
2624
2390
  return this;
2625
2391
  }
2626
2392
  }, {
@@ -2628,11 +2394,9 @@ var I18n = function (_EventEmitter) {
2628
2394
  value: function setResolvedLanguage(l) {
2629
2395
  if (!l || !this.languages) return;
2630
2396
  if (['cimode', 'dev'].indexOf(l) > -1) return;
2631
-
2632
2397
  for (var li = 0; li < this.languages.length; li++) {
2633
2398
  var lngInLngs = this.languages[li];
2634
2399
  if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;
2635
-
2636
2400
  if (this.store.hasLanguageSomeTranslations(lngInLngs)) {
2637
2401
  this.resolvedLanguage = lngInLngs;
2638
2402
  break;
@@ -2643,34 +2407,25 @@ var I18n = function (_EventEmitter) {
2643
2407
  key: "changeLanguage",
2644
2408
  value: function changeLanguage(lng, callback) {
2645
2409
  var _this4 = this;
2646
-
2647
2410
  this.isLanguageChangingTo = lng;
2648
2411
  var deferred = defer();
2649
2412
  this.emit('languageChanging', lng);
2650
-
2651
2413
  var setLngProps = function setLngProps(l) {
2652
2414
  _this4.language = l;
2653
2415
  _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
2654
2416
  _this4.resolvedLanguage = undefined;
2655
-
2656
2417
  _this4.setResolvedLanguage(l);
2657
2418
  };
2658
-
2659
2419
  var done = function done(err, l) {
2660
2420
  if (l) {
2661
2421
  setLngProps(l);
2662
-
2663
2422
  _this4.translator.changeLanguage(l);
2664
-
2665
2423
  _this4.isLanguageChangingTo = undefined;
2666
-
2667
2424
  _this4.emit('languageChanged', l);
2668
-
2669
2425
  _this4.logger.log('languageChanged', l);
2670
2426
  } else {
2671
2427
  _this4.isLanguageChangingTo = undefined;
2672
2428
  }
2673
-
2674
2429
  deferred.resolve(function () {
2675
2430
  return _this4.t.apply(_this4, arguments);
2676
2431
  });
@@ -2678,67 +2433,67 @@ var I18n = function (_EventEmitter) {
2678
2433
  return _this4.t.apply(_this4, arguments);
2679
2434
  });
2680
2435
  };
2681
-
2682
2436
  var setLng = function setLng(lngs) {
2683
2437
  if (!lng && !lngs && _this4.services.languageDetector) lngs = [];
2684
2438
  var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);
2685
-
2686
2439
  if (l) {
2687
2440
  if (!_this4.language) {
2688
2441
  setLngProps(l);
2689
2442
  }
2690
-
2691
2443
  if (!_this4.translator.language) _this4.translator.changeLanguage(l);
2692
- if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);
2444
+ if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);
2693
2445
  }
2694
-
2695
2446
  _this4.loadResources(l, function (err) {
2696
2447
  done(err, l);
2697
2448
  });
2698
2449
  };
2699
-
2700
2450
  if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {
2701
2451
  setLng(this.services.languageDetector.detect());
2702
2452
  } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {
2703
- this.services.languageDetector.detect(setLng);
2453
+ if (this.services.languageDetector.detect.length === 0) {
2454
+ this.services.languageDetector.detect().then(setLng);
2455
+ } else {
2456
+ this.services.languageDetector.detect(setLng);
2457
+ }
2704
2458
  } else {
2705
2459
  setLng(lng);
2706
2460
  }
2707
-
2708
2461
  return deferred;
2709
2462
  }
2710
2463
  }, {
2711
2464
  key: "getFixedT",
2712
2465
  value: function getFixedT(lng, ns, keyPrefix) {
2713
2466
  var _this5 = this;
2714
-
2715
2467
  var fixedT = function fixedT(key, opts) {
2716
2468
  var options;
2717
-
2718
- if (_typeof$2(opts) !== 'object') {
2469
+ if (_typeof$3(opts) !== 'object') {
2719
2470
  for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
2720
2471
  rest[_key3 - 2] = arguments[_key3];
2721
2472
  }
2722
-
2723
2473
  options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));
2724
2474
  } else {
2725
- options = _objectSpread$6$1({}, opts);
2475
+ options = _objectSpread$g({}, opts);
2726
2476
  }
2727
-
2728
2477
  options.lng = options.lng || fixedT.lng;
2729
2478
  options.lngs = options.lngs || fixedT.lngs;
2730
2479
  options.ns = options.ns || fixedT.ns;
2480
+ options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;
2731
2481
  var keySeparator = _this5.options.keySeparator || '.';
2732
- var resultKey = keyPrefix ? "".concat(keyPrefix).concat(keySeparator).concat(key) : key;
2482
+ var resultKey;
2483
+ if (options.keyPrefix && Array.isArray(key)) {
2484
+ resultKey = key.map(function (k) {
2485
+ return "".concat(options.keyPrefix).concat(keySeparator).concat(k);
2486
+ });
2487
+ } else {
2488
+ resultKey = options.keyPrefix ? "".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;
2489
+ }
2733
2490
  return _this5.t(resultKey, options);
2734
2491
  };
2735
-
2736
2492
  if (typeof lng === 'string') {
2737
2493
  fixedT.lng = lng;
2738
2494
  } else {
2739
2495
  fixedT.lngs = lng;
2740
2496
  }
2741
-
2742
2497
  fixedT.ns = ns;
2743
2498
  fixedT.keyPrefix = keyPrefix;
2744
2499
  return fixedT;
@@ -2747,14 +2502,12 @@ var I18n = function (_EventEmitter) {
2747
2502
  key: "t",
2748
2503
  value: function t() {
2749
2504
  var _this$translator;
2750
-
2751
2505
  return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);
2752
2506
  }
2753
2507
  }, {
2754
2508
  key: "exists",
2755
2509
  value: function exists() {
2756
2510
  var _this$translator2;
2757
-
2758
2511
  return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);
2759
2512
  }
2760
2513
  }, {
@@ -2766,35 +2519,27 @@ var I18n = function (_EventEmitter) {
2766
2519
  key: "hasLoadedNamespace",
2767
2520
  value: function hasLoadedNamespace(ns) {
2768
2521
  var _this6 = this;
2769
-
2770
2522
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2771
-
2772
2523
  if (!this.isInitialized) {
2773
2524
  this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);
2774
2525
  return false;
2775
2526
  }
2776
-
2777
2527
  if (!this.languages || !this.languages.length) {
2778
2528
  this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);
2779
2529
  return false;
2780
2530
  }
2781
-
2782
- var lng = this.resolvedLanguage || this.languages[0];
2531
+ var lng = options.lng || this.resolvedLanguage || this.languages[0];
2783
2532
  var fallbackLng = this.options ? this.options.fallbackLng : false;
2784
2533
  var lastLng = this.languages[this.languages.length - 1];
2785
2534
  if (lng.toLowerCase() === 'cimode') return true;
2786
-
2787
2535
  var loadNotPending = function loadNotPending(l, n) {
2788
2536
  var loadState = _this6.services.backendConnector.state["".concat(l, "|").concat(n)];
2789
-
2790
2537
  return loadState === -1 || loadState === 2;
2791
2538
  };
2792
-
2793
2539
  if (options.precheck) {
2794
2540
  var preResult = options.precheck(this, loadNotPending);
2795
2541
  if (preResult !== undefined) return preResult;
2796
2542
  }
2797
-
2798
2543
  if (this.hasResourceBundle(lng, ns)) return true;
2799
2544
  if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;
2800
2545
  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
@@ -2804,14 +2549,11 @@ var I18n = function (_EventEmitter) {
2804
2549
  key: "loadNamespaces",
2805
2550
  value: function loadNamespaces(ns, callback) {
2806
2551
  var _this7 = this;
2807
-
2808
2552
  var deferred = defer();
2809
-
2810
2553
  if (!this.options.ns) {
2811
- callback && callback();
2554
+ if (callback) callback();
2812
2555
  return Promise.resolve();
2813
2556
  }
2814
-
2815
2557
  if (typeof ns === 'string') ns = [ns];
2816
2558
  ns.forEach(function (n) {
2817
2559
  if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);
@@ -2831,12 +2573,10 @@ var I18n = function (_EventEmitter) {
2831
2573
  var newLngs = lngs.filter(function (lng) {
2832
2574
  return preloaded.indexOf(lng) < 0;
2833
2575
  });
2834
-
2835
2576
  if (!newLngs.length) {
2836
2577
  if (callback) callback();
2837
2578
  return Promise.resolve();
2838
2579
  }
2839
-
2840
2580
  this.options.preload = preloaded.concat(newLngs);
2841
2581
  this.loadResources(function (err) {
2842
2582
  deferred.resolve();
@@ -2850,26 +2590,27 @@ var I18n = function (_EventEmitter) {
2850
2590
  if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);
2851
2591
  if (!lng) return 'rtl';
2852
2592
  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'];
2853
- return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
2593
+ var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());
2594
+ return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
2854
2595
  }
2855
2596
  }, {
2856
2597
  key: "cloneInstance",
2857
2598
  value: function cloneInstance() {
2858
2599
  var _this8 = this;
2859
-
2860
2600
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2861
2601
  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
2862
-
2863
- var mergedOptions = _objectSpread$6$1(_objectSpread$6$1(_objectSpread$6$1({}, this.options), options), {
2602
+ var mergedOptions = _objectSpread$g(_objectSpread$g(_objectSpread$g({}, this.options), options), {
2864
2603
  isClone: true
2865
2604
  });
2866
-
2867
2605
  var clone = new I18n(mergedOptions);
2606
+ if (options.debug !== undefined || options.prefix !== undefined) {
2607
+ clone.logger = clone.logger.clone(options);
2608
+ }
2868
2609
  var membersToCopy = ['store', 'services', 'language'];
2869
2610
  membersToCopy.forEach(function (m) {
2870
2611
  clone[m] = _this8[m];
2871
2612
  });
2872
- clone.services = _objectSpread$6$1({}, this.services);
2613
+ clone.services = _objectSpread$g({}, this.services);
2873
2614
  clone.services.utils = {
2874
2615
  hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)
2875
2616
  };
@@ -2878,7 +2619,6 @@ var I18n = function (_EventEmitter) {
2878
2619
  for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
2879
2620
  args[_key4 - 1] = arguments[_key4];
2880
2621
  }
2881
-
2882
2622
  clone.emit.apply(clone, [event].concat(args));
2883
2623
  });
2884
2624
  clone.init(mergedOptions, callback);
@@ -2900,20 +2640,18 @@ var I18n = function (_EventEmitter) {
2900
2640
  };
2901
2641
  }
2902
2642
  }]);
2903
-
2904
2643
  return I18n;
2905
2644
  }(EventEmitter);
2906
-
2907
- _defineProperty$1(I18n, "createInstance", function () {
2645
+ _defineProperty$2(I18n, "createInstance", function () {
2908
2646
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2909
2647
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2910
2648
  return new I18n(options, callback);
2911
2649
  });
2912
-
2913
2650
  var instance = I18n.createInstance();
2914
2651
  instance.createInstance = I18n.createInstance;
2915
2652
 
2916
2653
  instance.createInstance;
2654
+ instance.dir;
2917
2655
  instance.init;
2918
2656
  instance.loadResources;
2919
2657
  instance.reloadResources;
@@ -2933,30 +2671,30 @@ function _classCallCheck$1(instance, Constructor) {
2933
2671
  }
2934
2672
  }
2935
2673
 
2936
- function _typeof$1(obj) {
2674
+ function _typeof$2(obj) {
2937
2675
  "@babel/helpers - typeof";
2938
2676
 
2939
- return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
2677
+ return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
2940
2678
  return typeof obj;
2941
2679
  } : function (obj) {
2942
2680
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2943
- }, _typeof$1(obj);
2681
+ }, _typeof$2(obj);
2944
2682
  }
2945
2683
 
2946
- function _toPrimitive$1(input, hint) {
2947
- if (_typeof$1(input) !== "object" || input === null) return input;
2684
+ function _toPrimitive$2(input, hint) {
2685
+ if (_typeof$2(input) !== "object" || input === null) return input;
2948
2686
  var prim = input[Symbol.toPrimitive];
2949
2687
  if (prim !== undefined) {
2950
2688
  var res = prim.call(input, hint || "default");
2951
- if (_typeof$1(res) !== "object") return res;
2689
+ if (_typeof$2(res) !== "object") return res;
2952
2690
  throw new TypeError("@@toPrimitive must return a primitive value.");
2953
2691
  }
2954
2692
  return (hint === "string" ? String : Number)(input);
2955
2693
  }
2956
2694
 
2957
- function _toPropertyKey$1(arg) {
2958
- var key = _toPrimitive$1(arg, "string");
2959
- return _typeof$1(key) === "symbol" ? key : String(key);
2695
+ function _toPropertyKey$2(arg) {
2696
+ var key = _toPrimitive$2(arg, "string");
2697
+ return _typeof$2(key) === "symbol" ? key : String(key);
2960
2698
  }
2961
2699
 
2962
2700
  function _defineProperties$1(target, props) {
@@ -2965,7 +2703,7 @@ function _defineProperties$1(target, props) {
2965
2703
  descriptor.enumerable = descriptor.enumerable || false;
2966
2704
  descriptor.configurable = true;
2967
2705
  if ("value" in descriptor) descriptor.writable = true;
2968
- Object.defineProperty(target, _toPropertyKey$1(descriptor.key), descriptor);
2706
+ Object.defineProperty(target, _toPropertyKey$2(descriptor.key), descriptor);
2969
2707
  }
2970
2708
  }
2971
2709
  function _createClass$1(Constructor, protoProps, staticProps) {
@@ -3326,7 +3064,7 @@ var Browser = /*#__PURE__*/function () {
3326
3064
  }();
3327
3065
  Browser.type = 'languageDetector';
3328
3066
 
3329
- function _objectWithoutPropertiesLoose(source, excluded) {
3067
+ function _objectWithoutPropertiesLoose$1(source, excluded) {
3330
3068
  if (source == null) return {};
3331
3069
  var target = {};
3332
3070
  var sourceKeys = Object.keys(source);
@@ -3339,9 +3077,9 @@ function _objectWithoutPropertiesLoose(source, excluded) {
3339
3077
  return target;
3340
3078
  }
3341
3079
 
3342
- function _objectWithoutProperties(source, excluded) {
3080
+ function _objectWithoutProperties$1(source, excluded) {
3343
3081
  if (source == null) return {};
3344
- var target = _objectWithoutPropertiesLoose(source, excluded);
3082
+ var target = _objectWithoutPropertiesLoose$1(source, excluded);
3345
3083
  var key, i;
3346
3084
  if (Object.getOwnPropertySymbols) {
3347
3085
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -3355,34 +3093,34 @@ function _objectWithoutProperties(source, excluded) {
3355
3093
  return target;
3356
3094
  }
3357
3095
 
3358
- function _typeof(obj) {
3096
+ function _typeof$1(obj) {
3359
3097
  "@babel/helpers - typeof";
3360
3098
 
3361
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
3099
+ return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
3362
3100
  return typeof obj;
3363
3101
  } : function (obj) {
3364
3102
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
3365
- }, _typeof(obj);
3103
+ }, _typeof$1(obj);
3366
3104
  }
3367
3105
 
3368
- function _toPrimitive(input, hint) {
3369
- if (_typeof(input) !== "object" || input === null) return input;
3106
+ function _toPrimitive$1(input, hint) {
3107
+ if (_typeof$1(input) !== "object" || input === null) return input;
3370
3108
  var prim = input[Symbol.toPrimitive];
3371
3109
  if (prim !== undefined) {
3372
3110
  var res = prim.call(input, hint || "default");
3373
- if (_typeof(res) !== "object") return res;
3111
+ if (_typeof$1(res) !== "object") return res;
3374
3112
  throw new TypeError("@@toPrimitive must return a primitive value.");
3375
3113
  }
3376
3114
  return (hint === "string" ? String : Number)(input);
3377
3115
  }
3378
3116
 
3379
- function _toPropertyKey(arg) {
3380
- var key = _toPrimitive(arg, "string");
3381
- return _typeof(key) === "symbol" ? key : String(key);
3117
+ function _toPropertyKey$1(arg) {
3118
+ var key = _toPrimitive$1(arg, "string");
3119
+ return _typeof$1(key) === "symbol" ? key : String(key);
3382
3120
  }
3383
3121
 
3384
- function _defineProperty(obj, key, value) {
3385
- key = _toPropertyKey(key);
3122
+ function _defineProperty$1(obj, key, value) {
3123
+ key = _toPropertyKey$1(key);
3386
3124
  if (key in obj) {
3387
3125
  Object.defineProperty(obj, key, {
3388
3126
  value: value,
@@ -3476,7 +3214,7 @@ function _defineProperties(target, props) {
3476
3214
  descriptor.enumerable = descriptor.enumerable || false;
3477
3215
  descriptor.configurable = true;
3478
3216
  if ("value" in descriptor) descriptor.writable = true;
3479
- Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
3217
+ Object.defineProperty(target, _toPropertyKey$1(descriptor.key), descriptor);
3480
3218
  }
3481
3219
  }
3482
3220
  function _createClass(Constructor, protoProps, staticProps) {
@@ -3488,9 +3226,9 @@ function _createClass(Constructor, protoProps, staticProps) {
3488
3226
  return Constructor;
3489
3227
  }
3490
3228
 
3491
- 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; }
3229
+ 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; }
3492
3230
 
3493
- 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; }
3231
+ 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; }
3494
3232
  var defaultOptions = {
3495
3233
  bindI18n: 'languageChanged',
3496
3234
  bindI18nStore: '',
@@ -3504,7 +3242,7 @@ var i18nInstance;
3504
3242
  var I18nContext = React.createContext();
3505
3243
  function setDefaults() {
3506
3244
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3507
- defaultOptions = _objectSpread$e(_objectSpread$e({}, defaultOptions), options);
3245
+ defaultOptions = _objectSpread$f(_objectSpread$f({}, defaultOptions), options);
3508
3246
  }
3509
3247
  function getDefaults() {
3510
3248
  return defaultOptions;
@@ -3628,12 +3366,12 @@ function hasLoadedNamespace(ns, i18n) {
3628
3366
  });
3629
3367
  }
3630
3368
 
3631
- var _excluded = ["format"],
3369
+ var _excluded$2 = ["format"],
3632
3370
  _excluded2 = ["children", "count", "parent", "i18nKey", "context", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
3633
3371
 
3634
- 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; }
3372
+ 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; }
3635
3373
 
3636
- 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; }
3374
+ 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; }
3637
3375
 
3638
3376
  function hasChildren(node, checkLength) {
3639
3377
  if (!node) return false;
@@ -3659,7 +3397,7 @@ function getAsArray(data) {
3659
3397
  }
3660
3398
 
3661
3399
  function mergeProps(source, target) {
3662
- var newTarget = _objectSpread$d({}, target);
3400
+ var newTarget = _objectSpread$e({}, target);
3663
3401
 
3664
3402
  newTarget.props = Object.assign(source.props, target.props);
3665
3403
  return newTarget;
@@ -3692,9 +3430,9 @@ function nodesToString(children, i18nOptions) {
3692
3430
  }
3693
3431
  } else if (child === null) {
3694
3432
  warn("Trans: the passed in value is invalid - seems you passed in a null child.");
3695
- } else if (_typeof(child) === 'object') {
3433
+ } else if (_typeof$1(child) === 'object') {
3696
3434
  var format = child.format,
3697
- clone = _objectWithoutProperties(child, _excluded);
3435
+ clone = _objectWithoutProperties$1(child, _excluded$2);
3698
3436
 
3699
3437
  var keys = Object.keys(clone);
3700
3438
 
@@ -3722,14 +3460,14 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3722
3460
  var childrenArray = getAsArray(childs);
3723
3461
  childrenArray.forEach(function (child) {
3724
3462
  if (typeof child === 'string') return;
3725
- if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);
3463
+ if (hasChildren(child)) getData(getChildren(child));else if (_typeof$1(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);
3726
3464
  });
3727
3465
  }
3728
3466
 
3729
3467
  getData(children);
3730
3468
  var ast = c.parse("<0>".concat(targetString, "</0>"));
3731
3469
 
3732
- var opts = _objectSpread$d(_objectSpread$d({}, data), combinedTOpts);
3470
+ var opts = _objectSpread$e(_objectSpread$e({}, data), combinedTOpts);
3733
3471
 
3734
3472
  function renderInner(child, node, rootReactNode) {
3735
3473
  var childs = getChildren(child);
@@ -3739,7 +3477,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3739
3477
 
3740
3478
  function pushTranslatedJSX(child, inner, mem, i, isVoid) {
3741
3479
  if (child.dummy) child.children = inner;
3742
- mem.push(React.cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3480
+ mem.push(React.cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3743
3481
  key: i
3744
3482
  }), isVoid ? undefined : inner));
3745
3483
  }
@@ -3759,8 +3497,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3759
3497
  }, tmp) : tmp;
3760
3498
  var isElement = React.isValidElement(child);
3761
3499
  var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;
3762
- var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;
3763
- var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
3500
+ var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof$1(child) === 'object' && child.dummy && !isElement;
3501
+ var isKnownComponent = _typeof$1(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
3764
3502
 
3765
3503
  if (typeof child === 'string') {
3766
3504
  var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
@@ -3771,7 +3509,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3771
3509
  } else if (isEmptyTransWithHTML) {
3772
3510
  var _inner = mapAST(reactNodes, node.children, rootReactNode);
3773
3511
 
3774
- mem.push(React.cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3512
+ mem.push(React.cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3775
3513
  key: i
3776
3514
  }), _inner));
3777
3515
  } else if (Number.isNaN(parseFloat(node.name))) {
@@ -3798,15 +3536,15 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
3798
3536
 
3799
3537
  mem.push("<".concat(node.name, ">").concat(_inner4, "</").concat(node.name, ">"));
3800
3538
  }
3801
- } else if (_typeof(child) === 'object' && !isElement) {
3539
+ } else if (_typeof$1(child) === 'object' && !isElement) {
3802
3540
  var content = node.children[0] ? translationContent : null;
3803
3541
  if (content) mem.push(content);
3804
3542
  } else if (node.children.length === 1 && translationContent) {
3805
- mem.push(React.cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3543
+ mem.push(React.cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3806
3544
  key: i
3807
3545
  }), translationContent));
3808
3546
  } else {
3809
- mem.push(React.cloneElement(child, _objectSpread$d(_objectSpread$d({}, child.props), {}, {
3547
+ mem.push(React.cloneElement(child, _objectSpread$e(_objectSpread$e({}, child.props), {}, {
3810
3548
  key: i
3811
3549
  })));
3812
3550
  }
@@ -3850,7 +3588,7 @@ function Trans(_ref) {
3850
3588
  i18nFromProps = _ref.i18n,
3851
3589
  tFromProps = _ref.t,
3852
3590
  shouldUnescape = _ref.shouldUnescape,
3853
- additionalProps = _objectWithoutProperties(_ref, _excluded2);
3591
+ additionalProps = _objectWithoutProperties$1(_ref, _excluded2);
3854
3592
 
3855
3593
  var _ref2 = useContext(I18nContext) || {},
3856
3594
  i18nFromContext = _ref2.i18n,
@@ -3869,7 +3607,7 @@ function Trans(_ref) {
3869
3607
 
3870
3608
  if (context) tOptions.context = context;
3871
3609
 
3872
- var reactI18nextOptions = _objectSpread$d(_objectSpread$d({}, getDefaults()), i18n.options && i18n.options.react);
3610
+ var reactI18nextOptions = _objectSpread$e(_objectSpread$e({}, getDefaults()), i18n.options && i18n.options.react);
3873
3611
 
3874
3612
  var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
3875
3613
  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
@@ -3877,13 +3615,13 @@ function Trans(_ref) {
3877
3615
  var hashTransKey = reactI18nextOptions.hashTransKey;
3878
3616
  var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);
3879
3617
  var interpolationOverride = values ? tOptions.interpolation : {
3880
- interpolation: _objectSpread$d(_objectSpread$d({}, tOptions.interpolation), {}, {
3618
+ interpolation: _objectSpread$e(_objectSpread$e({}, tOptions.interpolation), {}, {
3881
3619
  prefix: '#$?',
3882
3620
  suffix: '?$#'
3883
3621
  })
3884
3622
  };
3885
3623
 
3886
- var combinedTOpts = _objectSpread$d(_objectSpread$d(_objectSpread$d(_objectSpread$d({}, tOptions), {}, {
3624
+ var combinedTOpts = _objectSpread$e(_objectSpread$e(_objectSpread$e(_objectSpread$e({}, tOptions), {}, {
3887
3625
  count: count
3888
3626
  }, values), interpolationOverride), {}, {
3889
3627
  defaultValue: defaultValue,
@@ -3896,7 +3634,7 @@ function Trans(_ref) {
3896
3634
  return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;
3897
3635
  }
3898
3636
 
3899
- function _arrayWithHoles(arr) {
3637
+ function _arrayWithHoles$1(arr) {
3900
3638
  if (Array.isArray(arr)) return arr;
3901
3639
  }
3902
3640
 
@@ -3928,32 +3666,32 @@ function _iterableToArrayLimit$1(arr, i) {
3928
3666
  }
3929
3667
  }
3930
3668
 
3931
- function _arrayLikeToArray(arr, len) {
3669
+ function _arrayLikeToArray$1(arr, len) {
3932
3670
  if (len == null || len > arr.length) len = arr.length;
3933
3671
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
3934
3672
  return arr2;
3935
3673
  }
3936
3674
 
3937
- function _unsupportedIterableToArray(o, minLen) {
3675
+ function _unsupportedIterableToArray$1(o, minLen) {
3938
3676
  if (!o) return;
3939
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
3677
+ if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
3940
3678
  var n = Object.prototype.toString.call(o).slice(8, -1);
3941
3679
  if (n === "Object" && o.constructor) n = o.constructor.name;
3942
3680
  if (n === "Map" || n === "Set") return Array.from(o);
3943
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
3681
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
3944
3682
  }
3945
3683
 
3946
- function _nonIterableRest() {
3684
+ function _nonIterableRest$1() {
3947
3685
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3948
3686
  }
3949
3687
 
3950
3688
  function _slicedToArray$1(arr, i) {
3951
- return _arrayWithHoles(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
3689
+ return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
3952
3690
  }
3953
3691
 
3954
- 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; }
3692
+ 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; }
3955
3693
 
3956
- 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; }
3694
+ 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; }
3957
3695
  function useTranslation(ns) {
3958
3696
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3959
3697
  var i18nFromProps = props.i18n;
@@ -3981,7 +3719,7 @@ function useTranslation(ns) {
3981
3719
 
3982
3720
  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.');
3983
3721
 
3984
- var i18nOptions = _objectSpread$c(_objectSpread$c(_objectSpread$c({}, getDefaults()), i18n.options.react), props);
3722
+ var i18nOptions = _objectSpread$d(_objectSpread$d(_objectSpread$d({}, getDefaults()), i18n.options.react), props);
3985
3723
 
3986
3724
  var useSuspense = i18nOptions.useSuspense,
3987
3725
  keyPrefix = i18nOptions.keyPrefix;
@@ -4143,6 +3881,10 @@ var select = {
4143
3881
  },
4144
3882
  approval: "Select approval"
4145
3883
  };
3884
+ var example = {
3885
+ settings: "Settings",
3886
+ general: "General"
3887
+ };
4146
3888
  var en = {
4147
3889
  alerts: alerts$1,
4148
3890
  buttons: buttons$1,
@@ -4151,7 +3893,8 @@ var en = {
4151
3893
  sidebar: sidebar,
4152
3894
  inputs: inputs,
4153
3895
  typography: typography,
4154
- select: select
3896
+ select: select,
3897
+ example: example
4155
3898
  };
4156
3899
 
4157
3900
  var alerts = {
@@ -4266,6 +4009,51 @@ instance.use(Browser).use(initReactI18next).init({
4266
4009
  }
4267
4010
  });
4268
4011
 
4012
+ function _typeof(obj) {
4013
+ "@babel/helpers - typeof";
4014
+
4015
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
4016
+ return typeof obj;
4017
+ } : function (obj) {
4018
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
4019
+ }, _typeof(obj);
4020
+ }
4021
+
4022
+ function _toPrimitive(input, hint) {
4023
+ if (_typeof(input) !== "object" || input === null) return input;
4024
+ var prim = input[Symbol.toPrimitive];
4025
+ if (prim !== undefined) {
4026
+ var res = prim.call(input, hint || "default");
4027
+ if (_typeof(res) !== "object") return res;
4028
+ throw new TypeError("@@toPrimitive must return a primitive value.");
4029
+ }
4030
+ return (hint === "string" ? String : Number)(input);
4031
+ }
4032
+
4033
+ function _toPropertyKey(arg) {
4034
+ var key = _toPrimitive(arg, "string");
4035
+ return _typeof(key) === "symbol" ? key : String(key);
4036
+ }
4037
+
4038
+ function _defineProperty(obj, key, value) {
4039
+ key = _toPropertyKey(key);
4040
+ if (key in obj) {
4041
+ Object.defineProperty(obj, key, {
4042
+ value: value,
4043
+ enumerable: true,
4044
+ configurable: true,
4045
+ writable: true
4046
+ });
4047
+ } else {
4048
+ obj[key] = value;
4049
+ }
4050
+ return obj;
4051
+ }
4052
+
4053
+ function _arrayWithHoles(arr) {
4054
+ if (Array.isArray(arr)) return arr;
4055
+ }
4056
+
4269
4057
  function _iterableToArrayLimit(arr, i) {
4270
4058
  var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
4271
4059
  if (null != _i) {
@@ -4294,8 +4082,27 @@ function _iterableToArrayLimit(arr, i) {
4294
4082
  }
4295
4083
  }
4296
4084
 
4085
+ function _arrayLikeToArray(arr, len) {
4086
+ if (len == null || len > arr.length) len = arr.length;
4087
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
4088
+ return arr2;
4089
+ }
4090
+
4091
+ function _unsupportedIterableToArray(o, minLen) {
4092
+ if (!o) return;
4093
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
4094
+ var n = Object.prototype.toString.call(o).slice(8, -1);
4095
+ if (n === "Object" && o.constructor) n = o.constructor.name;
4096
+ if (n === "Map" || n === "Set") return Array.from(o);
4097
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
4098
+ }
4099
+
4100
+ function _nonIterableRest() {
4101
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4102
+ }
4103
+
4297
4104
  function _slicedToArray(arr, i) {
4298
- return _arrayWithHoles$1(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
4105
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
4299
4106
  }
4300
4107
 
4301
4108
  var BASE_URL = "neeto_approvals";
@@ -4314,20 +4121,42 @@ var routes = {
4314
4121
  "public": "approvals/public/request/:id"
4315
4122
  };
4316
4123
 
4317
- function _extends() {
4318
- _extends = Object.assign ? Object.assign.bind() : function (target) {
4319
- for (var i = 1; i < arguments.length; i++) {
4320
- var source = arguments[i];
4321
- for (var key in source) {
4322
- if (Object.prototype.hasOwnProperty.call(source, key)) {
4323
- target[key] = source[key];
4324
- }
4325
- }
4326
- }
4327
- return target;
4328
- };
4329
- return _extends.apply(this, arguments);
4330
- }
4124
+ new URLSearchParams(window.location.search);
4125
+ var DEFAULT_PAGE_SIZE = 8;
4126
+ var DEFAULT_FILTER_VALUES = {
4127
+ search: "",
4128
+ sortBy: "",
4129
+ sortDirection: ""
4130
+ };
4131
+ var SEARCH_DELAY = 750;
4132
+ var STATUSES = {
4133
+ approved: "approved",
4134
+ rejected: "rejected",
4135
+ pending: "pending",
4136
+ cancelled: "cancelled"
4137
+ };
4138
+ var STATUS_TAG_STYLE = {
4139
+ pending: "primary",
4140
+ approved: "success",
4141
+ rejected: "danger",
4142
+ cancelled: "warning"
4143
+ };
4144
+ var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
4145
+ message: "",
4146
+ variables: []
4147
+ };
4148
+ var APPROVAL_REQUEST_FORM_VALIDATION_SCHEMA = yup.object().shape({
4149
+ variables: yup.array().of(yup.object().shape({
4150
+ variable: yup.string().trim().required(t$2("validations.required", {
4151
+ what: t$2("common.field")
4152
+ }))
4153
+ }))
4154
+ });
4155
+ var STATUS_UPDATED_BY = {
4156
+ rejected: t$2("common.rejectedBy"),
4157
+ approved: t$2("common.approvedBy"),
4158
+ cancelled: t$2("common.cancelledBy")
4159
+ };
4331
4160
 
4332
4161
  var handleEmptyPage = function handleEmptyPage(data, pageProperties, handleTablePagination) {
4333
4162
  if (isEmpty(data) && pageProperties.index !== 1) {
@@ -4372,14 +4201,14 @@ var QUERY_KEYS = {
4372
4201
  VIEWS: "neeto-approvals-views"
4373
4202
  };
4374
4203
 
4375
- 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; }
4376
- 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; }
4204
+ 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; }
4205
+ 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; }
4377
4206
  var useFetchApprovers = function useFetchApprovers() {
4378
4207
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4379
4208
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4380
4209
  return useQuery([QUERY_KEYS.APPROVERS, params], function () {
4381
4210
  return approversApi.fetch(params);
4382
- }, _objectSpread$b({
4211
+ }, _objectSpread$c({
4383
4212
  select: function select(response) {
4384
4213
  return response.data || response;
4385
4214
  },
@@ -4393,7 +4222,7 @@ var useFetchApprovers = function useFetchApprovers() {
4393
4222
  };
4394
4223
  var useCreateApprover = function useCreateApprover(options) {
4395
4224
  var queryClient = useQueryClient();
4396
- return useMutation(approversApi.create, _objectSpread$b(_objectSpread$b({}, options), {}, {
4225
+ return useMutation(approversApi.create, _objectSpread$c(_objectSpread$c({}, options), {}, {
4397
4226
  onSuccess: function onSuccess() {
4398
4227
  queryClient.invalidateQueries(QUERY_KEYS.APPROVERS);
4399
4228
  queryClient.invalidateQueries(QUERY_KEYS.VIEWS);
@@ -4403,7 +4232,7 @@ var useCreateApprover = function useCreateApprover(options) {
4403
4232
  };
4404
4233
  var useUpdateApprover = function useUpdateApprover(options) {
4405
4234
  var queryClient = useQueryClient();
4406
- return useMutation(approversApi.update, _objectSpread$b(_objectSpread$b({}, options), {}, {
4235
+ return useMutation(approversApi.update, _objectSpread$c(_objectSpread$c({}, options), {}, {
4407
4236
  onSuccess: function onSuccess() {
4408
4237
  queryClient.invalidateQueries(QUERY_KEYS.APPROVERS);
4409
4238
  options === null || options === void 0 ? void 0 : options.onSuccess();
@@ -4421,43 +4250,6 @@ var useDeleteApprover = function useDeleteApprover(options) {
4421
4250
  });
4422
4251
  };
4423
4252
 
4424
- new URLSearchParams(window.location.search);
4425
- var DEFAULT_PAGE_SIZE = 12;
4426
- var DEFAULT_FILTER_VALUES = {
4427
- search: "",
4428
- sortBy: "",
4429
- sortDirection: ""
4430
- };
4431
- var SEARCH_DELAY = 750;
4432
- var STATUSES = {
4433
- approved: "approved",
4434
- rejected: "rejected",
4435
- pending: "pending",
4436
- cancelled: "cancelled"
4437
- };
4438
- var STATUS_TAG_STYLE = {
4439
- pending: "primary",
4440
- approved: "success",
4441
- rejected: "danger",
4442
- cancelled: "warning"
4443
- };
4444
- var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
4445
- message: "",
4446
- variables: []
4447
- };
4448
- var APPROVAL_REQUEST_FORM_VALIDATION_SCHEMA = yup.object().shape({
4449
- variables: yup.array().of(yup.object().shape({
4450
- variable: yup.string().trim().required(t$2("validations.required", {
4451
- what: t$2("common.field")
4452
- }))
4453
- }))
4454
- });
4455
- var STATUS_UPDATED_BY = {
4456
- rejected: t$2("common.rejectedBy"),
4457
- approved: t$2("common.approvedBy"),
4458
- cancelled: t$2("common.cancelledBy")
4459
- };
4460
-
4461
4253
  var useUrlSearchParams = function useUrlSearchParams() {
4462
4254
  var _useLocation = useLocation(),
4463
4255
  search = _useLocation.search;
@@ -4501,26 +4293,7 @@ var usePaginate = function usePaginate() {
4501
4293
  };
4502
4294
  };
4503
4295
 
4504
- var renderNoDataHelpText = function renderNoDataHelpText(_ref) {
4505
- var entity = _ref.entity,
4506
- url = _ref.url;
4507
- return /*#__PURE__*/React.createElement(Trans, {
4508
- i18nKey: "common.noDataHelpText",
4509
- values: {
4510
- entity: entity
4511
- },
4512
- components: {
4513
- a: /*#__PURE__*/React.createElement(Link, {
4514
- className: "neeto-ui-text-primary-600 underline",
4515
- target: "_blank",
4516
- to: {
4517
- pathname: url
4518
- }
4519
- })
4520
- }
4521
- });
4522
- };
4523
-
4296
+ var _t$1, _t2;
4524
4297
  var MAX_NAME_LENGTH = 40;
4525
4298
  var APPROVER_FORM_INITIAL_VALUES = {
4526
4299
  firstName: "",
@@ -4529,13 +4302,13 @@ var APPROVER_FORM_INITIAL_VALUES = {
4529
4302
  };
4530
4303
  var APPROVER_FORM_VALIDATION_SCHEMA = yup.object().shape({
4531
4304
  firstName: yup.string().trim().max(MAX_NAME_LENGTH, t$2("validations.limitExceeded", {
4532
- what: t$2("inputs.labels.firstName").toLocaleLowerCase(),
4305
+ what: (_t$1 = t$2("inputs.labels.firstName")) === null || _t$1 === void 0 ? void 0 : _t$1.toLocaleLowerCase(),
4533
4306
  limit: MAX_NAME_LENGTH
4534
4307
  })).required(t$2("validations.required", {
4535
4308
  what: t$2("inputs.labels.firstName")
4536
4309
  })),
4537
4310
  lastName: yup.string().trim().max(MAX_NAME_LENGTH, t$2("validations.limitExceeded", {
4538
- what: t$2("inputs.labels.lastName").toLocaleLowerCase(),
4311
+ what: (_t2 = t$2("inputs.labels.lastName")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
4539
4312
  limit: MAX_NAME_LENGTH
4540
4313
  })).required(t$2("validations.required", {
4541
4314
  what: t$2("inputs.labels.lastName")
@@ -4667,7 +4440,7 @@ var Edit$1 = function Edit(_ref) {
4667
4440
  };
4668
4441
  var Edit$2 = /*#__PURE__*/React.memo(Edit$1);
4669
4442
 
4670
- var Menu$2 = Dropdown.Menu,
4443
+ var Menu$1 = Dropdown.Menu,
4671
4444
  MenuItem$1 = Dropdown.MenuItem;
4672
4445
  var columnData$1 = function columnData(_ref) {
4673
4446
  var onEditClick = _ref.onEditClick,
@@ -4700,7 +4473,7 @@ var columnData$1 = function columnData(_ref) {
4700
4473
  buttonProps: {
4701
4474
  style: "text"
4702
4475
  }
4703
- }, /*#__PURE__*/React.createElement(Menu$2, null, /*#__PURE__*/React.createElement(MenuItem$1.Button, {
4476
+ }, /*#__PURE__*/React.createElement(Menu$1, null, /*#__PURE__*/React.createElement(MenuItem$1.Button, {
4704
4477
  "data-cy": "approvers-edit-button",
4705
4478
  onClick: function onClick() {
4706
4479
  return onEditClick(approver);
@@ -4715,56 +4488,161 @@ var columnData$1 = function columnData(_ref) {
4715
4488
  }];
4716
4489
  };
4717
4490
 
4718
- var Header = function Header(_ref) {
4719
- var title = _ref.title,
4720
- filters = _ref.filters,
4721
- setIsMenubarOpen = _ref.setIsMenubarOpen,
4722
- setFilters = _ref.setFilters,
4723
- _ref$actionBlock = _ref.actionBlock,
4724
- actionBlock = _ref$actionBlock === void 0 ? noop$1 : _ref$actionBlock,
4725
- placeholder = _ref.placeholder;
4726
- var _useTranslation = useTranslation(),
4727
- t = _useTranslation.t;
4728
- return /*#__PURE__*/React.createElement(Header$2, {
4729
- actionBlock: actionBlock,
4730
- menuBarToggle: function menuBarToggle() {
4731
- return setIsMenubarOpen(not);
4732
- },
4733
- title: title,
4734
- searchProps: {
4735
- onChange: function onChange(event) {
4736
- return setFilters(assoc("search", event.target.value));
4737
- },
4738
- value: filters.search,
4739
- placeholder: t("inputs.placeholders.search_", {
4740
- what: placeholder.toLocaleLowerCase()
4741
- })
4491
+ function _extends() {
4492
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
4493
+ for (var i = 1; i < arguments.length; i++) {
4494
+ var source = arguments[i];
4495
+ for (var key in source) {
4496
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
4497
+ target[key] = source[key];
4498
+ }
4499
+ }
4742
4500
  }
4743
- });
4501
+ return target;
4502
+ };
4503
+ return _extends.apply(this, arguments);
4504
+ }
4505
+
4506
+ function _objectWithoutPropertiesLoose(source, excluded) {
4507
+ if (source == null) return {};
4508
+ var target = {};
4509
+ var sourceKeys = Object.keys(source);
4510
+ var key, i;
4511
+ for (i = 0; i < sourceKeys.length; i++) {
4512
+ key = sourceKeys[i];
4513
+ if (excluded.indexOf(key) >= 0) continue;
4514
+ target[key] = source[key];
4515
+ }
4516
+ return target;
4517
+ }
4518
+
4519
+ function _objectWithoutProperties(source, excluded) {
4520
+ if (source == null) return {};
4521
+ var target = _objectWithoutPropertiesLoose(source, excluded);
4522
+ var key, i;
4523
+ if (Object.getOwnPropertySymbols) {
4524
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
4525
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
4526
+ key = sourceSymbolKeys[i];
4527
+ if (excluded.indexOf(key) >= 0) continue;
4528
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
4529
+ target[key] = source[key];
4530
+ }
4531
+ }
4532
+ return target;
4533
+ }
4534
+
4535
+ var renderNoDataHelpText = function renderNoDataHelpText(_ref) {
4536
+ var entity = _ref.entity,
4537
+ url = _ref.url;
4538
+ return /*#__PURE__*/React.createElement(Trans, {
4539
+ i18nKey: "common.noDataHelpText",
4540
+ values: {
4541
+ entity: entity
4542
+ },
4543
+ components: {
4544
+ a: /*#__PURE__*/React.createElement(Link, {
4545
+ className: "neeto-ui-text-primary-600 underline",
4546
+ target: "_blank",
4547
+ to: {
4548
+ pathname: url
4549
+ }
4550
+ })
4551
+ }
4552
+ });
4553
+ };
4554
+
4555
+ var _excluded$1 = ["entity", "columnData", "items", "totalCount", "filters", "setFilters", "setIsPaneOpen", "helpDocUrl", "onEditClick", "onDeleteClick"];
4556
+ 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; }
4557
+ 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; }
4558
+ var Table = function Table(_ref) {
4559
+ var _t;
4560
+ var entity = _ref.entity,
4561
+ columnData = _ref.columnData,
4562
+ items = _ref.items,
4563
+ totalCount = _ref.totalCount,
4564
+ filters = _ref.filters,
4565
+ setFilters = _ref.setFilters,
4566
+ setIsPaneOpen = _ref.setIsPaneOpen,
4567
+ helpDocUrl = _ref.helpDocUrl,
4568
+ onEditClick = _ref.onEditClick,
4569
+ onDeleteClick = _ref.onDeleteClick,
4570
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
4571
+ var _usePaginate = usePaginate(),
4572
+ pageProperties = _usePaginate.pageProperties,
4573
+ handleTablePagination = _usePaginate.handleTablePagination;
4574
+ var _useTranslation = useTranslation(),
4575
+ t = _useTranslation.t;
4576
+ var columns = columnData({
4577
+ onEditClick: onEditClick,
4578
+ onDeleteClick: onDeleteClick
4579
+ });
4580
+ var handleTableChange = function handleTableChange(_, __, sorter) {
4581
+ setFilters(_objectSpread$b(_objectSpread$b({}, filters), {}, {
4582
+ sortBy: sorter.field,
4583
+ sortDirection: sorter.order
4584
+ }));
4585
+ };
4586
+ var noDataProps = {
4587
+ primaryButtonProps: {
4588
+ label: t("common.add_", {
4589
+ what: (_t = t("common.template", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
4590
+ }),
4591
+ onClick: function onClick() {
4592
+ return setIsPaneOpen(true);
4593
+ }
4594
+ },
4595
+ helpText: renderNoDataHelpText({
4596
+ entity: entity,
4597
+ url: helpDocUrl
4598
+ })
4599
+ };
4600
+ if (isEmpty(items)) {
4601
+ return /*#__PURE__*/React.createElement("div", {
4602
+ className: "flex h-full w-full flex-grow items-center justify-center"
4603
+ }, /*#__PURE__*/React.createElement(NoData, _extends({
4604
+ title: t("common.notFound_", {
4605
+ what: entity
4606
+ })
4607
+ }, !filters.search && noDataProps)));
4608
+ }
4609
+ return /*#__PURE__*/React.createElement("div", {
4610
+ className: "neeto-approvals__table-wrapper"
4611
+ }, /*#__PURE__*/React.createElement(Table$1, _extends({
4612
+ fixedHeight: true,
4613
+ columnData: columns,
4614
+ currentPageNumber: pageProperties.index,
4615
+ defaultPageSize: pageProperties.size,
4616
+ handlePageChange: function handlePageChange(index, size) {
4617
+ return handleTablePagination(index, size);
4618
+ },
4619
+ rowData: items,
4620
+ paginationProps: {
4621
+ hideOnSinglePage: (items === null || items === void 0 ? void 0 : items.length) < DEFAULT_PAGE_SIZE + 1
4622
+ },
4623
+ onChange: handleTableChange
4624
+ }, _objectSpread$b({
4625
+ totalCount: totalCount
4626
+ }, otherProps))));
4744
4627
  };
4745
- var Header$1 = /*#__PURE__*/React.memo(Header);
4746
4628
 
4747
4629
  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; }
4748
- 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; }
4630
+ 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; }
4749
4631
  var Approvers = function Approvers(_ref) {
4750
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
4751
- helpDocUrl = _ref.helpDocUrl;
4752
- var _useState = useState(DEFAULT_FILTER_VALUES),
4632
+ var _t, _t2, _t3;
4633
+ var filters = _ref.filters,
4634
+ isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
4635
+ setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
4636
+ helpDocUrl = _ref.helpDocUrl,
4637
+ setFilters = _ref.setFilters;
4638
+ var _useState = useState(""),
4753
4639
  _useState2 = _slicedToArray(_useState, 2),
4754
- filters = _useState2[0],
4755
- setFilters = _useState2[1];
4756
- var _useState3 = useState(false),
4640
+ approverToEdit = _useState2[0],
4641
+ setApproverToEdit = _useState2[1];
4642
+ var _useState3 = useState(""),
4757
4643
  _useState4 = _slicedToArray(_useState3, 2),
4758
- isNewApproverPaneOpen = _useState4[0],
4759
- setIsNewApproverPaneOpen = _useState4[1];
4760
- var _useState5 = useState(""),
4761
- _useState6 = _slicedToArray(_useState5, 2),
4762
- approverToEdit = _useState6[0],
4763
- setApproverToEdit = _useState6[1];
4764
- var _useState7 = useState(""),
4765
- _useState8 = _slicedToArray(_useState7, 2),
4766
- approverToDelete = _useState8[0],
4767
- setApproverToDelete = _useState8[1];
4644
+ approverToDelete = _useState4[0],
4645
+ setApproverToDelete = _useState4[1];
4768
4646
  var debouncedSearch = useDebounce(filters.search, SEARCH_DELAY);
4769
4647
  var _usePaginate = usePaginate(),
4770
4648
  pageProperties = _usePaginate.pageProperties,
@@ -4798,90 +4676,25 @@ var Approvers = function Approvers(_ref) {
4798
4676
  var onDeleteClick = function onDeleteClick(approver) {
4799
4677
  setApproverToDelete(approver);
4800
4678
  };
4801
- var columns = columnData$1({
4802
- onEditClick: onEditClick,
4803
- onDeleteClick: onDeleteClick
4804
- });
4679
+ var entity = (_t = t("common.approver", PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase();
4805
4680
  var handleDelete = function handleDelete(approverId) {
4806
4681
  deleteApprover({
4807
4682
  approverId: approverId
4808
4683
  });
4809
4684
  setApproverToDelete("");
4810
4685
  };
4811
- var handleTableChange = function handleTableChange(_, __, sorter) {
4812
- setFilters(_objectSpread$a(_objectSpread$a({}, filters), {}, {
4813
- sortBy: sorter.field,
4814
- sortDirection: sorter.order
4815
- }));
4816
- };
4817
- var ActionBlock = function ActionBlock() {
4818
- return /*#__PURE__*/React.createElement(Button, {
4819
- label: t("common.add_", {
4820
- what: t("common.approver", SINGULAR).toLocaleLowerCase()
4821
- }),
4822
- onClick: function onClick() {
4823
- return setIsNewApproverPaneOpen(true);
4824
- }
4825
- });
4826
- };
4827
- var entity = t("common.approver", PLURAL).toLocaleLowerCase();
4828
- var otherProps = {
4829
- primaryButtonProps: {
4830
- label: t("common.add_", {
4831
- what: t("common.approver", SINGULAR).toLocaleLowerCase()
4832
- }),
4833
- onClick: function onClick() {
4834
- return setIsNewApproverPaneOpen(true);
4835
- }
4836
- },
4837
- helpText: renderNoDataHelpText({
4838
- entity: entity,
4839
- url: helpDocUrl
4840
- })
4841
- };
4842
- if (isApproverLoading) {
4843
- return /*#__PURE__*/React.createElement("div", {
4844
- className: "neeto-approvals-page-loader"
4845
- }, /*#__PURE__*/React.createElement(PageLoader, null));
4846
- }
4847
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header$1, {
4848
- actionBlock: /*#__PURE__*/React.createElement(ActionBlock, null),
4686
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isApproverLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Table, {
4687
+ items: approvers,
4688
+ setIsPaneOpen: setIsNewApproverPaneOpen,
4689
+ columnData: columnData$1,
4690
+ entity: entity,
4849
4691
  filters: filters,
4692
+ helpDocUrl: helpDocUrl,
4693
+ onDeleteClick: onDeleteClick,
4694
+ onEditClick: onEditClick,
4850
4695
  setFilters: setFilters,
4851
- setIsMenubarOpen: setIsMenubarOpen,
4852
- placeholder: t("common.approver", PLURAL),
4853
- title: t("common.approver", PLURAL)
4854
- }), /*#__PURE__*/React.createElement(SubHeader, {
4855
- leftActionBlock: !!totalCount && /*#__PURE__*/React.createElement(Typography, {
4856
- component: "h4",
4857
- style: "h4"
4858
- }, totalCount, " ", t("common.approver", {
4859
- count: totalCount
4860
- }).toLocaleLowerCase())
4861
- }), !isEmpty(approvers) ? /*#__PURE__*/React.createElement("div", {
4862
- className: "neeto-approvals__table-wrapper"
4863
- }, /*#__PURE__*/React.createElement(Table, {
4864
- fixedHeight: true,
4865
- allowRowClick: false,
4866
- columnData: columns,
4867
- currentPageNumber: pageProperties.index,
4868
- defaultPageSize: pageProperties.size,
4869
- rowData: approvers,
4870
- totalCount: totalCount,
4871
- handlePageChange: function handlePageChange(index, size) {
4872
- return handleTablePagination(index, size);
4873
- },
4874
- paginationProps: {
4875
- hideOnSinglePage: (approvers === null || approvers === void 0 ? void 0 : approvers.length) < DEFAULT_PAGE_SIZE + 1
4876
- },
4877
- onChange: handleTableChange
4878
- })) : /*#__PURE__*/React.createElement("div", {
4879
- className: "flex h-full w-full flex-grow items-center justify-center"
4880
- }, /*#__PURE__*/React.createElement(NoData, _extends({
4881
- title: t("common.notFound_", {
4882
- what: entity
4883
- })
4884
- }, !filters.search && otherProps))), /*#__PURE__*/React.createElement(Create$2, {
4696
+ totalCount: totalCount
4697
+ }), /*#__PURE__*/React.createElement(Create$2, {
4885
4698
  handleTablePagination: handleTablePagination,
4886
4699
  isNewApproverPaneOpen: isNewApproverPaneOpen,
4887
4700
  pageProperties: pageProperties,
@@ -4897,12 +4710,12 @@ var Approvers = function Approvers(_ref) {
4897
4710
  message: /*#__PURE__*/React.createElement(Trans, {
4898
4711
  i18nKey: "alerts.deleting_",
4899
4712
  values: {
4900
- what: t("common.approver", SINGULAR).toLocaleLowerCase(),
4713
+ what: (_t2 = t("common.approver", SINGULAR)) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
4901
4714
  name: approverToDelete === null || approverToDelete === void 0 ? void 0 : approverToDelete.name
4902
4715
  }
4903
4716
  }),
4904
4717
  title: t("common.delete_", {
4905
- what: t("common.approver", SINGULAR).toLocaleLowerCase()
4718
+ what: (_t3 = t("common.approver", SINGULAR)) === null || _t3 === void 0 ? void 0 : _t3.toLocaleLowerCase()
4906
4719
  }),
4907
4720
  onClose: function onClose() {
4908
4721
  return setApproverToDelete("");
@@ -4931,7 +4744,7 @@ var requestsApi = {
4931
4744
  };
4932
4745
 
4933
4746
  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; }
4934
- 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; }
4747
+ 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; }
4935
4748
  var useFetchRequests = function useFetchRequests() {
4936
4749
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4937
4750
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -4972,9 +4785,9 @@ var HISTORY_TABLE_COLUMNS = [{
4972
4785
  var requestableUrl = _ref.requestableUrl;
4973
4786
  var url = new URL(requestableUrl || window.location.origin);
4974
4787
  return /*#__PURE__*/React.createElement(Button, {
4975
- to: url.pathname,
4976
4788
  label: approvalLabel,
4977
- style: "link"
4789
+ style: "link",
4790
+ to: url.pathname
4978
4791
  });
4979
4792
  }
4980
4793
  }, {
@@ -5008,7 +4821,7 @@ var HISTORY_TABLE_COLUMNS = [{
5008
4821
 
5009
4822
  var MemoizedEditorContent$1 = /*#__PURE__*/React.memo(EditorContent);
5010
4823
  var ApprovalsDetails = function ApprovalsDetails(_ref) {
5011
- var _window$globalProps, _window$globalProps$u;
4824
+ var _window$globalProps, _window$globalProps$u, _t;
5012
4825
  var isOpen = _ref.isOpen,
5013
4826
  onClose = _ref.onClose,
5014
4827
  approvalDetails = _ref.approvalDetails,
@@ -5089,7 +4902,7 @@ var ApprovalsDetails = function ApprovalsDetails(_ref) {
5089
4902
  label: t("common.note"),
5090
4903
  value: note,
5091
4904
  placeholder: t("inputs.placeholders.add_", {
5092
- what: t("common.note").toLocaleLowerCase()
4905
+ what: (_t = t("common.note")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5093
4906
  }),
5094
4907
  onChange: withEventTargetValue(setNote)
5095
4908
  }), !isPending && note && /*#__PURE__*/React.createElement("div", {
@@ -5148,10 +4961,10 @@ var getApprovalFilter = function getApprovalFilter() {
5148
4961
  };
5149
4962
 
5150
4963
  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; }
5151
- 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; }
4964
+ 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; }
5152
4965
  var History = function History(_ref) {
5153
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
5154
- requestUrl = _ref.requestUrl;
4966
+ var _t;
4967
+ var requestUrl = _ref.requestUrl;
5155
4968
  var _useState = useState(DEFAULT_FILTER_VALUES),
5156
4969
  _useState2 = _slicedToArray(_useState, 2),
5157
4970
  filters = _useState2[0],
@@ -5192,22 +5005,9 @@ var History = function History(_ref) {
5192
5005
  sortDirection: sorter.order
5193
5006
  }));
5194
5007
  };
5195
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header$1, {
5196
- filters: filters,
5197
- setFilters: setFilters,
5198
- setIsMenubarOpen: setIsMenubarOpen,
5199
- placeholder: t("common.history"),
5200
- title: t("common.approvalHistory")
5201
- }), /*#__PURE__*/React.createElement(SubHeader, {
5202
- leftActionBlock: !!totalCount && /*#__PURE__*/React.createElement(Typography, {
5203
- component: "h4",
5204
- style: "h4"
5205
- }, totalCount, " ", t("common.record", {
5206
- count: totalCount
5207
- }).toLocaleLowerCase())
5208
- }), !isEmpty(approvalHistories) ? /*#__PURE__*/React.createElement("div", {
5008
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !isEmpty(approvalHistories) ? /*#__PURE__*/React.createElement("div", {
5209
5009
  className: "neeto-approvals__table-wrapper"
5210
- }, /*#__PURE__*/React.createElement(Table, {
5010
+ }, /*#__PURE__*/React.createElement(Table$1, {
5211
5011
  allowRowClick: true,
5212
5012
  fixedHeight: true,
5213
5013
  columnData: HISTORY_TABLE_COLUMNS,
@@ -5229,7 +5029,7 @@ var History = function History(_ref) {
5229
5029
  className: "flex h-full w-full flex-grow items-center justify-center"
5230
5030
  }, /*#__PURE__*/React.createElement(NoData, {
5231
5031
  title: t("common.notFound_", {
5232
- what: t("common.record", PLURAL).toLocaleLowerCase()
5032
+ what: (_t = t("common.record", PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5233
5033
  })
5234
5034
  })), /*#__PURE__*/React.createElement(ApprovalsDetails, {
5235
5035
  approvalDetails: approvalDetails,
@@ -5245,10 +5045,10 @@ var PENDING_TABLE_COLUMNS = removeBy({
5245
5045
  }, HISTORY_TABLE_COLUMNS);
5246
5046
 
5247
5047
  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; }
5248
- 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; }
5048
+ 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; }
5249
5049
  var PendingRequests = function PendingRequests(_ref) {
5250
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
5251
- requestUrl = _ref.requestUrl;
5050
+ var _t;
5051
+ var requestUrl = _ref.requestUrl;
5252
5052
  var _useState = useState(DEFAULT_FILTER_VALUES),
5253
5053
  _useState2 = _slicedToArray(_useState, 2),
5254
5054
  filters = _useState2[0],
@@ -5296,22 +5096,9 @@ var PendingRequests = function PendingRequests(_ref) {
5296
5096
  }
5297
5097
  });
5298
5098
  };
5299
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header$1, {
5300
- filters: filters,
5301
- setFilters: setFilters,
5302
- setIsMenubarOpen: setIsMenubarOpen,
5303
- placeholder: t("common.pendingApproval", PLURAL),
5304
- title: t("common.pendingApproval", PLURAL)
5305
- }), /*#__PURE__*/React.createElement(SubHeader, {
5306
- leftActionBlock: !!totalCount && /*#__PURE__*/React.createElement(Typography, {
5307
- component: "h4",
5308
- style: "h4"
5309
- }, totalCount, " ", t("common.pendingApproval", {
5310
- count: totalCount
5311
- }).toLocaleLowerCase())
5312
- }), !isEmpty(pendingRequests) ? /*#__PURE__*/React.createElement("div", {
5099
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !isEmpty(pendingRequests) ? /*#__PURE__*/React.createElement("div", {
5313
5100
  className: "neeto-approvals__table-wrapper"
5314
- }, /*#__PURE__*/React.createElement(Table, {
5101
+ }, /*#__PURE__*/React.createElement(Table$1, {
5315
5102
  allowRowClick: true,
5316
5103
  fixedHeight: true,
5317
5104
  columnData: PENDING_TABLE_COLUMNS,
@@ -5333,7 +5120,7 @@ var PendingRequests = function PendingRequests(_ref) {
5333
5120
  className: "flex h-full w-full flex-grow items-center justify-center"
5334
5121
  }, /*#__PURE__*/React.createElement(NoData, {
5335
5122
  title: t("common.notFound_", {
5336
- what: t("common.pendingApproval", PLURAL).toLocaleLowerCase()
5123
+ what: (_t = t("common.pendingApproval", PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5337
5124
  })
5338
5125
  })), /*#__PURE__*/React.createElement(ApprovalsDetails, {
5339
5126
  isPending: true,
@@ -5381,7 +5168,7 @@ var templatesApi = {
5381
5168
  };
5382
5169
 
5383
5170
  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; }
5384
- 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; }
5171
+ 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; }
5385
5172
  var useFetchTemplates = function useFetchTemplates() {
5386
5173
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5387
5174
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -5399,12 +5186,6 @@ var useFetchTemplates = function useFetchTemplates() {
5399
5186
  }
5400
5187
  }, options));
5401
5188
  };
5402
- var useFetchTemplate = function useFetchTemplate(_ref2) {
5403
- var templateId = _ref2.templateId;
5404
- return useQuery([QUERY_KEYS.SHOW_TEMPLATE, templateId], function () {
5405
- return templatesApi.show(templateId);
5406
- });
5407
- };
5408
5189
  var useCreateTemplate = function useCreateTemplate(options) {
5409
5190
  var queryClient = useQueryClient();
5410
5191
  return useMutation(templatesApi.create, _objectSpread$6(_objectSpread$6({}, options), {}, {
@@ -5440,19 +5221,23 @@ var useDeleteTemplate = function useDeleteTemplate(options) {
5440
5221
  });
5441
5222
  };
5442
5223
 
5443
- var Field = function Field(_ref) {
5444
- var label = _ref.label,
5445
- value = _ref.value;
5446
- return /*#__PURE__*/React.createElement("div", {
5447
- className: "flex flex-col items-start justify-center"
5448
- }, /*#__PURE__*/React.createElement(Label, {
5449
- className: "mb-1 font-normal"
5450
- }, label), /*#__PURE__*/React.createElement("p", {
5451
- className: "neeto-ui-text-gray-800 break-words text-base font-medium"
5452
- }, value));
5453
- };
5454
- var Field$1 = /*#__PURE__*/React.memo(Field);
5224
+ function _arrayWithoutHoles(arr) {
5225
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
5226
+ }
5227
+
5228
+ function _iterableToArray(iter) {
5229
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
5230
+ }
5231
+
5232
+ function _nonIterableSpread() {
5233
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5234
+ }
5235
+
5236
+ function _toConsumableArray(arr) {
5237
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
5238
+ }
5455
5239
 
5240
+ var _t;
5456
5241
  var VALID_VARIABLE_NAME_REGEX = /^[a-z](?:\w*[a-z0-9])*$/i;
5457
5242
  var TEMPLATE_FORM_INITIAL_VALUES = {
5458
5243
  name: "",
@@ -5474,7 +5259,7 @@ var TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object().shape({
5474
5259
  }),
5475
5260
  variables: yup.array().of(yup.object().shape({
5476
5261
  variable: yup.string().trim().required(t$2("validations.pleaseEnter_", {
5477
- what: t$2("common.variable").toLocaleLowerCase()
5262
+ what: (_t = t$2("common.variable")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5478
5263
  })).matches(VALID_VARIABLE_NAME_REGEX, t$2("validations.variableName"))
5479
5264
  }))
5480
5265
  });
@@ -5483,285 +5268,7 @@ var EVERYONE_VISIBILITY = {
5483
5268
  value: "everyone"
5484
5269
  };
5485
5270
 
5486
- var MemoizedEditorContent = /*#__PURE__*/React.memo(EditorContent);
5487
- var TemplateDetails = function TemplateDetails(_ref) {
5488
- var _Object$entries;
5489
- var isOpen = _ref.isOpen,
5490
- onClose = _ref.onClose,
5491
- templateDetails = _ref.templateDetails;
5492
- var _useTranslation = useTranslation(),
5493
- t = _useTranslation.t;
5494
- var name = templateDetails.name,
5495
- description = templateDetails.description,
5496
- approverName = templateDetails.approverName,
5497
- accessible = templateDetails.accessible,
5498
- variables = templateDetails.variables,
5499
- message = templateDetails.message;
5500
- return /*#__PURE__*/React.createElement(Pane, {
5501
- isOpen: isOpen,
5502
- onClose: onClose
5503
- }, /*#__PURE__*/React.createElement(Pane.Header, {
5504
- className: "space-y-2"
5505
- }, /*#__PURE__*/React.createElement(Typography, {
5506
- style: "h2"
5507
- }, t("common.templateDetails"))), /*#__PURE__*/React.createElement(Pane.Body, {
5508
- className: "space-y-6"
5509
- }, /*#__PURE__*/React.createElement(Field$1, {
5510
- label: t("common.name"),
5511
- value: name
5512
- }), /*#__PURE__*/React.createElement(Field$1, {
5513
- label: t("inputs.labels.description"),
5514
- value: description
5515
- }), /*#__PURE__*/React.createElement(Field$1, {
5516
- label: t("common.approver", SINGULAR),
5517
- value: approverName
5518
- }), /*#__PURE__*/React.createElement(Field$1, {
5519
- label: t("common.visibility"),
5520
- value: (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label
5521
- }), (_Object$entries = Object.entries(variables || {})) === null || _Object$entries === void 0 ? void 0 : _Object$entries.map(function (_ref2) {
5522
- var _ref3 = _slicedToArray(_ref2, 2),
5523
- variable = _ref3[0],
5524
- value = _ref3[1];
5525
- return /*#__PURE__*/React.createElement(Field$1, {
5526
- key: value,
5527
- label: capitalize$1(variable),
5528
- value: value
5529
- });
5530
- }), /*#__PURE__*/React.createElement("div", {
5531
- className: "flex w-full flex-col space-y-4"
5532
- }, /*#__PURE__*/React.createElement(Label, {
5533
- className: "mb-1 font-normal"
5534
- }, t("inputs.labels.message")), /*#__PURE__*/React.createElement(MemoizedEditorContent, {
5535
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg p-3",
5536
- content: message
5537
- }))));
5538
- };
5539
-
5540
- var Menu$1 = Dropdown.Menu,
5541
- MenuItem = Dropdown.MenuItem;
5542
- var columnData = function columnData(_ref) {
5543
- var onEditClick = _ref.onEditClick,
5544
- onDeleteClick = _ref.onDeleteClick;
5545
- return [{
5546
- dataIndex: "name",
5547
- key: "name",
5548
- sorter: true,
5549
- title: instance.t("common.name")
5550
- }, {
5551
- dataIndex: "visibility",
5552
- key: "visibility",
5553
- title: instance.t("common.visibility"),
5554
- render: function render(_, _ref2) {
5555
- var accessible = _ref2.accessible;
5556
- return (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label;
5557
- }
5558
- }, {
5559
- key: "actions",
5560
- ellipsis: true,
5561
- render: function render(_, template) {
5562
- return /*#__PURE__*/React.createElement("div", {
5563
- className: "flex flex-row items-center justify-end space-x-3",
5564
- onClick: function onClick(event) {
5565
- return event.stopPropagation();
5566
- }
5567
- }, /*#__PURE__*/React.createElement(Dropdown, {
5568
- autoWidth: true,
5569
- buttonProps: {
5570
- style: "text"
5571
- },
5572
- className: "flex-shrink-0",
5573
- icon: MenuHorizontal,
5574
- position: "bottom-end",
5575
- strategy: "fixed"
5576
- }, /*#__PURE__*/React.createElement(Menu$1, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
5577
- "data-cy": "approvers-edit-button",
5578
- onClick: function onClick() {
5579
- return onEditClick(template.id);
5580
- }
5581
- }, instance.t("common.edit")), /*#__PURE__*/React.createElement(MenuItem.Button, {
5582
- "data-cy": "approvers-delete-button",
5583
- onClick: function onClick() {
5584
- return onDeleteClick(template);
5585
- }
5586
- }, instance.t("common.delete")))));
5587
- }
5588
- }];
5589
- };
5590
-
5591
- 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; }
5592
- 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; }
5593
- var Templates = function Templates(_ref) {
5594
- var setIsMenubarOpen = _ref.setIsMenubarOpen,
5595
- approvalsPath = _ref.approvalsPath,
5596
- helpDocUrl = _ref.helpDocUrl;
5597
- var _useState = useState(DEFAULT_FILTER_VALUES),
5598
- _useState2 = _slicedToArray(_useState, 2),
5599
- filters = _useState2[0],
5600
- setFilters = _useState2[1];
5601
- var _useState3 = useState(""),
5602
- _useState4 = _slicedToArray(_useState3, 2),
5603
- templateToDelete = _useState4[0],
5604
- setTemplateToDelete = _useState4[1];
5605
- var _useState5 = useState(""),
5606
- _useState6 = _slicedToArray(_useState5, 2),
5607
- templateDetails = _useState6[0],
5608
- setTemplateDetails = _useState6[1];
5609
- var debouncedSearch = useDebounce(filters.search, SEARCH_DELAY);
5610
- var history = useHistory();
5611
- var _usePaginate = usePaginate(),
5612
- pageProperties = _usePaginate.pageProperties,
5613
- handleTablePagination = _usePaginate.handleTablePagination;
5614
- var _useTranslation = useTranslation(),
5615
- t = _useTranslation.t;
5616
- var _useFetchTemplates = useFetchTemplates(_objectSpread$5(_objectSpread$5(_objectSpread$5({}, pageProperties), filters), {}, {
5617
- search: debouncedSearch.trim()
5618
- }), {
5619
- onSuccess: function onSuccess(templates) {
5620
- handleEmptyPage(templates, pageProperties, handleTablePagination);
5621
- }
5622
- }),
5623
- _useFetchTemplates$da = _useFetchTemplates.data,
5624
- _useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
5625
- _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
5626
- templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
5627
- _useFetchTemplates$da4 = _useFetchTemplates$da2.totalCount,
5628
- totalCount = _useFetchTemplates$da4 === void 0 ? 0 : _useFetchTemplates$da4,
5629
- isTemplateLoading = _useFetchTemplates.isLoading;
5630
- var _useDeleteTemplate = useDeleteTemplate(),
5631
- deleteTemplate = _useDeleteTemplate.mutate,
5632
- isDeleting = _useDeleteTemplate.isLoading;
5633
- var onEditClick = function onEditClick(id) {
5634
- history.push(buildUrl("".concat(approvalsPath).concat(routes.templates.edit), {
5635
- id: id
5636
- }));
5637
- };
5638
- var onDeleteClick = function onDeleteClick(template) {
5639
- setTemplateToDelete(template);
5640
- };
5641
- var columns = columnData({
5642
- onEditClick: onEditClick,
5643
- onDeleteClick: onDeleteClick
5644
- });
5645
- var handleDelete = function handleDelete(templateId) {
5646
- deleteTemplate({
5647
- templateId: templateId
5648
- });
5649
- setTemplateToDelete("");
5650
- };
5651
- var handleTableChange = function handleTableChange(_, __, sorter) {
5652
- setFilters(_objectSpread$5(_objectSpread$5({}, filters), {}, {
5653
- sortBy: sorter.field,
5654
- sortDirection: sorter.order
5655
- }));
5656
- };
5657
- var ActionBlock = function ActionBlock() {
5658
- return /*#__PURE__*/React.createElement(Button, {
5659
- to: "".concat(approvalsPath).concat(routes.templates["new"]),
5660
- label: t("common.add_", {
5661
- what: t("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
5662
- })
5663
- });
5664
- };
5665
- var entity = t("common.template", PLURAL).toLocaleLowerCase();
5666
- var otherProps = {
5667
- primaryButtonProps: {
5668
- label: t("common.add_", {
5669
- what: t("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
5670
- }),
5671
- to: "".concat(approvalsPath).concat(routes.templates["new"])
5672
- },
5673
- helpText: renderNoDataHelpText({
5674
- entity: entity,
5675
- url: helpDocUrl
5676
- })
5677
- };
5678
- if (isTemplateLoading) {
5679
- return /*#__PURE__*/React.createElement("div", {
5680
- className: "neeto-approvals-page-loader"
5681
- }, /*#__PURE__*/React.createElement(PageLoader, null));
5682
- }
5683
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header$1, {
5684
- actionBlock: /*#__PURE__*/React.createElement(ActionBlock, null),
5685
- filters: filters,
5686
- setFilters: setFilters,
5687
- setIsMenubarOpen: setIsMenubarOpen,
5688
- placeholder: t("common.template", PLURAL),
5689
- title: t("common.template", PLURAL)
5690
- }), /*#__PURE__*/React.createElement(SubHeader, {
5691
- leftActionBlock: !!totalCount && /*#__PURE__*/React.createElement(Typography, {
5692
- component: "h4",
5693
- style: "h4"
5694
- }, totalCount, " ", t("common.approvalTemplate", {
5695
- count: totalCount
5696
- }).toLocaleLowerCase())
5697
- }), !isEmpty(templates) ? /*#__PURE__*/React.createElement("div", {
5698
- className: "neeto-approvals__table-wrapper"
5699
- }, /*#__PURE__*/React.createElement(Table, {
5700
- allowRowClick: true,
5701
- fixedHeight: true,
5702
- columnData: columns,
5703
- currentPageNumber: pageProperties.index,
5704
- defaultPageSize: pageProperties.size,
5705
- rowData: templates,
5706
- totalCount: totalCount,
5707
- handlePageChange: function handlePageChange(index, size) {
5708
- return handleTablePagination(index, size);
5709
- },
5710
- paginationProps: {
5711
- hideOnSinglePage: (templates === null || templates === void 0 ? void 0 : templates.length) < DEFAULT_PAGE_SIZE + 1
5712
- },
5713
- onChange: handleTableChange,
5714
- onRowClick: function onRowClick(_, templateDetails) {
5715
- return setTemplateDetails(templateDetails);
5716
- }
5717
- })) : /*#__PURE__*/React.createElement("div", {
5718
- className: "flex h-full w-full flex-grow items-center justify-center"
5719
- }, /*#__PURE__*/React.createElement(NoData, _extends({
5720
- title: t("common.notFound_", {
5721
- what: entity
5722
- })
5723
- }, !filters.search && otherProps))), /*#__PURE__*/React.createElement(Alert, {
5724
- isOpen: !!templateToDelete,
5725
- isSubmitting: isDeleting,
5726
- submitButtonLabel: t("buttons.delete"),
5727
- message: /*#__PURE__*/React.createElement(Trans, {
5728
- i18nKey: "alerts.deleting_",
5729
- values: {
5730
- what: t("common.template", SINGULAR).toLocaleLowerCase(),
5731
- name: templateToDelete === null || templateToDelete === void 0 ? void 0 : templateToDelete.name
5732
- }
5733
- }),
5734
- title: t("common.delete_", {
5735
- what: t("common.template", SINGULAR).toLocaleLowerCase()
5736
- }),
5737
- onClose: function onClose() {
5738
- return setTemplateToDelete("");
5739
- },
5740
- onSubmit: function onSubmit() {
5741
- return handleDelete(templateToDelete === null || templateToDelete === void 0 ? void 0 : templateToDelete.id);
5742
- }
5743
- }), /*#__PURE__*/React.createElement(TemplateDetails, {
5744
- isOpen: !!templateDetails,
5745
- templateDetails: templateDetails,
5746
- onClose: function onClose() {
5747
- return setTemplateDetails("");
5748
- }
5749
- }));
5750
- };
5751
-
5752
- function _arrayWithoutHoles(arr) {
5753
- if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
5754
- }
5755
-
5756
- function _nonIterableSpread() {
5757
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5758
- }
5759
-
5760
- function _toConsumableArray(arr) {
5761
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
5762
- }
5763
-
5764
- var DynamicBlock = function DynamicBlock() {
5271
+ var DynamicBlock = function DynamicBlock() {
5765
5272
  var _useTranslation = useTranslation(),
5766
5273
  t = _useTranslation.t;
5767
5274
  var _useFormikContext = useFormikContext(),
@@ -5831,14 +5338,17 @@ var DynamicBlock = function DynamicBlock() {
5831
5338
  };
5832
5339
 
5833
5340
  var Form$1 = function Form(_ref) {
5834
- var _ref$initialData = _ref.initialData,
5341
+ var _t, _t2;
5342
+ var isOpen = _ref.isOpen,
5343
+ onClose = _ref.onClose,
5344
+ _ref$initialData = _ref.initialData,
5835
5345
  initialData = _ref$initialData === void 0 ? {} : _ref$initialData,
5836
5346
  _ref$onSubmit = _ref.onSubmit,
5837
5347
  onSubmit = _ref$onSubmit === void 0 ? noop$1 : _ref$onSubmit,
5838
5348
  _ref$isLoading = _ref.isLoading,
5839
5349
  isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
5840
5350
  visibilityOptions = _ref.visibilityOptions;
5841
- var history = useHistory();
5351
+ var inputReference = useRef(null);
5842
5352
  var _useTranslation = useTranslation(),
5843
5353
  t = _useTranslation.t;
5844
5354
  var _useFetchApprovers = useFetchApprovers(),
@@ -5846,16 +5356,27 @@ var Form$1 = function Form(_ref) {
5846
5356
  _useFetchApprovers$da2 = _useFetchApprovers$da === void 0 ? {} : _useFetchApprovers$da,
5847
5357
  _useFetchApprovers$da3 = _useFetchApprovers$da2.approvers,
5848
5358
  approvers = _useFetchApprovers$da3 === void 0 ? [] : _useFetchApprovers$da3;
5849
- return /*#__PURE__*/React.createElement("div", {
5850
- className: "w-full"
5851
- }, /*#__PURE__*/React.createElement(Form$3, {
5359
+ var header = isEmpty(initialData) ? t("common.add_", {
5360
+ what: t("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
5361
+ }) : t("common.edit_", {
5362
+ what: t("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
5363
+ });
5364
+ return /*#__PURE__*/React.createElement(Pane, {
5365
+ initialFocusRef: inputReference,
5366
+ size: "large",
5367
+ isOpen: isOpen,
5368
+ onClose: onClose
5369
+ }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
5370
+ style: "h2"
5371
+ }, header)), /*#__PURE__*/React.createElement(Form$3, {
5852
5372
  formikProps: {
5373
+ enableReinitialize: true,
5853
5374
  initialValues: isPresent(initialData) ? initialData : TEMPLATE_FORM_INITIAL_VALUES,
5854
5375
  validationSchema: TEMPLATE_FORM_VALIDATION_SCHEMA,
5855
5376
  onSubmit: onSubmit
5856
5377
  }
5857
- }, /*#__PURE__*/React.createElement("div", {
5858
- className: "flex flex-col space-y-6"
5378
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement("div", {
5379
+ className: "flex w-full flex-col space-y-6"
5859
5380
  }, /*#__PURE__*/React.createElement(Input, {
5860
5381
  autoFocus: true,
5861
5382
  className: "w-1/2",
@@ -5879,17 +5400,17 @@ var Form$1 = function Form(_ref) {
5879
5400
  };
5880
5401
  }),
5881
5402
  placeholder: t("inputs.placeholders.select_", {
5882
- what: t("common.approver", SINGULAR).toLocaleLowerCase()
5403
+ what: (_t = t("common.approver", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
5883
5404
  })
5884
5405
  }), /*#__PURE__*/React.createElement(Select, {
5885
5406
  label: t("common.visibility"),
5886
5407
  name: "visibility",
5887
5408
  options: [].concat(_toConsumableArray(visibilityOptions), [EVERYONE_VISIBILITY]),
5888
5409
  placeholder: t("inputs.placeholders.select_", {
5889
- what: t("common.visibility").toLocaleLowerCase()
5410
+ what: (_t2 = t("common.visibility")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase()
5890
5411
  })
5891
- })), /*#__PURE__*/React.createElement(DynamicBlock, null), /*#__PURE__*/React.createElement("div", {
5892
- className: "space-x-4 pb-6"
5412
+ })), /*#__PURE__*/React.createElement(DynamicBlock, null))), /*#__PURE__*/React.createElement(Pane.Footer, {
5413
+ className: "flex gap-x-2"
5893
5414
  }, /*#__PURE__*/React.createElement(Button, {
5894
5415
  label: t("buttons.saveChanges"),
5895
5416
  loading: isLoading,
@@ -5897,14 +5418,12 @@ var Form$1 = function Form(_ref) {
5897
5418
  }), /*#__PURE__*/React.createElement(Button, {
5898
5419
  label: t("buttons.cancel"),
5899
5420
  style: "text",
5900
- onClick: function onClick() {
5901
- return history.goBack();
5902
- }
5421
+ onClick: onClose
5903
5422
  })))));
5904
5423
  };
5905
5424
 
5906
- 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; }
5907
- 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; }
5425
+ 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; }
5426
+ 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; }
5908
5427
  var buildTemplatePayload = function buildTemplatePayload(template) {
5909
5428
  var variables = template.variables,
5910
5429
  visibility = template.visibility,
@@ -5914,7 +5433,7 @@ var buildTemplatePayload = function buildTemplatePayload(template) {
5914
5433
  return ["variable".concat(index + 1), variable];
5915
5434
  });
5916
5435
  var payload = {
5917
- template: _objectSpread$4(_objectSpread$4({}, template), {}, {
5436
+ template: _objectSpread$5(_objectSpread$5({}, template), {}, {
5918
5437
  accessibleId: visibility.value || visibility,
5919
5438
  approverId: approver.value,
5920
5439
  variables: fromPairs(indexedVariables)
@@ -5922,14 +5441,26 @@ var buildTemplatePayload = function buildTemplatePayload(template) {
5922
5441
  };
5923
5442
  return payload;
5924
5443
  };
5444
+ var generateInitialData = function generateInitialData(template) {
5445
+ return _objectSpread$5(_objectSpread$5({}, template), {}, {
5446
+ visibility: template.accessibleId || EVERYONE_VISIBILITY.value,
5447
+ approver: {
5448
+ label: template.approverName,
5449
+ value: template.approverId
5450
+ },
5451
+ variables: template.variables && Object.values(template.variables).map(function (variable) {
5452
+ return {
5453
+ variable: variable
5454
+ };
5455
+ })
5456
+ });
5457
+ };
5925
5458
 
5926
5459
  var Create = function Create(_ref) {
5927
- var approvalsPath = _ref.approvalsPath,
5928
- visibilityOptions = _ref.visibilityOptions,
5929
- templateUrl = _ref.templateUrl;
5930
- var history = useHistory();
5931
- var _useTranslation = useTranslation(),
5932
- t = _useTranslation.t;
5460
+ var visibilityOptions = _ref.visibilityOptions,
5461
+ templateUrl = _ref.templateUrl,
5462
+ isOpen = _ref.isOpen,
5463
+ onClose = _ref.onClose;
5933
5464
  var _useCreateTemplate = useCreateTemplate(),
5934
5465
  createTemplate = _useCreateTemplate.mutate,
5935
5466
  isLoading = _useCreateTemplate.isLoading;
@@ -5939,53 +5470,28 @@ var Create = function Create(_ref) {
5939
5470
  url: templateUrl,
5940
5471
  payload: payload
5941
5472
  }, {
5942
- onSuccess: function onSuccess() {
5943
- return (
5944
- // eslint-disable-next-line @bigbinary/neeto/use-common-routes
5945
- history.push("".concat(approvalsPath).concat(routes.templates.index))
5946
- );
5947
- }
5473
+ onSuccess: onClose
5948
5474
  });
5949
5475
  };
5950
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header$2, {
5951
- breadcrumbs: [{
5952
- link: "".concat(approvalsPath).concat(routes.templates.index),
5953
- text: t("common.template", PLURAL)
5954
- }],
5955
- title: t("common.add_", {
5956
- what: t("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
5957
- })
5958
- }), /*#__PURE__*/React.createElement(Form$1, {
5476
+ return /*#__PURE__*/React.createElement(Form$1, {
5959
5477
  isLoading: isLoading,
5478
+ isOpen: isOpen,
5479
+ onClose: onClose,
5960
5480
  onSubmit: onSubmit,
5961
5481
  visibilityOptions: visibilityOptions
5962
- }));
5482
+ });
5963
5483
  };
5964
5484
 
5965
- 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; }
5966
- 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; }
5967
5485
  var Edit = function Edit(_ref) {
5968
- var _template$approver, _template$approver2;
5969
- var approvalsPath = _ref.approvalsPath,
5970
- visibilityOptions = _ref.visibilityOptions,
5971
- templateUrl = _ref.templateUrl;
5972
- var _useParams = useParams(),
5973
- id = _useParams.id;
5974
- var history = useHistory();
5975
- var _useTranslation = useTranslation(),
5976
- t = _useTranslation.t;
5977
- var _useFetchTemplate = useFetchTemplate({
5978
- templateId: id
5979
- }),
5980
- _useFetchTemplate$dat = _useFetchTemplate.data,
5981
- _useFetchTemplate$dat2 = _useFetchTemplate$dat === void 0 ? {} : _useFetchTemplate$dat,
5982
- _useFetchTemplate$dat3 = _useFetchTemplate$dat2.template,
5983
- template = _useFetchTemplate$dat3 === void 0 ? {} : _useFetchTemplate$dat3,
5984
- isFetchingTemplate = _useFetchTemplate.isLoading;
5486
+ var visibilityOptions = _ref.visibilityOptions,
5487
+ templateUrl = _ref.templateUrl,
5488
+ template = _ref.template,
5489
+ setTemplate = _ref.setTemplate,
5490
+ isOpen = _ref.isOpen,
5491
+ onClose = _ref.onClose;
5985
5492
  var _useUpdateTemplate = useUpdateTemplate({
5986
- // eslint-disable-next-line @bigbinary/neeto/use-common-routes
5987
5493
  onSuccess: function onSuccess() {
5988
- return history.push("".concat(approvalsPath).concat(routes.templates.index));
5494
+ return setTemplate({});
5989
5495
  }
5990
5496
  }),
5991
5497
  updateTemplate = _useUpdateTemplate.mutate,
@@ -5993,77 +5499,365 @@ var Edit = function Edit(_ref) {
5993
5499
  var onSubmit = function onSubmit(template) {
5994
5500
  var payload = buildTemplatePayload(template);
5995
5501
  updateTemplate({
5996
- id: id,
5502
+ id: template.id,
5997
5503
  payload: payload,
5998
5504
  url: templateUrl
5999
5505
  });
6000
5506
  };
6001
- if (isFetchingTemplate) {
6002
- return /*#__PURE__*/React.createElement("div", {
6003
- className: "neeto-approvals-page-loader"
6004
- }, /*#__PURE__*/React.createElement(PageLoader, null));
6005
- }
6006
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header$2, {
6007
- breadcrumbs: [{
6008
- link: "".concat(approvalsPath).concat(routes.templates.index),
6009
- text: t("common.template", PLURAL)
6010
- }],
6011
- title: t("common.edit_", {
6012
- what: t("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
6013
- })
6014
- }), /*#__PURE__*/React.createElement(Form$1, {
5507
+ return /*#__PURE__*/React.createElement(Form$1, {
5508
+ initialData: generateInitialData(template),
6015
5509
  isLoading: isUpdating,
5510
+ isOpen: isOpen,
5511
+ onClose: onClose,
6016
5512
  onSubmit: onSubmit,
6017
- visibilityOptions: visibilityOptions,
6018
- initialData: _objectSpread$3(_objectSpread$3({}, template), {}, {
6019
- visibility: template.accessible.id || EVERYONE_VISIBILITY.value,
6020
- approver: {
6021
- label: (_template$approver = template.approver) === null || _template$approver === void 0 ? void 0 : _template$approver.name,
6022
- value: (_template$approver2 = template.approver) === null || _template$approver2 === void 0 ? void 0 : _template$approver2.id
6023
- },
6024
- variables: Object.values(template.variables).map(function (variable) {
6025
- return {
6026
- variable: variable
6027
- };
6028
- })
6029
- })
5513
+ visibilityOptions: visibilityOptions
5514
+ });
5515
+ };
5516
+
5517
+ var Field = function Field(_ref) {
5518
+ var label = _ref.label,
5519
+ value = _ref.value;
5520
+ return /*#__PURE__*/React.createElement("div", {
5521
+ className: "flex flex-col items-start justify-center"
5522
+ }, /*#__PURE__*/React.createElement(Label, {
5523
+ className: "mb-1 font-normal"
5524
+ }, label), /*#__PURE__*/React.createElement("p", {
5525
+ className: "neeto-ui-text-gray-800 break-words text-base font-medium"
5526
+ }, value));
5527
+ };
5528
+ var Field$1 = /*#__PURE__*/React.memo(Field);
5529
+
5530
+ var MemoizedEditorContent = /*#__PURE__*/React.memo(EditorContent);
5531
+ var TemplateDetails = function TemplateDetails(_ref) {
5532
+ var _Object$entries;
5533
+ var isOpen = _ref.isOpen,
5534
+ onClose = _ref.onClose,
5535
+ template = _ref.template;
5536
+ var _useTranslation = useTranslation(),
5537
+ t = _useTranslation.t;
5538
+ var name = template.name,
5539
+ description = template.description,
5540
+ approverName = template.approverName,
5541
+ accessible = template.accessible,
5542
+ variables = template.variables,
5543
+ message = template.message;
5544
+ return /*#__PURE__*/React.createElement(Pane, {
5545
+ isOpen: isOpen,
5546
+ onClose: onClose
5547
+ }, /*#__PURE__*/React.createElement(Pane.Header, {
5548
+ className: "space-y-2"
5549
+ }, /*#__PURE__*/React.createElement(Typography, {
5550
+ style: "h2"
5551
+ }, t("common.templateDetails"))), /*#__PURE__*/React.createElement(Pane.Body, {
5552
+ className: "space-y-6"
5553
+ }, /*#__PURE__*/React.createElement(Field$1, {
5554
+ label: t("common.name"),
5555
+ value: name
5556
+ }), /*#__PURE__*/React.createElement(Field$1, {
5557
+ label: t("inputs.labels.description"),
5558
+ value: description
5559
+ }), /*#__PURE__*/React.createElement(Field$1, {
5560
+ label: t("common.approver", SINGULAR),
5561
+ value: approverName
5562
+ }), /*#__PURE__*/React.createElement(Field$1, {
5563
+ label: t("common.visibility"),
5564
+ value: (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label
5565
+ }), (_Object$entries = Object.entries(variables || {})) === null || _Object$entries === void 0 ? void 0 : _Object$entries.map(function (_ref2) {
5566
+ var _ref3 = _slicedToArray(_ref2, 2),
5567
+ variable = _ref3[0],
5568
+ value = _ref3[1];
5569
+ return /*#__PURE__*/React.createElement(Field$1, {
5570
+ key: value,
5571
+ label: capitalize$1(variable),
5572
+ value: value
5573
+ });
5574
+ }), /*#__PURE__*/React.createElement("div", {
5575
+ className: "flex w-full flex-col space-y-4"
5576
+ }, /*#__PURE__*/React.createElement(Label, {
5577
+ className: "mb-1 font-normal"
5578
+ }, t("inputs.labels.message")), /*#__PURE__*/React.createElement(MemoizedEditorContent, {
5579
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg p-3",
5580
+ content: message
5581
+ }))));
5582
+ };
5583
+
5584
+ var Menu = Dropdown.Menu,
5585
+ MenuItem = Dropdown.MenuItem;
5586
+ var columnData = function columnData(_ref) {
5587
+ var onEditClick = _ref.onEditClick,
5588
+ onDeleteClick = _ref.onDeleteClick;
5589
+ return [{
5590
+ dataIndex: "name",
5591
+ key: "name",
5592
+ sorter: true,
5593
+ title: instance.t("common.name")
5594
+ }, {
5595
+ dataIndex: "visibility",
5596
+ key: "visibility",
5597
+ title: instance.t("common.visibility"),
5598
+ render: function render(_, _ref2) {
5599
+ var accessible = _ref2.accessible;
5600
+ return (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label;
5601
+ }
5602
+ }, {
5603
+ key: "actions",
5604
+ ellipsis: true,
5605
+ render: function render(_, template) {
5606
+ return /*#__PURE__*/React.createElement("div", {
5607
+ className: "flex flex-row items-center justify-end space-x-3",
5608
+ onClick: function onClick(event) {
5609
+ return event.stopPropagation();
5610
+ }
5611
+ }, /*#__PURE__*/React.createElement(Dropdown, {
5612
+ autoWidth: true,
5613
+ buttonProps: {
5614
+ style: "text"
5615
+ },
5616
+ className: "flex-shrink-0",
5617
+ icon: MenuHorizontal,
5618
+ position: "bottom-end",
5619
+ strategy: "fixed"
5620
+ }, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
5621
+ "data-cy": "approvers-edit-button",
5622
+ onClick: function onClick() {
5623
+ return onEditClick(template);
5624
+ }
5625
+ }, instance.t("common.edit")), /*#__PURE__*/React.createElement(MenuItem.Button, {
5626
+ "data-cy": "approvers-delete-button",
5627
+ onClick: function onClick() {
5628
+ return onDeleteClick(template);
5629
+ }
5630
+ }, instance.t("common.delete")))));
5631
+ }
5632
+ }];
5633
+ };
5634
+
5635
+ var _excluded = ["filters", "isNewTemplatePaneOpen", "setFilters", "setIsNewTemplatePaneOpen", "helpDocUrl"];
5636
+ 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; }
5637
+ 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; }
5638
+ var Templates = function Templates(_ref) {
5639
+ var _t, _t2, _t3;
5640
+ var filters = _ref.filters,
5641
+ isNewTemplatePaneOpen = _ref.isNewTemplatePaneOpen,
5642
+ setFilters = _ref.setFilters,
5643
+ setIsNewTemplatePaneOpen = _ref.setIsNewTemplatePaneOpen,
5644
+ helpDocUrl = _ref.helpDocUrl,
5645
+ otherProps = _objectWithoutProperties(_ref, _excluded);
5646
+ var _useState = useState({}),
5647
+ _useState2 = _slicedToArray(_useState, 2),
5648
+ selectedTemplate = _useState2[0],
5649
+ setSelectedTemplate = _useState2[1];
5650
+ var _useState3 = useState(false),
5651
+ _useState4 = _slicedToArray(_useState3, 2),
5652
+ isDeleteAlertOpen = _useState4[0],
5653
+ setIsDeleteAlertOpen = _useState4[1];
5654
+ var _useState5 = useState(false),
5655
+ _useState6 = _slicedToArray(_useState5, 2),
5656
+ isEditPaneOpen = _useState6[0],
5657
+ setIsEditPaneOpen = _useState6[1];
5658
+ var _useState7 = useState(false),
5659
+ _useState8 = _slicedToArray(_useState7, 2),
5660
+ isShowPaneOpen = _useState8[0],
5661
+ setIsShowPaneOpen = _useState8[1];
5662
+ var debouncedSearch = useDebounce(filters.search, SEARCH_DELAY);
5663
+ var _usePaginate = usePaginate(),
5664
+ pageProperties = _usePaginate.pageProperties,
5665
+ handleTablePagination = _usePaginate.handleTablePagination;
5666
+ var _useTranslation = useTranslation(),
5667
+ t = _useTranslation.t;
5668
+ var _useFetchTemplates = useFetchTemplates(_objectSpread$4(_objectSpread$4(_objectSpread$4({}, pageProperties), filters), {}, {
5669
+ search: debouncedSearch.trim()
5670
+ }), {
5671
+ onSuccess: function onSuccess(templates) {
5672
+ handleEmptyPage(templates, pageProperties, handleTablePagination);
5673
+ }
5674
+ }),
5675
+ _useFetchTemplates$da = _useFetchTemplates.data,
5676
+ _useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
5677
+ _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
5678
+ templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
5679
+ _useFetchTemplates$da4 = _useFetchTemplates$da2.totalCount,
5680
+ totalCount = _useFetchTemplates$da4 === void 0 ? 0 : _useFetchTemplates$da4,
5681
+ isTemplateLoading = _useFetchTemplates.isLoading;
5682
+ var _useDeleteTemplate = useDeleteTemplate(),
5683
+ deleteTemplate = _useDeleteTemplate.mutate,
5684
+ isDeleting = _useDeleteTemplate.isLoading;
5685
+ useEffect(function () {
5686
+ if (isEmpty(selectedTemplate)) {
5687
+ setIsDeleteAlertOpen(false);
5688
+ setIsEditPaneOpen(false);
5689
+ setIsShowPaneOpen(false);
5690
+ }
5691
+ }, [selectedTemplate]);
5692
+ var onEditClick = function onEditClick(template) {
5693
+ setSelectedTemplate(template);
5694
+ setIsEditPaneOpen(true);
5695
+ };
5696
+ var onRowClick = function onRowClick(_, templateDetails) {
5697
+ setSelectedTemplate(templateDetails);
5698
+ setIsShowPaneOpen(true);
5699
+ };
5700
+ var onDeleteClick = function onDeleteClick(template) {
5701
+ setSelectedTemplate(template);
5702
+ setIsDeleteAlertOpen(true);
5703
+ };
5704
+ var handleDelete = function handleDelete(templateId) {
5705
+ deleteTemplate({
5706
+ templateId: templateId
5707
+ });
5708
+ setSelectedTemplate({});
5709
+ };
5710
+ var entity = (_t = t("common.template", PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase();
5711
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isTemplateLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Table, {
5712
+ items: templates,
5713
+ setIsPaneOpen: setIsNewTemplatePaneOpen,
5714
+ columnData: columnData,
5715
+ entity: entity,
5716
+ filters: filters,
5717
+ helpDocUrl: helpDocUrl,
5718
+ onDeleteClick: onDeleteClick,
5719
+ onEditClick: onEditClick,
5720
+ onRowClick: onRowClick,
5721
+ setFilters: setFilters,
5722
+ totalCount: totalCount
5723
+ }), /*#__PURE__*/React.createElement(Create, _extends({
5724
+ isOpen: isNewTemplatePaneOpen,
5725
+ onClose: function onClose() {
5726
+ return setIsNewTemplatePaneOpen(false);
5727
+ }
5728
+ }, otherProps)), /*#__PURE__*/React.createElement(Edit, _extends({
5729
+ isOpen: isEditPaneOpen,
5730
+ setTemplate: setSelectedTemplate,
5731
+ template: selectedTemplate
5732
+ }, otherProps, {
5733
+ onClose: function onClose() {
5734
+ return setIsEditPaneOpen(false);
5735
+ }
5736
+ })), /*#__PURE__*/React.createElement(Alert, {
5737
+ isOpen: isDeleteAlertOpen,
5738
+ isSubmitting: isDeleting,
5739
+ submitButtonLabel: t("buttons.delete"),
5740
+ message: /*#__PURE__*/React.createElement(Trans, {
5741
+ i18nKey: "alerts.deleting_",
5742
+ values: {
5743
+ what: (_t2 = t("common.template", SINGULAR)) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
5744
+ name: selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.name
5745
+ }
5746
+ }),
5747
+ title: t("common.delete_", {
5748
+ what: (_t3 = t("common.template", SINGULAR)) === null || _t3 === void 0 ? void 0 : _t3.toLocaleLowerCase()
5749
+ }),
5750
+ onClose: function onClose() {
5751
+ return setSelectedTemplate({});
5752
+ },
5753
+ onSubmit: function onSubmit() {
5754
+ return handleDelete(selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.id);
5755
+ }
5756
+ }), /*#__PURE__*/React.createElement(TemplateDetails, {
5757
+ isOpen: isShowPaneOpen,
5758
+ template: selectedTemplate,
5759
+ onClose: function onClose() {
5760
+ return setSelectedTemplate({});
5761
+ }
6030
5762
  }));
6031
5763
  };
6032
5764
 
6033
- var createRoutes = function createRoutes(props) {
5765
+ 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; }
5766
+ 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; }
5767
+ var createRoutes = function createRoutes(_ref) {
5768
+ var config = _ref.config,
5769
+ filters = _ref.filters,
5770
+ isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
5771
+ isNewTemplatePaneOpen = _ref.isNewTemplatePaneOpen,
5772
+ setFilters = _ref.setFilters,
5773
+ setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
5774
+ setIsNewTemplatePaneOpen = _ref.setIsNewTemplatePaneOpen;
6034
5775
  return [{
6035
5776
  component: function component() {
6036
- return /*#__PURE__*/React.createElement(Approvers, props);
5777
+ return /*#__PURE__*/React.createElement(Approvers, _objectSpread$3({
5778
+ filters: filters,
5779
+ isNewApproverPaneOpen: isNewApproverPaneOpen,
5780
+ setFilters: setFilters,
5781
+ setIsNewApproverPaneOpen: setIsNewApproverPaneOpen
5782
+ }, config));
6037
5783
  },
6038
- path: "".concat(props.approvalsPath).concat(routes.approvers)
6039
- }, {
6040
- component: function component() {
6041
- return /*#__PURE__*/React.createElement(Templates, props);
5784
+ path: "".concat(config.approvalsPath).concat(routes.approvers),
5785
+ actionBlock: function actionBlock() {
5786
+ return /*#__PURE__*/React.createElement(Button, {
5787
+ label: t$2("common.add_", {
5788
+ what: t$2("common.approver", SINGULAR).toLocaleLowerCase()
5789
+ }),
5790
+ onClick: function onClick() {
5791
+ return setIsNewApproverPaneOpen(true);
5792
+ }
5793
+ });
6042
5794
  },
6043
- path: "".concat(props.approvalsPath).concat(routes.templates.index)
5795
+ searchPlaceholder: t$2("inputs.placeholders.search_", {
5796
+ what: t$2("common.approver", PLURAL).toLocaleLowerCase()
5797
+ })
6044
5798
  }, {
6045
5799
  component: function component() {
6046
- return /*#__PURE__*/React.createElement(Create, props);
5800
+ return /*#__PURE__*/React.createElement(Templates, _objectSpread$3({
5801
+ filters: filters,
5802
+ isNewTemplatePaneOpen: isNewTemplatePaneOpen,
5803
+ setFilters: setFilters,
5804
+ setIsNewTemplatePaneOpen: setIsNewTemplatePaneOpen
5805
+ }, config));
6047
5806
  },
6048
- path: "".concat(props.approvalsPath).concat(routes.templates["new"])
6049
- }, {
6050
- component: function component() {
6051
- return /*#__PURE__*/React.createElement(Edit, props);
5807
+ path: "".concat(config.approvalsPath).concat(routes.templates.index),
5808
+ actionBlock: function actionBlock() {
5809
+ return /*#__PURE__*/React.createElement(Button, {
5810
+ label: t$2("common.add_", {
5811
+ what: t$2("common.approvalTemplate", SINGULAR).toLocaleLowerCase()
5812
+ }),
5813
+ onClick: function onClick() {
5814
+ return setIsNewTemplatePaneOpen(true);
5815
+ }
5816
+ });
6052
5817
  },
6053
- path: "".concat(props.approvalsPath).concat(routes.templates.edit)
5818
+ searchPlaceholder: t$2("inputs.placeholders.search_", {
5819
+ what: t$2("common.template", PLURAL).toLocaleLowerCase()
5820
+ })
6054
5821
  }, {
6055
5822
  component: function component() {
6056
- return /*#__PURE__*/React.createElement(PendingRequests, props);
5823
+ return /*#__PURE__*/React.createElement(PendingRequests, config);
6057
5824
  },
6058
- path: "".concat(props.approvalsPath).concat(routes.pending)
5825
+ path: "".concat(config.approvalsPath).concat(routes.pending)
6059
5826
  }, {
6060
5827
  component: function component() {
6061
- return /*#__PURE__*/React.createElement(History, props);
5828
+ return /*#__PURE__*/React.createElement(History, config);
6062
5829
  },
6063
- path: "".concat(props.approvalsPath).concat(routes.history)
5830
+ path: "".concat(config.approvalsPath).concat(routes.history)
6064
5831
  }];
6065
5832
  };
6066
5833
 
5834
+ var Header = function Header(_ref) {
5835
+ var _currentTab$actionBlo;
5836
+ var appRoutes = _ref.appRoutes,
5837
+ breadcrumbs = _ref.breadcrumbs,
5838
+ filters = _ref.filters,
5839
+ setFilters = _ref.setFilters;
5840
+ var _useTranslation = useTranslation(),
5841
+ t = _useTranslation.t;
5842
+ var _useLocation = useLocation(),
5843
+ pathname = _useLocation.pathname;
5844
+ var currentTab = findBy({
5845
+ path: pathname
5846
+ }, appRoutes);
5847
+ return /*#__PURE__*/React.createElement(NeetoHeader, {
5848
+ actionBlock: currentTab === null || currentTab === void 0 ? void 0 : (_currentTab$actionBlo = currentTab.actionBlock) === null || _currentTab$actionBlo === void 0 ? void 0 : _currentTab$actionBlo.call(currentTab),
5849
+ title: t("common.approval", PLURAL),
5850
+ searchProps: (currentTab === null || currentTab === void 0 ? void 0 : currentTab.searchPlaceholder) && {
5851
+ onChange: function onChange(event) {
5852
+ return setFilters(assoc("search", event.target.value));
5853
+ },
5854
+ value: filters.search,
5855
+ placeholder: currentTab === null || currentTab === void 0 ? void 0 : currentTab.searchPlaceholder
5856
+ },
5857
+ breadcrumbs: breadcrumbs
5858
+ });
5859
+ };
5860
+
6067
5861
  var fetch = function fetch() {
6068
5862
  return axios.get("".concat(BASE_URL, "/views"));
6069
5863
  };
@@ -6072,7 +5866,7 @@ var viewsApi = {
6072
5866
  };
6073
5867
 
6074
5868
  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; }
6075
- 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; }
5869
+ 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; }
6076
5870
  var useFetchViews = function useFetchViews() {
6077
5871
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6078
5872
  return useQuery([QUERY_KEYS.VIEWS], function () {
@@ -6084,16 +5878,14 @@ var useFetchViews = function useFetchViews() {
6084
5878
  }, options));
6085
5879
  };
6086
5880
 
6087
- var Menu = function Menu(_ref) {
5881
+ var Tab = function Tab(_ref) {
6088
5882
  var _pathname$split$;
6089
- var isMenuOpen = _ref.isMenuOpen,
6090
- approvalsPath = _ref.approvalsPath;
6091
- var approvalFilter = getApprovalFilter();
6092
- var approvalFilterKeys = keys(approvalFilter);
5883
+ var approvalsPath = _ref.approvalsPath;
6093
5884
  var _useLocation = useLocation(),
6094
5885
  pathname = _useLocation.pathname;
6095
- var _useTranslation = useTranslation(),
6096
- t = _useTranslation.t;
5886
+ var history = useHistory();
5887
+ var approvalFilter = getApprovalFilter();
5888
+ var approvalFilterKeys = keys(approvalFilter);
6097
5889
  var category = (_pathname$split$ = pathname.split(routes.approvals)[1]) === null || _pathname$split$ === void 0 ? void 0 : _pathname$split$.toLocaleUpperCase();
6098
5890
  var isActive = function isActive(filter) {
6099
5891
  return category.includes(filter);
@@ -6106,46 +5898,60 @@ var Menu = function Menu(_ref) {
6106
5898
  _useFetchViews$data2 = _useFetchViews$data === void 0 ? {} : _useFetchViews$data,
6107
5899
  _useFetchViews$data2$ = _useFetchViews$data2.views,
6108
5900
  views = _useFetchViews$data2$ === void 0 ? {} : _useFetchViews$data2$;
6109
- return /*#__PURE__*/React.createElement(MenuBar, {
6110
- showMenu: isMenuOpen,
6111
- title: t("common.approval", PLURAL)
6112
- }, approvalFilterKeys.map(function (filter) {
6113
- return /*#__PURE__*/React.createElement(MenuBar.Block, {
5901
+ return /*#__PURE__*/React.createElement(Tab$1, null, approvalFilterKeys.map(function (filter) {
5902
+ return /*#__PURE__*/React.createElement(Tab$1.Item, {
6114
5903
  active: isActive(filter),
6115
- count: views[filter.toLocaleLowerCase()],
5904
+ count: views[filter === null || filter === void 0 ? void 0 : filter.toLocaleLowerCase()],
6116
5905
  key: filter,
6117
5906
  label: approvalFilter[filter].label,
6118
- url: getRoute(filter)
6119
- });
5907
+ onClick: function onClick() {
5908
+ return history.push(getRoute(filter));
5909
+ }
5910
+ }, approvalFilter[filter].label, " (", views[filter === null || filter === void 0 ? void 0 : filter.toLocaleLowerCase()] || 0, ")");
6120
5911
  }));
6121
5912
  };
6122
5913
 
6123
5914
  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; }
6124
- 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; }
5915
+ 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; }
6125
5916
  var Approvals = function Approvals(_ref) {
6126
5917
  var config = _ref.config;
6127
- var _useState = useState(true),
5918
+ var _useState = useState(DEFAULT_FILTER_VALUES),
6128
5919
  _useState2 = _slicedToArray(_useState, 2),
6129
- isMenubarOpen = _useState2[0],
6130
- setIsMenubarOpen = _useState2[1];
6131
- var appRoutes = createRoutes(_objectSpread$1(_objectSpread$1({}, config), {}, {
6132
- setIsMenubarOpen: setIsMenubarOpen
6133
- }));
5920
+ filters = _useState2[0],
5921
+ setFilters = _useState2[1];
5922
+ var _useState3 = useState(false),
5923
+ _useState4 = _slicedToArray(_useState3, 2),
5924
+ isNewTemplatePaneOpen = _useState4[0],
5925
+ setIsNewTemplatePaneOpen = _useState4[1];
5926
+ var _useState5 = useState(false),
5927
+ _useState6 = _slicedToArray(_useState5, 2),
5928
+ isNewApproverPaneOpen = _useState6[0],
5929
+ setIsNewApproverPaneOpen = _useState6[1];
5930
+ var appRoutes = createRoutes({
5931
+ config: config,
5932
+ filters: filters,
5933
+ isNewApproverPaneOpen: isNewApproverPaneOpen,
5934
+ isNewTemplatePaneOpen: isNewTemplatePaneOpen,
5935
+ setFilters: setFilters,
5936
+ setIsNewApproverPaneOpen: setIsNewApproverPaneOpen,
5937
+ setIsNewTemplatePaneOpen: setIsNewTemplatePaneOpen
5938
+ });
6134
5939
  return /*#__PURE__*/React.createElement("div", {
6135
5940
  className: "neeto-approvals"
6136
- }, /*#__PURE__*/React.createElement("div", {
6137
- className: "neeto-approvals-wrapper"
6138
- }, /*#__PURE__*/React.createElement(Menu, {
6139
- approvalsPath: config.approvalsPath,
6140
- isMenuOpen: isMenubarOpen
6141
- }), /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Switch, null, appRoutes.map(function (_ref2) {
5941
+ }, /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Header, _objectSpread$1({
5942
+ appRoutes: appRoutes,
5943
+ filters: filters,
5944
+ setFilters: setFilters
5945
+ }, config)), /*#__PURE__*/React.createElement(Tab, {
5946
+ approvalsPath: config.approvalsPath
5947
+ }), /*#__PURE__*/React.createElement(Switch, null, appRoutes.map(function (_ref2) {
6142
5948
  var path = _ref2.path,
6143
5949
  component = _ref2.component;
6144
5950
  return /*#__PURE__*/React.createElement(Route, {
6145
5951
  exact: true,
6146
5952
  component: component,
6147
- key: path,
6148
- path: path
5953
+ path: path,
5954
+ key: path
6149
5955
  });
6150
5956
  }), /*#__PURE__*/React.createElement(Redirect, {
6151
5957
  exact: true,
@@ -6153,10 +5959,11 @@ var Approvals = function Approvals(_ref) {
6153
5959
  // eslint-disable-next-line @bigbinary/neeto/use-common-routes
6154
5960
  ,
6155
5961
  to: "".concat(config.approvalsPath).concat(routes.pending)
6156
- })))));
5962
+ }))));
6157
5963
  };
6158
5964
 
6159
5965
  var Form = function Form(_ref) {
5966
+ var _t;
6160
5967
  var isOpen = _ref.isOpen,
6161
5968
  setIsPaneOpen = _ref.setIsPaneOpen,
6162
5969
  onSubmit = _ref.onSubmit,
@@ -6221,7 +6028,7 @@ var Form = function Form(_ref) {
6221
6028
  }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
6222
6029
  style: "h2"
6223
6030
  }, t("common.add_", {
6224
- what: t("common.approval", SINGULAR).toLocaleLowerCase()
6031
+ what: (_t = t("common.approval", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
6225
6032
  }))), /*#__PURE__*/React.createElement(Form$3, {
6226
6033
  formikProps: {
6227
6034
  onSubmit: handleSubmit,
@@ -6300,7 +6107,7 @@ var publicRequestsApi = {
6300
6107
  };
6301
6108
 
6302
6109
  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; }
6303
- 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; }
6110
+ 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; }
6304
6111
  var useFetchPublicRequest = function useFetchPublicRequest(_ref, options) {
6305
6112
  var requestId = _ref.requestId;
6306
6113
  return useQuery([QUERY_KEYS.SHOW_PUBLIC_REQUEST, requestId], function () {
@@ -6335,6 +6142,7 @@ var useDeclinePendingRequest = function useDeclinePendingRequest(options) {
6335
6142
  };
6336
6143
 
6337
6144
  var Public = function Public() {
6145
+ var _t;
6338
6146
  var _useState = useState(""),
6339
6147
  _useState2 = _slicedToArray(_useState, 2),
6340
6148
  note = _useState2[0],
@@ -6369,7 +6177,7 @@ var Public = function Public() {
6369
6177
  className: "h-screen items-center justify-center"
6370
6178
  }, /*#__PURE__*/React.createElement(PageLoader, null));
6371
6179
  }
6372
- return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Header$2, {
6180
+ return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(NeetoHeader, {
6373
6181
  title: t("common.approval", PLURAL)
6374
6182
  }), /*#__PURE__*/React.createElement("div", {
6375
6183
  className: "flex h-screen w-full flex-col items-center"
@@ -6384,7 +6192,7 @@ var Public = function Public() {
6384
6192
  }), !hideTextArea && /*#__PURE__*/React.createElement(Textarea, {
6385
6193
  label: t("common.note"),
6386
6194
  placeholder: t("inputs.placeholders.add_", {
6387
- what: t("common.note").toLocaleLowerCase()
6195
+ what: (_t = t("common.note")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
6388
6196
  }),
6389
6197
  value: note,
6390
6198
  disabled: approvalRequest.status !== STATUSES.pending,
@@ -6427,7 +6235,7 @@ var Public = function Public() {
6427
6235
 
6428
6236
  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}}
6429
6237
 
6430
- 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}";
6238
+ 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}";
6431
6239
  n(css,{});
6432
6240
 
6433
6241
  export { Approvals, Form, Public };