@seamly/web-ui 20.2.0 → 20.3.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.
Files changed (104) hide show
  1. package/CHANGELOG.md +729 -0
  2. package/build/dist/lib/deprecated-view.css +1 -1
  3. package/build/dist/lib/index.debug.js +205 -194
  4. package/build/dist/lib/index.debug.min.js +1 -1
  5. package/build/dist/lib/index.debug.min.js.LICENSE.txt +40 -36
  6. package/build/dist/lib/index.js +1742 -1046
  7. package/build/dist/lib/index.min.js +1 -1
  8. package/build/dist/lib/index.min.js.LICENSE.txt +2 -2
  9. package/build/dist/lib/standalone.js +5120 -2844
  10. package/build/dist/lib/standalone.min.js +1 -1
  11. package/build/dist/lib/standalone.min.js.LICENSE.txt +1 -1
  12. package/build/dist/lib/style-guide.js +7462 -7267
  13. package/build/dist/lib/style-guide.min.js +1 -1
  14. package/build/dist/lib/styles.css +1 -1
  15. package/package.json +15 -14
  16. package/src/javascripts/api/index.js +5 -4
  17. package/src/javascripts/domains/app/actions.js +22 -10
  18. package/src/javascripts/domains/config/reducer.js +2 -2
  19. package/src/javascripts/domains/forms/reducer.js +1 -1
  20. package/src/javascripts/domains/i18n/reducer.js +1 -1
  21. package/src/javascripts/domains/interrupt/reducer.js +1 -1
  22. package/src/javascripts/domains/translations/components/chat-status.js +10 -9
  23. package/src/javascripts/domains/translations/components/options-button.js +8 -3
  24. package/src/javascripts/domains/translations/components/options-dialog/form.js +6 -5
  25. package/src/javascripts/domains/translations/components/options-dialog/index.js +5 -2
  26. package/src/javascripts/domains/translations/hooks.js +15 -1
  27. package/src/javascripts/domains/translations/middleware.js +5 -2
  28. package/src/javascripts/domains/translations/reducer.js +2 -2
  29. package/src/javascripts/domains/visibility/actions.js +1 -1
  30. package/src/javascripts/lib/debug.js +1 -0
  31. package/src/javascripts/lib/external-api/index.js +29 -4
  32. package/src/javascripts/style-guide/components/app.js +1 -1
  33. package/src/javascripts/style-guide/components/static-core.js +1 -4
  34. package/src/javascripts/ui/components/conversation/conversation.js +2 -2
  35. package/src/javascripts/ui/components/conversation/event/card-component.js +4 -1
  36. package/src/javascripts/ui/components/conversation/event/carousel-component/index.js +1 -1
  37. package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +18 -10
  38. package/src/javascripts/ui/components/conversation/event/cta.js +1 -1
  39. package/src/javascripts/ui/components/conversation/event/divider/variants/new-translation.js +4 -9
  40. package/src/javascripts/ui/components/conversation/event/image.js +1 -1
  41. package/src/javascripts/ui/components/conversation/event/text.js +2 -2
  42. package/src/javascripts/ui/components/conversation/loader.js +1 -1
  43. package/src/javascripts/ui/components/conversation/message-container.js +1 -1
  44. package/src/javascripts/ui/components/core/seamly-activity-monitor.js +1 -1
  45. package/src/javascripts/ui/components/core/seamly-core.js +2 -2
  46. package/src/javascripts/ui/components/core/seamly-file-upload.js +1 -1
  47. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +6 -2
  48. package/src/javascripts/ui/components/core/seamly-live-region.js +2 -2
  49. package/src/javascripts/ui/components/entry/entry-container.js +2 -2
  50. package/src/javascripts/ui/components/entry/text-entry/hooks.js +1 -4
  51. package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +1 -1
  52. package/src/javascripts/ui/components/form-controls/select.js +1 -1
  53. package/src/javascripts/ui/components/layout/agent-info.js +1 -1
  54. package/src/javascripts/ui/components/layout/header.js +1 -1
  55. package/src/javascripts/ui/components/options/options-button.js +1 -1
  56. package/src/javascripts/ui/components/options/options.js +1 -1
  57. package/src/javascripts/ui/components/options/transcript/index.js +1 -1
  58. package/src/javascripts/ui/components/suggestions/suggestions-item.js +1 -1
  59. package/src/javascripts/ui/components/warnings/resume-conversation-prompt.js +1 -1
  60. package/src/javascripts/ui/components/widgets/lightbox.js +1 -1
  61. package/src/javascripts/ui/hooks/file-upload-hooks.js +2 -3
  62. package/src/javascripts/ui/hooks/focus-helper-hooks.js +2 -2
  63. package/src/javascripts/ui/hooks/seamly-entry-hooks.js +1 -1
  64. package/src/javascripts/ui/hooks/seamly-option-hooks.js +1 -1
  65. package/src/javascripts/ui/hooks/use-seamly-chat.js +2 -2
  66. package/src/javascripts/ui/hooks/use-seamly-commands.js +7 -7
  67. package/src/javascripts/ui/hooks/use-seamly-idle-detach-countdown.js +4 -4
  68. package/src/javascripts/ui/hooks/use-seamly-resume-conversation-prompt.js +2 -2
  69. package/src/javascripts/ui/hooks/use-single-file-upload.js +1 -1
  70. package/src/javascripts/ui/utils/general-utils.js +1 -1
  71. package/src/javascripts/ui/utils/seamly-utils.js +1 -0
  72. package/src/stylesheets/1-settings/_animations.scss +1 -1
  73. package/src/stylesheets/1-settings/_config.scss +17 -2
  74. package/src/stylesheets/2-tools/_functions.scss +4 -4
  75. package/src/stylesheets/2-tools/_mixins.scss +16 -14
  76. package/src/stylesheets/3-chat/_chat.scss +1 -1
  77. package/src/stylesheets/5-components/_choice-prompt.scss +1 -1
  78. package/src/stylesheets/5-components/_collapse-button.scss +1 -1
  79. package/src/stylesheets/5-components/_input.scss +1 -1
  80. package/src/stylesheets/5-components/_loader.scss +2 -2
  81. package/src/stylesheets/5-components/_message-carousel.scss +1 -1
  82. package/src/stylesheets/5-components/_message-count.scss +1 -1
  83. package/src/stylesheets/5-components/_message.scss +1 -2
  84. package/src/stylesheets/5-components/_modal.scss +1 -1
  85. package/src/stylesheets/5-components/_options.scss +3 -3
  86. package/src/stylesheets/5-components/_suggestions.scss +4 -5
  87. package/src/stylesheets/5-components/_upload.scss +1 -1
  88. package/src/stylesheets/7-deprecated/1-settings/_animations.scss +1 -1
  89. package/src/stylesheets/7-deprecated/1-settings/_config.scss +10 -7
  90. package/src/stylesheets/7-deprecated/2-tools/_functions.scss +2 -2
  91. package/src/stylesheets/7-deprecated/2-tools/_mixins.scss +6 -4
  92. package/src/stylesheets/7-deprecated/3-app/_app.scss +2 -2
  93. package/src/stylesheets/7-deprecated/4-base/_formelements.scss +1 -0
  94. package/src/stylesheets/7-deprecated/5-components/_chat-status.scss +1 -1
  95. package/src/stylesheets/7-deprecated/5-components/_collapse-button.scss +1 -1
  96. package/src/stylesheets/7-deprecated/5-components/_disclaimer.scss +1 -1
  97. package/src/stylesheets/7-deprecated/5-components/_input.scss +2 -1
  98. package/src/stylesheets/7-deprecated/5-components/_loader.scss +2 -2
  99. package/src/stylesheets/7-deprecated/5-components/_message-count.scss +1 -1
  100. package/src/stylesheets/7-deprecated/5-components/_message.scss +3 -4
  101. package/src/stylesheets/7-deprecated/5-components/_modal.scss +1 -1
  102. package/src/stylesheets/7-deprecated/5-components/_options.scss +2 -2
  103. package/src/stylesheets/7-deprecated/5-components/_upload.scss +1 -1
  104. package/src/.DS_Store +0 -0
@@ -303,34 +303,10 @@ exports.Request = Request;
303
303
  */
304
304
 
305
305
  request.getXHR = function () {
306
- if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {
306
+ if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:')) {
307
307
  return new XMLHttpRequest();
308
308
  }
309
309
 
310
- try {
311
- return new ActiveXObject('Microsoft.XMLHTTP');
312
- } catch (_unused) {
313
- /**/
314
- }
315
-
316
- try {
317
- return new ActiveXObject('Msxml2.XMLHTTP.6.0');
318
- } catch (_unused2) {
319
- /**/
320
- }
321
-
322
- try {
323
- return new ActiveXObject('Msxml2.XMLHTTP.3.0');
324
- } catch (_unused3) {
325
- /**/
326
- }
327
-
328
- try {
329
- return new ActiveXObject('Msxml2.XMLHTTP');
330
- } catch (_unused4) {
331
- /**/
332
- }
333
-
334
310
  throw new Error('Browser-only version of superagent could not find XHR');
335
311
  };
336
312
  /**
@@ -682,10 +658,10 @@ function Request(method, url) {
682
658
 
683
659
  try {
684
660
  res = new Response(self);
685
- } catch (error_) {
661
+ } catch (err) {
686
662
  error = new Error('Parser is unable to parse the response');
687
663
  error.parse = true;
688
- error.original = error_; // issue #675: return the raw response if the response parsing fails
664
+ error.original = err; // issue #675: return the raw response if the response parsing fails
689
665
 
690
666
  if (self.xhr) {
691
667
  // ie9 doesn't have 'response' property
@@ -716,7 +692,7 @@ function Request(method, url) {
716
692
  if (new_error) {
717
693
  new_error.original = error;
718
694
  new_error.response = res;
719
- new_error.status = res.status;
695
+ new_error.status = new_error.status || res.status;
720
696
  self.callback(new_error, res);
721
697
  } else {
722
698
  self.callback(null, res);
@@ -808,14 +784,13 @@ Request.prototype.auth = function (user, pass, options) {
808
784
  };
809
785
  }
810
786
 
811
- var encoder = function encoder(string) {
787
+ var encoder = options.encoder ? options.encoder : function (string) {
812
788
  if (typeof btoa === 'function') {
813
789
  return btoa(string);
814
790
  }
815
791
 
816
792
  throw new Error('Cannot use basic auth, btoa is not a function');
817
793
  };
818
-
819
794
  return this._auth(user, pass, options, encoder);
820
795
  };
821
796
  /**
@@ -1005,7 +980,7 @@ Request.prototype._end = function () {
1005
980
 
1006
981
  try {
1007
982
  status = xhr.status;
1008
- } catch (_unused5) {
983
+ } catch (_unused) {
1009
984
  status = 0;
1010
985
  }
1011
986
 
@@ -1037,7 +1012,7 @@ Request.prototype._end = function () {
1037
1012
  if (xhr.upload) {
1038
1013
  xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));
1039
1014
  }
1040
- } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.
1015
+ } catch (_unused2) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.
1041
1016
  // Reported here:
1042
1017
  // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context
1043
1018
  }
@@ -1491,8 +1466,8 @@ RequestBase.prototype._shouldRetry = function (error, res) {
1491
1466
 
1492
1467
  if (override === true) return true;
1493
1468
  if (override === false) return false; // undefined falls back to defaults
1494
- } catch (error_) {
1495
- console.error(error_);
1469
+ } catch (err) {
1470
+ console.error(err);
1496
1471
  }
1497
1472
  } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)
1498
1473
 
@@ -1584,8 +1559,8 @@ RequestBase.prototype.then = function (resolve, reject) {
1584
1559
  return this._fullfilledPromise.then(resolve, reject);
1585
1560
  };
1586
1561
 
1587
- RequestBase.prototype.catch = function (cb) {
1588
- return this.then(undefined, cb);
1562
+ RequestBase.prototype.catch = function (callback) {
1563
+ return this.then(undefined, callback);
1589
1564
  };
1590
1565
  /**
1591
1566
  * Allow for extension
@@ -1597,9 +1572,9 @@ RequestBase.prototype.use = function (fn) {
1597
1572
  return this;
1598
1573
  };
1599
1574
 
1600
- RequestBase.prototype.ok = function (cb) {
1601
- if (typeof cb !== 'function') throw new Error('Callback required');
1602
- this._okCallback = cb;
1575
+ RequestBase.prototype.ok = function (callback) {
1576
+ if (typeof callback !== 'function') throw new Error('Callback required');
1577
+ this._okCallback = callback;
1603
1578
  return this;
1604
1579
  };
1605
1580
 
@@ -1749,10 +1724,10 @@ RequestBase.prototype.field = function (name, value, options) {
1749
1724
 
1750
1725
  if (typeof value === 'boolean') {
1751
1726
  value = String(value);
1752
- }
1727
+ } // fix https://github.com/visionmedia/superagent/issues/1680
1753
1728
 
1754
- this._getFormData().append(name, value, options);
1755
1729
 
1730
+ if (options) this._getFormData().append(name, value, options);else this._getFormData().append(name, value);
1756
1731
  return this;
1757
1732
  };
1758
1733
  /**
@@ -2862,7 +2837,7 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
2862
2837
  valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));
2863
2838
  }
2864
2839
 
2865
- return [formatter(keyValue) + '=' + valuesJoined];
2840
+ return [formatter(keyValue) + (isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];
2866
2841
  }
2867
2842
 
2868
2843
  return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];
@@ -2891,6 +2866,8 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
2891
2866
  objKeys = sort ? keys.sort(sort) : keys;
2892
2867
  }
2893
2868
 
2869
+ var adjustedPrefix = generateArrayPrefix === 'comma' && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;
2870
+
2894
2871
  for (var j = 0; j < objKeys.length; ++j) {
2895
2872
  var key = objKeys[j];
2896
2873
  var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];
@@ -2899,7 +2876,7 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
2899
2876
  continue;
2900
2877
  }
2901
2878
 
2902
- var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');
2879
+ var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');
2903
2880
  sideChannel.set(object, step);
2904
2881
  var valueSideChannel = getSideChannel();
2905
2882
  valueSideChannel.set(sentinel, sideChannel);
@@ -3310,6 +3287,7 @@ module.exports = {
3310
3287
  /***/ ((module) => {
3311
3288
 
3312
3289
  if (false) {} else {
3290
+ // eslint-disable-next-line react/display-name
3313
3291
  module.exports = () => () => null;
3314
3292
  }
3315
3293
 
@@ -3590,7 +3568,7 @@ Emitter.prototype.hasListeners = function(event){
3590
3568
  "use strict";
3591
3569
 
3592
3570
 
3593
- var keys = __webpack_require__(215);
3571
+ var keys = __webpack_require__(686);
3594
3572
  var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
3595
3573
 
3596
3574
  var toStr = Object.prototype.toString;
@@ -3601,20 +3579,9 @@ var isFunction = function (fn) {
3601
3579
  return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
3602
3580
  };
3603
3581
 
3604
- var arePropertyDescriptorsSupported = function () {
3605
- var obj = {};
3606
- try {
3607
- origDefineProperty(obj, 'x', { enumerable: false, value: obj });
3608
- // eslint-disable-next-line no-unused-vars, no-restricted-syntax
3609
- for (var _ in obj) { // jscs:ignore disallowUnusedVariables
3610
- return false;
3611
- }
3612
- return obj.x === obj;
3613
- } catch (e) { /* this is IE 8. */
3614
- return false;
3615
- }
3616
- };
3617
- var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
3582
+ var hasPropertyDescriptors = __webpack_require__(44)();
3583
+
3584
+ var supportsDescriptors = origDefineProperty && hasPropertyDescriptors;
3618
3585
 
3619
3586
  var defineProperty = function (object, name, value, predicate) {
3620
3587
  if (name in object && (!isFunction(predicate) || !predicate())) {
@@ -3628,7 +3595,7 @@ var defineProperty = function (object, name, value, predicate) {
3628
3595
  writable: true
3629
3596
  });
3630
3597
  } else {
3631
- object[name] = value;
3598
+ object[name] = value; // eslint-disable-line no-param-reassign
3632
3599
  }
3633
3600
  };
3634
3601
 
@@ -4167,6 +4134,7 @@ var $concat = bind.call(Function.call, Array.prototype.concat);
4167
4134
  var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
4168
4135
  var $replace = bind.call(Function.call, String.prototype.replace);
4169
4136
  var $strSlice = bind.call(Function.call, String.prototype.slice);
4137
+ var $exec = bind.call(Function.call, RegExp.prototype.exec);
4170
4138
 
4171
4139
  /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
4172
4140
  var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
@@ -4222,6 +4190,9 @@ module.exports = function GetIntrinsic(name, allowMissing) {
4222
4190
  throw new $TypeError('"allowMissing" argument must be a boolean');
4223
4191
  }
4224
4192
 
4193
+ if ($exec(/^%?[^%]*%?$/g, name) === null) {
4194
+ throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');
4195
+ }
4225
4196
  var parts = stringToPath(name);
4226
4197
  var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
4227
4198
 
@@ -4374,12 +4345,12 @@ module.exports = function shimGlobal() {
4374
4345
  var polyfill = getPolyfill();
4375
4346
  if (define.supportsDescriptors) {
4376
4347
  var descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');
4377
- if (!descriptor || (descriptor.configurable && (descriptor.enumerable || descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len
4348
+ if (!descriptor || (descriptor.configurable && (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len
4378
4349
  Object.defineProperty(polyfill, 'globalThis', {
4379
4350
  configurable: true,
4380
4351
  enumerable: false,
4381
4352
  value: polyfill,
4382
- writable: false
4353
+ writable: true
4383
4354
  });
4384
4355
  }
4385
4356
  } else if (typeof globalThis !== 'object' || globalThis !== polyfill) {
@@ -4389,6 +4360,47 @@ module.exports = function shimGlobal() {
4389
4360
  };
4390
4361
 
4391
4362
 
4363
+ /***/ }),
4364
+
4365
+ /***/ 44:
4366
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
4367
+
4368
+ "use strict";
4369
+
4370
+
4371
+ var GetIntrinsic = __webpack_require__(210);
4372
+
4373
+ var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
4374
+
4375
+ var hasPropertyDescriptors = function hasPropertyDescriptors() {
4376
+ if ($defineProperty) {
4377
+ try {
4378
+ $defineProperty({}, 'a', { value: 1 });
4379
+ return true;
4380
+ } catch (e) {
4381
+ // IE 8 has a broken defineProperty
4382
+ return false;
4383
+ }
4384
+ }
4385
+ return false;
4386
+ };
4387
+
4388
+ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
4389
+ // node v0.6 has a bug where array lengths can be Set but not Defined
4390
+ if (!hasPropertyDescriptors()) {
4391
+ return null;
4392
+ }
4393
+ try {
4394
+ return $defineProperty([], 'length', { value: 1 }).length !== 1;
4395
+ } catch (e) {
4396
+ // In Firefox 4-22, defining length on an array throws an exception.
4397
+ return true;
4398
+ }
4399
+ };
4400
+
4401
+ module.exports = hasPropertyDescriptors;
4402
+
4403
+
4392
4404
  /***/ }),
4393
4405
 
4394
4406
  /***/ 405:
@@ -4502,11 +4514,24 @@ var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
4502
4514
  var booleanValueOf = Boolean.prototype.valueOf;
4503
4515
  var objectToString = Object.prototype.toString;
4504
4516
  var functionToString = Function.prototype.toString;
4505
- var match = String.prototype.match;
4517
+ var $match = String.prototype.match;
4518
+ var $slice = String.prototype.slice;
4519
+ var $replace = String.prototype.replace;
4520
+ var $toUpperCase = String.prototype.toUpperCase;
4521
+ var $toLowerCase = String.prototype.toLowerCase;
4522
+ var $test = RegExp.prototype.test;
4523
+ var $concat = Array.prototype.concat;
4524
+ var $join = Array.prototype.join;
4525
+ var $arrSlice = Array.prototype.slice;
4526
+ var $floor = Math.floor;
4506
4527
  var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
4507
4528
  var gOPS = Object.getOwnPropertySymbols;
4508
4529
  var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;
4509
4530
  var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';
4531
+ // ie, `has-tostringtag/shams
4532
+ var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')
4533
+ ? Symbol.toStringTag
4534
+ : null;
4510
4535
  var isEnumerable = Object.prototype.propertyIsEnumerable;
4511
4536
 
4512
4537
  var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (
@@ -4517,9 +4542,31 @@ var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPr
4517
4542
  : null
4518
4543
  );
4519
4544
 
4520
- var inspectCustom = __webpack_require__(654).custom;
4521
- var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;
4522
- var toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;
4545
+ function addNumericSeparator(num, str) {
4546
+ if (
4547
+ num === Infinity
4548
+ || num === -Infinity
4549
+ || num !== num
4550
+ || (num && num > -1000 && num < 1000)
4551
+ || $test.call(/e/, str)
4552
+ ) {
4553
+ return str;
4554
+ }
4555
+ var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
4556
+ if (typeof num === 'number') {
4557
+ var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)
4558
+ if (int !== num) {
4559
+ var intStr = String(int);
4560
+ var dec = $slice.call(str, intStr.length + 1);
4561
+ return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');
4562
+ }
4563
+ }
4564
+ return $replace.call(str, sepRegex, '$&_');
4565
+ }
4566
+
4567
+ var utilInspect = __webpack_require__(654);
4568
+ var inspectCustom = utilInspect.custom;
4569
+ var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
4523
4570
 
4524
4571
  module.exports = function inspect_(obj, options, depth, seen) {
4525
4572
  var opts = options || {};
@@ -4536,8 +4583,8 @@ module.exports = function inspect_(obj, options, depth, seen) {
4536
4583
  throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
4537
4584
  }
4538
4585
  var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;
4539
- if (typeof customInspect !== 'boolean') {
4540
- throw new TypeError('option "customInspect", if provided, must be `true` or `false`');
4586
+ if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
4587
+ throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
4541
4588
  }
4542
4589
 
4543
4590
  if (
@@ -4546,8 +4593,12 @@ module.exports = function inspect_(obj, options, depth, seen) {
4546
4593
  && opts.indent !== '\t'
4547
4594
  && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)
4548
4595
  ) {
4549
- throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');
4596
+ throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
4550
4597
  }
4598
+ if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {
4599
+ throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
4600
+ }
4601
+ var numericSeparator = opts.numericSeparator;
4551
4602
 
4552
4603
  if (typeof obj === 'undefined') {
4553
4604
  return 'undefined';
@@ -4566,10 +4617,12 @@ module.exports = function inspect_(obj, options, depth, seen) {
4566
4617
  if (obj === 0) {
4567
4618
  return Infinity / obj > 0 ? '0' : '-0';
4568
4619
  }
4569
- return String(obj);
4620
+ var str = String(obj);
4621
+ return numericSeparator ? addNumericSeparator(obj, str) : str;
4570
4622
  }
4571
4623
  if (typeof obj === 'bigint') {
4572
- return String(obj) + 'n';
4624
+ var bigIntStr = String(obj) + 'n';
4625
+ return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
4573
4626
  }
4574
4627
 
4575
4628
  var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
@@ -4588,7 +4641,7 @@ module.exports = function inspect_(obj, options, depth, seen) {
4588
4641
 
4589
4642
  function inspect(value, from, noIndent) {
4590
4643
  if (from) {
4591
- seen = seen.slice();
4644
+ seen = $arrSlice.call(seen);
4592
4645
  seen.push(from);
4593
4646
  }
4594
4647
  if (noIndent) {
@@ -4603,24 +4656,24 @@ module.exports = function inspect_(obj, options, depth, seen) {
4603
4656
  return inspect_(value, opts, depth + 1, seen);
4604
4657
  }
4605
4658
 
4606
- if (typeof obj === 'function') {
4659
+ if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable
4607
4660
  var name = nameOf(obj);
4608
4661
  var keys = arrObjKeys(obj, inspect);
4609
- return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');
4662
+ return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');
4610
4663
  }
4611
4664
  if (isSymbol(obj)) {
4612
- var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
4665
+ var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
4613
4666
  return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
4614
4667
  }
4615
4668
  if (isElement(obj)) {
4616
- var s = '<' + String(obj.nodeName).toLowerCase();
4669
+ var s = '<' + $toLowerCase.call(String(obj.nodeName));
4617
4670
  var attrs = obj.attributes || [];
4618
4671
  for (var i = 0; i < attrs.length; i++) {
4619
4672
  s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
4620
4673
  }
4621
4674
  s += '>';
4622
4675
  if (obj.childNodes && obj.childNodes.length) { s += '...'; }
4623
- s += '</' + String(obj.nodeName).toLowerCase() + '>';
4676
+ s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';
4624
4677
  return s;
4625
4678
  }
4626
4679
  if (isArray(obj)) {
@@ -4629,17 +4682,20 @@ module.exports = function inspect_(obj, options, depth, seen) {
4629
4682
  if (indent && !singleLineValues(xs)) {
4630
4683
  return '[' + indentedJoin(xs, indent) + ']';
4631
4684
  }
4632
- return '[ ' + xs.join(', ') + ' ]';
4685
+ return '[ ' + $join.call(xs, ', ') + ' ]';
4633
4686
  }
4634
4687
  if (isError(obj)) {
4635
4688
  var parts = arrObjKeys(obj, inspect);
4689
+ if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {
4690
+ return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';
4691
+ }
4636
4692
  if (parts.length === 0) { return '[' + String(obj) + ']'; }
4637
- return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';
4693
+ return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';
4638
4694
  }
4639
4695
  if (typeof obj === 'object' && customInspect) {
4640
- if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {
4641
- return obj[inspectSymbol]();
4642
- } else if (typeof obj.inspect === 'function') {
4696
+ if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {
4697
+ return utilInspect(obj, { depth: maxDepth - depth });
4698
+ } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
4643
4699
  return obj.inspect();
4644
4700
  }
4645
4701
  }
@@ -4682,14 +4738,14 @@ module.exports = function inspect_(obj, options, depth, seen) {
4682
4738
  var ys = arrObjKeys(obj, inspect);
4683
4739
  var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
4684
4740
  var protoTag = obj instanceof Object ? '' : 'null prototype';
4685
- var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';
4741
+ var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';
4686
4742
  var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
4687
- var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');
4743
+ var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');
4688
4744
  if (ys.length === 0) { return tag + '{}'; }
4689
4745
  if (indent) {
4690
4746
  return tag + '{' + indentedJoin(ys, indent) + '}';
4691
4747
  }
4692
- return tag + '{ ' + ys.join(', ') + ' }';
4748
+ return tag + '{ ' + $join.call(ys, ', ') + ' }';
4693
4749
  }
4694
4750
  return String(obj);
4695
4751
  };
@@ -4700,7 +4756,7 @@ function wrapQuotes(s, defaultStyle, opts) {
4700
4756
  }
4701
4757
 
4702
4758
  function quote(s) {
4703
- return String(s).replace(/"/g, '&quot;');
4759
+ return $replace.call(String(s), /"/g, '&quot;');
4704
4760
  }
4705
4761
 
4706
4762
  function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
@@ -4751,7 +4807,7 @@ function toStr(obj) {
4751
4807
 
4752
4808
  function nameOf(f) {
4753
4809
  if (f.name) { return f.name; }
4754
- var m = match.call(functionToString.call(f), /^function\s*([\w$]+)/);
4810
+ var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
4755
4811
  if (m) { return m[1]; }
4756
4812
  return null;
4757
4813
  }
@@ -4851,10 +4907,10 @@ function inspectString(str, opts) {
4851
4907
  if (str.length > opts.maxStringLength) {
4852
4908
  var remaining = str.length - opts.maxStringLength;
4853
4909
  var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
4854
- return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;
4910
+ return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
4855
4911
  }
4856
4912
  // eslint-disable-next-line no-control-regex
4857
- var s = str.replace(/(['\\])/g, '\\$1').replace(/[\x00-\x1f]/g, lowbyte);
4913
+ var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte);
4858
4914
  return wrapQuotes(s, 'single', opts);
4859
4915
  }
4860
4916
 
@@ -4868,7 +4924,7 @@ function lowbyte(c) {
4868
4924
  13: 'r'
4869
4925
  }[n];
4870
4926
  if (x) { return '\\' + x; }
4871
- return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();
4927
+ return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));
4872
4928
  }
4873
4929
 
4874
4930
  function markBoxed(str) {
@@ -4880,7 +4936,7 @@ function weakCollectionOf(type) {
4880
4936
  }
4881
4937
 
4882
4938
  function collectionOf(type, size, entries, indent) {
4883
- var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');
4939
+ var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');
4884
4940
  return type + ' (' + size + ') {' + joinedEntries + '}';
4885
4941
  }
4886
4942
 
@@ -4898,20 +4954,20 @@ function getIndent(opts, depth) {
4898
4954
  if (opts.indent === '\t') {
4899
4955
  baseIndent = '\t';
4900
4956
  } else if (typeof opts.indent === 'number' && opts.indent > 0) {
4901
- baseIndent = Array(opts.indent + 1).join(' ');
4957
+ baseIndent = $join.call(Array(opts.indent + 1), ' ');
4902
4958
  } else {
4903
4959
  return null;
4904
4960
  }
4905
4961
  return {
4906
4962
  base: baseIndent,
4907
- prev: Array(depth + 1).join(baseIndent)
4963
+ prev: $join.call(Array(depth + 1), baseIndent)
4908
4964
  };
4909
4965
  }
4910
4966
 
4911
4967
  function indentedJoin(xs, indent) {
4912
4968
  if (xs.length === 0) { return ''; }
4913
4969
  var lineJoiner = '\n' + indent.prev + indent.base;
4914
- return lineJoiner + xs.join(',' + lineJoiner) + '\n' + indent.prev;
4970
+ return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev;
4915
4971
  }
4916
4972
 
4917
4973
  function arrObjKeys(obj, inspect) {
@@ -4938,7 +4994,7 @@ function arrObjKeys(obj, inspect) {
4938
4994
  if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
4939
4995
  // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
4940
4996
  continue; // eslint-disable-line no-restricted-syntax, no-continue
4941
- } else if ((/[^\w$]/).test(key)) {
4997
+ } else if ($test.call(/[^\w$]/, key)) {
4942
4998
  xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
4943
4999
  } else {
4944
5000
  xs.push(key + ': ' + inspect(obj[key], obj));
@@ -5087,7 +5143,7 @@ module.exports = keysShim;
5087
5143
 
5088
5144
  /***/ }),
5089
5145
 
5090
- /***/ 215:
5146
+ /***/ 686:
5091
5147
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5092
5148
 
5093
5149
  "use strict";
@@ -7255,9 +7311,9 @@ function randomId() {
7255
7311
  return '_' + (Number(String(Math.random()).slice(2)) + Date.now() + Math.round(performance.now())).toString(36);
7256
7312
  }
7257
7313
  ;// CONCATENATED MODULE: ./src/javascripts/lib/redux-helpers/index.js
7258
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7314
+ 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; }
7259
7315
 
7260
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7316
+ 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; }
7261
7317
 
7262
7318
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7263
7319
 
@@ -7402,43 +7458,157 @@ const update = utils_createAction('update', config => ({
7402
7458
  const setPreChatEvents = utils_createAction('setPreChatEvents', events => ({
7403
7459
  events
7404
7460
  }));
7405
- ;// CONCATENATED MODULE: ./node_modules/reselect/es/index.js
7406
- function defaultEqualityCheck(a, b) {
7407
- return a === b;
7461
+ ;// CONCATENATED MODULE: ./node_modules/reselect/es/defaultMemoize.js
7462
+ // Cache implementation based on Erik Rasmussen's `lru-memoize`:
7463
+ // https://github.com/erikras/lru-memoize
7464
+ var NOT_FOUND = 'NOT_FOUND';
7465
+
7466
+ function createSingletonCache(equals) {
7467
+ var entry;
7468
+ return {
7469
+ get: function get(key) {
7470
+ if (entry && equals(entry.key, key)) {
7471
+ return entry.value;
7472
+ }
7473
+
7474
+ return NOT_FOUND;
7475
+ },
7476
+ put: function put(key, value) {
7477
+ entry = {
7478
+ key: key,
7479
+ value: value
7480
+ };
7481
+ },
7482
+ getEntries: function getEntries() {
7483
+ return entry ? [entry] : [];
7484
+ },
7485
+ clear: function clear() {
7486
+ entry = undefined;
7487
+ }
7488
+ };
7408
7489
  }
7409
7490
 
7410
- function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
7411
- if (prev === null || next === null || prev.length !== next.length) {
7412
- return false;
7491
+ function createLruCache(maxSize, equals) {
7492
+ var entries = [];
7493
+
7494
+ function get(key) {
7495
+ var cacheIndex = entries.findIndex(function (entry) {
7496
+ return equals(key, entry.key);
7497
+ }); // We found a cached entry
7498
+
7499
+ if (cacheIndex > -1) {
7500
+ var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top
7501
+
7502
+ if (cacheIndex > 0) {
7503
+ entries.splice(cacheIndex, 1);
7504
+ entries.unshift(entry);
7505
+ }
7506
+
7507
+ return entry.value;
7508
+ } // No entry found in cache, return sentinel
7509
+
7510
+
7511
+ return NOT_FOUND;
7413
7512
  }
7414
7513
 
7415
- // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
7416
- var length = prev.length;
7417
- for (var i = 0; i < length; i++) {
7418
- if (!equalityCheck(prev[i], next[i])) {
7419
- return false;
7514
+ function put(key, value) {
7515
+ if (get(key) === NOT_FOUND) {
7516
+ // TODO Is unshift slow?
7517
+ entries.unshift({
7518
+ key: key,
7519
+ value: value
7520
+ });
7521
+
7522
+ if (entries.length > maxSize) {
7523
+ entries.pop();
7524
+ }
7420
7525
  }
7421
7526
  }
7422
7527
 
7423
- return true;
7528
+ function getEntries() {
7529
+ return entries;
7530
+ }
7531
+
7532
+ function clear() {
7533
+ entries = [];
7534
+ }
7535
+
7536
+ return {
7537
+ get: get,
7538
+ put: put,
7539
+ getEntries: getEntries,
7540
+ clear: clear
7541
+ };
7424
7542
  }
7425
7543
 
7426
- function defaultMemoize(func) {
7427
- var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;
7544
+ var defaultEqualityCheck = function defaultEqualityCheck(a, b) {
7545
+ return a === b;
7546
+ };
7547
+ function createCacheKeyComparator(equalityCheck) {
7548
+ return function areArgumentsShallowlyEqual(prev, next) {
7549
+ if (prev === null || next === null || prev.length !== next.length) {
7550
+ return false;
7551
+ } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
7552
+
7428
7553
 
7429
- var lastArgs = null;
7430
- var lastResult = null;
7431
- // we reference arguments instead of spreading them for performance reasons
7432
- return function () {
7433
- if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
7434
- // apply arguments instead of spreading for performance.
7435
- lastResult = func.apply(null, arguments);
7554
+ var length = prev.length;
7555
+
7556
+ for (var i = 0; i < length; i++) {
7557
+ if (!equalityCheck(prev[i], next[i])) {
7558
+ return false;
7559
+ }
7560
+ }
7561
+
7562
+ return true;
7563
+ };
7564
+ }
7565
+ // defaultMemoize now supports a configurable cache size with LRU behavior,
7566
+ // and optional comparison of the result value with existing values
7567
+ function defaultMemoize(func, equalityCheckOrOptions) {
7568
+ var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {
7569
+ equalityCheck: equalityCheckOrOptions
7570
+ };
7571
+ var _providedOptions$equa = providedOptions.equalityCheck,
7572
+ equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,
7573
+ _providedOptions$maxS = providedOptions.maxSize,
7574
+ maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,
7575
+ resultEqualityCheck = providedOptions.resultEqualityCheck;
7576
+ var comparator = createCacheKeyComparator(equalityCheck);
7577
+ var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons
7578
+
7579
+ function memoized() {
7580
+ var value = cache.get(arguments);
7581
+
7582
+ if (value === NOT_FOUND) {
7583
+ // @ts-ignore
7584
+ value = func.apply(null, arguments);
7585
+
7586
+ if (resultEqualityCheck) {
7587
+ var entries = cache.getEntries();
7588
+ var matchingEntry = entries.find(function (entry) {
7589
+ return resultEqualityCheck(entry.value, value);
7590
+ });
7591
+
7592
+ if (matchingEntry) {
7593
+ value = matchingEntry.value;
7594
+ }
7595
+ }
7596
+
7597
+ cache.put(arguments, value);
7436
7598
  }
7437
7599
 
7438
- lastArgs = arguments;
7439
- return lastResult;
7600
+ return value;
7601
+ }
7602
+
7603
+ memoized.clearCache = function () {
7604
+ return cache.clear();
7440
7605
  };
7606
+
7607
+ return memoized;
7441
7608
  }
7609
+ ;// CONCATENATED MODULE: ./node_modules/reselect/es/index.js
7610
+
7611
+
7442
7612
 
7443
7613
  function getDependencies(funcs) {
7444
7614
  var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;
@@ -7447,73 +7617,116 @@ function getDependencies(funcs) {
7447
7617
  return typeof dep === 'function';
7448
7618
  })) {
7449
7619
  var dependencyTypes = dependencies.map(function (dep) {
7450
- return typeof dep;
7620
+ return typeof dep === 'function' ? "function " + (dep.name || 'unnamed') + "()" : typeof dep;
7451
7621
  }).join(', ');
7452
- throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));
7622
+ throw new Error("createSelector expects all input-selectors to be functions, but received the following types: [" + dependencyTypes + "]");
7453
7623
  }
7454
7624
 
7455
7625
  return dependencies;
7456
7626
  }
7457
7627
 
7458
7628
  function createSelectorCreator(memoize) {
7459
- for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7460
- memoizeOptions[_key - 1] = arguments[_key];
7629
+ for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7630
+ memoizeOptionsFromArgs[_key - 1] = arguments[_key];
7461
7631
  }
7462
7632
 
7463
- return function () {
7464
- for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
7633
+ var createSelector = function createSelector() {
7634
+ for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
7465
7635
  funcs[_key2] = arguments[_key2];
7466
7636
  }
7467
7637
 
7468
- var recomputations = 0;
7469
- var resultFunc = funcs.pop();
7638
+ var _recomputations = 0;
7639
+
7640
+ var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.
7641
+ // So, start by declaring the default value here.
7642
+ // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)
7643
+
7644
+
7645
+ var directlyPassedOptions = {
7646
+ memoizeOptions: undefined
7647
+ }; // Normally, the result func or "output selector" is the last arg
7648
+
7649
+ var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object
7650
+
7651
+ if (typeof resultFunc === 'object') {
7652
+ directlyPassedOptions = resultFunc; // and pop the real result func off
7653
+
7654
+ resultFunc = funcs.pop();
7655
+ }
7656
+
7657
+ if (typeof resultFunc !== 'function') {
7658
+ throw new Error("createSelector expects an output function after the inputs, but received: [" + typeof resultFunc + "]");
7659
+ } // Determine which set of options we're using. Prefer options passed directly,
7660
+ // but fall back to options given to createSelectorCreator.
7661
+
7662
+
7663
+ var _directlyPassedOption = directlyPassedOptions,
7664
+ _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,
7665
+ memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer
7666
+ // is an array. In most libs I've looked at, it's an equality function or options object.
7667
+ // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full
7668
+ // user-provided array of options. Otherwise, it must be just the _first_ arg, and so
7669
+ // we wrap it in an array so we can apply it.
7670
+
7671
+ var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];
7470
7672
  var dependencies = getDependencies(funcs);
7673
+ var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {
7674
+ _recomputations++; // apply arguments instead of spreading for performance.
7471
7675
 
7472
- var memoizedResultFunc = memoize.apply(undefined, [function () {
7473
- recomputations++;
7474
- // apply arguments instead of spreading for performance.
7475
7676
  return resultFunc.apply(null, arguments);
7476
- }].concat(memoizeOptions));
7677
+ }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
7477
7678
 
7478
- // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
7479
- var selector = memoize(function () {
7679
+ var selector = memoize(function dependenciesChecker() {
7480
7680
  var params = [];
7481
7681
  var length = dependencies.length;
7482
7682
 
7483
7683
  for (var i = 0; i < length; i++) {
7484
7684
  // apply arguments instead of spreading and mutate a local list of params for performance.
7685
+ // @ts-ignore
7485
7686
  params.push(dependencies[i].apply(null, arguments));
7486
- }
7687
+ } // apply arguments instead of spreading for performance.
7487
7688
 
7488
- // apply arguments instead of spreading for performance.
7489
- return memoizedResultFunc.apply(null, params);
7490
- });
7491
7689
 
7492
- selector.resultFunc = resultFunc;
7493
- selector.dependencies = dependencies;
7494
- selector.recomputations = function () {
7495
- return recomputations;
7496
- };
7497
- selector.resetRecomputations = function () {
7498
- return recomputations = 0;
7499
- };
7690
+ _lastResult = memoizedResultFunc.apply(null, params);
7691
+ return _lastResult;
7692
+ });
7693
+ Object.assign(selector, {
7694
+ resultFunc: resultFunc,
7695
+ memoizedResultFunc: memoizedResultFunc,
7696
+ dependencies: dependencies,
7697
+ lastResult: function lastResult() {
7698
+ return _lastResult;
7699
+ },
7700
+ recomputations: function recomputations() {
7701
+ return _recomputations;
7702
+ },
7703
+ resetRecomputations: function resetRecomputations() {
7704
+ return _recomputations = 0;
7705
+ }
7706
+ });
7500
7707
  return selector;
7501
- };
7502
- }
7708
+ }; // @ts-ignore
7503
7709
 
7504
- var createSelector = createSelectorCreator(defaultMemoize);
7505
7710
 
7506
- function createStructuredSelector(selectors) {
7507
- var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;
7711
+ return createSelector;
7712
+ }
7713
+ var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);
7714
+ // Manual definition of state and output arguments
7715
+ var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {
7716
+ if (selectorCreator === void 0) {
7717
+ selectorCreator = createSelector;
7718
+ }
7508
7719
 
7509
7720
  if (typeof selectors !== 'object') {
7510
- throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));
7721
+ throw new Error('createStructuredSelector expects first argument to be an object ' + ("where each property is a selector, instead received a " + typeof selectors));
7511
7722
  }
7723
+
7512
7724
  var objectKeys = Object.keys(selectors);
7513
- return selectorCreator(objectKeys.map(function (key) {
7725
+ var resultSelector = selectorCreator( // @ts-ignore
7726
+ objectKeys.map(function (key) {
7514
7727
  return selectors[key];
7515
7728
  }), function () {
7516
- for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
7729
+ for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
7517
7730
  values[_key3] = arguments[_key3];
7518
7731
  }
7519
7732
 
@@ -7522,7 +7735,8 @@ function createStructuredSelector(selectors) {
7522
7735
  return composition;
7523
7736
  }, {});
7524
7737
  });
7525
- }
7738
+ return resultSelector;
7739
+ };
7526
7740
  ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/constants.js
7527
7741
  const StoreKey = 'visibility';
7528
7742
  const visibilityStates = {
@@ -7532,9 +7746,9 @@ const visibilityStates = {
7532
7746
  initialize: null
7533
7747
  };
7534
7748
  ;// CONCATENATED MODULE: ./src/javascripts/domains/config/selectors.js
7535
- function selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7749
+ function selectors_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; }
7536
7750
 
7537
- function selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { selectors_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7751
+ function selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? selectors_ownKeys(Object(source), !0).forEach(function (key) { selectors_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7538
7752
 
7539
7753
  function selectors_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7540
7754
 
@@ -7601,14 +7815,9 @@ function objectSpread2_ownKeys(object, enumerableOnly) {
7601
7815
 
7602
7816
  if (Object.getOwnPropertySymbols) {
7603
7817
  var symbols = Object.getOwnPropertySymbols(object);
7604
-
7605
- if (enumerableOnly) {
7606
- symbols = symbols.filter(function (sym) {
7607
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
7608
- });
7609
- }
7610
-
7611
- keys.push.apply(keys, symbols);
7818
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
7819
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
7820
+ })), keys.push.apply(keys, symbols);
7612
7821
  }
7613
7822
 
7614
7823
  return keys;
@@ -7616,19 +7825,12 @@ function objectSpread2_ownKeys(object, enumerableOnly) {
7616
7825
 
7617
7826
  function _objectSpread2(target) {
7618
7827
  for (var i = 1; i < arguments.length; i++) {
7619
- var source = arguments[i] != null ? arguments[i] : {};
7620
-
7621
- if (i % 2) {
7622
- objectSpread2_ownKeys(Object(source), true).forEach(function (key) {
7623
- defineProperty_defineProperty(target, key, source[key]);
7624
- });
7625
- } else if (Object.getOwnPropertyDescriptors) {
7626
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
7627
- } else {
7628
- objectSpread2_ownKeys(Object(source)).forEach(function (key) {
7629
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
7630
- });
7631
- }
7828
+ var source = null != arguments[i] ? arguments[i] : {};
7829
+ i % 2 ? objectSpread2_ownKeys(Object(source), !0).forEach(function (key) {
7830
+ defineProperty_defineProperty(target, key, source[key]);
7831
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : objectSpread2_ownKeys(Object(source)).forEach(function (key) {
7832
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
7833
+ });
7632
7834
  }
7633
7835
 
7634
7836
  return target;
@@ -7743,29 +7945,29 @@ function kindOf(val) {
7743
7945
  }
7744
7946
 
7745
7947
  /**
7746
- * Creates a Redux store that holds the state tree.
7747
- * The only way to change the data in the store is to call `dispatch()` on it.
7948
+ * @deprecated
7748
7949
  *
7749
- * There should only be a single store in your app. To specify how different
7750
- * parts of the state tree respond to actions, you may combine several reducers
7751
- * into a single reducer function by using `combineReducers`.
7950
+ * **We recommend using the `configureStore` method
7951
+ * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
7752
7952
  *
7753
- * @param {Function} reducer A function that returns the next state tree, given
7754
- * the current state tree and the action to handle.
7953
+ * Redux Toolkit is our recommended approach for writing Redux logic today,
7954
+ * including store setup, reducers, data fetching, and more.
7755
7955
  *
7756
- * @param {any} [preloadedState] The initial state. You may optionally specify it
7757
- * to hydrate the state from the server in universal apps, or to restore a
7758
- * previously serialized user session.
7759
- * If you use `combineReducers` to produce the root reducer function, this must be
7760
- * an object with the same shape as `combineReducers` keys.
7956
+ * **For more details, please read this Redux docs page:**
7957
+ * **https://redux.js.org/introduction/why-rtk-is-redux-today**
7761
7958
  *
7762
- * @param {Function} [enhancer] The store enhancer. You may optionally specify it
7763
- * to enhance the store with third-party capabilities such as middleware,
7764
- * time travel, persistence, etc. The only store enhancer that ships with Redux
7765
- * is `applyMiddleware()`.
7959
+ * `configureStore` from Redux Toolkit is an improved version of `createStore` that
7960
+ * simplifies setup and helps avoid common bugs.
7961
+ *
7962
+ * You should not be using the `redux` core package by itself today, except for learning purposes.
7963
+ * The `createStore` method from the core `redux` package will not be removed, but we encourage
7964
+ * all users to migrate to using Redux Toolkit for all Redux code.
7965
+ *
7966
+ * If you want to use `createStore` without this visual deprecation warning, use
7967
+ * the `legacy_createStore` import instead:
7968
+ *
7969
+ * `import { legacy_createStore as createStore} from 'redux'`
7766
7970
  *
7767
- * @returns {Store} A Redux store that lets you read the state, dispatch actions
7768
- * and subscribe to changes.
7769
7971
  */
7770
7972
 
7771
7973
  function createStore(reducer, preloadedState, enhancer) {
@@ -8015,6 +8217,38 @@ function createStore(reducer, preloadedState, enhancer) {
8015
8217
  replaceReducer: replaceReducer
8016
8218
  }, _ref2[$$observable] = observable, _ref2;
8017
8219
  }
8220
+ /**
8221
+ * Creates a Redux store that holds the state tree.
8222
+ *
8223
+ * **We recommend using `configureStore` from the
8224
+ * `@reduxjs/toolkit` package**, which replaces `createStore`:
8225
+ * **https://redux.js.org/introduction/why-rtk-is-redux-today**
8226
+ *
8227
+ * The only way to change the data in the store is to call `dispatch()` on it.
8228
+ *
8229
+ * There should only be a single store in your app. To specify how different
8230
+ * parts of the state tree respond to actions, you may combine several reducers
8231
+ * into a single reducer function by using `combineReducers`.
8232
+ *
8233
+ * @param {Function} reducer A function that returns the next state tree, given
8234
+ * the current state tree and the action to handle.
8235
+ *
8236
+ * @param {any} [preloadedState] The initial state. You may optionally specify it
8237
+ * to hydrate the state from the server in universal apps, or to restore a
8238
+ * previously serialized user session.
8239
+ * If you use `combineReducers` to produce the root reducer function, this must be
8240
+ * an object with the same shape as `combineReducers` keys.
8241
+ *
8242
+ * @param {Function} [enhancer] The store enhancer. You may optionally specify it
8243
+ * to enhance the store with third-party capabilities such as middleware,
8244
+ * time travel, persistence, etc. The only store enhancer that ships with Redux
8245
+ * is `applyMiddleware()`.
8246
+ *
8247
+ * @returns {Store} A Redux store that lets you read the state, dispatch actions
8248
+ * and subscribe to changes.
8249
+ */
8250
+
8251
+ var legacy_createStore = (/* unused pure expression or super */ null && (createStore));
8018
8252
 
8019
8253
  /**
8020
8254
  * Prints a warning in the console if it exists.
@@ -8452,9 +8686,9 @@ const defaultConfig = {
8452
8686
  }
8453
8687
  };
8454
8688
  ;// CONCATENATED MODULE: ./src/javascripts/ui/utils/general-utils.js
8455
- function general_utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
8689
+ function general_utils_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; }
8456
8690
 
8457
- function general_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { general_utils_ownKeys(Object(source), true).forEach(function (key) { general_utils_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { general_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8691
+ function general_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? general_utils_ownKeys(Object(source), !0).forEach(function (key) { general_utils_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : general_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8458
8692
 
8459
8693
  function general_utils_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8460
8694
 
@@ -8558,7 +8792,7 @@ const formatBytes = (bytes, decimals = 2) => {
8558
8792
  const dm = decimals < 0 ? 0 : decimals;
8559
8793
  const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
8560
8794
  const i = Math.floor(Math.log(bytes) / Math.log(k));
8561
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
8795
+ return parseFloat((bytes / k ** i).toFixed(dm)) + ' ' + sizes[i];
8562
8796
  };
8563
8797
  const getUrlParams = () => {
8564
8798
  const {
@@ -8638,9 +8872,9 @@ const omit = (obj, keys) => Object.keys(obj).reduce((accum, key) => {
8638
8872
  return accum;
8639
8873
  }, {});
8640
8874
  ;// CONCATENATED MODULE: ./src/javascripts/ui/utils/seamly-utils.js
8641
- function seamly_utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
8875
+ function seamly_utils_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; }
8642
8876
 
8643
- function seamly_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { seamly_utils_ownKeys(Object(source), true).forEach(function (key) { seamly_utils_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { seamly_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8877
+ function seamly_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? seamly_utils_ownKeys(Object(source), !0).forEach(function (key) { seamly_utils_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : seamly_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8644
8878
 
8645
8879
  function seamly_utils_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8646
8880
 
@@ -8683,6 +8917,7 @@ const actionTypes = {
8683
8917
  interactivityUpdate: 'interactivity_update',
8684
8918
  dismiss: 'dismiss',
8685
8919
  sendTranscript: 'send_transcript',
8920
+ setTopic: 'set_topic',
8686
8921
  setTranslation: 'set_translation',
8687
8922
  clickCta: 'click_cta',
8688
8923
  clickCard: 'click_card'
@@ -9489,53 +9724,10 @@ const {
9489
9724
 
9490
9725
  const selectUserHasResponded = createSelector(app_utils_selectState, state => state.userHasResponded);
9491
9726
 
9492
- ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/utils.js
9493
-
9494
-
9495
- const {
9496
- createAction: visibility_utils_createAction,
9497
- createActions: visibility_utils_createActions,
9498
- createThunk: visibility_utils_createThunk,
9499
- createReducer: visibility_utils_createReducer,
9500
- selectState: visibility_utils_selectState
9501
- } = createDomain('visibility');
9502
- const calculateVisibility = ({
9503
- hasResponded,
9504
- previousVisibility,
9505
- requestedVisibility,
9506
- config
9507
- }) => {
9508
- const {
9509
- defaults,
9510
- layoutMode,
9511
- hideOnNoUserResponse
9512
- } = config;
9513
- const {
9514
- visible: defaultVisibility
9515
- } = defaults || {}; // Requesting open should override the responded check.
9516
-
9517
- if (layoutMode === 'window' && hideOnNoUserResponse && requestedVisibility !== visibilityStates.open) {
9518
- return hasResponded ? requestedVisibility || previousVisibility || visibilityStates.open : visibilityStates.hidden;
9519
- } // Allow users to continue a conversation (if they have responded and no visibility is requested)
9520
- // when switching from the window layout to the inline layout
9521
-
9522
-
9523
- if (layoutMode === 'inline' && hasResponded && !requestedVisibility) {
9524
- return previousVisibility || visibilityStates.open;
9525
- }
9526
-
9527
- const baseVisibility = visibilityStates.minimized;
9528
- return requestedVisibility || previousVisibility || defaultVisibility || baseVisibility;
9529
- };
9530
- ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/selectors.js
9531
-
9532
-
9533
- const selectVisibility = createSelector(visibility_utils_selectState, state => state.visibility);
9534
-
9535
9727
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/seamly-state-hooks.js
9536
- function seamly_state_hooks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9728
+ function seamly_state_hooks_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; }
9537
9729
 
9538
- function seamly_state_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { seamly_state_hooks_ownKeys(Object(source), true).forEach(function (key) { seamly_state_hooks_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { seamly_state_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9730
+ function seamly_state_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? seamly_state_hooks_ownKeys(Object(source), !0).forEach(function (key) { seamly_state_hooks_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : seamly_state_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9539
9731
 
9540
9732
  function seamly_state_hooks_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9541
9733
 
@@ -9643,15 +9835,58 @@ const useSeamlyLayoutMode = () => {
9643
9835
  isResolving: !layoutMode
9644
9836
  };
9645
9837
  };
9646
- ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/actions.js
9647
- function actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9648
-
9649
- function actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { actions_ownKeys(Object(source), true).forEach(function (key) { actions_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9650
-
9651
- function actions_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9652
-
9653
-
9654
-
9838
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/utils.js
9839
+
9840
+
9841
+ const {
9842
+ createAction: visibility_utils_createAction,
9843
+ createActions: visibility_utils_createActions,
9844
+ createThunk: visibility_utils_createThunk,
9845
+ createReducer: visibility_utils_createReducer,
9846
+ selectState: visibility_utils_selectState
9847
+ } = createDomain('visibility');
9848
+ const calculateVisibility = ({
9849
+ hasResponded,
9850
+ previousVisibility,
9851
+ requestedVisibility,
9852
+ config
9853
+ }) => {
9854
+ const {
9855
+ defaults,
9856
+ layoutMode,
9857
+ hideOnNoUserResponse
9858
+ } = config;
9859
+ const {
9860
+ visible: defaultVisibility
9861
+ } = defaults || {}; // Requesting open should override the responded check.
9862
+
9863
+ if (layoutMode === 'window' && hideOnNoUserResponse && requestedVisibility !== visibilityStates.open) {
9864
+ return hasResponded ? requestedVisibility || previousVisibility || visibilityStates.open : visibilityStates.hidden;
9865
+ } // Allow users to continue a conversation (if they have responded and no visibility is requested)
9866
+ // when switching from the window layout to the inline layout
9867
+
9868
+
9869
+ if (layoutMode === 'inline' && hasResponded && !requestedVisibility) {
9870
+ return previousVisibility || visibilityStates.open;
9871
+ }
9872
+
9873
+ const baseVisibility = visibilityStates.minimized;
9874
+ return requestedVisibility || previousVisibility || defaultVisibility || baseVisibility;
9875
+ };
9876
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/selectors.js
9877
+
9878
+
9879
+ const selectVisibility = createSelector(visibility_utils_selectState, state => state.visibility);
9880
+
9881
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/actions.js
9882
+ function actions_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; }
9883
+
9884
+ function actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? actions_ownKeys(Object(source), !0).forEach(function (key) { actions_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9885
+
9886
+ function actions_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9887
+
9888
+
9889
+
9655
9890
 
9656
9891
 
9657
9892
 
@@ -9808,7 +10043,6 @@ const clear = interrupt_utils_createAction('clear');
9808
10043
 
9809
10044
 
9810
10045
 
9811
-
9812
10046
  const setHasResponded = app_utils_createAction('setHasResponded', hasResponded => ({
9813
10047
  hasResponded
9814
10048
  }));
@@ -9860,8 +10094,6 @@ const app_actions_initialize = app_utils_createThunk('initialize', async (_, {
9860
10094
  }
9861
10095
 
9862
10096
  try {
9863
- var _config$context2;
9864
-
9865
10097
  if (api.hasConversation()) {
9866
10098
  var _initialState$transla;
9867
10099
 
@@ -9875,16 +10107,32 @@ const app_actions_initialize = app_utils_createThunk('initialize', async (_, {
9875
10107
  if ('userResponded' in initialState) {
9876
10108
  dispatch(setHasResponded(initialState.userResponded));
9877
10109
  }
9878
- } else if (config !== null && config !== void 0 && (_config$context2 = config.context) !== null && _config$context2 !== void 0 && _config$context2.translationLocale) {
9879
- locale = config.context.translationLocale;
9880
- api.send('action', {
9881
- type: actionTypes.setTranslation,
9882
- body: {
9883
- enabled: true,
9884
- locale
9885
- }
9886
- });
9887
- dispatch(enable(locale));
10110
+ } else {
10111
+ var _config$context2, _config$context3;
10112
+
10113
+ if (config !== null && config !== void 0 && (_config$context2 = config.context) !== null && _config$context2 !== void 0 && _config$context2.topic) {
10114
+ api.send('action', {
10115
+ type: actionTypes.setTopic,
10116
+ body: {
10117
+ name: config.context.topic,
10118
+ // Separate fallback message is not needed here. Only an attached service will use this, but none will
10119
+ // be attached before the conversation has started (meaning the fallback message will never be shown).
10120
+ fallbackMessage: config.context.topic
10121
+ }
10122
+ });
10123
+ }
10124
+
10125
+ if (config !== null && config !== void 0 && (_config$context3 = config.context) !== null && _config$context3 !== void 0 && _config$context3.translationLocale) {
10126
+ locale = config.context.translationLocale;
10127
+ api.send('action', {
10128
+ type: actionTypes.setTranslation,
10129
+ body: {
10130
+ enabled: true,
10131
+ locale
10132
+ }
10133
+ });
10134
+ dispatch(enable(locale));
10135
+ }
9888
10136
  }
9889
10137
  } catch (e) {
9890
10138
  if (e instanceof SeamlySessionExpiredError) {
@@ -9918,9 +10166,9 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
9918
10166
 
9919
10167
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9920
10168
 
9921
- function reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
10169
+ function reducer_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; }
9922
10170
 
9923
- function reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10171
+ function reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? reducer_ownKeys(Object(source), !0).forEach(function (key) { reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9924
10172
 
9925
10173
  function reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9926
10174
 
@@ -10061,11 +10309,11 @@ const useSeamlyMessageContainerClassNames = event => {
10061
10309
 
10062
10310
  return classNames;
10063
10311
  };
10064
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
10312
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
10065
10313
  function _arrayWithHoles(arr) {
10066
10314
  if (Array.isArray(arr)) return arr;
10067
10315
  }
10068
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
10316
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
10069
10317
  function _iterableToArrayLimit(arr, i) {
10070
10318
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
10071
10319
 
@@ -10095,7 +10343,7 @@ function _iterableToArrayLimit(arr, i) {
10095
10343
 
10096
10344
  return _arr;
10097
10345
  }
10098
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
10346
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
10099
10347
  function _arrayLikeToArray(arr, len) {
10100
10348
  if (len == null || len > arr.length) len = arr.length;
10101
10349
 
@@ -10105,7 +10353,7 @@ function _arrayLikeToArray(arr, len) {
10105
10353
 
10106
10354
  return arr2;
10107
10355
  }
10108
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
10356
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
10109
10357
 
10110
10358
  function _unsupportedIterableToArray(o, minLen) {
10111
10359
  if (!o) return;
@@ -10115,11 +10363,11 @@ function _unsupportedIterableToArray(o, minLen) {
10115
10363
  if (n === "Map" || n === "Set") return Array.from(o);
10116
10364
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
10117
10365
  }
10118
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
10366
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
10119
10367
  function _nonIterableRest() {
10120
10368
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10121
10369
  }
10122
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
10370
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
10123
10371
 
10124
10372
 
10125
10373
 
@@ -10127,13 +10375,13 @@ function _nonIterableRest() {
10127
10375
  function _slicedToArray(arr, i) {
10128
10376
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
10129
10377
  }
10130
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
10378
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
10131
10379
  function _classCallCheck(instance, Constructor) {
10132
10380
  if (!(instance instanceof Constructor)) {
10133
10381
  throw new TypeError("Cannot call a class as a function");
10134
10382
  }
10135
10383
  }
10136
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/createClass.js
10384
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
10137
10385
  function _defineProperties(target, props) {
10138
10386
  for (var i = 0; i < props.length; i++) {
10139
10387
  var descriptor = props[i];
@@ -10147,23 +10395,11 @@ function _defineProperties(target, props) {
10147
10395
  function _createClass(Constructor, protoProps, staticProps) {
10148
10396
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
10149
10397
  if (staticProps) _defineProperties(Constructor, staticProps);
10398
+ Object.defineProperty(Constructor, "prototype", {
10399
+ writable: false
10400
+ });
10150
10401
  return Constructor;
10151
10402
  }
10152
- ;// CONCATENATED MODULE: ./node_modules/@ultraq/icu-message-formatter/node_modules/@babel/runtime/helpers/esm/defineProperty.js
10153
- function esm_defineProperty_defineProperty(obj, key, value) {
10154
- if (key in obj) {
10155
- Object.defineProperty(obj, key, {
10156
- value: value,
10157
- enumerable: true,
10158
- configurable: true,
10159
- writable: true
10160
- });
10161
- } else {
10162
- obj[key] = value;
10163
- }
10164
-
10165
- return obj;
10166
- }
10167
10403
  ;// CONCATENATED MODULE: ./node_modules/@ultraq/array-utils/array-utils.es.js
10168
10404
  /*
10169
10405
  * Copyright 2017, Emanuel Rabina (http://www.ultraq.net.nz/)
@@ -10477,7 +10713,7 @@ var MessageFormatter = /*#__PURE__*/function () {
10477
10713
 
10478
10714
  _classCallCheck(this, MessageFormatter);
10479
10715
 
10480
- esm_defineProperty_defineProperty(this, "format", memoize(function (message) {
10716
+ defineProperty_defineProperty(this, "format", memoize(function (message) {
10481
10717
  var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10482
10718
  return flatten(_this.process(message, values)).join('');
10483
10719
  }));
@@ -10572,7 +10808,7 @@ var MessageFormatter = /*#__PURE__*/function () {
10572
10808
 
10573
10809
  function icu_message_formatter_es_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
10574
10810
 
10575
- function icu_message_formatter_es_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { icu_message_formatter_es_ownKeys(Object(source), true).forEach(function (key) { esm_defineProperty_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { icu_message_formatter_es_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10811
+ function icu_message_formatter_es_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { icu_message_formatter_es_ownKeys(Object(source), true).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { icu_message_formatter_es_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10576
10812
  var pluralFormatter;
10577
10813
  var keyCounter = 0; // All the special keywords that can be used in `plural` blocks for the various branches
10578
10814
 
@@ -10766,9 +11002,9 @@ function useI18n() {
10766
11002
  };
10767
11003
  }
10768
11004
  ;// CONCATENATED MODULE: ./src/javascripts/domains/i18n/reducer.js
10769
- function i18n_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11005
+ function i18n_reducer_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; }
10770
11006
 
10771
- function i18n_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { i18n_reducer_ownKeys(Object(source), true).forEach(function (key) { i18n_reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { i18n_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11007
+ function i18n_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? i18n_reducer_ownKeys(Object(source), !0).forEach(function (key) { i18n_reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : i18n_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10772
11008
 
10773
11009
  function i18n_reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10774
11010
 
@@ -10887,9 +11123,9 @@ const useFocusIfSeamlyContainedFocus = () => {
10887
11123
  }, []);
10888
11124
  };
10889
11125
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/seamly-option-hooks.js
10890
- function seamly_option_hooks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11126
+ function seamly_option_hooks_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; }
10891
11127
 
10892
- function seamly_option_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { seamly_option_hooks_ownKeys(Object(source), true).forEach(function (key) { seamly_option_hooks_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { seamly_option_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11128
+ function seamly_option_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? seamly_option_hooks_ownKeys(Object(source), !0).forEach(function (key) { seamly_option_hooks_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : seamly_option_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10893
11129
 
10894
11130
  function seamly_option_hooks_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10895
11131
 
@@ -11008,9 +11244,9 @@ const useOptionButton = () => {
11008
11244
  const SeamlyFileUploadContext = (0,external_preact_namespaceObject.createContext)({});
11009
11245
  /* harmony default export */ const seamly_file_upload_context = (SeamlyFileUploadContext);
11010
11246
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/file-upload-hooks.js
11011
- function file_upload_hooks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11247
+ function file_upload_hooks_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; }
11012
11248
 
11013
- function file_upload_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { file_upload_hooks_ownKeys(Object(source), true).forEach(function (key) { file_upload_hooks_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { file_upload_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11249
+ function file_upload_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? file_upload_hooks_ownKeys(Object(source), !0).forEach(function (key) { file_upload_hooks_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : file_upload_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11014
11250
 
11015
11251
  function file_upload_hooks_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11016
11252
 
@@ -11089,33 +11325,6 @@ const useFileUploads = () => {
11089
11325
  isComplete: currentUploads.every(file => file.complete)
11090
11326
  };
11091
11327
  };
11092
- ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/utility-hooks.js
11093
-
11094
-
11095
- const useForceUpdate = () => {
11096
- // This is an escape hatch mentioned in the React docs:
11097
- // https://reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate
11098
-
11099
- /* eslint-disable-next-line no-unused-vars */
11100
- const [ignored, forceUpdate] = (0,hooks_namespaceObject.useReducer)(x => x + 1, 0);
11101
- return (0,hooks_namespaceObject.useCallback)(() => {
11102
- setTimeout(() => {
11103
- forceUpdate();
11104
- });
11105
- }, []);
11106
- };
11107
- const useGeneratedId = () => {
11108
- const [id] = (0,hooks_namespaceObject.useState)(() => randomId());
11109
- return id;
11110
- };
11111
- const useStableCallback = callback => {
11112
- const callbackRef = (0,hooks_namespaceObject.useRef)();
11113
- callbackRef.current = callback;
11114
- const isFunction = typeof callback === 'function';
11115
- return (0,hooks_namespaceObject.useMemo)(() => {
11116
- return isFunction ? (...args) => callbackRef.current(...args) : undefined;
11117
- }, [isFunction]);
11118
- };
11119
11328
  ;// CONCATENATED MODULE: ./src/javascripts/domains/interrupt/selectors.js
11120
11329
 
11121
11330
 
@@ -11124,9 +11333,9 @@ const selectError = createSelector(interrupt_utils_selectState, ({
11124
11333
  }) => error);
11125
11334
 
11126
11335
  ;// CONCATENATED MODULE: ./src/javascripts/domains/interrupt/hooks.js
11127
- function hooks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11336
+ function hooks_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; }
11128
11337
 
11129
- function hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { hooks_ownKeys(Object(source), true).forEach(function (key) { hooks_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11338
+ function hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? hooks_ownKeys(Object(source), !0).forEach(function (key) { hooks_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11130
11339
 
11131
11340
  function hooks_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11132
11341
 
@@ -11241,9 +11450,9 @@ function createMiddleware({
11241
11450
  };
11242
11451
  }
11243
11452
  ;// CONCATENATED MODULE: ./src/javascripts/domains/interrupt/reducer.js
11244
- function interrupt_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11453
+ function interrupt_reducer_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; }
11245
11454
 
11246
- function interrupt_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { interrupt_reducer_ownKeys(Object(source), true).forEach(function (key) { interrupt_reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { interrupt_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11455
+ function interrupt_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? interrupt_reducer_ownKeys(Object(source), !0).forEach(function (key) { interrupt_reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : interrupt_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11247
11456
 
11248
11457
  function interrupt_reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11249
11458
 
@@ -11301,9 +11510,9 @@ const useVisibility = () => {
11301
11510
  };
11302
11511
  };
11303
11512
  ;// CONCATENATED MODULE: ./src/javascripts/domains/visibility/reducer.js
11304
- function visibility_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11513
+ function visibility_reducer_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; }
11305
11514
 
11306
- function visibility_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { visibility_reducer_ownKeys(Object(source), true).forEach(function (key) { visibility_reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { visibility_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11515
+ function visibility_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? visibility_reducer_ownKeys(Object(source), !0).forEach(function (key) { visibility_reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : visibility_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11307
11516
 
11308
11517
  function visibility_reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11309
11518
 
@@ -11333,10 +11542,37 @@ const visibility_reducer_initialState = {
11333
11542
 
11334
11543
 
11335
11544
 
11545
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/utility-hooks.js
11546
+
11547
+
11548
+ const useForceUpdate = () => {
11549
+ // This is an escape hatch mentioned in the React docs:
11550
+ // https://reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate
11551
+
11552
+ /* eslint-disable-next-line no-unused-vars */
11553
+ const [ignored, forceUpdate] = (0,hooks_namespaceObject.useReducer)(x => x + 1, 0);
11554
+ return (0,hooks_namespaceObject.useCallback)(() => {
11555
+ setTimeout(() => {
11556
+ forceUpdate();
11557
+ });
11558
+ }, []);
11559
+ };
11560
+ const useGeneratedId = () => {
11561
+ const [id] = (0,hooks_namespaceObject.useState)(() => randomId());
11562
+ return id;
11563
+ };
11564
+ const useStableCallback = callback => {
11565
+ const callbackRef = (0,hooks_namespaceObject.useRef)();
11566
+ callbackRef.current = callback;
11567
+ const isFunction = typeof callback === 'function';
11568
+ return (0,hooks_namespaceObject.useMemo)(() => {
11569
+ return isFunction ? (...args) => callbackRef.current(...args) : undefined;
11570
+ }, [isFunction]);
11571
+ };
11336
11572
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/use-seamly-commands.js
11337
- function use_seamly_commands_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11573
+ function use_seamly_commands_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; }
11338
11574
 
11339
- function use_seamly_commands_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_seamly_commands_ownKeys(Object(source), true).forEach(function (key) { use_seamly_commands_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_seamly_commands_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11575
+ function use_seamly_commands_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? use_seamly_commands_ownKeys(Object(source), !0).forEach(function (key) { use_seamly_commands_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : use_seamly_commands_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11340
11576
 
11341
11577
  function use_seamly_commands_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11342
11578
 
@@ -11584,9 +11820,9 @@ const useSeamlyActivityEventHandler = () => (0,hooks_namespaceObject.useContext)
11584
11820
 
11585
11821
  /* harmony default export */ const use_seamly_activity_event_handler = (useSeamlyActivityEventHandler);
11586
11822
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/seamly-entry-hooks.js
11587
- function seamly_entry_hooks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11823
+ function seamly_entry_hooks_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; }
11588
11824
 
11589
- function seamly_entry_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { seamly_entry_hooks_ownKeys(Object(source), true).forEach(function (key) { seamly_entry_hooks_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { seamly_entry_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11825
+ function seamly_entry_hooks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? seamly_entry_hooks_ownKeys(Object(source), !0).forEach(function (key) { seamly_entry_hooks_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : seamly_entry_hooks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11590
11826
 
11591
11827
  function seamly_entry_hooks_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11592
11828
 
@@ -11845,9 +12081,9 @@ const useSeamlyChat = () => {
11845
12081
 
11846
12082
  /* harmony default export */ const use_seamly_chat = (useSeamlyChat);
11847
12083
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/use-seamly-idle-detach-countdown.js
11848
- function use_seamly_idle_detach_countdown_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12084
+ function use_seamly_idle_detach_countdown_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; }
11849
12085
 
11850
- function use_seamly_idle_detach_countdown_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_seamly_idle_detach_countdown_ownKeys(Object(source), true).forEach(function (key) { use_seamly_idle_detach_countdown_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_seamly_idle_detach_countdown_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
12086
+ function use_seamly_idle_detach_countdown_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? use_seamly_idle_detach_countdown_ownKeys(Object(source), !0).forEach(function (key) { use_seamly_idle_detach_countdown_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : use_seamly_idle_detach_countdown_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11851
12087
 
11852
12088
  function use_seamly_idle_detach_countdown_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11853
12089
 
@@ -12096,9 +12332,9 @@ const useSeamlyEventStream = (nextFn, filterFn) => {
12096
12332
  }, [api, nextFn, filterFn]);
12097
12333
  };
12098
12334
  ;// CONCATENATED MODULE: ./src/javascripts/domains/app/reducer.js
12099
- function app_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12335
+ function app_reducer_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; }
12100
12336
 
12101
- function app_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { app_reducer_ownKeys(Object(source), true).forEach(function (key) { app_reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { app_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
12337
+ function app_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? app_reducer_ownKeys(Object(source), !0).forEach(function (key) { app_reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : app_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12102
12338
 
12103
12339
  function app_reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12104
12340
 
@@ -12146,6 +12382,7 @@ const getIsPayloadTranslated = createSelector(getOriginalPayloadIds, getPropSele
12146
12382
 
12147
12383
 
12148
12384
 
12385
+
12149
12386
  function useTranslations() {
12150
12387
  const {
12151
12388
  sendAction
@@ -12233,6 +12470,16 @@ function useTranslationsContainer() {
12233
12470
  focusContainer
12234
12471
  };
12235
12472
  }
12473
+ function useLocaleNativeName(locale) {
12474
+ const {
12475
+ languages
12476
+ } = useTranslations();
12477
+ return (0,hooks_namespaceObject.useMemo)(() => {
12478
+ var _languages$find;
12479
+
12480
+ return languages === null || languages === void 0 ? void 0 : (_languages$find = languages.find(lang => lang.locale === locale)) === null || _languages$find === void 0 ? void 0 : _languages$find.nativeName;
12481
+ }, [locale, languages]);
12482
+ }
12236
12483
  ;// CONCATENATED MODULE: ./src/javascripts/domains/translations/middleware.js
12237
12484
 
12238
12485
 
@@ -12279,9 +12526,9 @@ function middleware_createMiddleware() {
12279
12526
  };
12280
12527
  }
12281
12528
  ;// CONCATENATED MODULE: ./src/javascripts/domains/translations/reducer.js
12282
- function translations_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12529
+ function translations_reducer_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; }
12283
12530
 
12284
- function translations_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { translations_reducer_ownKeys(Object(source), true).forEach(function (key) { translations_reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { translations_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
12531
+ function translations_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? translations_reducer_ownKeys(Object(source), !0).forEach(function (key) { translations_reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : translations_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12285
12532
 
12286
12533
  function translations_reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12287
12534
 
@@ -12818,9 +13065,9 @@ function useFormControl(name) {
12818
13065
  ;// CONCATENATED MODULE: ./src/javascripts/domains/forms/provider.js
12819
13066
  const provider_excluded = ["children", "formId", "persistData", "onError", "onSubmit", "validationSchema"];
12820
13067
 
12821
- function provider_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13068
+ function provider_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; }
12822
13069
 
12823
- function provider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { provider_ownKeys(Object(source), true).forEach(function (key) { provider_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { provider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13070
+ function provider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? provider_ownKeys(Object(source), !0).forEach(function (key) { provider_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : provider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12824
13071
 
12825
13072
  function provider_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12826
13073
 
@@ -12936,9 +13183,9 @@ function FormProvider(_ref) {
12936
13183
  }));
12937
13184
  }
12938
13185
  ;// CONCATENATED MODULE: ./src/javascripts/domains/forms/reducer.js
12939
- function forms_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13186
+ function forms_reducer_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; }
12940
13187
 
12941
- function forms_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { forms_reducer_ownKeys(Object(source), true).forEach(function (key) { forms_reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { forms_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13188
+ function forms_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? forms_reducer_ownKeys(Object(source), !0).forEach(function (key) { forms_reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : forms_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12942
13189
 
12943
13190
  function forms_reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12944
13191
 
@@ -13052,49 +13299,228 @@ function updateFormControl(state, formId, name, controlState) {
13052
13299
 
13053
13300
 
13054
13301
 
13055
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/form-controls/form.js
13056
- const form_excluded = ["className", "disableValidationClasses"];
13057
-
13058
- function form_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13302
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/utils/form-utils.js
13303
+ function form_utils_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; }
13059
13304
 
13060
- function form_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { form_ownKeys(Object(source), true).forEach(function (key) { form_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { form_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13305
+ function form_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? form_utils_ownKeys(Object(source), !0).forEach(function (key) { form_utils_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : form_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13061
13306
 
13062
- function form_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13307
+ function form_utils_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13063
13308
 
13064
- function form_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = form_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
13309
+ const formActions = {
13310
+ REGISTER_FORM: 'REGISTER_FORM',
13311
+ DE_REGISTER_FORM: 'DE_REGISTER_FORM',
13312
+ REGISTER: 'REGISTER',
13313
+ DE_REGISTER: 'DEREGISTER',
13314
+ SET_VALUE: 'SET_VALUE',
13315
+ SET_VALIDITY: 'SET_VALIDITY',
13316
+ SET_STATE: 'SET_STATE',
13317
+ SET_SUBMITTED: 'SET_SUBMITTED',
13318
+ SET_PERSIST_FORM_DATA: 'SET_PERSIST_FORM_DATA'
13319
+ };
13320
+ const {
13321
+ REGISTER_FORM,
13322
+ DE_REGISTER_FORM,
13323
+ REGISTER,
13324
+ DE_REGISTER,
13325
+ SET_VALUE,
13326
+ SET_VALIDITY,
13327
+ SET_STATE,
13328
+ SET_SUBMITTED,
13329
+ SET_PERSIST_FORM_DATA
13330
+ } = formActions;
13331
+ const getValidator = (fn, errorText, compareValue = null) => ({
13332
+ fn,
13333
+ errorText,
13334
+ compareValue
13335
+ });
13336
+ const formReducer = (state, action) => {
13337
+ const {
13338
+ formId,
13339
+ name,
13340
+ controlId,
13341
+ value,
13342
+ data,
13343
+ validity,
13344
+ errorText,
13345
+ hasSubmitted,
13346
+ persistData
13347
+ } = action;
13065
13348
 
13066
- function form_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
13349
+ const setControls = controls => form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13350
+ [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13351
+ controls: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls), controls)
13352
+ })
13353
+ });
13067
13354
 
13355
+ switch (action.type) {
13356
+ case REGISTER_FORM:
13357
+ return form_utils_objectSpread({
13358
+ [formId]: {
13359
+ controls: {},
13360
+ validity: true,
13361
+ hasSubmitted: false,
13362
+ persistData: false
13363
+ }
13364
+ }, state);
13068
13365
 
13366
+ case DE_REGISTER_FORM:
13367
+ const removedFormState = form_utils_objectSpread({}, state);
13069
13368
 
13369
+ delete removedFormState[formId];
13370
+ return removedFormState;
13070
13371
 
13372
+ case REGISTER:
13373
+ const {
13374
+ value: existingValue,
13375
+ validity: existingValidity,
13376
+ errorText: existingErrorText
13377
+ } = state[formId].controls[name] || {};
13378
+ return setControls({
13379
+ [name]: {
13380
+ controlId,
13381
+ value: existingValue || value,
13382
+ validity: existingValidity !== false,
13383
+ errorText: existingErrorText || ''
13384
+ }
13385
+ });
13071
13386
 
13072
- function Form(_ref) {
13073
- let {
13074
- className: givenClassName,
13075
- disableValidationClasses
13076
- } = _ref,
13077
- props = form_objectWithoutProperties(_ref, form_excluded);
13387
+ case DE_REGISTER:
13388
+ const relatedForm = state[formId];
13078
13389
 
13079
- const {
13080
- handleSubmit,
13081
- isValid,
13082
- isSubmitted
13083
- } = useForm();
13084
- const formClasses = ['form'];
13390
+ if (!relatedForm) {
13391
+ return state;
13392
+ }
13085
13393
 
13086
- if (!disableValidationClasses && isSubmitted) {
13087
- formClasses.push('form--submitted');
13394
+ const newControls = form_utils_objectSpread({}, relatedForm.controls);
13088
13395
 
13089
- if (isValid) {
13090
- formClasses.push('form--valid');
13091
- } else {
13092
- formClasses.push('form--invalid');
13093
- }
13094
- }
13396
+ delete newControls[action.name];
13397
+ return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13398
+ [formId]: form_utils_objectSpread(form_utils_objectSpread({}, relatedForm), {}, {
13399
+ controls: newControls
13400
+ })
13401
+ });
13095
13402
 
13096
- return (0,jsx_runtime_namespaceObject.jsx)("form", form_objectSpread({
13097
- onSubmit: handleSubmit,
13403
+ case SET_VALUE:
13404
+ return setControls({
13405
+ [name]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls[name]), {}, {
13406
+ value
13407
+ })
13408
+ });
13409
+
13410
+ case SET_VALIDITY:
13411
+ const newControlValidities = form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls), {}, {
13412
+ [name]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls[name]), {}, {
13413
+ validity,
13414
+ errorText
13415
+ })
13416
+ });
13417
+
13418
+ return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13419
+ [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13420
+ controls: newControlValidities,
13421
+ validity: Object.keys(newControlValidities).map(key => newControlValidities[key].validity).every(v => v)
13422
+ })
13423
+ });
13424
+
13425
+ case SET_STATE:
13426
+ return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13427
+ [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13428
+ controls: Object.keys(data).reduce((acc, key) => {
13429
+ return form_utils_objectSpread(form_utils_objectSpread({}, acc), {}, {
13430
+ [key]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls[key]), {}, {
13431
+ value: data[key],
13432
+ validity: true,
13433
+ errorText: ''
13434
+ })
13435
+ });
13436
+ }, form_utils_objectSpread({}, state.controls))
13437
+ })
13438
+ });
13439
+
13440
+ case SET_SUBMITTED:
13441
+ return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13442
+ [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13443
+ hasSubmitted
13444
+ })
13445
+ });
13446
+
13447
+ case SET_PERSIST_FORM_DATA:
13448
+ return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13449
+ [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13450
+ persistData
13451
+ })
13452
+ });
13453
+
13454
+ default:
13455
+ return state;
13456
+ }
13457
+ };
13458
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/utils/validations.js
13459
+ const validateFileSize = (fileList, maxSize) => {
13460
+ let isValid = true;
13461
+
13462
+ for (let i = 0; i < fileList.length; i++) {
13463
+ if (fileList[i].size > maxSize) {
13464
+ isValid = false;
13465
+ }
13466
+ }
13467
+
13468
+ return isValid;
13469
+ };
13470
+ const fileListObjectIsNotEmpty = fileListObj => !!(fileListObj !== null && fileListObj !== void 0 && fileListObj.length) > 0;
13471
+ /* eslint-disable no-control-regex */
13472
+
13473
+ const isEmailString = val => {
13474
+ const regex = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i;
13475
+ const trimmedVal = val && val.trim();
13476
+ return !!(trimmedVal && trimmedVal.match(regex));
13477
+ };
13478
+ /* eslint-enable no-control-regex */
13479
+
13480
+ const isNotEmptyString = val => !!val;
13481
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/form-controls/form.js
13482
+ const form_excluded = ["className", "disableValidationClasses"];
13483
+
13484
+ function form_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; }
13485
+
13486
+ function form_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? form_ownKeys(Object(source), !0).forEach(function (key) { form_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : form_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13487
+
13488
+ function form_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13489
+
13490
+ function form_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = form_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
13491
+
13492
+ function form_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
13493
+
13494
+
13495
+
13496
+
13497
+
13498
+ function Form(_ref) {
13499
+ let {
13500
+ className: givenClassName,
13501
+ disableValidationClasses
13502
+ } = _ref,
13503
+ props = form_objectWithoutProperties(_ref, form_excluded);
13504
+
13505
+ const {
13506
+ handleSubmit,
13507
+ isValid,
13508
+ isSubmitted
13509
+ } = useForm();
13510
+ const formClasses = ['form'];
13511
+
13512
+ if (!disableValidationClasses && isSubmitted) {
13513
+ formClasses.push('form--submitted');
13514
+
13515
+ if (isValid) {
13516
+ formClasses.push('form--valid');
13517
+ } else {
13518
+ formClasses.push('form--invalid');
13519
+ }
13520
+ }
13521
+
13522
+ return (0,jsx_runtime_namespaceObject.jsx)("form", form_objectSpread({
13523
+ onSubmit: handleSubmit,
13098
13524
  className: css_className([...formClasses, givenClassName])
13099
13525
  }, props));
13100
13526
  }
@@ -13166,9 +13592,9 @@ const FormControlWrapper = ({
13166
13592
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/form-controls/select.js
13167
13593
  const select_excluded = ["id", "name", "labelText", "labelClass", "contentHint", "aria-describedby", "options"];
13168
13594
 
13169
- function select_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13595
+ function select_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; }
13170
13596
 
13171
- function select_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { select_ownKeys(Object(source), true).forEach(function (key) { select_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { select_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13597
+ function select_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? select_ownKeys(Object(source), !0).forEach(function (key) { select_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : select_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13172
13598
 
13173
13599
  function select_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13174
13600
 
@@ -13261,11 +13687,7 @@ function TranslationsOptionsDialogForm({
13261
13687
  const {
13262
13688
  locale: uiLocale
13263
13689
  } = useI18n();
13264
- const languageName = (0,hooks_namespaceObject.useMemo)(() => {
13265
- var _languages$find;
13266
-
13267
- return languages === null || languages === void 0 ? void 0 : (_languages$find = languages.find(lang => lang.locale === currentLocale)) === null || _languages$find === void 0 ? void 0 : _languages$find.nativeName;
13268
- }, [languages, currentLocale]);
13690
+ const localeNativeName = useLocaleNativeName(currentLocale);
13269
13691
  const options = (0,hooks_namespaceObject.useMemo)(() => {
13270
13692
  return [{
13271
13693
  value: '',
@@ -13287,7 +13709,7 @@ function TranslationsOptionsDialogForm({
13287
13709
  children: t('translations.settings.currentTranslationLabel')
13288
13710
  }), (0,jsx_runtime_namespaceObject.jsx)("p", {
13289
13711
  className: css_className('options__active-language'),
13290
- children: languageName
13712
+ children: localeNativeName
13291
13713
  })]
13292
13714
  }) : (0,jsx_runtime_namespaceObject.jsx)(form_controls_select, {
13293
13715
  name: controlName,
@@ -13310,185 +13732,6 @@ function TranslationsOptionsDialogForm({
13310
13732
  }
13311
13733
 
13312
13734
  /* harmony default export */ const options_dialog_form = (TranslationsOptionsDialogForm);
13313
- ;// CONCATENATED MODULE: ./src/javascripts/ui/utils/form-utils.js
13314
- function form_utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13315
-
13316
- function form_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { form_utils_ownKeys(Object(source), true).forEach(function (key) { form_utils_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { form_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13317
-
13318
- function form_utils_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13319
-
13320
- const formActions = {
13321
- REGISTER_FORM: 'REGISTER_FORM',
13322
- DE_REGISTER_FORM: 'DE_REGISTER_FORM',
13323
- REGISTER: 'REGISTER',
13324
- DE_REGISTER: 'DEREGISTER',
13325
- SET_VALUE: 'SET_VALUE',
13326
- SET_VALIDITY: 'SET_VALIDITY',
13327
- SET_STATE: 'SET_STATE',
13328
- SET_SUBMITTED: 'SET_SUBMITTED',
13329
- SET_PERSIST_FORM_DATA: 'SET_PERSIST_FORM_DATA'
13330
- };
13331
- const {
13332
- REGISTER_FORM,
13333
- DE_REGISTER_FORM,
13334
- REGISTER,
13335
- DE_REGISTER,
13336
- SET_VALUE,
13337
- SET_VALIDITY,
13338
- SET_STATE,
13339
- SET_SUBMITTED,
13340
- SET_PERSIST_FORM_DATA
13341
- } = formActions;
13342
- const getValidator = (fn, errorText, compareValue = null) => ({
13343
- fn,
13344
- errorText,
13345
- compareValue
13346
- });
13347
- const formReducer = (state, action) => {
13348
- const {
13349
- formId,
13350
- name,
13351
- controlId,
13352
- value,
13353
- data,
13354
- validity,
13355
- errorText,
13356
- hasSubmitted,
13357
- persistData
13358
- } = action;
13359
-
13360
- const setControls = controls => form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13361
- [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13362
- controls: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls), controls)
13363
- })
13364
- });
13365
-
13366
- switch (action.type) {
13367
- case REGISTER_FORM:
13368
- return form_utils_objectSpread({
13369
- [formId]: {
13370
- controls: {},
13371
- validity: true,
13372
- hasSubmitted: false,
13373
- persistData: false
13374
- }
13375
- }, state);
13376
-
13377
- case DE_REGISTER_FORM:
13378
- const removedFormState = form_utils_objectSpread({}, state);
13379
-
13380
- delete removedFormState[formId];
13381
- return removedFormState;
13382
-
13383
- case REGISTER:
13384
- const {
13385
- value: existingValue,
13386
- validity: existingValidity,
13387
- errorText: existingErrorText
13388
- } = state[formId].controls[name] || {};
13389
- return setControls({
13390
- [name]: {
13391
- controlId,
13392
- value: existingValue || value,
13393
- validity: existingValidity !== false,
13394
- errorText: existingErrorText || ''
13395
- }
13396
- });
13397
-
13398
- case DE_REGISTER:
13399
- const relatedForm = state[formId];
13400
-
13401
- if (!relatedForm) {
13402
- return state;
13403
- }
13404
-
13405
- const newControls = form_utils_objectSpread({}, relatedForm.controls);
13406
-
13407
- delete newControls[action.name];
13408
- return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13409
- [formId]: form_utils_objectSpread(form_utils_objectSpread({}, relatedForm), {}, {
13410
- controls: newControls
13411
- })
13412
- });
13413
-
13414
- case SET_VALUE:
13415
- return setControls({
13416
- [name]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls[name]), {}, {
13417
- value
13418
- })
13419
- });
13420
-
13421
- case SET_VALIDITY:
13422
- const newControlValidities = form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls), {}, {
13423
- [name]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls[name]), {}, {
13424
- validity,
13425
- errorText
13426
- })
13427
- });
13428
-
13429
- return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13430
- [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13431
- controls: newControlValidities,
13432
- validity: Object.keys(newControlValidities).map(key => newControlValidities[key].validity).every(v => v)
13433
- })
13434
- });
13435
-
13436
- case SET_STATE:
13437
- return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13438
- [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13439
- controls: Object.keys(data).reduce((acc, key) => {
13440
- return form_utils_objectSpread(form_utils_objectSpread({}, acc), {}, {
13441
- [key]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId].controls[key]), {}, {
13442
- value: data[key],
13443
- validity: true,
13444
- errorText: ''
13445
- })
13446
- });
13447
- }, form_utils_objectSpread({}, state.controls))
13448
- })
13449
- });
13450
-
13451
- case SET_SUBMITTED:
13452
- return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13453
- [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13454
- hasSubmitted
13455
- })
13456
- });
13457
-
13458
- case SET_PERSIST_FORM_DATA:
13459
- return form_utils_objectSpread(form_utils_objectSpread({}, state), {}, {
13460
- [formId]: form_utils_objectSpread(form_utils_objectSpread({}, state[formId]), {}, {
13461
- persistData
13462
- })
13463
- });
13464
-
13465
- default:
13466
- return state;
13467
- }
13468
- };
13469
- ;// CONCATENATED MODULE: ./src/javascripts/ui/utils/validations.js
13470
- const validateFileSize = (fileList, maxSize) => {
13471
- let isValid = true;
13472
-
13473
- for (let i = 0; i < fileList.length; i++) {
13474
- if (fileList[i].size > maxSize) {
13475
- isValid = false;
13476
- }
13477
- }
13478
-
13479
- return isValid;
13480
- };
13481
- const fileListObjectIsNotEmpty = fileListObj => !!(fileListObj !== null && fileListObj !== void 0 && fileListObj.length) > 0;
13482
- /* eslint-disable no-control-regex */
13483
-
13484
- const isEmailString = val => {
13485
- const regex = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i;
13486
- const trimmedVal = val && val.trim();
13487
- return !!(trimmedVal && trimmedVal.match(regex));
13488
- };
13489
- /* eslint-enable no-control-regex */
13490
-
13491
- const isNotEmptyString = val => !!val;
13492
13735
  ;// CONCATENATED MODULE: ./src/javascripts/domains/translations/components/options-dialog/index.js
13493
13736
 
13494
13737
 
@@ -13584,13 +13827,16 @@ function TranslationsOptionsDialog({
13584
13827
 
13585
13828
 
13586
13829
 
13830
+
13587
13831
  function TranslationsOptionButton() {
13588
13832
  const {
13589
- t
13833
+ t,
13834
+ locale
13590
13835
  } = useI18n();
13591
13836
  const [menuIsOpen, setMenuIsOpen] = (0,hooks_namespaceObject.useState)(false);
13592
13837
  const toggleButton = (0,hooks_namespaceObject.useRef)(null);
13593
13838
  const toggleButtonId = useGeneratedId();
13839
+ const localeNativeName = useLocaleNativeName(locale);
13594
13840
 
13595
13841
  const onMainKeyDownHandler = e => {
13596
13842
  if (!menuIsOpen) {
@@ -13645,7 +13891,10 @@ function TranslationsOptionButton() {
13645
13891
  size: "16"
13646
13892
  }), (0,jsx_runtime_namespaceObject.jsx)("span", {
13647
13893
  className: css_className('button__text'),
13648
- children: t('translations.settings.openButtonText')
13894
+ children: t('translations.settings.openButtonText', {
13895
+ hasLanguage: !!localeNativeName,
13896
+ language: localeNativeName
13897
+ })
13649
13898
  })]
13650
13899
  })]
13651
13900
  });
@@ -13708,15 +13957,10 @@ function TranslationsChatStatus() {
13708
13957
  const {
13709
13958
  isActive,
13710
13959
  disableTranslations,
13711
- languages,
13712
13960
  currentLocale
13713
13961
  } = useTranslations();
13962
+ const localeNativeName = useLocaleNativeName(currentLocale);
13714
13963
  const focusSkiplinkTarget = useSkiplinkTargetFocusing();
13715
- const languageName = (0,hooks_namespaceObject.useMemo)(() => {
13716
- var _languages$find;
13717
-
13718
- return languages === null || languages === void 0 ? void 0 : (_languages$find = languages.find(lang => lang.locale === currentLocale)) === null || _languages$find === void 0 ? void 0 : _languages$find.nativeName;
13719
- }, [languages, currentLocale]);
13720
13964
  const handleClickStop = (0,hooks_namespaceObject.useCallback)(() => {
13721
13965
  disableTranslations();
13722
13966
  focusSkiplinkTarget();
@@ -13730,7 +13974,7 @@ function TranslationsChatStatus() {
13730
13974
  type: "translations",
13731
13975
  id: id,
13732
13976
  label: t('translations.status.label', {
13733
- language: languageName
13977
+ language: localeNativeName
13734
13978
  }),
13735
13979
  onButtonClick: handleClickStop,
13736
13980
  buttonText: t('translations.status.stopText'),
@@ -13762,7 +14006,7 @@ const SuggestionsItem = ({
13762
14006
  hasIcon
13763
14007
  }) => {
13764
14008
  const mappedClassNames = (0,hooks_namespaceObject.useMemo)(() => {
13765
- return ['suggestions-item', ...categories.map(mapCategoryToClass)];
14009
+ return ['suggestions__item', ...categories.map(mapCategoryToClass)];
13766
14010
  }, [categories]);
13767
14011
  const handleClick = (0,hooks_namespaceObject.useCallback)(() => {
13768
14012
  if (onClick) {
@@ -13788,9 +14032,9 @@ const SuggestionsItem = ({
13788
14032
 
13789
14033
  /* harmony default export */ const suggestions_item = (SuggestionsItem);
13790
14034
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/suggestions/suggestions-list.js
13791
- function suggestions_list_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14035
+ function suggestions_list_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; }
13792
14036
 
13793
- function suggestions_list_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { suggestions_list_ownKeys(Object(source), true).forEach(function (key) { suggestions_list_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { suggestions_list_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14037
+ function suggestions_list_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? suggestions_list_ownKeys(Object(source), !0).forEach(function (key) { suggestions_list_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : suggestions_list_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13794
14038
 
13795
14039
  function suggestions_list_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13796
14040
 
@@ -14106,6 +14350,36 @@ const Interrupt = ({
14106
14350
  };
14107
14351
 
14108
14352
  /* harmony default export */ const interrupt = (Interrupt);
14353
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/layout/privacy-disclaimer.js
14354
+
14355
+
14356
+
14357
+
14358
+
14359
+
14360
+ const PrivacyDisclaimer = () => {
14361
+ const {
14362
+ t
14363
+ } = useI18n();
14364
+ const {
14365
+ showDisclaimer
14366
+ } = useConfig();
14367
+ return showDisclaimer && (0,jsx_runtime_namespaceObject.jsxs)("div", {
14368
+ className: css_className('disclaimer'),
14369
+ tabIndex: "0",
14370
+ children: [(0,jsx_runtime_namespaceObject.jsx)("h2", {
14371
+ className: css_className('disclaimer__title'),
14372
+ children: t('disclaimer.title')
14373
+ }), (0,jsx_runtime_namespaceObject.jsx)("div", {
14374
+ className: css_className('disclaimer__message'),
14375
+ dangerouslySetInnerHTML: {
14376
+ __html: t('disclaimer.content')
14377
+ }
14378
+ })]
14379
+ });
14380
+ };
14381
+
14382
+ /* harmony default export */ const privacy_disclaimer = (PrivacyDisclaimer);
14109
14383
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/component-context.js
14110
14384
 
14111
14385
  const ComponentContext = (0,external_preact_namespaceObject.createContext)({});
@@ -14129,9 +14403,9 @@ const useEventComponentMapping = event => {
14129
14403
 
14130
14404
  /* harmony default export */ const use_event_component_mapping = (useEventComponentMapping);
14131
14405
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event-divider.js
14132
- function event_divider_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14406
+ function event_divider_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; }
14133
14407
 
14134
- function event_divider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { event_divider_ownKeys(Object(source), true).forEach(function (key) { event_divider_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { event_divider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14408
+ function event_divider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? event_divider_ownKeys(Object(source), !0).forEach(function (key) { event_divider_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : event_divider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14135
14409
 
14136
14410
  function event_divider_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14137
14411
 
@@ -14426,9 +14700,9 @@ const Loader = () => {
14426
14700
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/message-container.js
14427
14701
  const message_container_excluded = ["showParticipant", "showTranslationToggle", "event", "type", "modifiers", "children", "bodyProps", "info"];
14428
14702
 
14429
- function message_container_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14703
+ function message_container_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; }
14430
14704
 
14431
- function message_container_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { message_container_ownKeys(Object(source), true).forEach(function (key) { message_container_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { message_container_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14705
+ function message_container_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? message_container_ownKeys(Object(source), !0).forEach(function (key) { message_container_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : message_container_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14432
14706
 
14433
14707
  function message_container_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14434
14708
 
@@ -14533,9 +14807,9 @@ function choice_prompt_objectWithoutProperties(source, excluded) { if (source ==
14533
14807
 
14534
14808
  function choice_prompt_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
14535
14809
 
14536
- function choice_prompt_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14810
+ function choice_prompt_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; }
14537
14811
 
14538
- function choice_prompt_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { choice_prompt_ownKeys(Object(source), true).forEach(function (key) { choice_prompt_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { choice_prompt_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14812
+ function choice_prompt_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? choice_prompt_ownKeys(Object(source), !0).forEach(function (key) { choice_prompt_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : choice_prompt_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14539
14813
 
14540
14814
  function choice_prompt_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14541
14815
 
@@ -14754,6 +15028,9 @@ function marked_esm_escape(html, encode) {
14754
15028
 
14755
15029
  const unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
14756
15030
 
15031
+ /**
15032
+ * @param {string} html
15033
+ */
14757
15034
  function marked_esm_unescape(html) {
14758
15035
  // explicitly match decimal, hex, and named HTML entities
14759
15036
  return html.replace(unescapeTest, (_, n) => {
@@ -14769,8 +15046,13 @@ function marked_esm_unescape(html) {
14769
15046
  }
14770
15047
 
14771
15048
  const caret = /(^|[^\[])\^/g;
15049
+
15050
+ /**
15051
+ * @param {string | RegExp} regex
15052
+ * @param {string} opt
15053
+ */
14772
15054
  function edit(regex, opt) {
14773
- regex = regex.source || regex;
15055
+ regex = typeof regex === 'string' ? regex : regex.source;
14774
15056
  opt = opt || '';
14775
15057
  const obj = {
14776
15058
  replace: (name, val) => {
@@ -14788,6 +15070,12 @@ function edit(regex, opt) {
14788
15070
 
14789
15071
  const nonWordAndColonTest = /[^\w:]/g;
14790
15072
  const originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
15073
+
15074
+ /**
15075
+ * @param {boolean} sanitize
15076
+ * @param {string} base
15077
+ * @param {string} href
15078
+ */
14791
15079
  function cleanUrl(sanitize, base, href) {
14792
15080
  if (sanitize) {
14793
15081
  let prot;
@@ -14818,6 +15106,10 @@ const justDomain = /^[^:]+:\/*[^/]*$/;
14818
15106
  const protocol = /^([^:]+:)[\s\S]*$/;
14819
15107
  const domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
14820
15108
 
15109
+ /**
15110
+ * @param {string} base
15111
+ * @param {string} href
15112
+ */
14821
15113
  function resolveUrl(base, href) {
14822
15114
  if (!baseUrls[' ' + base]) {
14823
15115
  // we can ignore everything in base after the last slash of its path component,
@@ -14902,9 +15194,14 @@ function splitCells(tableRow, count) {
14902
15194
  return cells;
14903
15195
  }
14904
15196
 
14905
- // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
14906
- // /c*$/ is vulnerable to REDOS.
14907
- // invert: Remove suffix of non-c chars instead. Default falsey.
15197
+ /**
15198
+ * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
15199
+ * /c*$/ is vulnerable to REDOS.
15200
+ *
15201
+ * @param {string} str
15202
+ * @param {string} c
15203
+ * @param {boolean} invert Remove suffix of non-c chars instead. Default falsey.
15204
+ */
14908
15205
  function rtrim(str, c, invert) {
14909
15206
  const l = str.length;
14910
15207
  if (l === 0) {
@@ -14926,7 +15223,7 @@ function rtrim(str, c, invert) {
14926
15223
  }
14927
15224
  }
14928
15225
 
14929
- return str.substr(0, l - suffLen);
15226
+ return str.slice(0, l - suffLen);
14930
15227
  }
14931
15228
 
14932
15229
  function marked_esm_findClosingBracket(str, b) {
@@ -14958,6 +15255,10 @@ function checkSanitizeDeprecation(opt) {
14958
15255
  }
14959
15256
 
14960
15257
  // copied from https://stackoverflow.com/a/5450113/806777
15258
+ /**
15259
+ * @param {string} pattern
15260
+ * @param {number} count
15261
+ */
14961
15262
  function repeatString(pattern, count) {
14962
15263
  if (count < 1) {
14963
15264
  return '';
@@ -14990,15 +15291,14 @@ function outputLink(cap, link, raw, lexer) {
14990
15291
  };
14991
15292
  lexer.state.inLink = false;
14992
15293
  return token;
14993
- } else {
14994
- return {
14995
- type: 'image',
14996
- raw,
14997
- href,
14998
- title,
14999
- text: marked_esm_escape(text)
15000
- };
15001
15294
  }
15295
+ return {
15296
+ type: 'image',
15297
+ raw,
15298
+ href,
15299
+ title,
15300
+ text: marked_esm_escape(text)
15301
+ };
15002
15302
  }
15003
15303
 
15004
15304
  function indentCodeCompensation(raw, text) {
@@ -15097,7 +15397,7 @@ class Tokenizer {
15097
15397
  type: 'heading',
15098
15398
  raw: cap[0],
15099
15399
  depth: cap[1].length,
15100
- text: text,
15400
+ text,
15101
15401
  tokens: []
15102
15402
  };
15103
15403
  this.lexer.inline(token.text, token.tokens);
@@ -15118,7 +15418,7 @@ class Tokenizer {
15118
15418
  blockquote(src) {
15119
15419
  const cap = this.rules.block.blockquote.exec(src);
15120
15420
  if (cap) {
15121
- const text = cap[0].replace(/^ *> ?/gm, '');
15421
+ const text = cap[0].replace(/^ *>[ \t]?/gm, '');
15122
15422
 
15123
15423
  return {
15124
15424
  type: 'blockquote',
@@ -15154,7 +15454,7 @@ class Tokenizer {
15154
15454
  }
15155
15455
 
15156
15456
  // Get next list item
15157
- const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\n]*)?(?:\\n|$))`);
15457
+ const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\t ][^\\n]*)?(?:\\n|$))`);
15158
15458
 
15159
15459
  // Check if current bullet point can start a new List Item
15160
15460
  while (src) {
@@ -15192,7 +15492,9 @@ class Tokenizer {
15192
15492
  }
15193
15493
 
15194
15494
  if (!endEarly) {
15195
- const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])`);
15495
+ const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))`);
15496
+ const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`);
15497
+ const fencesBeginRegex = new RegExp(`^( {0,${Math.min(3, indent - 1)}})(\`\`\`|~~~)`);
15196
15498
 
15197
15499
  // Check if following lines should be included in List Item
15198
15500
  while (src) {
@@ -15204,11 +15506,26 @@ class Tokenizer {
15204
15506
  line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');
15205
15507
  }
15206
15508
 
15509
+ // End list item if found code fences
15510
+ if (fencesBeginRegex.test(line)) {
15511
+ break;
15512
+ }
15513
+
15514
+ // End list item if found start of new heading
15515
+ if (this.rules.block.heading.test(line)) {
15516
+ break;
15517
+ }
15518
+
15207
15519
  // End list item if found start of new bullet
15208
15520
  if (nextBulletRegex.test(line)) {
15209
15521
  break;
15210
15522
  }
15211
15523
 
15524
+ // Horizontal rule found
15525
+ if (hrRegex.test(src)) {
15526
+ break;
15527
+ }
15528
+
15212
15529
  if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible
15213
15530
  itemContents += '\n' + line.slice(indent);
15214
15531
  } else if (!blankLine) { // Until blank line, item doesn't need indentation
@@ -15246,7 +15563,7 @@ class Tokenizer {
15246
15563
 
15247
15564
  list.items.push({
15248
15565
  type: 'list_item',
15249
- raw: raw,
15566
+ raw,
15250
15567
  task: !!istask,
15251
15568
  checked: ischecked,
15252
15569
  loose: false,
@@ -15367,7 +15684,7 @@ class Tokenizer {
15367
15684
  l = item.header.length;
15368
15685
  for (j = 0; j < l; j++) {
15369
15686
  item.header[j].tokens = [];
15370
- this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);
15687
+ this.lexer.inline(item.header[j].text, item.header[j].tokens);
15371
15688
  }
15372
15689
 
15373
15690
  // cell child tokens
@@ -15376,7 +15693,7 @@ class Tokenizer {
15376
15693
  row = item.rows[j];
15377
15694
  for (k = 0; k < row.length; k++) {
15378
15695
  row[k].tokens = [];
15379
- this.lexer.inlineTokens(row[k].text, row[k].tokens);
15696
+ this.lexer.inline(row[k].text, row[k].tokens);
15380
15697
  }
15381
15698
  }
15382
15699
 
@@ -15741,10 +16058,10 @@ const block = {
15741
16058
  newline: /^(?: *(?:\n|$))+/,
15742
16059
  code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
15743
16060
  fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
15744
- hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
16061
+ hr: /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,
15745
16062
  heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,
15746
16063
  blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
15747
- list: /^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,
16064
+ list: /^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,
15748
16065
  html: '^ {0,3}(?:' // optional indentation
15749
16066
  + '<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
15750
16067
  + '|comment[^\\n]*(\\n+|$)' // (2)
@@ -15898,9 +16215,9 @@ const inline = {
15898
16215
  emStrong: {
15899
16216
  lDelim: /^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,
15900
16217
  // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.
15901
- // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a
15902
- rDelimAst: /^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,
15903
- rDelimUnd: /^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/ // ^- Not allowed for _
16218
+ // () Skip orphan inside strong () Consume to delim (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a
16219
+ rDelimAst: /^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,
16220
+ rDelimUnd: /^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/ // ^- Not allowed for _
15904
16221
  },
15905
16222
  code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
15906
16223
  br: /^( {2,}|\\)\n(?!\s*$)/,
@@ -16033,6 +16350,7 @@ inline.breaks = merge({}, inline.gfm, {
16033
16350
 
16034
16351
  /**
16035
16352
  * smartypants text replacement
16353
+ * @param {string} text
16036
16354
  */
16037
16355
  function smartypants(text) {
16038
16356
  return text
@@ -16054,6 +16372,7 @@ function smartypants(text) {
16054
16372
 
16055
16373
  /**
16056
16374
  * mangle email addresses
16375
+ * @param {string} text
16057
16376
  */
16058
16377
  function mangle(text) {
16059
16378
  let out = '',
@@ -16141,8 +16460,7 @@ class Lexer {
16141
16460
  */
16142
16461
  lex(src) {
16143
16462
  src = src
16144
- .replace(/\r\n|\r/g, '\n')
16145
- .replace(/\t/g, ' ');
16463
+ .replace(/\r\n|\r/g, '\n');
16146
16464
 
16147
16465
  this.blockTokens(src, this.tokens);
16148
16466
 
@@ -16159,8 +16477,13 @@ class Lexer {
16159
16477
  */
16160
16478
  blockTokens(src, tokens = []) {
16161
16479
  if (this.options.pedantic) {
16162
- src = src.replace(/^ +$/gm, '');
16480
+ src = src.replace(/\t/g, ' ').replace(/^ +$/gm, '');
16481
+ } else {
16482
+ src = src.replace(/^( *)(\t+)/gm, (_, leading, tabs) => {
16483
+ return leading + ' '.repeat(tabs.length);
16484
+ });
16163
16485
  }
16486
+
16164
16487
  let token, lastToken, cutSrc, lastParagraphClipped;
16165
16488
 
16166
16489
  while (src) {
@@ -16556,29 +16879,31 @@ class Renderer {
16556
16879
  + '</code></pre>\n';
16557
16880
  }
16558
16881
 
16882
+ /**
16883
+ * @param {string} quote
16884
+ */
16559
16885
  blockquote(quote) {
16560
- return '<blockquote>\n' + quote + '</blockquote>\n';
16886
+ return `<blockquote>\n${quote}</blockquote>\n`;
16561
16887
  }
16562
16888
 
16563
16889
  html(html) {
16564
16890
  return html;
16565
16891
  }
16566
16892
 
16893
+ /**
16894
+ * @param {string} text
16895
+ * @param {string} level
16896
+ * @param {string} raw
16897
+ * @param {any} slugger
16898
+ */
16567
16899
  heading(text, level, raw, slugger) {
16568
16900
  if (this.options.headerIds) {
16569
- return '<h'
16570
- + level
16571
- + ' id="'
16572
- + this.options.headerPrefix
16573
- + slugger.slug(raw)
16574
- + '">'
16575
- + text
16576
- + '</h'
16577
- + level
16578
- + '>\n';
16901
+ const id = this.options.headerPrefix + slugger.slug(raw);
16902
+ return `<h${level} id="${id}">${text}</h${level}>\n`;
16579
16903
  }
16904
+
16580
16905
  // ignore IDs
16581
- return '<h' + level + '>' + text + '</h' + level + '>\n';
16906
+ return `<h${level}>${text}</h${level}>\n`;
16582
16907
  }
16583
16908
 
16584
16909
  hr() {
@@ -16591,8 +16916,11 @@ class Renderer {
16591
16916
  return '<' + type + startatt + '>\n' + body + '</' + type + '>\n';
16592
16917
  }
16593
16918
 
16919
+ /**
16920
+ * @param {string} text
16921
+ */
16594
16922
  listitem(text) {
16595
- return '<li>' + text + '</li>\n';
16923
+ return `<li>${text}</li>\n`;
16596
16924
  }
16597
16925
 
16598
16926
  checkbox(checked) {
@@ -16603,12 +16931,19 @@ class Renderer {
16603
16931
  + '> ';
16604
16932
  }
16605
16933
 
16934
+ /**
16935
+ * @param {string} text
16936
+ */
16606
16937
  paragraph(text) {
16607
- return '<p>' + text + '</p>\n';
16938
+ return `<p>${text}</p>\n`;
16608
16939
  }
16609
16940
 
16941
+ /**
16942
+ * @param {string} header
16943
+ * @param {string} body
16944
+ */
16610
16945
  table(header, body) {
16611
- if (body) body = '<tbody>' + body + '</tbody>';
16946
+ if (body) body = `<tbody>${body}</tbody>`;
16612
16947
 
16613
16948
  return '<table>\n'
16614
16949
  + '<thead>\n'
@@ -16618,39 +16953,59 @@ class Renderer {
16618
16953
  + '</table>\n';
16619
16954
  }
16620
16955
 
16956
+ /**
16957
+ * @param {string} content
16958
+ */
16621
16959
  tablerow(content) {
16622
- return '<tr>\n' + content + '</tr>\n';
16960
+ return `<tr>\n${content}</tr>\n`;
16623
16961
  }
16624
16962
 
16625
16963
  tablecell(content, flags) {
16626
16964
  const type = flags.header ? 'th' : 'td';
16627
16965
  const tag = flags.align
16628
- ? '<' + type + ' align="' + flags.align + '">'
16629
- : '<' + type + '>';
16630
- return tag + content + '</' + type + '>\n';
16966
+ ? `<${type} align="${flags.align}">`
16967
+ : `<${type}>`;
16968
+ return tag + content + `</${type}>\n`;
16631
16969
  }
16632
16970
 
16633
- // span level renderer
16971
+ /**
16972
+ * span level renderer
16973
+ * @param {string} text
16974
+ */
16634
16975
  strong(text) {
16635
- return '<strong>' + text + '</strong>';
16976
+ return `<strong>${text}</strong>`;
16636
16977
  }
16637
16978
 
16979
+ /**
16980
+ * @param {string} text
16981
+ */
16638
16982
  em(text) {
16639
- return '<em>' + text + '</em>';
16983
+ return `<em>${text}</em>`;
16640
16984
  }
16641
16985
 
16986
+ /**
16987
+ * @param {string} text
16988
+ */
16642
16989
  codespan(text) {
16643
- return '<code>' + text + '</code>';
16990
+ return `<code>${text}</code>`;
16644
16991
  }
16645
16992
 
16646
16993
  br() {
16647
16994
  return this.options.xhtml ? '<br/>' : '<br>';
16648
16995
  }
16649
16996
 
16997
+ /**
16998
+ * @param {string} text
16999
+ */
16650
17000
  del(text) {
16651
- return '<del>' + text + '</del>';
17001
+ return `<del>${text}</del>`;
16652
17002
  }
16653
17003
 
17004
+ /**
17005
+ * @param {string} href
17006
+ * @param {string} title
17007
+ * @param {string} text
17008
+ */
16654
17009
  link(href, title, text) {
16655
17010
  href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
16656
17011
  if (href === null) {
@@ -16664,15 +17019,20 @@ class Renderer {
16664
17019
  return out;
16665
17020
  }
16666
17021
 
17022
+ /**
17023
+ * @param {string} href
17024
+ * @param {string} title
17025
+ * @param {string} text
17026
+ */
16667
17027
  image(href, title, text) {
16668
17028
  href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
16669
17029
  if (href === null) {
16670
17030
  return text;
16671
17031
  }
16672
17032
 
16673
- let out = '<img src="' + href + '" alt="' + text + '"';
17033
+ let out = `<img src="${href}" alt="${text}"`;
16674
17034
  if (title) {
16675
- out += ' title="' + title + '"';
17035
+ out += ` title="${title}"`;
16676
17036
  }
16677
17037
  out += this.options.xhtml ? '/>' : '>';
16678
17038
  return out;
@@ -16734,6 +17094,9 @@ class Slugger {
16734
17094
  this.seen = {};
16735
17095
  }
16736
17096
 
17097
+ /**
17098
+ * @param {string} value
17099
+ */
16737
17100
  serialize(value) {
16738
17101
  return value
16739
17102
  .toLowerCase()
@@ -16747,6 +17110,8 @@ class Slugger {
16747
17110
 
16748
17111
  /**
16749
17112
  * Finds the next safe (unique) slug to use
17113
+ * @param {string} originalSlug
17114
+ * @param {boolean} isDryRun
16750
17115
  */
16751
17116
  getNextSafeSlug(originalSlug, isDryRun) {
16752
17117
  let slug = originalSlug;
@@ -16767,8 +17132,9 @@ class Slugger {
16767
17132
 
16768
17133
  /**
16769
17134
  * Convert string to unique id
16770
- * @param {object} options
16771
- * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.
17135
+ * @param {object} [options]
17136
+ * @param {boolean} [options.dryrun] Generates the next unique slug without
17137
+ * updating the internal accumulator.
16772
17138
  */
16773
17139
  slug(value, options = {}) {
16774
17140
  const slug = this.serialize(value);
@@ -17329,6 +17695,7 @@ marked.walkTokens = function(tokens, callback) {
17329
17695
 
17330
17696
  /**
17331
17697
  * Parse Inline
17698
+ * @param {string} src
17332
17699
  */
17333
17700
  marked.parseInline = function(src, opt) {
17334
17701
  // throw error in case of non string input
@@ -18224,9 +18591,9 @@ function parseRichText(text, variables = {}) {
18224
18591
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/text.js
18225
18592
  const text_excluded = ["event"];
18226
18593
 
18227
- function text_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18594
+ function text_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; }
18228
18595
 
18229
- function text_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { text_ownKeys(Object(source), true).forEach(function (key) { text_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { text_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18596
+ function text_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? text_ownKeys(Object(source), !0).forEach(function (key) { text_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : text_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18230
18597
 
18231
18598
  function text_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18232
18599
 
@@ -18277,12 +18644,24 @@ const Text = _ref => {
18277
18644
  /* harmony default export */ const event_text = (Text);
18278
18645
  ;// CONCATENATED MODULE: ./node_modules/tabbable/dist/index.esm.js
18279
18646
  /*!
18280
- * tabbable 5.2.1
18647
+ * tabbable 5.3.3
18281
18648
  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
18282
18649
  */
18283
- var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
18650
+ var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
18284
18651
  var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
18285
- var matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
18652
+ var NoElement = typeof Element === 'undefined';
18653
+ var matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
18654
+ var getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {
18655
+ return element.getRootNode();
18656
+ } : function (element) {
18657
+ return element.ownerDocument;
18658
+ };
18659
+ /**
18660
+ * @param {Element} el container to check in
18661
+ * @param {boolean} includeContainer add container to check
18662
+ * @param {(node: Element) => boolean} filter filter candidates
18663
+ * @returns {Element[]}
18664
+ */
18286
18665
 
18287
18666
  var getCandidates = function getCandidates(el, includeContainer, filter) {
18288
18667
  var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
@@ -18294,31 +18673,120 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
18294
18673
  candidates = candidates.filter(filter);
18295
18674
  return candidates;
18296
18675
  };
18676
+ /**
18677
+ * @callback GetShadowRoot
18678
+ * @param {Element} element to check for shadow root
18679
+ * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.
18680
+ */
18681
+
18682
+ /**
18683
+ * @callback ShadowRootFilter
18684
+ * @param {Element} shadowHostNode the element which contains shadow content
18685
+ * @returns {boolean} true if a shadow root could potentially contain valid candidates.
18686
+ */
18687
+
18688
+ /**
18689
+ * @typedef {Object} CandidatesScope
18690
+ * @property {Element} scope contains inner candidates
18691
+ * @property {Element[]} candidates
18692
+ */
18693
+
18694
+ /**
18695
+ * @typedef {Object} IterativeOptions
18696
+ * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;
18697
+ * if a function, implies shadow support is enabled and either returns the shadow root of an element
18698
+ * or a boolean stating if it has an undisclosed shadow root
18699
+ * @property {(node: Element) => boolean} filter filter candidates
18700
+ * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list
18701
+ * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;
18702
+ */
18703
+
18704
+ /**
18705
+ * @param {Element[]} elements list of element containers to match candidates from
18706
+ * @param {boolean} includeContainer add container list to check
18707
+ * @param {IterativeOptions} options
18708
+ * @returns {Array.<Element|CandidatesScope>}
18709
+ */
18710
+
18711
+
18712
+ var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
18713
+ var candidates = [];
18714
+ var elementsToCheck = Array.from(elements);
18715
+
18716
+ while (elementsToCheck.length) {
18717
+ var element = elementsToCheck.shift();
18718
+
18719
+ if (element.tagName === 'SLOT') {
18720
+ // add shadow dom slot scope (slot itself cannot be focusable)
18721
+ var assigned = element.assignedElements();
18722
+ var content = assigned.length ? assigned : element.children;
18723
+ var nestedCandidates = getCandidatesIteratively(content, true, options);
18724
+
18725
+ if (options.flatten) {
18726
+ candidates.push.apply(candidates, nestedCandidates);
18727
+ } else {
18728
+ candidates.push({
18729
+ scope: element,
18730
+ candidates: nestedCandidates
18731
+ });
18732
+ }
18733
+ } else {
18734
+ // check candidate element
18735
+ var validCandidate = matches.call(element, candidateSelector);
18297
18736
 
18298
- var isContentEditable = function isContentEditable(node) {
18299
- return node.contentEditable === 'true';
18300
- };
18737
+ if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {
18738
+ candidates.push(element);
18739
+ } // iterate over shadow content if possible
18301
18740
 
18302
- var getTabindex = function getTabindex(node) {
18303
- var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);
18304
18741
 
18305
- if (!isNaN(tabindexAttr)) {
18306
- return tabindexAttr;
18307
- } // Browsers do not return `tabIndex` correctly for contentEditable nodes;
18308
- // so if they don't have a tabindex attribute specifically set, assume it's 0.
18742
+ var shadowRoot = element.shadowRoot || // check for an undisclosed shadow
18743
+ typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);
18744
+ var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);
18309
18745
 
18746
+ if (shadowRoot && validShadowRoot) {
18747
+ // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed
18748
+ // shadow exists, so look at light dom children as fallback BUT create a scope for any
18749
+ // child candidates found because they're likely slotted elements (elements that are
18750
+ // children of the web component element (which has the shadow), in the light dom, but
18751
+ // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,
18752
+ // _after_ we return from this recursive call
18753
+ var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);
18310
18754
 
18311
- if (isContentEditable(node)) {
18312
- return 0;
18313
- } // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
18314
- // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
18315
- // yet they are still part of the regular tab order; in FF, they get a default
18316
- // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
18317
- // order, consider their tab index to be 0.
18755
+ if (options.flatten) {
18756
+ candidates.push.apply(candidates, _nestedCandidates);
18757
+ } else {
18758
+ candidates.push({
18759
+ scope: element,
18760
+ candidates: _nestedCandidates
18761
+ });
18762
+ }
18763
+ } else {
18764
+ // there's not shadow so just dig into the element's (light dom) children
18765
+ // __without__ giving the element special scope treatment
18766
+ elementsToCheck.unshift.apply(elementsToCheck, element.children);
18767
+ }
18768
+ }
18769
+ }
18318
18770
 
18771
+ return candidates;
18772
+ };
18319
18773
 
18320
- if ((node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {
18321
- return 0;
18774
+ var getTabindex = function getTabindex(node, isScope) {
18775
+ if (node.tabIndex < 0) {
18776
+ // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
18777
+ // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
18778
+ // yet they are still part of the regular tab order; in FF, they get a default
18779
+ // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
18780
+ // order, consider their tab index to be 0.
18781
+ // Also browsers do not return `tabIndex` correctly for contentEditable nodes;
18782
+ // so if they don't have a tabindex attribute specifically set, assume it's 0.
18783
+ //
18784
+ // isScope is positive for custom element with shadow root or slot that by default
18785
+ // have tabIndex -1, but need to be sorted by document order in order for their
18786
+ // content to be inserted in the correct position
18787
+ if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {
18788
+ return 0;
18789
+ }
18322
18790
  }
18323
18791
 
18324
18792
  return node.tabIndex;
@@ -18356,7 +18824,7 @@ var isTabbableRadio = function isTabbableRadio(node) {
18356
18824
  return true;
18357
18825
  }
18358
18826
 
18359
- var radioScope = node.form || node.ownerDocument;
18827
+ var radioScope = node.form || getRootNode(node);
18360
18828
 
18361
18829
  var queryRadios = function queryRadios(name) {
18362
18830
  return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
@@ -18388,7 +18856,23 @@ var isNonTabbableRadio = function isNonTabbableRadio(node) {
18388
18856
  return isRadio(node) && !isTabbableRadio(node);
18389
18857
  };
18390
18858
 
18391
- var isHidden = function isHidden(node, displayCheck) {
18859
+ var isZeroArea = function isZeroArea(node) {
18860
+ var _node$getBoundingClie = node.getBoundingClientRect(),
18861
+ width = _node$getBoundingClie.width,
18862
+ height = _node$getBoundingClie.height;
18863
+
18864
+ return width === 0 && height === 0;
18865
+ };
18866
+
18867
+ var isHidden = function isHidden(node, _ref) {
18868
+ var displayCheck = _ref.displayCheck,
18869
+ getShadowRoot = _ref.getShadowRoot;
18870
+
18871
+ // NOTE: visibility will be `undefined` if node is detached from the document
18872
+ // (see notes about this further down), which means we will consider it visible
18873
+ // (this is legacy behavior from a very long way back)
18874
+ // NOTE: we check this regardless of `displayCheck="none"` because this is a
18875
+ // _visibility_ check, not a _display_ check
18392
18876
  if (getComputedStyle(node).visibility === 'hidden') {
18393
18877
  return true;
18394
18878
  }
@@ -18398,23 +18882,95 @@ var isHidden = function isHidden(node, displayCheck) {
18398
18882
 
18399
18883
  if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {
18400
18884
  return true;
18401
- }
18885
+ } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise
18886
+ // (but NOT _the_ document; see second 'If' comment below for more).
18887
+ // If rootNode is shadow root, it'll have a host, which is the element to which the shadow
18888
+ // is attached, and the one we need to check if it's in the document or not (because the
18889
+ // shadow, and all nodes it contains, is never considered in the document since shadows
18890
+ // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,
18891
+ // is hidden, or is not in the document itself but is detached, it will affect the shadow's
18892
+ // visibility, including all the nodes it contains). The host could be any normal node,
18893
+ // or a custom element (i.e. web component). Either way, that's the one that is considered
18894
+ // part of the document, not the shadow root, nor any of its children (i.e. the node being
18895
+ // tested).
18896
+ // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the
18897
+ // document (per the docs) and while it's a Document-type object, that document does not
18898
+ // appear to be the same as the node's `ownerDocument` for some reason, so it's safer
18899
+ // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,
18900
+ // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when
18901
+ // node is actually detached.
18902
+
18903
+
18904
+ var nodeRootHost = getRootNode(node).host;
18905
+ var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);
18402
18906
 
18403
18907
  if (!displayCheck || displayCheck === 'full') {
18404
- while (node) {
18405
- if (getComputedStyle(node).display === 'none') {
18406
- return true;
18908
+ if (typeof getShadowRoot === 'function') {
18909
+ // figure out if we should consider the node to be in an undisclosed shadow and use the
18910
+ // 'non-zero-area' fallback
18911
+ var originalNode = node;
18912
+
18913
+ while (node) {
18914
+ var parentElement = node.parentElement;
18915
+ var rootNode = getRootNode(node);
18916
+
18917
+ if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow
18918
+ ) {
18919
+ // node has an undisclosed shadow which means we can only treat it as a black box, so we
18920
+ // fall back to a non-zero-area test
18921
+ return isZeroArea(node);
18922
+ } else if (node.assignedSlot) {
18923
+ // iterate up slot
18924
+ node = node.assignedSlot;
18925
+ } else if (!parentElement && rootNode !== node.ownerDocument) {
18926
+ // cross shadow boundary
18927
+ node = rootNode.host;
18928
+ } else {
18929
+ // iterate up normal dom
18930
+ node = parentElement;
18931
+ }
18407
18932
  }
18408
18933
 
18409
- node = node.parentElement;
18410
- }
18934
+ node = originalNode;
18935
+ } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support
18936
+ // (i.e. it does not also presume that all nodes might have undisclosed shadows); or
18937
+ // it might be a falsy value, which means shadow DOM support is disabled
18938
+ // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)
18939
+ // now we can just test to see if it would normally be visible or not, provided it's
18940
+ // attached to the main document.
18941
+ // NOTE: We must consider case where node is inside a shadow DOM and given directly to
18942
+ // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.
18943
+
18944
+
18945
+ if (nodeIsAttached) {
18946
+ // this works wherever the node is: if there's at least one client rect, it's
18947
+ // somehow displayed; it also covers the CSS 'display: contents' case where the
18948
+ // node itself is hidden in place of its contents; and there's no need to search
18949
+ // up the hierarchy either
18950
+ return !node.getClientRects().length;
18951
+ } // Else, the node isn't attached to the document, which means the `getClientRects()`
18952
+ // API will __always__ return zero rects (this can happen, for example, if React
18953
+ // is used to render nodes onto a detached tree, as confirmed in this thread:
18954
+ // https://github.com/facebook/react/issues/9117#issuecomment-284228870)
18955
+ //
18956
+ // It also means that even window.getComputedStyle(node).display will return `undefined`
18957
+ // because styles are only computed for nodes that are in the document.
18958
+ //
18959
+ // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable
18960
+ // somehow. Though it was never stated officially, anyone who has ever used tabbable
18961
+ // APIs on nodes in detached containers has actually implicitly used tabbable in what
18962
+ // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck="none"` mode -- essentially
18963
+ // considering __everything__ to be visible because of the innability to determine styles.
18964
+
18411
18965
  } else if (displayCheck === 'non-zero-area') {
18412
- var _node$getBoundingClie = node.getBoundingClientRect(),
18413
- width = _node$getBoundingClie.width,
18414
- height = _node$getBoundingClie.height;
18966
+ // NOTE: Even though this tests that the node's client rect is non-zero to determine
18967
+ // whether it's displayed, and that a detached node will __always__ have a zero-area
18968
+ // client rect, we don't special-case for whether the node is attached or not. In
18969
+ // this mode, we do want to consider nodes that have a zero area to be hidden at all
18970
+ // times, and that includes attached or not.
18971
+ return isZeroArea(node);
18972
+ } // visible, as far as we can tell, or per current `displayCheck` mode
18415
18973
 
18416
- return width === 0 && height === 0;
18417
- }
18418
18974
 
18419
18975
  return false;
18420
18976
  }; // form fields (nested) inside a disabled fieldset are not focusable/tabbable
@@ -18423,29 +18979,21 @@ var isHidden = function isHidden(node, displayCheck) {
18423
18979
 
18424
18980
 
18425
18981
  var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
18426
- if (isInput(node) || node.tagName === 'SELECT' || node.tagName === 'TEXTAREA' || node.tagName === 'BUTTON') {
18427
- var parentNode = node.parentElement;
18982
+ if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
18983
+ var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>
18428
18984
 
18429
18985
  while (parentNode) {
18430
18986
  if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {
18431
- // look for the first <legend> as an immediate child of the disabled
18432
- // <fieldset>: if the node is in that legend, it'll be enabled even
18433
- // though the fieldset is disabled; otherwise, the node is in a
18434
- // secondary/subsequent legend, or somewhere else within the fieldset
18435
- // (however deep nested) and it'll be disabled
18987
+ // look for the first <legend> among the children of the disabled <fieldset>
18436
18988
  for (var i = 0; i < parentNode.children.length; i++) {
18437
- var child = parentNode.children.item(i);
18989
+ var child = parentNode.children.item(i); // when the first <legend> (in document order) is found
18438
18990
 
18439
18991
  if (child.tagName === 'LEGEND') {
18440
- if (child.contains(node)) {
18441
- return false;
18442
- } // the node isn't in the first legend (in doc order), so no matter
18443
- // where it is now, it'll be disabled
18444
-
18445
-
18446
- return true;
18992
+ // if its parent <fieldset> is not nested in another disabled <fieldset>,
18993
+ // return whether `node` is a descendant of its first <legend>
18994
+ return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);
18447
18995
  }
18448
- } // the node isn't in a legend, so no matter where it is now, it'll be disabled
18996
+ } // the disabled <fieldset> containing `node` has no <legend>
18449
18997
 
18450
18998
 
18451
18999
  return true;
@@ -18461,7 +19009,7 @@ var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
18461
19009
  };
18462
19010
 
18463
19011
  var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
18464
- if (node.disabled || isHiddenInput(node) || isHidden(node, options.displayCheck) || // For a details element with a summary, the summary element gets the focus
19012
+ if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus
18465
19013
  isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
18466
19014
  return false;
18467
19015
  }
@@ -18470,40 +19018,89 @@ var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(o
18470
19018
  };
18471
19019
 
18472
19020
  var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
18473
- if (!isNodeMatchingSelectorFocusable(options, node) || isNonTabbableRadio(node) || getTabindex(node) < 0) {
19021
+ if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
18474
19022
  return false;
18475
19023
  }
18476
19024
 
18477
19025
  return true;
18478
19026
  };
18479
19027
 
18480
- var tabbable = function tabbable(el, options) {
18481
- options = options || {};
19028
+ var isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {
19029
+ var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);
19030
+
19031
+ if (isNaN(tabIndex) || tabIndex >= 0) {
19032
+ return true;
19033
+ } // If a custom element has an explicit negative tabindex,
19034
+ // browsers will not allow tab targeting said element's children.
19035
+
19036
+
19037
+ return false;
19038
+ };
19039
+ /**
19040
+ * @param {Array.<Element|CandidatesScope>} candidates
19041
+ * @returns Element[]
19042
+ */
19043
+
19044
+
19045
+ var sortByOrder = function sortByOrder(candidates) {
18482
19046
  var regularTabbables = [];
18483
19047
  var orderedTabbables = [];
18484
- var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
18485
- candidates.forEach(function (candidate, i) {
18486
- var candidateTabindex = getTabindex(candidate);
19048
+ candidates.forEach(function (item, i) {
19049
+ var isScope = !!item.scope;
19050
+ var element = isScope ? item.scope : item;
19051
+ var candidateTabindex = getTabindex(element, isScope);
19052
+ var elements = isScope ? sortByOrder(item.candidates) : element;
18487
19053
 
18488
19054
  if (candidateTabindex === 0) {
18489
- regularTabbables.push(candidate);
19055
+ isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
18490
19056
  } else {
18491
19057
  orderedTabbables.push({
18492
19058
  documentOrder: i,
18493
19059
  tabIndex: candidateTabindex,
18494
- node: candidate
19060
+ item: item,
19061
+ isScope: isScope,
19062
+ content: elements
18495
19063
  });
18496
19064
  }
18497
19065
  });
18498
- var tabbableNodes = orderedTabbables.sort(sortOrderedTabbables).map(function (a) {
18499
- return a.node;
18500
- }).concat(regularTabbables);
18501
- return tabbableNodes;
19066
+ return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {
19067
+ sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
19068
+ return acc;
19069
+ }, []).concat(regularTabbables);
19070
+ };
19071
+
19072
+ var tabbable = function tabbable(el, options) {
19073
+ options = options || {};
19074
+ var candidates;
19075
+
19076
+ if (options.getShadowRoot) {
19077
+ candidates = getCandidatesIteratively([el], options.includeContainer, {
19078
+ filter: isNodeMatchingSelectorTabbable.bind(null, options),
19079
+ flatten: false,
19080
+ getShadowRoot: options.getShadowRoot,
19081
+ shadowRootFilter: isValidShadowRootTabbable
19082
+ });
19083
+ } else {
19084
+ candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
19085
+ }
19086
+
19087
+ return sortByOrder(candidates);
18502
19088
  };
18503
19089
 
18504
19090
  var focusable = function focusable(el, options) {
18505
19091
  options = options || {};
18506
- var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
19092
+ var candidates;
19093
+
19094
+ if (options.getShadowRoot) {
19095
+ candidates = getCandidatesIteratively([el], options.includeContainer, {
19096
+ filter: isNodeMatchingSelectorFocusable.bind(null, options),
19097
+ flatten: true,
19098
+ getShadowRoot: options.getShadowRoot
19099
+ });
19100
+ } else {
19101
+ candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
19102
+ }
19103
+
18507
19104
  return candidates;
18508
19105
  };
18509
19106
 
@@ -18542,7 +19139,7 @@ var isFocusable = function isFocusable(node, options) {
18542
19139
 
18543
19140
  ;// CONCATENATED MODULE: ./node_modules/focus-trap/dist/focus-trap.esm.js
18544
19141
  /*!
18545
- * focus-trap 6.7.1
19142
+ * focus-trap 6.9.4
18546
19143
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
18547
19144
  */
18548
19145
 
@@ -18552,14 +19149,9 @@ function focus_trap_esm_ownKeys(object, enumerableOnly) {
18552
19149
 
18553
19150
  if (Object.getOwnPropertySymbols) {
18554
19151
  var symbols = Object.getOwnPropertySymbols(object);
18555
-
18556
- if (enumerableOnly) {
18557
- symbols = symbols.filter(function (sym) {
18558
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
18559
- });
18560
- }
18561
-
18562
- keys.push.apply(keys, symbols);
19152
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
19153
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
19154
+ })), keys.push.apply(keys, symbols);
18563
19155
  }
18564
19156
 
18565
19157
  return keys;
@@ -18567,19 +19159,12 @@ function focus_trap_esm_ownKeys(object, enumerableOnly) {
18567
19159
 
18568
19160
  function focus_trap_esm_objectSpread2(target) {
18569
19161
  for (var i = 1; i < arguments.length; i++) {
18570
- var source = arguments[i] != null ? arguments[i] : {};
18571
-
18572
- if (i % 2) {
18573
- focus_trap_esm_ownKeys(Object(source), true).forEach(function (key) {
18574
- focus_trap_esm_defineProperty(target, key, source[key]);
18575
- });
18576
- } else if (Object.getOwnPropertyDescriptors) {
18577
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
18578
- } else {
18579
- focus_trap_esm_ownKeys(Object(source)).forEach(function (key) {
18580
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
18581
- });
18582
- }
19162
+ var source = null != arguments[i] ? arguments[i] : {};
19163
+ i % 2 ? focus_trap_esm_ownKeys(Object(source), !0).forEach(function (key) {
19164
+ focus_trap_esm_defineProperty(target, key, source[key]);
19165
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : focus_trap_esm_ownKeys(Object(source)).forEach(function (key) {
19166
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
19167
+ });
18583
19168
  }
18584
19169
 
18585
19170
  return target;
@@ -18695,6 +19280,8 @@ var getActualTarget = function getActualTarget(event) {
18695
19280
  };
18696
19281
 
18697
19282
  var createFocusTrap = function createFocusTrap(elements, userOptions) {
19283
+ // SSR: a live trap shouldn't be created in this type of environment so this
19284
+ // should be safe code to execute if the `document` option isn't specified
18698
19285
  var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;
18699
19286
 
18700
19287
  var config = focus_trap_esm_objectSpread2({
@@ -18704,15 +19291,28 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18704
19291
  }, userOptions);
18705
19292
 
18706
19293
  var state = {
19294
+ // containers given to createFocusTrap()
18707
19295
  // @type {Array<HTMLElement>}
18708
19296
  containers: [],
18709
- // list of objects identifying the first and last tabbable nodes in all containers/groups in
18710
- // the trap
19297
+ // list of objects identifying tabbable nodes in `containers` in the trap
18711
19298
  // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap
18712
19299
  // is active, but the trap should never get to a state where there isn't at least one group
18713
19300
  // with at least one tabbable node in it (that would lead to an error condition that would
18714
19301
  // result in an error being thrown)
18715
- // @type {Array<{ container: HTMLElement, firstTabbableNode: HTMLElement|null, lastTabbableNode: HTMLElement|null }>}
19302
+ // @type {Array<{
19303
+ // container: HTMLElement,
19304
+ // tabbableNodes: Array<HTMLElement>, // empty if none
19305
+ // focusableNodes: Array<HTMLElement>, // empty if none
19306
+ // firstTabbableNode: HTMLElement|null,
19307
+ // lastTabbableNode: HTMLElement|null,
19308
+ // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined
19309
+ // }>}
19310
+ containerGroups: [],
19311
+ // same order/length as `containers` list
19312
+ // references to objects in `containerGroups`, but only those that actually have
19313
+ // tabbable nodes in them
19314
+ // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__
19315
+ // the same length
18716
19316
  tabbableGroups: [],
18717
19317
  nodeFocusedBeforeActivation: null,
18718
19318
  mostRecentlyFocusedNode: null,
@@ -18724,14 +19324,42 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18724
19324
  };
18725
19325
  var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later
18726
19326
 
19327
+ /**
19328
+ * Gets a configuration option value.
19329
+ * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,
19330
+ * value will be taken from this object. Otherwise, value will be taken from base configuration.
19331
+ * @param {string} optionName Name of the option whose value is sought.
19332
+ * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`
19333
+ * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.
19334
+ */
19335
+
18727
19336
  var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {
18728
19337
  return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];
18729
19338
  };
19339
+ /**
19340
+ * Finds the index of the container that contains the element.
19341
+ * @param {HTMLElement} element
19342
+ * @returns {number} Index of the container in either `state.containers` or
19343
+ * `state.containerGroups` (the order/length of these lists are the same); -1
19344
+ * if the element isn't found.
19345
+ */
18730
19346
 
18731
- var containersContain = function containersContain(element) {
18732
- return !!(element && state.containers.some(function (container) {
18733
- return container.contains(element);
18734
- }));
19347
+
19348
+ var findContainerIndex = function findContainerIndex(element) {
19349
+ // NOTE: search `containerGroups` because it's possible a group contains no tabbable
19350
+ // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)
19351
+ // and we still need to find the element in there
19352
+ return state.containerGroups.findIndex(function (_ref) {
19353
+ var container = _ref.container,
19354
+ tabbableNodes = _ref.tabbableNodes;
19355
+ return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any
19356
+ // web components if the `tabbableOptions.getShadowRoot` option was used for
19357
+ // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
19358
+ // look inside web components even if open)
19359
+ tabbableNodes.find(function (node) {
19360
+ return node === element;
19361
+ });
19362
+ });
18735
19363
  };
18736
19364
  /**
18737
19365
  * Gets the node for the given option, which is expected to be an option that
@@ -18759,6 +19387,10 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18759
19387
  optionValue = optionValue.apply(void 0, params);
18760
19388
  }
18761
19389
 
19390
+ if (optionValue === true) {
19391
+ optionValue = undefined; // use default value
19392
+ }
19393
+
18762
19394
  if (!optionValue) {
18763
19395
  if (optionValue === undefined || optionValue === false) {
18764
19396
  return optionValue;
@@ -18790,7 +19422,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18790
19422
 
18791
19423
  if (node === undefined) {
18792
19424
  // option not specified: use fallback options
18793
- if (containersContain(doc.activeElement)) {
19425
+ if (findContainerIndex(doc.activeElement) >= 0) {
18794
19426
  node = doc.activeElement;
18795
19427
  } else {
18796
19428
  var firstTabbableGroup = state.tabbableGroups[0];
@@ -18808,22 +19440,61 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18808
19440
  };
18809
19441
 
18810
19442
  var updateTabbableNodes = function updateTabbableNodes() {
18811
- state.tabbableGroups = state.containers.map(function (container) {
18812
- var tabbableNodes = tabbable(container);
19443
+ state.containerGroups = state.containers.map(function (container) {
19444
+ var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes
19445
+ // are a superset of tabbable nodes
18813
19446
 
18814
- if (tabbableNodes.length > 0) {
18815
- return {
18816
- container: container,
18817
- firstTabbableNode: tabbableNodes[0],
18818
- lastTabbableNode: tabbableNodes[tabbableNodes.length - 1]
18819
- };
18820
- }
19447
+ var focusableNodes = focusable(container, config.tabbableOptions);
19448
+ return {
19449
+ container: container,
19450
+ tabbableNodes: tabbableNodes,
19451
+ focusableNodes: focusableNodes,
19452
+ firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,
19453
+ lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,
18821
19454
 
18822
- return undefined;
18823
- }).filter(function (group) {
18824
- return !!group;
18825
- }); // remove groups with no tabbable nodes
18826
- // throw if no groups have tabbable nodes and we don't have a fallback focus node either
19455
+ /**
19456
+ * Finds the __tabbable__ node that follows the given node in the specified direction,
19457
+ * in this container, if any.
19458
+ * @param {HTMLElement} node
19459
+ * @param {boolean} [forward] True if going in forward tab order; false if going
19460
+ * in reverse.
19461
+ * @returns {HTMLElement|undefined} The next tabbable node, if any.
19462
+ */
19463
+ nextTabbableNode: function nextTabbableNode(node) {
19464
+ var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
19465
+ // NOTE: If tabindex is positive (in order to manipulate the tab order separate
19466
+ // from the DOM order), this __will not work__ because the list of focusableNodes,
19467
+ // while it contains tabbable nodes, does not sort its nodes in any order other
19468
+ // than DOM order, because it can't: Where would you place focusable (but not
19469
+ // tabbable) nodes in that order? They have no order, because they aren't tabbale...
19470
+ // Support for positive tabindex is already broken and hard to manage (possibly
19471
+ // not supportable, TBD), so this isn't going to make things worse than they
19472
+ // already are, and at least makes things better for the majority of cases where
19473
+ // tabindex is either 0/unset or negative.
19474
+ // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375
19475
+ var nodeIdx = focusableNodes.findIndex(function (n) {
19476
+ return n === node;
19477
+ });
19478
+
19479
+ if (nodeIdx < 0) {
19480
+ return undefined;
19481
+ }
19482
+
19483
+ if (forward) {
19484
+ return focusableNodes.slice(nodeIdx + 1).find(function (n) {
19485
+ return isTabbable(n, config.tabbableOptions);
19486
+ });
19487
+ }
19488
+
19489
+ return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {
19490
+ return isTabbable(n, config.tabbableOptions);
19491
+ });
19492
+ }
19493
+ };
19494
+ });
19495
+ state.tabbableGroups = state.containerGroups.filter(function (group) {
19496
+ return group.tabbableNodes.length > 0;
19497
+ }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either
18827
19498
 
18828
19499
  if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option
18829
19500
  ) {
@@ -18865,7 +19536,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18865
19536
  var checkPointerDown = function checkPointerDown(e) {
18866
19537
  var target = getActualTarget(e);
18867
19538
 
18868
- if (containersContain(target)) {
19539
+ if (findContainerIndex(target) >= 0) {
18869
19540
  // allow the click since it ocurred inside the trap
18870
19541
  return;
18871
19542
  }
@@ -18884,7 +19555,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18884
19555
  // that was clicked, whether it's focusable or not; by setting
18885
19556
  // `returnFocus: true`, we'll attempt to re-focus the node originally-focused
18886
19557
  // on activation (or the configured `setReturnFocus` node)
18887
- returnFocus: config.returnFocusOnDeactivate && !isFocusable(target)
19558
+ returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)
18888
19559
  });
18889
19560
  return;
18890
19561
  } // This is needed for mobile devices.
@@ -18904,7 +19575,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18904
19575
 
18905
19576
  var checkFocusIn = function checkFocusIn(e) {
18906
19577
  var target = getActualTarget(e);
18907
- var targetContained = containersContain(target); // In Firefox when you Tab out of an iframe the Document is briefly focused.
19578
+ var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.
18908
19579
 
18909
19580
  if (targetContained || target instanceof Document) {
18910
19581
  if (targetContained) {
@@ -18928,12 +19599,10 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18928
19599
 
18929
19600
  if (state.tabbableGroups.length > 0) {
18930
19601
  // make sure the target is actually contained in a group
18931
- // NOTE: the target may also be the container itself if it's tabbable
19602
+ // NOTE: the target may also be the container itself if it's focusable
18932
19603
  // with tabIndex='-1' and was given initial focus
18933
- var containerIndex = findIndex(state.tabbableGroups, function (_ref) {
18934
- var container = _ref.container;
18935
- return container.contains(target);
18936
- });
19604
+ var containerIndex = findContainerIndex(target);
19605
+ var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;
18937
19606
 
18938
19607
  if (containerIndex < 0) {
18939
19608
  // target not found in any group: quite possible focus has escaped the trap,
@@ -18953,8 +19622,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18953
19622
  return target === firstTabbableNode;
18954
19623
  });
18955
19624
 
18956
- if (startOfGroupIndex < 0 && state.tabbableGroups[containerIndex].container === target) {
18957
- // an exception case where the target is the container itself, in which
19625
+ if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {
19626
+ // an exception case where the target is either the container itself, or
19627
+ // a non-tabbable node that was given focus (i.e. tabindex is negative
19628
+ // and user clicked on it or node was programmatically given focus)
19629
+ // and is not followed by any other tabbable node, in which
18958
19630
  // case, we should handle shift+tab as if focus were on the container's
18959
19631
  // first tabbable node, and go to the last tabbable node of the LAST group
18960
19632
  startOfGroupIndex = containerIndex;
@@ -18976,8 +19648,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
18976
19648
  return target === lastTabbableNode;
18977
19649
  });
18978
19650
 
18979
- if (lastOfGroupIndex < 0 && state.tabbableGroups[containerIndex].container === target) {
18980
- // an exception case where the target is the container itself, in which
19651
+ if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {
19652
+ // an exception case where the target is the container itself, or
19653
+ // a non-tabbable node that was given focus (i.e. tabindex is negative
19654
+ // and user clicked on it or node was programmatically given focus)
19655
+ // and is not followed by any other tabbable node, in which
18981
19656
  // case, we should handle tab as if focus were on the container's
18982
19657
  // last tabbable node, and go to the first tabbable node of the FIRST group
18983
19658
  lastOfGroupIndex = containerIndex;
@@ -19019,13 +19694,13 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
19019
19694
  };
19020
19695
 
19021
19696
  var checkClick = function checkClick(e) {
19022
- if (valueOrHandler(config.clickOutsideDeactivates, e)) {
19697
+ var target = getActualTarget(e);
19698
+
19699
+ if (findContainerIndex(target) >= 0) {
19023
19700
  return;
19024
19701
  }
19025
19702
 
19026
- var target = getActualTarget(e);
19027
-
19028
- if (containersContain(target)) {
19703
+ if (valueOrHandler(config.clickOutsideDeactivates, e)) {
19029
19704
  return;
19030
19705
  }
19031
19706
 
@@ -19089,6 +19764,14 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
19089
19764
 
19090
19765
 
19091
19766
  trap = {
19767
+ get active() {
19768
+ return state.active;
19769
+ },
19770
+
19771
+ get paused() {
19772
+ return state.paused;
19773
+ },
19774
+
19092
19775
  activate: function activate(activateOptions) {
19093
19776
  if (state.active) {
19094
19777
  return this;
@@ -19135,6 +19818,12 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
19135
19818
  return this;
19136
19819
  }
19137
19820
 
19821
+ var options = focus_trap_esm_objectSpread2({
19822
+ onDeactivate: config.onDeactivate,
19823
+ onPostDeactivate: config.onPostDeactivate,
19824
+ checkCanReturnFocus: config.checkCanReturnFocus
19825
+ }, deactivateOptions);
19826
+
19138
19827
  clearTimeout(state.delayInitialFocusTimer); // noop if undefined
19139
19828
 
19140
19829
  state.delayInitialFocusTimer = undefined;
@@ -19142,16 +19831,15 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
19142
19831
  state.active = false;
19143
19832
  state.paused = false;
19144
19833
  activeFocusTraps.deactivateTrap(trap);
19145
- var onDeactivate = getOption(deactivateOptions, 'onDeactivate');
19146
- var onPostDeactivate = getOption(deactivateOptions, 'onPostDeactivate');
19147
- var checkCanReturnFocus = getOption(deactivateOptions, 'checkCanReturnFocus');
19834
+ var onDeactivate = getOption(options, 'onDeactivate');
19835
+ var onPostDeactivate = getOption(options, 'onPostDeactivate');
19836
+ var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
19837
+ var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
19148
19838
 
19149
19839
  if (onDeactivate) {
19150
19840
  onDeactivate();
19151
19841
  }
19152
19842
 
19153
- var returnFocus = getOption(deactivateOptions, 'returnFocus', 'returnFocusOnDeactivate');
19154
-
19155
19843
  var finishDeactivation = function finishDeactivation() {
19156
19844
  delay(function () {
19157
19845
  if (returnFocus) {
@@ -19213,9 +19901,9 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
19213
19901
  //# sourceMappingURL=focus-trap.esm.js.map
19214
19902
 
19215
19903
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/widgets/modal.js
19216
- function modal_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19904
+ function modal_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; }
19217
19905
 
19218
- function modal_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { modal_ownKeys(Object(source), true).forEach(function (key) { modal_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { modal_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19906
+ function modal_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? modal_ownKeys(Object(source), !0).forEach(function (key) { modal_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : modal_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19219
19907
 
19220
19908
  function modal_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19221
19909
 
@@ -19459,9 +20147,9 @@ const ImageLightbox = ({
19459
20147
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/image.js
19460
20148
  const image_excluded = ["event", "descriptorId"];
19461
20149
 
19462
- function image_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20150
+ function image_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; }
19463
20151
 
19464
- function image_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { image_ownKeys(Object(source), true).forEach(function (key) { image_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { image_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20152
+ function image_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? image_ownKeys(Object(source), !0).forEach(function (key) { image_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : image_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19465
20153
 
19466
20154
  function image_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19467
20155
 
@@ -19512,9 +20200,9 @@ const Image = _ref => {
19512
20200
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/video.js
19513
20201
  const video_excluded = ["event", "descriptorId"];
19514
20202
 
19515
- function video_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20203
+ function video_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; }
19516
20204
 
19517
- function video_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { video_ownKeys(Object(source), true).forEach(function (key) { video_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { video_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20205
+ function video_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? video_ownKeys(Object(source), !0).forEach(function (key) { video_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : video_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19518
20206
 
19519
20207
  function video_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19520
20208
 
@@ -19598,7 +20286,6 @@ const Divider = ({
19598
20286
 
19599
20287
 
19600
20288
 
19601
-
19602
20289
  const NewTranslationDivider = ({
19603
20290
  event
19604
20291
  }) => {
@@ -19611,14 +20298,9 @@ const NewTranslationDivider = ({
19611
20298
  text
19612
20299
  } = event.payload.body;
19613
20300
  const {
19614
- enableTranslations,
19615
- languages
20301
+ enableTranslations
19616
20302
  } = useTranslations();
19617
- const languageName = (0,hooks_namespaceObject.useMemo)(() => {
19618
- var _languages$find;
19619
-
19620
- return languages === null || languages === void 0 ? void 0 : (_languages$find = languages.find(lang => lang.locale === translationLocale)) === null || _languages$find === void 0 ? void 0 : _languages$find.nativeName;
19621
- }, [languages, translationLocale]);
20303
+ const localeNativeName = useLocaleNativeName(translationLocale);
19622
20304
 
19623
20305
  const handleRestartButtonclick = () => {
19624
20306
  enableTranslations(translationLocale);
@@ -19630,7 +20312,7 @@ const NewTranslationDivider = ({
19630
20312
  children: [(0,jsx_runtime_namespaceObject.jsx)("p", {
19631
20313
  className: css_className('divider__title'),
19632
20314
  children: t(translationEnabled ? 'translations.divider.startText' : 'translations.divider.stopText', {
19633
- language: languageName
20315
+ language: localeNativeName
19634
20316
  })
19635
20317
  }), translationEnabled ? (0,jsx_runtime_namespaceObject.jsx)("p", {
19636
20318
  children: text
@@ -19646,9 +20328,9 @@ const NewTranslationDivider = ({
19646
20328
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/divider/index.js
19647
20329
  const divider_excluded = ["event"];
19648
20330
 
19649
- function divider_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20331
+ function divider_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; }
19650
20332
 
19651
- function divider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { divider_ownKeys(Object(source), true).forEach(function (key) { divider_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { divider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20333
+ function divider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? divider_ownKeys(Object(source), !0).forEach(function (key) { divider_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : divider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19652
20334
 
19653
20335
  function divider_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19654
20336
 
@@ -19681,9 +20363,9 @@ const divider_Divider = _ref => {
19681
20363
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/translation.js
19682
20364
  const translation_excluded = ["event"];
19683
20365
 
19684
- function translation_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20366
+ function translation_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; }
19685
20367
 
19686
- function translation_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { translation_ownKeys(Object(source), true).forEach(function (key) { translation_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { translation_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20368
+ function translation_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? translation_ownKeys(Object(source), !0).forEach(function (key) { translation_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : translation_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19687
20369
 
19688
20370
  function translation_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19689
20371
 
@@ -19751,9 +20433,9 @@ const Participant = ({
19751
20433
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/splash.js
19752
20434
  const splash_excluded = ["event"];
19753
20435
 
19754
- function splash_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20436
+ function splash_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; }
19755
20437
 
19756
- function splash_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { splash_ownKeys(Object(source), true).forEach(function (key) { splash_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { splash_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20438
+ function splash_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? splash_ownKeys(Object(source), !0).forEach(function (key) { splash_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : splash_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19757
20439
 
19758
20440
  function splash_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19759
20441
 
@@ -19796,9 +20478,9 @@ const Splash = _ref => {
19796
20478
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/upload.js
19797
20479
  const upload_excluded = ["event"];
19798
20480
 
19799
- function upload_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20481
+ function upload_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; }
19800
20482
 
19801
- function upload_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { upload_ownKeys(Object(source), true).forEach(function (key) { upload_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { upload_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20483
+ function upload_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? upload_ownKeys(Object(source), !0).forEach(function (key) { upload_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : upload_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19802
20484
 
19803
20485
  function upload_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19804
20486
 
@@ -19926,98 +20608,10 @@ const Cta = ({
19926
20608
  };
19927
20609
 
19928
20610
  /* harmony default export */ const cta = (Cta);
19929
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-component/components/pagination.js
19930
-
19931
-
19932
-
19933
- function CarouselPagination({
19934
- items,
19935
- currentIndex,
19936
- onChange,
19937
- getItemKey,
19938
- getItemLabel
19939
- }) {
19940
- const itemCount = items.length;
19941
- const handlePaginate = (0,hooks_namespaceObject.useCallback)(event => {
19942
- const slideIndex = Number(event.target.dataset.item || '0');
19943
- const nextIndex = Math.min(itemCount - 1, Math.max(0, slideIndex));
19944
-
19945
- if (nextIndex !== currentIndex) {
19946
- onChange(nextIndex);
19947
- }
19948
- }, [itemCount, currentIndex, onChange]);
19949
- return (0,jsx_runtime_namespaceObject.jsx)("div", {
19950
- className: css_className('carousel-pagination__wrapper'),
19951
- role: "group",
19952
- children: (0,jsx_runtime_namespaceObject.jsx)("ul", {
19953
- className: css_className('carousel-pagination'),
19954
- children: items.map((item, idx) => {
19955
- const isActive = currentIndex === idx;
19956
- return (0,jsx_runtime_namespaceObject.jsx)("li", {
19957
- className: css_className('carousel-pagination__item', isActive ? 'is-active' : undefined),
19958
- children: (0,jsx_runtime_namespaceObject.jsx)("button", {
19959
- className: css_className('carousel-pagination__button'),
19960
- type: "button",
19961
- onClick: handlePaginate,
19962
- "data-item": idx,
19963
- "aria-disabled": isActive ? 'true' : undefined,
19964
- "aria-label": getItemLabel(item, idx)
19965
- })
19966
- }, getItemKey(item, idx, 'pagination-item-'));
19967
- })
19968
- })
19969
- });
19970
- }
19971
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-component/components/controls.js
19972
-
19973
-
19974
-
19975
-
19976
-
19977
- function CarouselControls({
19978
- items,
19979
- currentIndex,
19980
- onChange,
19981
- children
19982
- }) {
19983
- const {
19984
- t
19985
- } = useI18n();
19986
- const itemCount = items.length;
19987
-
19988
- const handlePrevious = () => {
19989
- onChange((currentIndex - 1 + itemCount) % itemCount);
19990
- };
19991
-
19992
- const handleNext = () => {
19993
- onChange((currentIndex + 1) % itemCount);
19994
- };
19995
-
19996
- return (0,jsx_runtime_namespaceObject.jsxs)("div", {
19997
- className: css_className('carousel-controls'),
19998
- children: [(0,jsx_runtime_namespaceObject.jsx)("button", {
19999
- className: css_className('button', 'button--previous'),
20000
- "aria-label": t('carousel.controls.previous'),
20001
- onClick: handlePrevious,
20002
- children: (0,jsx_runtime_namespaceObject.jsx)(icon, {
20003
- name: "arrowLeft",
20004
- size: "16"
20005
- })
20006
- }), children, (0,jsx_runtime_namespaceObject.jsx)("button", {
20007
- className: css_className('button', 'button--next'),
20008
- "aria-label": t('carousel.controls.next'),
20009
- onClick: handleNext,
20010
- children: (0,jsx_runtime_namespaceObject.jsx)(icon, {
20011
- name: "arrowRight",
20012
- size: "16"
20013
- })
20014
- })]
20015
- });
20016
- }
20017
20611
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-component.js
20018
- function card_component_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20612
+ function card_component_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; }
20019
20613
 
20020
- function card_component_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { card_component_ownKeys(Object(source), true).forEach(function (key) { card_component_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { card_component_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20614
+ function card_component_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? card_component_ownKeys(Object(source), !0).forEach(function (key) { card_component_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : card_component_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20021
20615
 
20022
20616
  function card_component_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20023
20617
 
@@ -20066,7 +20660,7 @@ const CardComponent = ({
20066
20660
  fallbackMessage
20067
20661
  } = action;
20068
20662
  sendAction({
20069
- type: 'set_topic',
20663
+ type: actionTypes.setTopic,
20070
20664
  body: {
20071
20665
  name,
20072
20666
  fallbackMessage
@@ -20128,9 +20722,9 @@ const CardComponent = ({
20128
20722
 
20129
20723
  /* harmony default export */ const card_component = (CardComponent);
20130
20724
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-message/components/slide.js
20131
- function slide_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20725
+ function slide_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; }
20132
20726
 
20133
- function slide_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { slide_ownKeys(Object(source), true).forEach(function (key) { slide_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { slide_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20727
+ function slide_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? slide_ownKeys(Object(source), !0).forEach(function (key) { slide_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : slide_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20134
20728
 
20135
20729
  function slide_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20136
20730
 
@@ -20161,6 +20755,94 @@ function CarouselMessageSlide({
20161
20755
  }))
20162
20756
  });
20163
20757
  }
20758
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-component/components/pagination.js
20759
+
20760
+
20761
+
20762
+ function CarouselPagination({
20763
+ items,
20764
+ currentIndex,
20765
+ onChange,
20766
+ getItemKey,
20767
+ getItemLabel
20768
+ }) {
20769
+ const itemCount = items.length;
20770
+ const handlePaginate = (0,hooks_namespaceObject.useCallback)(event => {
20771
+ const slideIndex = Number(event.target.dataset.item || '0');
20772
+ const nextIndex = Math.min(itemCount - 1, Math.max(0, slideIndex));
20773
+
20774
+ if (nextIndex !== currentIndex) {
20775
+ onChange(nextIndex);
20776
+ }
20777
+ }, [itemCount, currentIndex, onChange]);
20778
+ return (0,jsx_runtime_namespaceObject.jsx)("div", {
20779
+ className: css_className('carousel-pagination__wrapper'),
20780
+ role: "group",
20781
+ children: (0,jsx_runtime_namespaceObject.jsx)("ul", {
20782
+ className: css_className('carousel-pagination'),
20783
+ children: items.map((item, idx) => {
20784
+ const isActive = currentIndex === idx;
20785
+ return (0,jsx_runtime_namespaceObject.jsx)("li", {
20786
+ className: css_className('carousel-pagination__item', isActive ? 'is-active' : undefined),
20787
+ children: (0,jsx_runtime_namespaceObject.jsx)("button", {
20788
+ className: css_className('carousel-pagination__button'),
20789
+ type: "button",
20790
+ onClick: handlePaginate,
20791
+ "data-item": idx,
20792
+ "aria-disabled": isActive ? 'true' : undefined,
20793
+ "aria-label": getItemLabel(item, idx)
20794
+ })
20795
+ }, getItemKey(item, idx, 'pagination-item-'));
20796
+ })
20797
+ })
20798
+ });
20799
+ }
20800
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-component/components/controls.js
20801
+
20802
+
20803
+
20804
+
20805
+
20806
+ function CarouselControls({
20807
+ items,
20808
+ currentIndex,
20809
+ onChange,
20810
+ children
20811
+ }) {
20812
+ const {
20813
+ t
20814
+ } = useI18n();
20815
+ const itemCount = items.length;
20816
+
20817
+ const handlePrevious = () => {
20818
+ onChange((currentIndex - 1 + itemCount) % itemCount);
20819
+ };
20820
+
20821
+ const handleNext = () => {
20822
+ onChange((currentIndex + 1) % itemCount);
20823
+ };
20824
+
20825
+ return (0,jsx_runtime_namespaceObject.jsxs)("div", {
20826
+ className: css_className('carousel-controls'),
20827
+ children: [(0,jsx_runtime_namespaceObject.jsx)("button", {
20828
+ className: css_className('button', 'button--previous'),
20829
+ "aria-label": t('carousel.controls.previous'),
20830
+ onClick: handlePrevious,
20831
+ children: (0,jsx_runtime_namespaceObject.jsx)(icon, {
20832
+ name: "arrowLeft",
20833
+ size: "16"
20834
+ })
20835
+ }), children, (0,jsx_runtime_namespaceObject.jsx)("button", {
20836
+ className: css_className('button', 'button--next'),
20837
+ "aria-label": t('carousel.controls.next'),
20838
+ onClick: handleNext,
20839
+ children: (0,jsx_runtime_namespaceObject.jsx)(icon, {
20840
+ name: "arrowRight",
20841
+ size: "16"
20842
+ })
20843
+ })]
20844
+ });
20845
+ }
20164
20846
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-component/index.js
20165
20847
 
20166
20848
 
@@ -20295,9 +20977,9 @@ const CarouselMessage = ({
20295
20977
 
20296
20978
  /* harmony default export */ const carousel_message = (CarouselMessage);
20297
20979
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-message.js
20298
- function card_message_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20980
+ function card_message_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; }
20299
20981
 
20300
- function card_message_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { card_message_ownKeys(Object(source), true).forEach(function (key) { card_message_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { card_message_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20982
+ function card_message_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? card_message_ownKeys(Object(source), !0).forEach(function (key) { card_message_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : card_message_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20301
20983
 
20302
20984
  function card_message_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20303
20985
 
@@ -20325,9 +21007,9 @@ const CardMessage = ({
20325
21007
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/conversation-suggestions.js
20326
21008
  const conversation_suggestions_excluded = ["event"];
20327
21009
 
20328
- function conversation_suggestions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21010
+ function conversation_suggestions_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; }
20329
21011
 
20330
- function conversation_suggestions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { conversation_suggestions_ownKeys(Object(source), true).forEach(function (key) { conversation_suggestions_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { conversation_suggestions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21012
+ function conversation_suggestions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? conversation_suggestions_ownKeys(Object(source), !0).forEach(function (key) { conversation_suggestions_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : conversation_suggestions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20331
21013
 
20332
21014
  function conversation_suggestions_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20333
21015
 
@@ -20346,6 +21028,7 @@ function conversation_suggestions_objectWithoutPropertiesLoose(source, excluded)
20346
21028
 
20347
21029
 
20348
21030
 
21031
+
20349
21032
  const useSuggestions = event => {
20350
21033
  const {
20351
21034
  payload
@@ -20363,15 +21046,9 @@ const ConversationSuggestions = _ref => {
20363
21046
  } = _ref,
20364
21047
  props = conversation_suggestions_objectWithoutProperties(_ref, conversation_suggestions_excluded);
20365
21048
 
20366
- const {
20367
- userResponded
20368
- } = useConfig();
20369
21049
  const [isExpanded, setIsExpanded] = (0,hooks_namespaceObject.useState)(true);
20370
- const {
20371
- t
20372
- } = useI18n();
20373
- const headingText = t('suggestions.headingText');
20374
- const footerText = t('suggestions.footerText');
21050
+ const dispatch = use_seamly_dispatch();
21051
+ const userResponded = useUserHasResponded();
20375
21052
  const {
20376
21053
  sendAction,
20377
21054
  addMessageBubble
@@ -20380,12 +21057,18 @@ const ConversationSuggestions = _ref => {
20380
21057
  suggestions,
20381
21058
  payload
20382
21059
  } = useSuggestions(event);
21060
+ const {
21061
+ t
21062
+ } = useI18n();
21063
+ const headingText = t('suggestions.headingText');
21064
+ const footerText = t('suggestions.footerText');
20383
21065
  const handleClick = (0,hooks_namespaceObject.useCallback)(({
20384
21066
  id,
20385
21067
  question
20386
21068
  }) => {
20387
- // @todo Refactor to 'suggestionclick'
20388
21069
  setIsExpanded(false);
21070
+ dispatch(setHasResponded(true)); // @todo Refactor to 'suggestionclick'
21071
+
20389
21072
  sendAction({
20390
21073
  type: actionTypes.custom,
20391
21074
  originMessage: payload.id,
@@ -20398,7 +21081,7 @@ const ConversationSuggestions = _ref => {
20398
21081
  }
20399
21082
  });
20400
21083
  addMessageBubble(question);
20401
- }, [payload, sendAction, addMessageBubble, setIsExpanded]);
21084
+ }, [dispatch, sendAction, payload.id, addMessageBubble]);
20402
21085
 
20403
21086
  if (!isExpanded || userResponded) {
20404
21087
  return null;
@@ -20428,9 +21111,9 @@ const ConversationSuggestions = _ref => {
20428
21111
 
20429
21112
  /* harmony default export */ const conversation_suggestions = (ConversationSuggestions);
20430
21113
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/component-filter.js
20431
- function component_filter_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21114
+ function component_filter_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; }
20432
21115
 
20433
- function component_filter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { component_filter_ownKeys(Object(source), true).forEach(function (key) { component_filter_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { component_filter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21116
+ function component_filter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? component_filter_ownKeys(Object(source), !0).forEach(function (key) { component_filter_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : component_filter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20434
21117
 
20435
21118
  function component_filter_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20436
21119
 
@@ -20502,36 +21185,6 @@ const ComponentFilter = ({
20502
21185
  };
20503
21186
 
20504
21187
  /* harmony default export */ const component_filter = (ComponentFilter);
20505
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/layout/privacy-disclaimer.js
20506
-
20507
-
20508
-
20509
-
20510
-
20511
-
20512
- const PrivacyDisclaimer = () => {
20513
- const {
20514
- t
20515
- } = useI18n();
20516
- const {
20517
- showDisclaimer
20518
- } = useConfig();
20519
- return showDisclaimer && (0,jsx_runtime_namespaceObject.jsxs)("div", {
20520
- className: css_className('disclaimer'),
20521
- tabIndex: "0",
20522
- children: [(0,jsx_runtime_namespaceObject.jsx)("h2", {
20523
- className: css_className('disclaimer__title'),
20524
- children: t('disclaimer.title')
20525
- }), (0,jsx_runtime_namespaceObject.jsx)("div", {
20526
- className: css_className('disclaimer__message'),
20527
- dangerouslySetInnerHTML: {
20528
- __html: t('disclaimer.content')
20529
- }
20530
- })]
20531
- });
20532
- };
20533
-
20534
- /* harmony default export */ const privacy_disclaimer = (PrivacyDisclaimer);
20535
21188
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/conversation.js
20536
21189
 
20537
21190
 
@@ -20783,9 +21436,9 @@ const ResumeConversationPrompt = () => {
20783
21436
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/form-controls/input.js
20784
21437
  const input_excluded = ["id", "name", "type", "labelText", "labelClass", "contentHint", "aria-describedby"];
20785
21438
 
20786
- function input_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21439
+ function input_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; }
20787
21440
 
20788
- function input_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { input_ownKeys(Object(source), true).forEach(function (key) { input_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { input_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21441
+ function input_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? input_ownKeys(Object(source), !0).forEach(function (key) { input_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : input_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20789
21442
 
20790
21443
  function input_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20791
21444
 
@@ -20998,13 +21651,13 @@ function TextEntryForm({
20998
21651
  });
20999
21652
  }
21000
21653
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/entry/text-entry/index.js
21001
- function text_entry_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21654
+ function text_entry_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; }
21002
21655
 
21003
- function text_entry_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { text_entry_ownKeys(Object(source), true).forEach(function (key) { text_entry_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { text_entry_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21656
+ function text_entry_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? text_entry_ownKeys(Object(source), !0).forEach(function (key) { text_entry_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : text_entry_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21004
21657
 
21005
21658
  function text_entry_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21006
21659
 
21007
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21660
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21008
21661
 
21009
21662
 
21010
21663
 
@@ -21553,9 +22206,9 @@ const upload_Upload = () => {
21553
22206
 
21554
22207
  /* harmony default export */ const entry_upload = (upload_Upload);
21555
22208
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/entry/entry-container.js
21556
- function entry_container_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22209
+ function entry_container_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; }
21557
22210
 
21558
- function entry_container_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { entry_container_ownKeys(Object(source), true).forEach(function (key) { entry_container_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { entry_container_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22211
+ function entry_container_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? entry_container_ownKeys(Object(source), !0).forEach(function (key) { entry_container_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : entry_container_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21559
22212
 
21560
22213
  function entry_container_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21561
22214
 
@@ -22043,9 +22696,9 @@ function AppOptions() {
22043
22696
  });
22044
22697
  }
22045
22698
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/layout/chat-frame.js
22046
- function chat_frame_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22699
+ function chat_frame_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; }
22047
22700
 
22048
- function chat_frame_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { chat_frame_ownKeys(Object(source), true).forEach(function (key) { chat_frame_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { chat_frame_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22701
+ function chat_frame_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? chat_frame_ownKeys(Object(source), !0).forEach(function (key) { chat_frame_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : chat_frame_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22049
22702
 
22050
22703
  function chat_frame_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22051
22704
 
@@ -22151,9 +22804,9 @@ function PreChatMessageEvent({
22151
22804
  });
22152
22805
  }
22153
22806
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/view/inline-view.js
22154
- function inline_view_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22807
+ function inline_view_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; }
22155
22808
 
22156
- function inline_view_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { inline_view_ownKeys(Object(source), true).forEach(function (key) { inline_view_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { inline_view_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22809
+ function inline_view_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? inline_view_ownKeys(Object(source), !0).forEach(function (key) { inline_view_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : inline_view_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22157
22810
 
22158
22811
  function inline_view_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22159
22812
 
@@ -22460,6 +23113,53 @@ const View = () => {
22460
23113
  };
22461
23114
 
22462
23115
  /* harmony default export */ const view = (View);
23116
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/errors/index.js
23117
+
23118
+
23119
+ const {
23120
+ createAction: errors_createAction
23121
+ } = createDomain('errors');
23122
+ const catchError = errors_createAction('catch-error', error => ({
23123
+ error
23124
+ }));
23125
+ function errors_createMiddleware({
23126
+ api: seamlyApi
23127
+ }) {
23128
+ return ({
23129
+ getState
23130
+ }) => {
23131
+ const handleError = action => {
23132
+ const {
23133
+ errorCallback,
23134
+ namespace,
23135
+ api,
23136
+ layoutMode
23137
+ } = selectConfig(getState());
23138
+ errorCallback === null || errorCallback === void 0 ? void 0 : errorCallback(action.error, {
23139
+ namespace,
23140
+ api,
23141
+ layoutMode,
23142
+ conversationUrl: seamlyApi.getConversationUrl(),
23143
+ action: action.type ? action : undefined
23144
+ });
23145
+ };
23146
+
23147
+ return next => action => {
23148
+ try {
23149
+ if (action.error) {
23150
+ handleError(action);
23151
+ }
23152
+
23153
+ return next(action);
23154
+ } catch (error) {
23155
+ handleError({
23156
+ error
23157
+ });
23158
+ throw error;
23159
+ }
23160
+ };
23161
+ };
23162
+ }
22463
23163
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/core/seamly-instance-functions-loader.js
22464
23164
 
22465
23165
 
@@ -22469,6 +23169,7 @@ const View = () => {
22469
23169
 
22470
23170
 
22471
23171
 
23172
+
22472
23173
  function useSeamlyInstanceFunction(functionName, fn, deps = []) {
22473
23174
  const eventBus = (0,hooks_namespaceObject.useContext)(SeamlyEventBusContext);
22474
23175
  const callbackRef = (0,hooks_namespaceObject.useRef)();
@@ -22564,7 +23265,7 @@ const SeamlyInstanceFunctionsLoader = () => {
22564
23265
  }) => {
22565
23266
  if (name && fallbackMessage) {
22566
23267
  sendAction({
22567
- type: 'set_topic',
23268
+ type: actionTypes.setTopic,
22568
23269
  body: {
22569
23270
  name,
22570
23271
  fallbackMessage
@@ -23334,53 +24035,6 @@ const SeamlyFileUpload = ({
23334
24035
  };
23335
24036
 
23336
24037
  /* harmony default export */ const seamly_file_upload = (SeamlyFileUpload);
23337
- ;// CONCATENATED MODULE: ./src/javascripts/domains/errors/index.js
23338
-
23339
-
23340
- const {
23341
- createAction: errors_createAction
23342
- } = createDomain('errors');
23343
- const catchError = errors_createAction('catch-error', error => ({
23344
- error
23345
- }));
23346
- function errors_createMiddleware({
23347
- api: seamlyApi
23348
- }) {
23349
- return ({
23350
- getState
23351
- }) => {
23352
- const handleError = action => {
23353
- const {
23354
- errorCallback,
23355
- namespace,
23356
- api,
23357
- layoutMode
23358
- } = selectConfig(getState());
23359
- errorCallback === null || errorCallback === void 0 ? void 0 : errorCallback(action.error, {
23360
- namespace,
23361
- api,
23362
- layoutMode,
23363
- conversationUrl: seamlyApi.getConversationUrl(),
23364
- action: action.type ? action : undefined
23365
- });
23366
- };
23367
-
23368
- return next => action => {
23369
- try {
23370
- if (action.error) {
23371
- handleError(action);
23372
- }
23373
-
23374
- return next(action);
23375
- } catch (error) {
23376
- handleError({
23377
- error
23378
- });
23379
- throw error;
23380
- }
23381
- };
23382
- };
23383
- }
23384
24038
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/core/seamly-core.js
23385
24039
 
23386
24040
 
@@ -23433,9 +24087,9 @@ const SeamlyCore = ({
23433
24087
 
23434
24088
  /* harmony default export */ const seamly_core = (SeamlyCore);
23435
24089
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/chat-app.js
23436
- function chat_app_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
24090
+ function chat_app_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; }
23437
24091
 
23438
- function chat_app_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { chat_app_ownKeys(Object(source), true).forEach(function (key) { chat_app_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { chat_app_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24092
+ function chat_app_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? chat_app_ownKeys(Object(source), !0).forEach(function (key) { chat_app_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : chat_app_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23439
24093
 
23440
24094
  function chat_app_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23441
24095
 
@@ -23485,6 +24139,34 @@ function objectStore(key, storageProvider) {
23485
24139
 
23486
24140
  };
23487
24141
  }
24142
+ ;// CONCATENATED MODULE: ./src/javascripts/lib/store/providers/session-storage.js
24143
+ function store(key) {
24144
+ const KEY = 'cvco.' + key;
24145
+ return {
24146
+ get() {
24147
+ const candidates = [KEY, KEY.split('.').slice(0, -1).join('.')];
24148
+ let val;
24149
+
24150
+ do {
24151
+ val = sessionStorage.getItem(candidates[0]);
24152
+ } while (candidates.shift() && !val);
24153
+
24154
+ return JSON.parse(val);
24155
+ },
24156
+
24157
+ set(value) {
24158
+ if (!value) {
24159
+ return;
24160
+ }
24161
+
24162
+ sessionStorage.setItem(KEY, JSON.stringify(value));
24163
+ }
24164
+
24165
+ };
24166
+ }
24167
+ // EXTERNAL MODULE: ./src/javascripts/lib/debug.js
24168
+ var debug = __webpack_require__(905);
24169
+ var debug_default = /*#__PURE__*/__webpack_require__.n(debug);
23488
24170
  ;// CONCATENATED MODULE: ./node_modules/phoenix/priv/static/phoenix.esm.js
23489
24171
  // js/phoenix/utils.js
23490
24172
  var closure = value => {
@@ -24849,9 +25531,9 @@ var Socket = class {
24849
25531
  };
24850
25532
 
24851
25533
  ;// CONCATENATED MODULE: ./src/javascripts/lib/split-url-params.js
24852
- function split_url_params_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25534
+ function split_url_params_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; }
24853
25535
 
24854
- function split_url_params_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { split_url_params_ownKeys(Object(source), true).forEach(function (key) { split_url_params_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { split_url_params_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25536
+ function split_url_params_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? split_url_params_ownKeys(Object(source), !0).forEach(function (key) { split_url_params_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : split_url_params_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24855
25537
 
24856
25538
  function split_url_params_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24857
25539
 
@@ -24879,13 +25561,10 @@ const splitUrlParams = url => {
24879
25561
  };
24880
25562
 
24881
25563
  /* harmony default export */ const split_url_params = (splitUrlParams);
24882
- // EXTERNAL MODULE: ./src/javascripts/lib/debug.js
24883
- var debug = __webpack_require__(905);
24884
- var debug_default = /*#__PURE__*/__webpack_require__.n(debug);
24885
25564
  ;// CONCATENATED MODULE: ./src/javascripts/api/producer.js
24886
- function producer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25565
+ function producer_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; }
24887
25566
 
24888
- function producer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { producer_ownKeys(Object(source), true).forEach(function (key) { producer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { producer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25567
+ function producer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? producer_ownKeys(Object(source), !0).forEach(function (key) { producer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : producer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24889
25568
 
24890
25569
  function producer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24891
25570
 
@@ -25044,31 +25723,6 @@ class ConversationProducer {
25044
25723
  }
25045
25724
 
25046
25725
  }
25047
- ;// CONCATENATED MODULE: ./src/javascripts/lib/store/providers/session-storage.js
25048
- function store(key) {
25049
- const KEY = 'cvco.' + key;
25050
- return {
25051
- get() {
25052
- const candidates = [KEY, KEY.split('.').slice(0, -1).join('.')];
25053
- let val;
25054
-
25055
- do {
25056
- val = sessionStorage.getItem(candidates[0]);
25057
- } while (candidates.shift() && !val);
25058
-
25059
- return JSON.parse(val);
25060
- },
25061
-
25062
- set(value) {
25063
- if (!value) {
25064
- return;
25065
- }
25066
-
25067
- sessionStorage.setItem(KEY, JSON.stringify(value));
25068
- }
25069
-
25070
- };
25071
- }
25072
25726
  ;// CONCATENATED MODULE: ./src/javascripts/api/event-producer.js
25073
25727
  class EventProducer {
25074
25728
  constructor(name) {
@@ -25093,9 +25747,9 @@ class EventProducer {
25093
25747
 
25094
25748
  }
25095
25749
  ;// CONCATENATED MODULE: ./src/javascripts/api/index.js
25096
- function api_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25750
+ function api_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; }
25097
25751
 
25098
- function api_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { api_ownKeys(Object(source), true).forEach(function (key) { api_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { api_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25752
+ function api_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? api_ownKeys(Object(source), !0).forEach(function (key) { api_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : api_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25099
25753
 
25100
25754
  function api_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25101
25755
 
@@ -25179,10 +25833,11 @@ class API {
25179
25833
  * @param {boolean} config.sendEnvironment
25180
25834
  * @param {string} layoutMode
25181
25835
  * @param {string} namespace
25182
- * @param {Object} [context={ channelName: undefined, variables: undefined, locale: undefined, translationLocale: undefined }]
25836
+ * @param {Object} [context={ channelName: undefined, variables: undefined, locale: undefined, topic: undefined, translationLocale: undefined }]
25183
25837
  * @param {string} context.channelName
25184
25838
  * @param {object} context.variables
25185
25839
  * @param {string} context.locale
25840
+ * @param {string} context.topic
25186
25841
  * @param {string} context.translationLocale
25187
25842
  * @memberof API
25188
25843
  */
@@ -25549,7 +26204,7 @@ class API {
25549
26204
  return {
25550
26205
  clientName: "@seamly/web-ui",
25551
26206
  clientVariant: this.layoutMode,
25552
- clientVersion: "20.2.0",
26207
+ clientVersion: "20.3.0",
25553
26208
  currentUrl: window.location.toString(),
25554
26209
  screenResolution: `${window.screen.width}x${window.screen.height}`,
25555
26210
  timezone: getTimeZone(),
@@ -25559,30 +26214,42 @@ class API {
25559
26214
 
25560
26215
  }
25561
26216
  ;// CONCATENATED MODULE: ./node_modules/redux-thunk/es/index.js
26217
+ /** A function that accepts a potential "extra argument" value to be injected later,
26218
+ * and returns an instance of the thunk middleware that uses that value
26219
+ */
25562
26220
  function createThunkMiddleware(extraArgument) {
25563
- return function (_ref) {
26221
+ // Standard Redux middleware definition pattern:
26222
+ // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware
26223
+ var middleware = function middleware(_ref) {
25564
26224
  var dispatch = _ref.dispatch,
25565
26225
  getState = _ref.getState;
25566
26226
  return function (next) {
25567
26227
  return function (action) {
26228
+ // The thunk middleware looks for any functions that were passed to `store.dispatch`.
26229
+ // If this "action" is really a function, call it and return the result.
25568
26230
  if (typeof action === 'function') {
26231
+ // Inject the store's `dispatch` and `getState` methods, as well as any "extra arg"
25569
26232
  return action(dispatch, getState, extraArgument);
25570
- }
26233
+ } // Otherwise, pass the action down the middleware chain as usual
26234
+
25571
26235
 
25572
26236
  return next(action);
25573
26237
  };
25574
26238
  };
25575
26239
  };
26240
+
26241
+ return middleware;
25576
26242
  }
25577
26243
 
25578
- var thunk = createThunkMiddleware();
25579
- thunk.withExtraArgument = createThunkMiddleware;
26244
+ var thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version
26245
+ // with whatever "extra arg" they want to inject into their thunks
25580
26246
 
26247
+ thunk.withExtraArgument = createThunkMiddleware;
25581
26248
  /* harmony default export */ const es = (thunk);
25582
26249
  ;// CONCATENATED MODULE: ./src/javascripts/domains/options/middleware.js
25583
- function middleware_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26250
+ function middleware_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; }
25584
26251
 
25585
- function middleware_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { middleware_ownKeys(Object(source), true).forEach(function (key) { middleware_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { middleware_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26252
+ function middleware_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? middleware_ownKeys(Object(source), !0).forEach(function (key) { middleware_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : middleware_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25586
26253
 
25587
26254
  function middleware_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25588
26255
 
@@ -25715,9 +26382,9 @@ function store_createStore({
25715
26382
  const engine_excluded = ["namespace", "parentElement", "showFaq"],
25716
26383
  _excluded2 = ["view"];
25717
26384
 
25718
- function engine_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26385
+ function engine_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; }
25719
26386
 
25720
- function engine_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { engine_ownKeys(Object(source), true).forEach(function (key) { engine_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { engine_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26387
+ function engine_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? engine_ownKeys(Object(source), !0).forEach(function (key) { engine_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : engine_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25721
26388
 
25722
26389
  function engine_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25723
26390
 
@@ -25847,9 +26514,9 @@ class Engine {
25847
26514
 
25848
26515
  }
25849
26516
  ;// CONCATENATED MODULE: ./src/javascripts/lib/external-api/index.js
25850
- function external_api_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26517
+ function external_api_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; }
25851
26518
 
25852
- function external_api_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { external_api_ownKeys(Object(source), true).forEach(function (key) { external_api_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { external_api_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26519
+ function external_api_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? external_api_ownKeys(Object(source), !0).forEach(function (key) { external_api_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : external_api_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25853
26520
 
25854
26521
  function external_api_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25855
26522
 
@@ -25906,6 +26573,17 @@ class ExternalApi {
25906
26573
 
25907
26574
  setContext(action, args) {
25908
26575
  switch (action) {
26576
+ case 'setTopic':
26577
+ const {
26578
+ name
26579
+ } = args;
26580
+
26581
+ if (name) {
26582
+ this.context.topic = name;
26583
+ }
26584
+
26585
+ return true;
26586
+
25909
26587
  case 'setTranslation':
25910
26588
  const {
25911
26589
  enabled,
@@ -25918,6 +26596,13 @@ class ExternalApi {
25918
26596
 
25919
26597
  return true;
25920
26598
 
26599
+ case 'setVariables':
26600
+ if (Object.keys(args).length > 0) {
26601
+ this.context.variables = external_api_objectSpread({}, args);
26602
+ }
26603
+
26604
+ return true;
26605
+
25921
26606
  default:
25922
26607
  return false;
25923
26608
  }
@@ -26006,19 +26691,30 @@ class ExternalApi {
26006
26691
  }
26007
26692
 
26008
26693
  getCombinedConfig(userConfig) {
26009
- if (typeof this.appConfig === 'function') {
26010
- return this.appConfig(userConfig);
26011
- }
26694
+ const context = external_api_objectSpread(external_api_objectSpread({}, userConfig.context || this.appConfig.context), this.context); // Key `variables` should only be set if there are any variables
26695
+
26012
26696
 
26013
- const context = external_api_objectSpread(external_api_objectSpread({}, userConfig.context || this.appConfig.context), this.context);
26697
+ const variables = this.getMergedVariables(userConfig);
26698
+
26699
+ if (Object.keys(variables).length > 0) {
26700
+ context.variables = variables;
26701
+ }
26014
26702
 
26015
26703
  const defaults = external_api_objectSpread(external_api_objectSpread({}, this.appConfig.defaults), userConfig.defaults);
26016
26704
 
26017
- return external_api_objectSpread(external_api_objectSpread(external_api_objectSpread({}, this.appConfig), userConfig), {}, {
26705
+ const combinedConfig = external_api_objectSpread(external_api_objectSpread(external_api_objectSpread({}, this.appConfig), userConfig), {}, {
26018
26706
  api: external_api_objectSpread(external_api_objectSpread({}, this.appConfig.api), userConfig.api),
26019
26707
  context: Object.keys(context).length ? context : undefined,
26020
26708
  defaults: Object.keys(defaults).length ? defaults : undefined
26021
26709
  });
26710
+
26711
+ return typeof this.appConfig === 'function' ? this.appConfig(combinedConfig) : combinedConfig;
26712
+ }
26713
+
26714
+ getMergedVariables(userConfig) {
26715
+ var _this$appConfig$conte, _userConfig$context;
26716
+
26717
+ return external_api_objectSpread(external_api_objectSpread(external_api_objectSpread({}, ((_this$appConfig$conte = this.appConfig.context) === null || _this$appConfig$conte === void 0 ? void 0 : _this$appConfig$conte.variables) || {}), ((_userConfig$context = userConfig.context) === null || _userConfig$context === void 0 ? void 0 : _userConfig$context.variables) || {}), this.context.variables || {});
26022
26718
  }
26023
26719
 
26024
26720
  }
@@ -26243,9 +26939,9 @@ const DeprecatedToggleButton = ({
26243
26939
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/faq/faq.js
26244
26940
  const faq_excluded = ["categories"];
26245
26941
 
26246
- function faq_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26942
+ function faq_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; }
26247
26943
 
26248
- function faq_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { faq_ownKeys(Object(source), true).forEach(function (key) { faq_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { faq_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26944
+ function faq_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? faq_ownKeys(Object(source), !0).forEach(function (key) { faq_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : faq_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26249
26945
 
26250
26946
  function faq_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26251
26947