@seamly/web-ui 24.5.0 → 25.1.0-beta.1

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 (154) hide show
  1. package/build/dist/lib/index.debug.js +2129 -1810
  2. package/build/dist/lib/index.debug.js.map +1 -1
  3. package/build/dist/lib/index.debug.min.js +1 -1
  4. package/build/dist/lib/index.debug.min.js.LICENSE.txt +49 -7
  5. package/build/dist/lib/index.debug.min.js.map +1 -1
  6. package/build/dist/lib/index.js +732 -398
  7. package/build/dist/lib/index.js.map +1 -1
  8. package/build/dist/lib/index.min.js +1 -1
  9. package/build/dist/lib/index.min.js.LICENSE.txt +16 -1
  10. package/build/dist/lib/index.min.js.map +1 -1
  11. package/build/dist/lib/style-guide.js +305 -93
  12. package/build/dist/lib/style-guide.js.map +1 -1
  13. package/build/dist/lib/style-guide.min.js +1 -1
  14. package/build/dist/lib/style-guide.min.js.map +1 -1
  15. package/build/dist/lib/styles-default-implementation.css +1 -1
  16. package/build/dist/lib/styles.css +1 -1
  17. package/package.json +27 -38
  18. package/src/javascripts/core/api/api.types.ts +3 -0
  19. package/src/javascripts/core/api/asyncapi.types.ts +292 -69
  20. package/src/javascripts/core/api/channel.types.ts +301 -69
  21. package/src/javascripts/core/api/conversation-connector.ts +1 -3
  22. package/src/javascripts/core/api/errors/seamly-api-error.ts +0 -1
  23. package/src/javascripts/core/api/errors/seamly-base-error.ts +1 -1
  24. package/src/javascripts/core/api/index.ts +7 -7
  25. package/src/javascripts/core/api/utils.ts +0 -1
  26. package/src/javascripts/core/domains/app/actions.ts +1 -1
  27. package/src/javascripts/core/domains/app/hooks.ts +1 -1
  28. package/src/javascripts/core/domains/config/hooks.ts +1 -1
  29. package/src/javascripts/core/domains/config/selectors.ts +1 -1
  30. package/src/javascripts/core/domains/config/slice.ts +2 -2
  31. package/src/javascripts/core/domains/forms/context.ts +1 -1
  32. package/src/javascripts/core/domains/forms/hooks.ts +12 -12
  33. package/src/javascripts/core/domains/forms/provider.tsx +9 -9
  34. package/src/javascripts/core/domains/i18n/actions.ts +1 -1
  35. package/src/javascripts/core/domains/i18n/hooks.ts +3 -3
  36. package/src/javascripts/core/domains/interrupt/hooks.ts +1 -1
  37. package/src/javascripts/core/domains/store/index.ts +2 -2
  38. package/src/javascripts/core/domains/store/slice.ts +47 -34
  39. package/src/javascripts/core/domains/store/store.types.ts +3 -7
  40. package/src/javascripts/core/domains/translations/components/options-button.tsx +2 -2
  41. package/src/javascripts/core/domains/translations/components/options-dialog/index.tsx +1 -1
  42. package/src/javascripts/core/domains/translations/components/options-dialog/translation-option.tsx +1 -1
  43. package/src/javascripts/core/domains/translations/components/options-dialog/translation-options.tsx +2 -2
  44. package/src/javascripts/core/domains/translations/components/translation-status.tsx +1 -1
  45. package/src/javascripts/core/domains/translations/hooks.ts +2 -2
  46. package/src/javascripts/core/domains/translations/middleware.ts +4 -2
  47. package/src/javascripts/core/domains/visibility/actions.ts +2 -2
  48. package/src/javascripts/core/domains/visibility/hooks.ts +5 -5
  49. package/src/javascripts/core/lib/debug.ts +1 -1
  50. package/src/javascripts/core/lib/engine/index.tsx +5 -5
  51. package/src/javascripts/core/lib/external-api/index.ts +6 -6
  52. package/src/javascripts/core/lib/mutex.ts +0 -1
  53. package/src/javascripts/core/lib/split-url-params.ts +1 -1
  54. package/src/javascripts/core/lib/store/index.ts +0 -1
  55. package/src/javascripts/core/lib/store/providers/app-storage.js +4 -7
  56. package/src/javascripts/core/lib/store/providers/app-storage.ts +4 -6
  57. package/src/javascripts/core/ui/components/app-options/index.tsx +1 -1
  58. package/src/javascripts/core/ui/components/chat-status/index.tsx +1 -1
  59. package/src/javascripts/core/ui/components/conversation/component-filter.tsx +1 -3
  60. package/src/javascripts/core/ui/components/conversation/conversation.tsx +9 -11
  61. package/src/javascripts/core/ui/components/conversation/event/card-component.tsx +3 -3
  62. package/src/javascripts/core/ui/components/conversation/event/carousel-component/components/pagination.tsx +1 -1
  63. package/src/javascripts/core/ui/components/conversation/event/carousel-component/index.tsx +1 -1
  64. package/src/javascripts/core/ui/components/conversation/event/chat-scroll/chat-scroll-provider.tsx +1 -1
  65. package/src/javascripts/core/ui/components/conversation/event/choice-prompt.tsx +5 -5
  66. package/src/javascripts/core/ui/components/conversation/event/conversation-suggestions.tsx +1 -1
  67. package/src/javascripts/core/ui/components/conversation/event/divider/variants/new-translation.tsx +3 -3
  68. package/src/javascripts/core/ui/components/conversation/event/divider/variants/time-indicator.tsx +1 -1
  69. package/src/javascripts/core/ui/components/conversation/event/event-participant.tsx +1 -1
  70. package/src/javascripts/core/ui/components/conversation/event/event.tsx +1 -1
  71. package/src/javascripts/core/ui/components/conversation/event/image-lightbox.tsx +1 -1
  72. package/src/javascripts/core/ui/components/conversation/event/image.tsx +2 -2
  73. package/src/javascripts/core/ui/components/conversation/event/participant.tsx +1 -1
  74. package/src/javascripts/core/ui/components/conversation/event/splash.tsx +0 -1
  75. package/src/javascripts/core/ui/components/conversation/event/text.tsx +2 -2
  76. package/src/javascripts/core/ui/components/conversation/event/upload.tsx +3 -3
  77. package/src/javascripts/core/ui/components/conversation/event/video.tsx +2 -2
  78. package/src/javascripts/core/ui/components/conversation/event-divider.tsx +1 -1
  79. package/src/javascripts/core/ui/components/conversation/message-container.tsx +2 -4
  80. package/src/javascripts/core/ui/components/conversation/use-chat-scroll.ts +3 -3
  81. package/src/javascripts/core/ui/components/core/seamly-activity-monitor.tsx +1 -1
  82. package/src/javascripts/core/ui/components/core/seamly-api-context.ts +1 -1
  83. package/src/javascripts/core/ui/components/core/seamly-core.tsx +3 -3
  84. package/src/javascripts/core/ui/components/core/seamly-event-subscriber.ts +9 -7
  85. package/src/javascripts/core/ui/components/core/seamly-file-upload.tsx +2 -3
  86. package/src/javascripts/core/ui/components/core/seamly-initializer.tsx +1 -1
  87. package/src/javascripts/core/ui/components/core/seamly-instance-functions-loader.ts +3 -3
  88. package/src/javascripts/core/ui/components/core/seamly-live-region.tsx +1 -1
  89. package/src/javascripts/core/ui/components/core/seamly-new-notifications.ts +1 -1
  90. package/src/javascripts/core/ui/components/core/seamly-read-state.ts +1 -1
  91. package/src/javascripts/core/ui/components/entry/entry-container.tsx +8 -3
  92. package/src/javascripts/core/ui/components/entry/text-entry/hooks.ts +21 -14
  93. package/src/javascripts/core/ui/components/entry/text-entry/index.tsx +1 -1
  94. package/src/javascripts/core/ui/components/entry/text-entry/text-entry-form.tsx +1 -1
  95. package/src/javascripts/core/ui/components/entry/upload/file-upload-form.tsx +1 -1
  96. package/src/javascripts/core/ui/components/entry/upload/index.tsx +1 -1
  97. package/src/javascripts/core/ui/components/entry/upload-toggle.tsx +2 -1
  98. package/src/javascripts/core/ui/components/form-controls/error.tsx +1 -1
  99. package/src/javascripts/core/ui/components/form-controls/file-input.tsx +1 -1
  100. package/src/javascripts/core/ui/components/form-controls/input.tsx +1 -1
  101. package/src/javascripts/core/ui/components/form-controls/wrapper.tsx +1 -1
  102. package/src/javascripts/core/ui/components/layout/agent-info.tsx +1 -1
  103. package/src/javascripts/core/ui/components/layout/chat-frame.tsx +1 -1
  104. package/src/javascripts/core/ui/components/layout/chat.tsx +8 -6
  105. package/src/javascripts/core/ui/components/layout/continue-chat-messages.tsx +1 -1
  106. package/src/javascripts/core/ui/components/layout/header.tsx +1 -1
  107. package/src/javascripts/core/ui/components/layout/interrupt.tsx +1 -1
  108. package/src/javascripts/core/ui/components/layout/pre-chat-messages.tsx +1 -1
  109. package/src/javascripts/core/ui/components/options/options-button.tsx +1 -3
  110. package/src/javascripts/core/ui/components/options/options-frame.tsx +1 -1
  111. package/src/javascripts/core/ui/components/options/transcript/index.tsx +1 -1
  112. package/src/javascripts/core/ui/components/suggestions/index.tsx +2 -2
  113. package/src/javascripts/core/ui/components/suggestions/suggestions-list.tsx +1 -1
  114. package/src/javascripts/core/ui/components/view/index.tsx +3 -3
  115. package/src/javascripts/core/ui/components/view/window-view/collapse-button.tsx +10 -1
  116. package/src/javascripts/core/ui/components/view/window-view/window-open-button.tsx +9 -3
  117. package/src/javascripts/core/ui/components/widgets/in-out-transition.tsx +2 -2
  118. package/src/javascripts/core/ui/components/widgets/lightbox.tsx +1 -1
  119. package/src/javascripts/core/ui/hooks/file-upload-hooks.ts +1 -1
  120. package/src/javascripts/core/ui/hooks/focus-helper-hooks.ts +6 -1
  121. package/src/javascripts/core/ui/hooks/seamly-entry-hooks.ts +1 -1
  122. package/src/javascripts/core/ui/hooks/seamly-option-hooks.ts +1 -1
  123. package/src/javascripts/core/ui/hooks/seamly-state-hooks.ts +9 -4
  124. package/src/javascripts/core/ui/hooks/use-debounce.ts +1 -1
  125. package/src/javascripts/core/ui/hooks/use-interval.ts +0 -1
  126. package/src/javascripts/core/ui/hooks/use-notifications.ts +2 -3
  127. package/src/javascripts/core/ui/hooks/use-seamly-chat.ts +2 -2
  128. package/src/javascripts/core/ui/hooks/use-seamly-commands.ts +2 -2
  129. package/src/javascripts/core/ui/hooks/use-seamly-conversation.ts +1 -1
  130. package/src/javascripts/core/ui/hooks/use-seamly-idle-detach-countdown.ts +15 -10
  131. package/src/javascripts/core/ui/hooks/use-session-expired-command.ts +1 -1
  132. package/src/javascripts/core/ui/hooks/use-single-file-upload.ts +1 -1
  133. package/src/javascripts/core/ui/hooks/utility-hooks.ts +1 -2
  134. package/src/javascripts/core/ui/utils/seamly-utils.ts +0 -2
  135. package/src/javascripts/core/ui/utils/validations.ts +1 -2
  136. package/src/javascripts/style-guide/components/app.tsx +2 -2
  137. package/src/javascripts/style-guide/components/static-core.tsx +2 -2
  138. package/src/javascripts/style-guide/components/view.tsx +1 -1
  139. package/src/javascripts/style-guide/state-helpers/index.ts +0 -2
  140. package/src/javascripts/style-guide/states.ts +5 -42
  141. package/src/javascripts/style-guide/style-guide-engine.tsx +1 -1
  142. package/src/stylesheets/5-components/_message-body.scss +0 -10
  143. package/src/stylesheets/6-default-implementation/_hover.scss +0 -7
  144. package/src/stylesheets/styles.scss +0 -1
  145. package/webpack/config.common.js +4 -11
  146. package/webpack/config.dev.js +0 -1
  147. package/webpack/config.package.js +5 -7
  148. package/webpack/config.site.js +2 -4
  149. package/webpack/config.test.js +1 -2
  150. package/webpack/defaults.js +0 -1
  151. package/webpack/parts/babel-loader-browser-plugins.js +0 -1
  152. package/webpack/parts/dev-server.js +0 -1
  153. package/src/javascripts/core/ui/components/conversation/event/cta.tsx +0 -54
  154. package/src/stylesheets/5-components/_message-cta.scss +0 -17
@@ -223,6 +223,23 @@ module.exports = !fails(function () {
223
223
  });
224
224
 
225
225
 
226
+ /***/ }),
227
+
228
+ /***/ 655:
229
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
230
+
231
+ "use strict";
232
+
233
+ var classof = __webpack_require__(6955);
234
+
235
+ var $String = String;
236
+
237
+ module.exports = function (argument) {
238
+ if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
239
+ return $String(argument);
240
+ };
241
+
242
+
226
243
  /***/ }),
227
244
 
228
245
  /***/ 679:
@@ -240,6 +257,26 @@ module.exports = function (it, Prototype) {
240
257
  };
241
258
 
242
259
 
260
+ /***/ }),
261
+
262
+ /***/ 684:
263
+ /***/ ((module) => {
264
+
265
+ "use strict";
266
+
267
+ // Should throw an error on invalid iterator
268
+ // https://issues.chromium.org/issues/336839115
269
+ module.exports = function (methodName, argument) {
270
+ // eslint-disable-next-line es/no-iterator -- required for testing
271
+ var method = typeof Iterator == 'function' && Iterator.prototype[methodName];
272
+ if (method) try {
273
+ method.call({ next: null }, argument).next();
274
+ } catch (error) {
275
+ return true;
276
+ }
277
+ };
278
+
279
+
243
280
  /***/ }),
244
281
 
245
282
  /***/ 741:
@@ -466,6 +503,30 @@ module.exports = function (argument) {
466
503
  };
467
504
 
468
505
 
506
+ /***/ }),
507
+
508
+ /***/ 1385:
509
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
510
+
511
+ "use strict";
512
+
513
+ var iteratorClose = __webpack_require__(9539);
514
+
515
+ module.exports = function (iters, kind, value) {
516
+ for (var i = iters.length - 1; i >= 0; i--) {
517
+ if (iters[i] === undefined) continue;
518
+ try {
519
+ value = iteratorClose(iters[i].iterator, kind, value);
520
+ } catch (error) {
521
+ kind = 'throw';
522
+ value = error;
523
+ }
524
+ }
525
+ if (kind === 'throw') throw value;
526
+ return value;
527
+ };
528
+
529
+
469
530
  /***/ }),
470
531
 
471
532
  /***/ 1454:
@@ -498,11 +559,14 @@ module.exports = uncurryThis({}.isPrototypeOf);
498
559
 
499
560
  var $ = __webpack_require__(6518);
500
561
  var union = __webpack_require__(4204);
562
+ var setMethodGetKeysBeforeCloning = __webpack_require__(9835);
501
563
  var setMethodAcceptSetLike = __webpack_require__(4916);
502
564
 
565
+ var FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');
566
+
503
567
  // `Set.prototype.union` method
504
568
  // https://tc39.es/ecma262/#sec-set.prototype.union
505
- $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {
569
+ $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
506
570
  union: union
507
571
  });
508
572
 
@@ -522,10 +586,15 @@ var getIteratorDirect = __webpack_require__(1767);
522
586
  var createIteratorProxy = __webpack_require__(9462);
523
587
  var callWithSafeIterationClosing = __webpack_require__(6319);
524
588
  var iteratorClose = __webpack_require__(9539);
589
+ var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
525
590
  var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
526
591
  var IS_PURE = __webpack_require__(6395);
527
592
 
528
- var mapWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
593
+ var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
594
+ var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
595
+ && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
596
+
597
+ var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
529
598
 
530
599
  var IteratorProxy = createIteratorProxy(function () {
531
600
  var iterator = this.iterator;
@@ -536,7 +605,7 @@ var IteratorProxy = createIteratorProxy(function () {
536
605
 
537
606
  // `Iterator.prototype.map` method
538
607
  // https://tc39.es/ecma262/#sec-iterator.prototype.map
539
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || mapWithoutClosingOnEarlyError }, {
608
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
540
609
  map: function map(mapper) {
541
610
  anObject(this);
542
611
  try {
@@ -562,7 +631,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || mapWithoutCl
562
631
  "use strict";
563
632
 
564
633
  // `GetIteratorDirect(obj)` abstract operation
565
- // https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect
634
+ // https://tc39.es/ecma262/#sec-getiteratordirect
566
635
  module.exports = function (obj) {
567
636
  return {
568
637
  iterator: obj,
@@ -807,9 +876,14 @@ var createIteratorProxy = __webpack_require__(9462);
807
876
  var callWithSafeIterationClosing = __webpack_require__(6319);
808
877
  var IS_PURE = __webpack_require__(6395);
809
878
  var iteratorClose = __webpack_require__(9539);
879
+ var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
810
880
  var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
811
881
 
812
- var filterWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
882
+ var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });
883
+ var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR
884
+ && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
885
+
886
+ var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
813
887
 
814
888
  var IteratorProxy = createIteratorProxy(function () {
815
889
  var iterator = this.iterator;
@@ -827,7 +901,7 @@ var IteratorProxy = createIteratorProxy(function () {
827
901
 
828
902
  // `Iterator.prototype.filter` method
829
903
  // https://tc39.es/ecma262/#sec-iterator.prototype.filter
830
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || filterWithoutClosingOnEarlyError }, {
904
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
831
905
  filter: function filter(predicate) {
832
906
  anObject(this);
833
907
  try {
@@ -907,7 +981,7 @@ module.exports = function (iterable, unboundFunction, options) {
907
981
  var iterator, iterFn, index, length, result, next, step;
908
982
 
909
983
  var stop = function (condition) {
910
- if (iterator) iteratorClose(iterator, 'normal', condition);
984
+ if (iterator) iteratorClose(iterator, 'normal');
911
985
  return new Result(true, condition);
912
986
  };
913
987
 
@@ -1042,6 +1116,21 @@ var POLYFILL = isForced.POLYFILL = 'P';
1042
1116
  module.exports = isForced;
1043
1117
 
1044
1118
 
1119
+ /***/ }),
1120
+
1121
+ /***/ 2812:
1122
+ /***/ ((module) => {
1123
+
1124
+ "use strict";
1125
+
1126
+ var $TypeError = TypeError;
1127
+
1128
+ module.exports = function (passed, required) {
1129
+ if (passed < required) throw new $TypeError('Not enough arguments');
1130
+ return passed;
1131
+ };
1132
+
1133
+
1045
1134
  /***/ }),
1046
1135
 
1047
1136
  /***/ 2839:
@@ -1090,7 +1179,7 @@ var uncurryThis = __webpack_require__(9504);
1090
1179
 
1091
1180
  var id = 0;
1092
1181
  var postfix = Math.random();
1093
- var toString = uncurryThis(1.0.toString);
1182
+ var toString = uncurryThis(1.1.toString);
1094
1183
 
1095
1184
  module.exports = function (key) {
1096
1185
  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
@@ -1116,7 +1205,7 @@ var has = SetHelpers.has;
1116
1205
  var remove = SetHelpers.remove;
1117
1206
 
1118
1207
  // `Set.prototype.difference` method
1119
- // https://github.com/tc39/proposal-set-methods
1208
+ // https://tc39.es/ecma262/#sec-set.prototype.difference
1120
1209
  module.exports = function difference(other) {
1121
1210
  var O = aSet(this);
1122
1211
  var otherRec = getSetRecord(other);
@@ -1125,7 +1214,7 @@ module.exports = function difference(other) {
1125
1214
  if (otherRec.includes(e)) remove(result, e);
1126
1215
  });
1127
1216
  else iterateSimple(otherRec.getIterator(), function (e) {
1128
- if (has(O, e)) remove(result, e);
1217
+ if (has(result, e)) remove(result, e);
1129
1218
  });
1130
1219
  return result;
1131
1220
  };
@@ -1189,7 +1278,7 @@ var has = SetHelpers.has;
1189
1278
  var remove = SetHelpers.remove;
1190
1279
 
1191
1280
  // `Set.prototype.symmetricDifference` method
1192
- // https://github.com/tc39/proposal-set-methods
1281
+ // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
1193
1282
  module.exports = function symmetricDifference(other) {
1194
1283
  var O = aSet(this);
1195
1284
  var keysIter = getSetRecord(other).getIterator();
@@ -1313,7 +1402,7 @@ var iterate = __webpack_require__(8469);
1313
1402
  var getSetRecord = __webpack_require__(3789);
1314
1403
 
1315
1404
  // `Set.prototype.isSubsetOf` method
1316
- // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf
1405
+ // https://tc39.es/ecma262/#sec-set.prototype.issubsetof
1317
1406
  module.exports = function isSubsetOf(other) {
1318
1407
  var O = aSet(this);
1319
1408
  var otherRec = getSetRecord(other);
@@ -1465,7 +1554,7 @@ var getSetRecord = __webpack_require__(3789);
1465
1554
  var iterateSimple = __webpack_require__(507);
1466
1555
 
1467
1556
  // `Set.prototype.union` method
1468
- // https://github.com/tc39/proposal-set-methods
1557
+ // https://tc39.es/ecma262/#sec-set.prototype.union
1469
1558
  module.exports = function union(other) {
1470
1559
  var O = aSet(this);
1471
1560
  var keysIter = getSetRecord(other).getIterator();
@@ -1575,7 +1664,7 @@ var iterateSimple = __webpack_require__(507);
1575
1664
  var iteratorClose = __webpack_require__(9539);
1576
1665
 
1577
1666
  // `Set.prototype.isDisjointFrom` method
1578
- // https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom
1667
+ // https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
1579
1668
  module.exports = function isDisjointFrom(other) {
1580
1669
  var O = aSet(this);
1581
1670
  var otherRec = getSetRecord(other);
@@ -1717,6 +1806,63 @@ module.exports =
1717
1806
  (function () { return this; })() || Function('return this')();
1718
1807
 
1719
1808
 
1809
+ /***/ }),
1810
+
1811
+ /***/ 4603:
1812
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
1813
+
1814
+ "use strict";
1815
+
1816
+ var defineBuiltIn = __webpack_require__(6840);
1817
+ var uncurryThis = __webpack_require__(9504);
1818
+ var toString = __webpack_require__(655);
1819
+ var validateArgumentsLength = __webpack_require__(2812);
1820
+
1821
+ var $URLSearchParams = URLSearchParams;
1822
+ var URLSearchParamsPrototype = $URLSearchParams.prototype;
1823
+ var append = uncurryThis(URLSearchParamsPrototype.append);
1824
+ var $delete = uncurryThis(URLSearchParamsPrototype['delete']);
1825
+ var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
1826
+ var push = uncurryThis([].push);
1827
+ var params = new $URLSearchParams('a=1&a=2&b=3');
1828
+
1829
+ params['delete']('a', 1);
1830
+ // `undefined` case is a Chromium 117 bug
1831
+ // https://bugs.chromium.org/p/v8/issues/detail?id=14222
1832
+ params['delete']('b', undefined);
1833
+
1834
+ if (params + '' !== 'a=2') {
1835
+ defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {
1836
+ var length = arguments.length;
1837
+ var $value = length < 2 ? undefined : arguments[1];
1838
+ if (length && $value === undefined) return $delete(this, name);
1839
+ var entries = [];
1840
+ forEach(this, function (v, k) { // also validates `this`
1841
+ push(entries, { key: k, value: v });
1842
+ });
1843
+ validateArgumentsLength(length, 1);
1844
+ var key = toString(name);
1845
+ var value = toString($value);
1846
+ var index = 0;
1847
+ var dindex = 0;
1848
+ var found = false;
1849
+ var entriesLength = entries.length;
1850
+ var entry;
1851
+ while (index < entriesLength) {
1852
+ entry = entries[index++];
1853
+ if (found || entry.key === key) {
1854
+ found = true;
1855
+ $delete(this, entry.key);
1856
+ } else dindex++;
1857
+ }
1858
+ while (dindex < entriesLength) {
1859
+ entry = entries[dindex++];
1860
+ if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);
1861
+ }
1862
+ }, { enumerable: true, unsafe: true });
1863
+ }
1864
+
1865
+
1720
1866
  /***/ }),
1721
1867
 
1722
1868
  /***/ 4659:
@@ -1883,11 +2029,14 @@ module.exports = function (name, callback) {
1883
2029
 
1884
2030
  var $ = __webpack_require__(6518);
1885
2031
  var symmetricDifference = __webpack_require__(3650);
2032
+ var setMethodGetKeysBeforeCloning = __webpack_require__(9835);
1886
2033
  var setMethodAcceptSetLike = __webpack_require__(4916);
1887
2034
 
2035
+ var FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');
2036
+
1888
2037
  // `Set.prototype.symmetricDifference` method
1889
2038
  // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
1890
- $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {
2039
+ $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
1891
2040
  symmetricDifference: symmetricDifference
1892
2041
  });
1893
2042
 
@@ -2717,7 +2866,7 @@ __webpack_require__.r(__webpack_exports__);
2717
2866
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
2718
2867
  /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in preact_hooks__WEBPACK_IMPORTED_MODULE_1__) if(["default","Component","Fragment","createContext","createElement","createRef","Children","PureComponent","StrictMode","Suspense","SuspenseList","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createFactory","createPortal","findDOMNode","flushSync","forwardRef","hydrate","isElement","isFragment","isMemo","isValidElement","lazy","memo","render","startTransition","unmountComponentAtNode","unstable_batchedUpdates","useDeferredValue","useInsertionEffect","useSyncExternalStore","useTransition","version"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => preact_hooks__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
2719
2868
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
2720
- function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=(0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState)({t:{__:e,u:t}}),u=r[0].t,o=r[1];return (0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),(0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(N.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__.Component).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=preact__WEBPACK_IMPORTED_MODULE_0__.options.__b;preact__WEBPACK_IMPORTED_MODULE_0__.options.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var L=function(n,t){return null==n?null:(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)((0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).map(t))},O={map:L,forEach:L,count:function(n){return n?(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).length:0},only:function(n){var t=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray},F=preact__WEBPACK_IMPORTED_MODULE_0__.options.__e;preact__WEBPACK_IMPORTED_MODULE_0__.options.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(r,o)}return o.displayName="Lazy",o.__f=!0,o}function B(){this.i=null,this.l=null}preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__.Component).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,null,n.fallback);return i&&(i.__u&=-33),[(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){(0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},appendChild:function(n){this.childNodes.push(n),e.h.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}(0,preact__WEBPACK_IMPORTED_MODULE_0__.render)((0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__.Component).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q="undefined"!=typeof document,X=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=""),(0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(n,t),"function"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return (0,preact__WEBPACK_IMPORTED_MODULE_0__.hydrate)(n,t),"function"==typeof e&&e(),n?n.__c:null}preact__WEBPACK_IMPORTED_MODULE_0__.Component.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(preact__WEBPACK_IMPORTED_MODULE_0__.Component.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=preact__WEBPACK_IMPORTED_MODULE_0__.options.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}preact__WEBPACK_IMPORTED_MODULE_0__.options.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var ln,cn={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=preact__WEBPACK_IMPORTED_MODULE_0__.options.vnode;preact__WEBPACK_IMPORTED_MODULE_0__.options.vnode=function(n){"string"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf("-");for(var i in t){var l=t[i];if(!("value"===i&&"defaultValue"in t&&null==l||Q&&"children"===i&&"noscript"===e||"class"===i||"className"===i)){var c=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===l?l="":"translate"===c&&"no"===l?l=!1:"o"===c[0]&&"n"===c[1]?"ondoubleclick"===c?i="ondblclick":"onchange"!==c||"input"!==e&&"textarea"!==e||X(t.type)?"onfocus"===c?i="onfocusin":"onblur"===c?i="onfocusout":J.test(i)&&(i=c):c=i="oninput":o&&G.test(i)?i=i.replace(K,"-$&").toLowerCase():null===l&&(l=void 0),"oninput"===c&&u[i=c]&&(i="oninputCapture"),u[i]=l}}"select"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==e&&null!=u.defaultValue&&(u.value=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,"className",cn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=preact__WEBPACK_IMPORTED_MODULE_0__.options.__r;preact__WEBPACK_IMPORTED_MODULE_0__.options.__r=function(n){an&&an(n),ln=n.__c};var sn=preact__WEBPACK_IMPORTED_MODULE_0__.options.diffed;preact__WEBPACK_IMPORTED_MODULE_0__.options.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&"textarea"===n.type&&"value"in t&&t.value!==e.value&&(e.value=null==t.value?"":t.value),ln=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return ln.__n[n.__c].props.value},useCallback:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback,useContext:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext,useDebugValue:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue,useDeferredValue:w,useEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect,useId:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useId,useImperativeHandle:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle,useInsertionEffect:I,useLayoutEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,useMemo:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo,useReducer:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer,useRef:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef,useState:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState,useSyncExternalStore:C,useTransition:k}}},vn="18.3.1";function dn(n){return preact__WEBPACK_IMPORTED_MODULE_0__.createElement.bind(null,n)}function mn(n){return!!n&&n.$$typeof===q}function pn(n){return mn(n)&&n.type===preact__WEBPACK_IMPORTED_MODULE_0__.Fragment}function yn(n){return!!n&&!!n.displayName&&("string"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith("Memo(")}function _n(n){return mn(n)?preact__WEBPACK_IMPORTED_MODULE_0__.cloneElement.apply(null,arguments):n}function bn(n){return!!n.__k&&((0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,xn=mn,Rn={useState:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState,useId:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useId,useReducer:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer,useEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect,useLayoutEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef,useImperativeHandle:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle,useMemo:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo,useCallback:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback,useContext:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext,useDebugValue:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue,version:"18.3.1",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:preact__WEBPACK_IMPORTED_MODULE_0__.createElement,createContext:preact__WEBPACK_IMPORTED_MODULE_0__.createContext,createFactory:dn,cloneElement:_n,createRef:preact__WEBPACK_IMPORTED_MODULE_0__.createRef,Fragment:preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,isValidElement:mn,isElement:xn,isFragment:pn,isMemo:yn,findDOMNode:Sn,Component:preact__WEBPACK_IMPORTED_MODULE_0__.Component,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};
2869
+ function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=(0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState)({t:{__:e,u:t}}),u=r[0].t,o=r[1];return (0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),(0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u.type=n,u}(N.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__.Component).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=preact__WEBPACK_IMPORTED_MODULE_0__.options.__b;preact__WEBPACK_IMPORTED_MODULE_0__.options.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var L=function(n,t){return null==n?null:(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)((0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).map(t))},O={map:L,forEach:L,count:function(n){return n?(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).length:0},only:function(n){var t=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray},F=preact__WEBPACK_IMPORTED_MODULE_0__.options.__e;preact__WEBPACK_IMPORTED_MODULE_0__.options.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(r,o)}return o.displayName="Lazy",o.__f=!0,o}function B(){this.i=null,this.l=null}preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__.Component).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,null,n.fallback);return i&&(i.__u&=-33),[(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){(0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}(0,preact__WEBPACK_IMPORTED_MODULE_0__.render)((0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new preact__WEBPACK_IMPORTED_MODULE_0__.Component).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q="undefined"!=typeof document,X=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=""),(0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(n,t),"function"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return (0,preact__WEBPACK_IMPORTED_MODULE_0__.hydrate)(n,t),"function"==typeof e&&e(),n?n.__c:null}preact__WEBPACK_IMPORTED_MODULE_0__.Component.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(preact__WEBPACK_IMPORTED_MODULE_0__.Component.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=preact__WEBPACK_IMPORTED_MODULE_0__.options.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}preact__WEBPACK_IMPORTED_MODULE_0__.options.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var ln,cn={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=preact__WEBPACK_IMPORTED_MODULE_0__.options.vnode;preact__WEBPACK_IMPORTED_MODULE_0__.options.vnode=function(n){"string"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf("-");for(var i in t){var l=t[i];if(!("value"===i&&"defaultValue"in t&&null==l||Q&&"children"===i&&"noscript"===e||"class"===i||"className"===i)){var c=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===l?l="":"translate"===c&&"no"===l?l=!1:"o"===c[0]&&"n"===c[1]?"ondoubleclick"===c?i="ondblclick":"onchange"!==c||"input"!==e&&"textarea"!==e||X(t.type)?"onfocus"===c?i="onfocusin":"onblur"===c?i="onfocusout":J.test(i)&&(i=c):c=i="oninput":o&&G.test(i)?i=i.replace(K,"-$&").toLowerCase():null===l&&(l=void 0),"oninput"===c&&u[i=c]&&(i="oninputCapture"),u[i]=l}}"select"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==e&&null!=u.defaultValue&&(u.value=(0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,"className",cn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=preact__WEBPACK_IMPORTED_MODULE_0__.options.__r;preact__WEBPACK_IMPORTED_MODULE_0__.options.__r=function(n){an&&an(n),ln=n.__c};var sn=preact__WEBPACK_IMPORTED_MODULE_0__.options.diffed;preact__WEBPACK_IMPORTED_MODULE_0__.options.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&"textarea"===n.type&&"value"in t&&t.value!==e.value&&(e.value=null==t.value?"":t.value),ln=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return ln.__n[n.__c].props.value},useCallback:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback,useContext:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext,useDebugValue:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue,useDeferredValue:w,useEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect,useId:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useId,useImperativeHandle:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle,useInsertionEffect:I,useLayoutEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,useMemo:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo,useReducer:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer,useRef:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef,useState:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState,useSyncExternalStore:C,useTransition:k}}},vn="18.3.1";function dn(n){return preact__WEBPACK_IMPORTED_MODULE_0__.createElement.bind(null,n)}function mn(n){return!!n&&n.$$typeof===q}function pn(n){return mn(n)&&n.type===preact__WEBPACK_IMPORTED_MODULE_0__.Fragment}function yn(n){return!!n&&!!n.displayName&&("string"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith("Memo(")}function _n(n){return mn(n)?preact__WEBPACK_IMPORTED_MODULE_0__.cloneElement.apply(null,arguments):n}function bn(n){return!!n.__k&&((0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,xn=mn,Rn={useState:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState,useId:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useId,useReducer:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer,useEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect,useLayoutEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef,useImperativeHandle:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle,useMemo:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo,useCallback:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback,useContext:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext,useDebugValue:preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue,version:"18.3.1",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:preact__WEBPACK_IMPORTED_MODULE_0__.createElement,createContext:preact__WEBPACK_IMPORTED_MODULE_0__.createContext,createFactory:dn,cloneElement:_n,createRef:preact__WEBPACK_IMPORTED_MODULE_0__.createRef,Fragment:preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,isValidElement:mn,isElement:xn,isFragment:pn,isMemo:yn,findDOMNode:Sn,Component:preact__WEBPACK_IMPORTED_MODULE_0__.Component,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};
2721
2870
  //# sourceMappingURL=compat.module.js.map
2722
2871
 
2723
2872
 
@@ -2761,6 +2910,42 @@ __webpack_require__(3579);
2761
2910
  __webpack_require__(5024);
2762
2911
 
2763
2912
 
2913
+ /***/ }),
2914
+
2915
+ /***/ 7566:
2916
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2917
+
2918
+ "use strict";
2919
+
2920
+ var defineBuiltIn = __webpack_require__(6840);
2921
+ var uncurryThis = __webpack_require__(9504);
2922
+ var toString = __webpack_require__(655);
2923
+ var validateArgumentsLength = __webpack_require__(2812);
2924
+
2925
+ var $URLSearchParams = URLSearchParams;
2926
+ var URLSearchParamsPrototype = $URLSearchParams.prototype;
2927
+ var getAll = uncurryThis(URLSearchParamsPrototype.getAll);
2928
+ var $has = uncurryThis(URLSearchParamsPrototype.has);
2929
+ var params = new $URLSearchParams('a=1');
2930
+
2931
+ // `undefined` case is a Chromium 117 bug
2932
+ // https://bugs.chromium.org/p/v8/issues/detail?id=14222
2933
+ if (params.has('a', 2) || !params.has('a', undefined)) {
2934
+ defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {
2935
+ var length = arguments.length;
2936
+ var $value = length < 2 ? undefined : arguments[1];
2937
+ if (length && $value === undefined) return $has(this, name);
2938
+ var values = getAll(this, name); // also validates `this`
2939
+ validateArgumentsLength(length, 1);
2940
+ var value = toString($value);
2941
+ var index = 0;
2942
+ while (index < values.length) {
2943
+ if (values[index++] === value) return true;
2944
+ } return false;
2945
+ }, { enumerable: true, unsafe: true });
2946
+ }
2947
+
2948
+
2764
2949
  /***/ }),
2765
2950
 
2766
2951
  /***/ 7588:
@@ -2816,10 +3001,10 @@ var SHARED = '__core-js_shared__';
2816
3001
  var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
2817
3002
 
2818
3003
  (store.versions || (store.versions = [])).push({
2819
- version: '3.42.0',
3004
+ version: '3.45.1',
2820
3005
  mode: IS_PURE ? 'pure' : 'global',
2821
3006
  copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',
2822
- license: 'https://github.com/zloirock/core-js/blob/v3.42.0/LICENSE',
3007
+ license: 'https://github.com/zloirock/core-js/blob/v3.45.1/LICENSE',
2823
3008
  source: 'https://github.com/zloirock/core-js'
2824
3009
  });
2825
3010
 
@@ -2833,15 +3018,38 @@ var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED,
2833
3018
 
2834
3019
  var $ = __webpack_require__(6518);
2835
3020
  var difference = __webpack_require__(3440);
3021
+ var fails = __webpack_require__(9039);
2836
3022
  var setMethodAcceptSetLike = __webpack_require__(4916);
2837
3023
 
2838
- var INCORRECT = !setMethodAcceptSetLike('difference', function (result) {
3024
+ var SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {
2839
3025
  return result.size === 0;
2840
3026
  });
2841
3027
 
3028
+ var FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {
3029
+ // https://bugs.webkit.org/show_bug.cgi?id=288595
3030
+ var setLike = {
3031
+ size: 1,
3032
+ has: function () { return true; },
3033
+ keys: function () {
3034
+ var index = 0;
3035
+ return {
3036
+ next: function () {
3037
+ var done = index++ > 1;
3038
+ if (baseSet.has(1)) baseSet.clear();
3039
+ return { done: done, value: 2 };
3040
+ }
3041
+ };
3042
+ }
3043
+ };
3044
+ // eslint-disable-next-line es/no-set -- testing
3045
+ var baseSet = new Set([1, 2, 3, 4]);
3046
+ // eslint-disable-next-line es/no-set-prototype-difference -- testing
3047
+ return baseSet.difference(setLike).size !== 3;
3048
+ });
3049
+
2842
3050
  // `Set.prototype.difference` method
2843
3051
  // https://tc39.es/ecma262/#sec-set.prototype.difference
2844
- $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
3052
+ $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
2845
3053
  difference: difference
2846
3054
  });
2847
3055
 
@@ -3209,7 +3417,8 @@ $({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFI
3209
3417
 
3210
3418
  if (true) {
3211
3419
  module.exports = __webpack_require__(5160);
3212
- } else {}
3420
+ } else // removed by dead control flow
3421
+ {}
3213
3422
 
3214
3423
 
3215
3424
  /***/ }),
@@ -3269,7 +3478,7 @@ var iterateSimple = __webpack_require__(507);
3269
3478
  var iteratorClose = __webpack_require__(9539);
3270
3479
 
3271
3480
  // `Set.prototype.isSupersetOf` method
3272
- // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf
3481
+ // https://tc39.es/ecma262/#sec-set.prototype.issupersetof
3273
3482
  module.exports = function isSupersetOf(other) {
3274
3483
  var O = aSet(this);
3275
3484
  var otherRec = getSetRecord(other);
@@ -3336,6 +3545,35 @@ module.exports = DESCRIPTORS && fails(function () {
3336
3545
  });
3337
3546
 
3338
3547
 
3548
+ /***/ }),
3549
+
3550
+ /***/ 8721:
3551
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
3552
+
3553
+ "use strict";
3554
+
3555
+ var DESCRIPTORS = __webpack_require__(3724);
3556
+ var uncurryThis = __webpack_require__(9504);
3557
+ var defineBuiltInAccessor = __webpack_require__(2106);
3558
+
3559
+ var URLSearchParamsPrototype = URLSearchParams.prototype;
3560
+ var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
3561
+
3562
+ // `URLSearchParams.prototype.size` getter
3563
+ // https://github.com/whatwg/url/pull/734
3564
+ if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {
3565
+ defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {
3566
+ get: function size() {
3567
+ var count = 0;
3568
+ forEach(this, function () { count++; });
3569
+ return count;
3570
+ },
3571
+ configurable: true,
3572
+ enumerable: true
3573
+ });
3574
+ }
3575
+
3576
+
3339
3577
  /***/ }),
3340
3578
 
3341
3579
  /***/ 8727:
@@ -3393,7 +3631,7 @@ var add = SetHelpers.add;
3393
3631
  var has = SetHelpers.has;
3394
3632
 
3395
3633
  // `Set.prototype.intersection` method
3396
- // https://github.com/tc39/proposal-set-methods
3634
+ // https://tc39.es/ecma262/#sec-set.prototype.intersection
3397
3635
  module.exports = function intersection(other) {
3398
3636
  var O = aSet(this);
3399
3637
  var otherRec = getSetRecord(other);
@@ -3620,10 +3858,13 @@ var getMethod = __webpack_require__(5966);
3620
3858
  var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);
3621
3859
  var createIterResultObject = __webpack_require__(2529);
3622
3860
  var iteratorClose = __webpack_require__(9539);
3861
+ var iteratorCloseAll = __webpack_require__(1385);
3623
3862
 
3624
3863
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3625
3864
  var ITERATOR_HELPER = 'IteratorHelper';
3626
3865
  var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';
3866
+ var NORMAL = 'normal';
3867
+ var THROW = 'throw';
3627
3868
  var setInternalState = InternalStateModule.set;
3628
3869
 
3629
3870
  var createIteratorProxyPrototype = function (IS_ITERATOR) {
@@ -3654,11 +3895,16 @@ var createIteratorProxyPrototype = function (IS_ITERATOR) {
3654
3895
  return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);
3655
3896
  }
3656
3897
  if (state.inner) try {
3657
- iteratorClose(state.inner.iterator, 'normal');
3898
+ iteratorClose(state.inner.iterator, NORMAL);
3658
3899
  } catch (error) {
3659
- return iteratorClose(iterator, 'throw', error);
3900
+ return iteratorClose(iterator, THROW, error);
3660
3901
  }
3661
- if (iterator) iteratorClose(iterator, 'normal');
3902
+ if (state.openIters) try {
3903
+ iteratorCloseAll(state.openIters, NORMAL);
3904
+ } catch (error) {
3905
+ return iteratorClose(iterator, THROW, error);
3906
+ }
3907
+ if (iterator) iteratorClose(iterator, NORMAL);
3662
3908
  return createIterResultObject(undefined, true);
3663
3909
  }
3664
3910
  });
@@ -3849,6 +4095,44 @@ module.exports = {
3849
4095
  };
3850
4096
 
3851
4097
 
4098
+ /***/ }),
4099
+
4100
+ /***/ 9835:
4101
+ /***/ ((module) => {
4102
+
4103
+ "use strict";
4104
+
4105
+ // Should get iterator record of a set-like object before cloning this
4106
+ // https://bugs.webkit.org/show_bug.cgi?id=289430
4107
+ module.exports = function (METHOD_NAME) {
4108
+ try {
4109
+ // eslint-disable-next-line es/no-set -- needed for test
4110
+ var baseSet = new Set();
4111
+ var setLike = {
4112
+ size: 0,
4113
+ has: function () { return true; },
4114
+ keys: function () {
4115
+ // eslint-disable-next-line es/no-object-defineproperty -- needed for test
4116
+ return Object.defineProperty({}, 'next', {
4117
+ get: function () {
4118
+ baseSet.clear();
4119
+ baseSet.add(4);
4120
+ return function () {
4121
+ return { done: true };
4122
+ };
4123
+ }
4124
+ });
4125
+ }
4126
+ };
4127
+ var result = baseSet[METHOD_NAME](setLike);
4128
+
4129
+ return result.size === 1 && result.values().next().value === 4;
4130
+ } catch (error) {
4131
+ return false;
4132
+ }
4133
+ };
4134
+
4135
+
3852
4136
  /***/ })
3853
4137
 
3854
4138
  /******/ });
@@ -4050,11 +4334,12 @@ var esnext_iterator_for_each = __webpack_require__(3949);
4050
4334
  var esnext_iterator_map = __webpack_require__(1454);
4051
4335
  // EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.some.js
4052
4336
  var esnext_iterator_some = __webpack_require__(7550);
4053
- // EXTERNAL MODULE: ./node_modules/minivents/dist/minivents.commonjs.min.js
4054
- var minivents_commonjs_min = __webpack_require__(2086);
4055
- var minivents_commonjs_min_default = /*#__PURE__*/__webpack_require__.n(minivents_commonjs_min);
4056
- // EXTERNAL MODULE: external "preact"
4057
- var external_preact_ = __webpack_require__(8785);
4337
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.delete.js
4338
+ var web_url_search_params_delete = __webpack_require__(4603);
4339
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.has.js
4340
+ var web_url_search_params_has = __webpack_require__(7566);
4341
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js
4342
+ var web_url_search_params_size = __webpack_require__(8721);
4058
4343
  // EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.difference.v2.js
4059
4344
  var esnext_set_difference_v2 = __webpack_require__(3375);
4060
4345
  // EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.intersection.v2.js
@@ -4069,6 +4354,33 @@ var esnext_set_is_superset_of_v2 = __webpack_require__(5714);
4069
4354
  var esnext_set_symmetric_difference_v2 = __webpack_require__(7561);
4070
4355
  // EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.union.v2.js
4071
4356
  var esnext_set_union_v2 = __webpack_require__(6197);
4357
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.reduce.js
4358
+ var esnext_iterator_reduce = __webpack_require__(8872);
4359
+ ;// ./src/javascripts/core/lib/split-url-params.ts
4360
+
4361
+
4362
+ const splitUrlParams = url => {
4363
+ const searchIndex = url.indexOf('?');
4364
+ if (searchIndex < 0) {
4365
+ return {
4366
+ url,
4367
+ params: {}
4368
+ };
4369
+ }
4370
+ const urlBase = url.slice(0, searchIndex);
4371
+ const params = url.slice(searchIndex + 1).split('&').reduce((acc, hash) => {
4372
+ const [key, val] = hash.split('=');
4373
+ return {
4374
+ ...acc,
4375
+ [key]: decodeURIComponent(val)
4376
+ };
4377
+ }, {});
4378
+ return {
4379
+ url: urlBase,
4380
+ params
4381
+ };
4382
+ };
4383
+ /* harmony default export */ const split_url_params = (splitUrlParams);
4072
4384
  ;// ./node_modules/reconnecting-websocket/dist/reconnecting-websocket-mjs.js
4073
4385
  /*! *****************************************************************************
4074
4386
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -4658,33 +4970,6 @@ var ReconnectingWebSocket = /** @class */ (function () {
4658
4970
 
4659
4971
  /* harmony default export */ const reconnecting_websocket_mjs = (ReconnectingWebSocket);
4660
4972
 
4661
- // EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.reduce.js
4662
- var esnext_iterator_reduce = __webpack_require__(8872);
4663
- ;// ./src/javascripts/core/lib/split-url-params.ts
4664
-
4665
-
4666
- const splitUrlParams = url => {
4667
- const searchIndex = url.indexOf('?');
4668
- if (searchIndex < 0) {
4669
- return {
4670
- url,
4671
- params: {}
4672
- };
4673
- }
4674
- const urlBase = url.slice(0, searchIndex);
4675
- const params = url.slice(searchIndex + 1).split('&').reduce(function (acc, hash) {
4676
- const [key, val] = hash.split('=');
4677
- return {
4678
- ...acc,
4679
- [key]: decodeURIComponent(val)
4680
- };
4681
- }, {});
4682
- return {
4683
- url: urlBase,
4684
- params
4685
- };
4686
- };
4687
- /* harmony default export */ const split_url_params = (splitUrlParams);
4688
4973
  ;// ./src/javascripts/core/api/conversation-connector.ts
4689
4974
 
4690
4975
 
@@ -4713,11 +4998,7 @@ const emitChange = () => {
4713
4998
  };
4714
4999
  class ConversationConnector {
4715
5000
  #connectionListeners = [];
4716
-
4717
- // eslint-disable-next-line no-undef
4718
5001
  #statusInterval = null;
4719
-
4720
- // eslint-disable-next-line no-unused-vars
4721
5002
  #openListener = null;
4722
5003
  #messageListener = event => {
4723
5004
  const json = JSON.parse(event.data);
@@ -4858,8 +5139,6 @@ class ConversationConnector {
4858
5139
  }
4859
5140
  }
4860
5141
  ;// ./src/javascripts/core/api/errors/seamly-api-error.ts
4861
- // eslint-disable-next-line no-undef
4862
-
4863
5142
  class ApiError extends Error {
4864
5143
  constructor(message, options) {
4865
5144
  // @ts-ignore
@@ -4874,7 +5153,7 @@ function parseOriginalErrMsg(str) {
4874
5153
  try {
4875
5154
  const json = JSON.parse(str);
4876
5155
  return json.error;
4877
- } catch (e) {
5156
+ } catch (_e) {
4878
5157
  return str;
4879
5158
  }
4880
5159
  }
@@ -4943,7 +5222,6 @@ class SeamlyUnauthorizedError extends SeamlyBaseError {
4943
5222
  const debug = false ? 0 : () => () => null;
4944
5223
  /* harmony default export */ const lib_debug = (debug);
4945
5224
  ;// ./src/javascripts/core/lib/store/index.ts
4946
- /* eslint-disable */
4947
5225
  function objectStore(key, storageProvider) {
4948
5226
  const sessionStore = storageProvider(key);
4949
5227
  const object = sessionStore.get() || {};
@@ -5007,7 +5285,6 @@ const payloadTypes = {
5007
5285
  message: 'message',
5008
5286
  countdown: 'countdown',
5009
5287
  upload: 'upload',
5010
- cta: 'cta',
5011
5288
  splash: 'splash'
5012
5289
  };
5013
5290
  const entryTypes = {
@@ -5031,7 +5308,6 @@ const actionTypes = {
5031
5308
  setTopic: 'set_topic',
5032
5309
  setTranslation: 'set_translation',
5033
5310
  setContext: 'set_context',
5034
- clickCta: 'click_cta',
5035
5311
  clickCard: 'click_card'
5036
5312
  };
5037
5313
  const TRANSLATION_PROPOSAL = 'translation_proposal';
@@ -5073,6 +5349,9 @@ function randomId() {
5073
5349
  ;// ./src/javascripts/core/api/utils.ts
5074
5350
 
5075
5351
 
5352
+
5353
+
5354
+
5076
5355
  function buildPayload(command, payload) {
5077
5356
  if (command !== 'message') {
5078
5357
  return payload;
@@ -5142,6 +5421,9 @@ function getTimeZone() {
5142
5421
 
5143
5422
 
5144
5423
 
5424
+
5425
+
5426
+
5145
5427
  const TRANSLATIONS_VERSION = 4;
5146
5428
  const DOMAIN = 'api.seamly-app.com';
5147
5429
  const log = lib_debug('seamly');
@@ -5183,11 +5465,11 @@ class API {
5183
5465
  this.userResponded = false;
5184
5466
  this.URLS = {
5185
5467
  translations: {
5186
- href: `/channels/api/v2/client/${this.connectionInfo.apiKey}/translations/{version}/{locale}.json`,
5468
+ href: `/channels/api/v3/client/${this.connectionInfo.apiKey}/translations/{version}/{locale}.json`,
5187
5469
  templated: true
5188
5470
  },
5189
5471
  config: {
5190
- href: `/channels/api/v2/client/${this.connectionInfo.apiKey}/configs`,
5472
+ href: `/channels/api/v3/client/${this.connectionInfo.apiKey}/configs`,
5191
5473
  templated: true
5192
5474
  }
5193
5475
  };
@@ -5555,7 +5837,7 @@ class API {
5555
5837
  return {
5556
5838
  clientName: "@seamly/web-ui",
5557
5839
  clientVariant: this.#layoutMode,
5558
- clientVersion: "24.5.0",
5840
+ clientVersion: "25.1.0-beta.1",
5559
5841
  currentUrl: window.location.toString(),
5560
5842
  screenResolution: `${window.screen.width}x${window.screen.height}`,
5561
5843
  timezone: getTimeZone(),
@@ -5641,7 +5923,8 @@ function isDate(val) {
5641
5923
  }
5642
5924
  function kindOf(val) {
5643
5925
  let typeOfVal = typeof val;
5644
- if (false) {}
5926
+ if (false) // removed by dead control flow
5927
+ {}
5645
5928
  return typeOfVal;
5646
5929
  }
5647
5930
 
@@ -5841,14 +6124,16 @@ function combineReducers(reducers) {
5841
6124
  const finalReducers = {};
5842
6125
  for (let i = 0; i < reducerKeys.length; i++) {
5843
6126
  const key = reducerKeys[i];
5844
- if (false) {}
6127
+ if (false) // removed by dead control flow
6128
+ {}
5845
6129
  if (typeof reducers[key] === "function") {
5846
6130
  finalReducers[key] = reducers[key];
5847
6131
  }
5848
6132
  }
5849
6133
  const finalReducerKeys = Object.keys(finalReducers);
5850
6134
  let unexpectedKeyCache;
5851
- if (false) {}
6135
+ if (false) // removed by dead control flow
6136
+ {}
5852
6137
  let shapeAssertionError;
5853
6138
  try {
5854
6139
  assertReducerShape(finalReducers);
@@ -5859,7 +6144,8 @@ function combineReducers(reducers) {
5859
6144
  if (shapeAssertionError) {
5860
6145
  throw shapeAssertionError;
5861
6146
  }
5862
- if (false) {}
6147
+ if (false) // removed by dead control flow
6148
+ {}
5863
6149
  let hasChanged = false;
5864
6150
  const nextState = {};
5865
6151
  for (let i = 0; i < finalReducerKeys.length; i++) {
@@ -5963,7 +6249,8 @@ var DRAFT_STATE = Symbol.for("immer-state");
5963
6249
  // src/utils/errors.ts
5964
6250
  var errors = false ? 0 : [];
5965
6251
  function die(error, ...args) {
5966
- if (false) {}
6252
+ if (false) // removed by dead control flow
6253
+ {}
5967
6254
  throw new Error(
5968
6255
  `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
5969
6256
  );
@@ -6085,11 +6372,16 @@ function freeze(obj, deep = false) {
6085
6372
  if (isFrozen(obj) || immer_isDraft(obj) || !isDraftable(obj))
6086
6373
  return obj;
6087
6374
  if (getArchtype(obj) > 1) {
6088
- obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;
6375
+ Object.defineProperties(obj, {
6376
+ set: { value: dontMutateFrozenCollections },
6377
+ add: { value: dontMutateFrozenCollections },
6378
+ clear: { value: dontMutateFrozenCollections },
6379
+ delete: { value: dontMutateFrozenCollections }
6380
+ });
6089
6381
  }
6090
6382
  Object.freeze(obj);
6091
6383
  if (deep)
6092
- Object.entries(obj).forEach(([key, value]) => freeze(value, true));
6384
+ Object.values(obj).forEach((value) => freeze(value, true));
6093
6385
  return obj;
6094
6386
  }
6095
6387
  function dontMutateFrozenCollections() {
@@ -6236,7 +6528,8 @@ function finalize(rootScope, value, path) {
6236
6528
  }
6237
6529
  function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {
6238
6530
  if (false)
6239
- {}
6531
+ // removed by dead control flow
6532
+ {}
6240
6533
  if (immer_isDraft(childValue)) {
6241
6534
  const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.
6242
6535
  !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;
@@ -6254,7 +6547,7 @@ function finalizeProperty(rootScope, parentState, targetObject, prop, childValue
6254
6547
  return;
6255
6548
  }
6256
6549
  finalize(rootScope, childValue);
6257
- if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))
6550
+ if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))
6258
6551
  maybeFreeze(rootScope, childValue);
6259
6552
  }
6260
6553
  }
@@ -6398,12 +6691,14 @@ each(objectTraps, (key, fn) => {
6398
6691
  });
6399
6692
  arrayTraps.deleteProperty = function(state, prop) {
6400
6693
  if (false)
6401
- {}
6694
+ // removed by dead control flow
6695
+ {}
6402
6696
  return arrayTraps.set.call(this, state, prop, void 0);
6403
6697
  };
6404
6698
  arrayTraps.set = function(state, prop, value) {
6405
6699
  if (false)
6406
- {}
6700
+ // removed by dead control flow
6701
+ {}
6407
6702
  return objectTraps.set.call(this, state[0], prop, value, state[0]);
6408
6703
  };
6409
6704
  function peek(draft, prop) {
@@ -6630,7 +6925,8 @@ function currentImpl(value) {
6630
6925
  // src/plugins/patches.ts
6631
6926
  function enablePatches() {
6632
6927
  const errorOffset = 16;
6633
- if (false) {}
6928
+ if (false) // removed by dead control flow
6929
+ {}
6634
6930
  const REPLACE = "replace";
6635
6931
  const ADD = "add";
6636
6932
  const REMOVE = "remove";
@@ -7105,14 +7401,16 @@ function enableMapSet() {
7105
7401
  // src/immer.ts
7106
7402
  var immer = new Immer2();
7107
7403
  var produce = immer.produce;
7108
- var produceWithPatches = immer.produceWithPatches.bind(
7404
+ var produceWithPatches = /* @__PURE__ */ (/* unused pure expression or super */ null && (immer.produceWithPatches.bind(
7109
7405
  immer
7110
- );
7111
- var setAutoFreeze = immer.setAutoFreeze.bind(immer);
7112
- var setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);
7113
- var applyPatches = immer.applyPatches.bind(immer);
7114
- var createDraft = immer.createDraft.bind(immer);
7115
- var finishDraft = immer.finishDraft.bind(immer);
7406
+ )));
7407
+ var setAutoFreeze = /* @__PURE__ */ (/* unused pure expression or super */ null && (immer.setAutoFreeze.bind(immer)));
7408
+ var setUseStrictShallowCopy = /* @__PURE__ */ (/* unused pure expression or super */ null && (immer.setUseStrictShallowCopy.bind(
7409
+ immer
7410
+ )));
7411
+ var applyPatches = /* @__PURE__ */ (/* unused pure expression or super */ null && (immer.applyPatches.bind(immer)));
7412
+ var createDraft = /* @__PURE__ */ (/* unused pure expression or super */ null && (immer.createDraft.bind(immer)));
7413
+ var finishDraft = /* @__PURE__ */ (/* unused pure expression or super */ null && (immer.finishDraft.bind(immer)));
7116
7414
  function castDraft(value) {
7117
7415
  return value;
7118
7416
  }
@@ -7222,15 +7520,10 @@ function createActionCreatorInvariantMiddleware(options = {}) {
7222
7520
  if (true) {
7223
7521
  return () => (next) => (action) => next(action);
7224
7522
  }
7225
- const {
7226
- isActionCreator: isActionCreator2 = isActionCreator
7227
- } = options;
7228
- return () => (next) => (action) => {
7229
- if (isActionCreator2(action)) {
7230
- console.warn(getMessage(action.type));
7231
- }
7232
- return next(action);
7233
- };
7523
+ // removed by dead control flow
7524
+
7525
+ // removed by dead control flow
7526
+
7234
7527
  }
7235
7528
 
7236
7529
  // src/utils.ts
@@ -7359,7 +7652,8 @@ function detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, s
7359
7652
  function createImmutableStateInvariantMiddleware(options = {}) {
7360
7653
  if (true) {
7361
7654
  return () => (next) => (action) => next(action);
7362
- } else { var stringify, getSerialize; }
7655
+ } else // removed by dead control flow
7656
+ { var stringify, getSerialize; }
7363
7657
  }
7364
7658
 
7365
7659
  // src/serializableStateInvariantMiddleware.ts
@@ -7422,7 +7716,8 @@ function isNestedFrozen(value) {
7422
7716
  function createSerializableStateInvariantMiddleware(options = {}) {
7423
7717
  if (true) {
7424
7718
  return () => (next) => (action) => next(action);
7425
- } else {}
7719
+ } else // removed by dead control flow
7720
+ {}
7426
7721
  }
7427
7722
 
7428
7723
  // src/getDefaultMiddleware.ts
@@ -7444,7 +7739,8 @@ var buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {
7444
7739
  middlewareArray.push(withExtraArgument(thunk.extraArgument));
7445
7740
  }
7446
7741
  }
7447
- if (false) {}
7742
+ if (false) // removed by dead control flow
7743
+ {}
7448
7744
  return middlewareArray;
7449
7745
  };
7450
7746
 
@@ -7543,16 +7839,20 @@ function configureStore(options) {
7543
7839
  } else {
7544
7840
  throw new Error( true ? redux_toolkit_modern_formatProdErrorMessage(1) : 0);
7545
7841
  }
7546
- if (false) {}
7842
+ if (false) // removed by dead control flow
7843
+ {}
7547
7844
  let finalMiddleware;
7548
7845
  if (typeof middleware === "function") {
7549
7846
  finalMiddleware = middleware(getDefaultMiddleware);
7550
- if (false) {}
7847
+ if (false) // removed by dead control flow
7848
+ {}
7551
7849
  } else {
7552
7850
  finalMiddleware = getDefaultMiddleware();
7553
7851
  }
7554
- if (false) {}
7555
- if (false) {}
7852
+ if (false) // removed by dead control flow
7853
+ {}
7854
+ if (false) // removed by dead control flow
7855
+ {}
7556
7856
  let finalCompose = compose;
7557
7857
  if (devTools) {
7558
7858
  finalCompose = composeWithDevTools({
@@ -7563,11 +7863,15 @@ function configureStore(options) {
7563
7863
  }
7564
7864
  const middlewareEnhancer = applyMiddleware(...finalMiddleware);
7565
7865
  const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);
7566
- if (false) {}
7866
+ if (false) // removed by dead control flow
7867
+ {}
7567
7868
  let storeEnhancers = typeof enhancers === "function" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();
7568
- if (false) {}
7569
- if (false) {}
7570
- if (false) {}
7869
+ if (false) // removed by dead control flow
7870
+ {}
7871
+ if (false) // removed by dead control flow
7872
+ {}
7873
+ if (false) // removed by dead control flow
7874
+ {}
7571
7875
  const composedEnhancer = finalCompose(...storeEnhancers);
7572
7876
  return createStore(rootReducer, preloadedState, composedEnhancer);
7573
7877
  }
@@ -7582,7 +7886,8 @@ function executeReducerBuilderCallback(builderCallback) {
7582
7886
  let defaultCaseReducer;
7583
7887
  const builder = {
7584
7888
  addCase(typeOrActionCreator, reducer) {
7585
- if (false) {}
7889
+ if (false) // removed by dead control flow
7890
+ {}
7586
7891
  const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
7587
7892
  if (!type) {
7588
7893
  throw new Error( true ? redux_toolkit_modern_formatProdErrorMessage(28) : 0);
@@ -7593,8 +7898,21 @@ function executeReducerBuilderCallback(builderCallback) {
7593
7898
  actionsMap[type] = reducer;
7594
7899
  return builder;
7595
7900
  },
7901
+ addAsyncThunk(asyncThunk, reducers) {
7902
+ if (false) // removed by dead control flow
7903
+ {}
7904
+ if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;
7905
+ if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;
7906
+ if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;
7907
+ if (reducers.settled) actionMatchers.push({
7908
+ matcher: asyncThunk.settled,
7909
+ reducer: reducers.settled
7910
+ });
7911
+ return builder;
7912
+ },
7596
7913
  addMatcher(matcher, reducer) {
7597
- if (false) {}
7914
+ if (false) // removed by dead control flow
7915
+ {}
7598
7916
  actionMatchers.push({
7599
7917
  matcher,
7600
7918
  reducer
@@ -7602,7 +7920,8 @@ function executeReducerBuilderCallback(builderCallback) {
7602
7920
  return builder;
7603
7921
  },
7604
7922
  addDefaultCase(reducer) {
7605
- if (false) {}
7923
+ if (false) // removed by dead control flow
7924
+ {}
7606
7925
  defaultCaseReducer = reducer;
7607
7926
  return builder;
7608
7927
  }
@@ -7616,7 +7935,8 @@ function isStateFunction(x) {
7616
7935
  return typeof x === "function";
7617
7936
  }
7618
7937
  function createReducer(initialState, mapOrBuilderCallback) {
7619
- if (false) {}
7938
+ if (false) // removed by dead control flow
7939
+ {}
7620
7940
  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);
7621
7941
  let getInitialState;
7622
7942
  if (isStateFunction(initialState)) {
@@ -7972,7 +8292,8 @@ function buildCreateSlice({
7972
8292
  if (!name) {
7973
8293
  throw new Error( true ? redux_toolkit_modern_formatProdErrorMessage(11) : 0);
7974
8294
  }
7975
- if (typeof process !== "undefined" && "production" === "development") {}
8295
+ if (typeof process !== "undefined" && "production" === "development") // removed by dead control flow
8296
+ {}
7976
8297
  const reducers = (typeof options.reducers === "function" ? options.reducers(buildReducerCreators()) : options.reducers) || {};
7977
8298
  const reducerNames = Object.keys(reducers);
7978
8299
  const context = {
@@ -8023,7 +8344,8 @@ function buildCreateSlice({
8023
8344
  }
8024
8345
  });
8025
8346
  function buildReducer() {
8026
- if (false) {}
8347
+ if (false) // removed by dead control flow
8348
+ {}
8027
8349
  const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];
8028
8350
  const finalCaseReducers = {
8029
8351
  ...extraReducers,
@@ -8062,7 +8384,8 @@ function buildCreateSlice({
8062
8384
  if (typeof sliceState === "undefined") {
8063
8385
  if (injected) {
8064
8386
  sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);
8065
- } else if (false) {}
8387
+ } else if (false) // removed by dead control flow
8388
+ {}
8066
8389
  }
8067
8390
  return sliceState;
8068
8391
  }
@@ -8116,7 +8439,8 @@ function wrapSelector(selector, selectState, getInitialState, injected) {
8116
8439
  if (typeof sliceState === "undefined") {
8117
8440
  if (injected) {
8118
8441
  sliceState = getInitialState();
8119
- } else if (false) {}
8442
+ } else if (false) // removed by dead control flow
8443
+ {}
8120
8444
  }
8121
8445
  return selector(sliceState, ...args);
8122
8446
  }
@@ -8303,7 +8627,8 @@ function createStateOperator(mutator) {
8303
8627
 
8304
8628
  function selectIdValue(entity, selectId) {
8305
8629
  const key = selectId(entity);
8306
- if (false) {}
8630
+ if (false) // removed by dead control flow
8631
+ {}
8307
8632
  return key;
8308
8633
  }
8309
8634
  function ensureEntitiesArray(entities) {
@@ -9145,7 +9470,8 @@ function combineSlices(...slices) {
9145
9470
  } = slice;
9146
9471
  const currentReducer = reducerMap[reducerPath];
9147
9472
  if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {
9148
- if (typeof process !== "undefined" && "production" === "development") {}
9473
+ if (typeof process !== "undefined" && "production" === "development") // removed by dead control flow
9474
+ {}
9149
9475
  return combinedReducer;
9150
9476
  }
9151
9477
  if (config.overrideExisting && currentReducer !== reducerToInject) {
@@ -9950,7 +10276,8 @@ function reselect_createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromA
9950
10276
  arguments
9951
10277
  );
9952
10278
  lastResult = memoizedResultFunc.apply(null, inputSelectorResults);
9953
- if (false) {}
10279
+ if (false) // removed by dead control flow
10280
+ {}
9954
10281
  return lastResult;
9955
10282
  }, ...finalArgsMemoizeOptions);
9956
10283
  return Object.assign(selector, {
@@ -10245,7 +10572,8 @@ function finalPropsSelectorFactory(dispatch, {
10245
10572
  const mapStateToProps = initMapStateToProps(dispatch, options);
10246
10573
  const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
10247
10574
  const mergeProps = initMergeProps(dispatch, options);
10248
- if (false) {}
10575
+ if (false) // removed by dead control flow
10576
+ {}
10249
10577
  return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
10250
10578
  }
10251
10579
 
@@ -10312,7 +10640,8 @@ function wrapMapToPropsFunc(mapToProps, methodName) {
10312
10640
  props = proxy(stateOrDispatch, ownProps);
10313
10641
  }
10314
10642
  if (false)
10315
- {}
10643
+ // removed by dead control flow
10644
+ {}
10316
10645
  return props;
10317
10646
  };
10318
10647
  return proxy;
@@ -10368,7 +10697,8 @@ function wrapMergePropsFunc(mergeProps) {
10368
10697
  hasRunOnce = true;
10369
10698
  mergedProps = nextMergedProps;
10370
10699
  if (false)
10371
- {}
10700
+ // removed by dead control flow
10701
+ {}
10372
10702
  }
10373
10703
  return mergedProps;
10374
10704
  };
@@ -10640,7 +10970,8 @@ function getContext() {
10640
10970
  realContext = compat_module.createContext(
10641
10971
  null
10642
10972
  );
10643
- if (false) {}
10973
+ if (false) // removed by dead control flow
10974
+ {}
10644
10975
  contextMap.set(compat_module.createContext, realContext);
10645
10976
  }
10646
10977
  return realContext;
@@ -10731,14 +11062,16 @@ function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
10731
11062
  // the context consumer to use
10732
11063
  context = ReactReduxContext
10733
11064
  } = {}) {
10734
- if (false) {}
11065
+ if (false) // removed by dead control flow
11066
+ {}
10735
11067
  const Context = context;
10736
11068
  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);
10737
11069
  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);
10738
11070
  const initMergeProps = mergePropsFactory(mergeProps);
10739
11071
  const shouldHandleStateChanges = Boolean(mapStateToProps);
10740
11072
  const wrapWithConnect = (WrappedComponent) => {
10741
- if (false) {}
11073
+ if (false) // removed by dead control flow
11074
+ {}
10742
11075
  const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || "Component";
10743
11076
  const displayName = `Connect(${wrappedComponentName})`;
10744
11077
  const selectorFactoryOptions = {
@@ -10763,14 +11096,16 @@ function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
10763
11096
  const ContextToUse = React.useMemo(() => {
10764
11097
  let ResultContext = Context;
10765
11098
  if (propsContext?.Consumer) {
10766
- if (false) {}
11099
+ if (false) // removed by dead control flow
11100
+ {}
10767
11101
  }
10768
11102
  return ResultContext;
10769
11103
  }, [propsContext, Context]);
10770
11104
  const contextValue = React.useContext(ContextToUse);
10771
11105
  const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
10772
11106
  const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
10773
- if (false) {}
11107
+ if (false) // removed by dead control flow
11108
+ {}
10774
11109
  const store = didStoreComeFromProps ? props.store : contextValue.store;
10775
11110
  const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;
10776
11111
  const childPropsSelector = React.useMemo(() => {
@@ -10927,7 +11262,8 @@ function Provider(providerProps) {
10927
11262
  };
10928
11263
  if (true) {
10929
11264
  return baseContextValue;
10930
- } else {}
11265
+ } else // removed by dead control flow
11266
+ {}
10931
11267
  }, [store, serverState]);
10932
11268
  const previousState = compat_module.useMemo(() => store.getState(), [store]);
10933
11269
  useIsomorphicLayoutEffect(() => {
@@ -10951,7 +11287,8 @@ var Provider_default = Provider;
10951
11287
  function createReduxContextHook(context = ReactReduxContext) {
10952
11288
  return function useReduxContext2() {
10953
11289
  const contextValue = compat_module.useContext(context);
10954
- if (false) {}
11290
+ if (false) // removed by dead control flow
11291
+ {}
10955
11292
  return contextValue;
10956
11293
  };
10957
11294
  }
@@ -10995,7 +11332,8 @@ function createSelectorHook(context = ReactReduxContext) {
10995
11332
  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);
10996
11333
  const useSelector2 = (selector, equalityFnOrOptions = {}) => {
10997
11334
  const { equalityFn = refEquality } = typeof equalityFnOrOptions === "function" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;
10998
- if (false) {}
11335
+ if (false) // removed by dead control flow
11336
+ {}
10999
11337
  const reduxContext = useReduxContext2();
11000
11338
  const { store, subscription, getServerState } = reduxContext;
11001
11339
  const firstRun = compat_module.useRef(true);
@@ -11003,7 +11341,8 @@ function createSelectorHook(context = ReactReduxContext) {
11003
11341
  {
11004
11342
  [selector.name](state) {
11005
11343
  const selected = selector(state);
11006
- if (false) {}
11344
+ if (false) // removed by dead control flow
11345
+ {}
11007
11346
  return selected;
11008
11347
  }
11009
11348
  }[selector.name],
@@ -11283,15 +11622,17 @@ const useSeamlyServiceData = key => {
11283
11622
  const useEntryTextLimit = () => {
11284
11623
  const {
11285
11624
  entryMeta: {
11625
+ active: entryType,
11286
11626
  options,
11287
11627
  optionsOverride
11288
11628
  }
11289
11629
  } = useSeamlyStateContext();
11290
- const {
11291
- limit
11292
- } = optionsOverride?.text || options?.text || {
11293
- limit: null
11294
- };
11630
+ let limit = null;
11631
+ if (entryType && typeof optionsOverride[entryType]?.limit === 'number') {
11632
+ limit = optionsOverride[entryType].limit;
11633
+ } else if (entryType && typeof options[entryType]?.limit === 'number') {
11634
+ limit = options[entryType].limit;
11635
+ }
11295
11636
  return {
11296
11637
  hasLimit: limit !== null,
11297
11638
  limit: limit !== null ? limit : null
@@ -12145,27 +12486,17 @@ const participantReducer = (participantInfo, action) => {
12145
12486
  };
12146
12487
  };
12147
12488
  const calculateNewEntryMeta = (entryMeta, channelEvent) => {
12148
- // Events originating from the client should leave the entry meta as is
12149
- if (channelEvent?.payload?.fromClient === true) {
12489
+ // Events originating from the client, and incoming events that are not messages,
12490
+ // should leave the entry meta as is.
12491
+ if (channelEvent?.payload?.fromClient === true || channelEvent?.type !== 'message') {
12150
12492
  return entryMeta;
12151
12493
  }
12152
- const entry = channelEvent?.type === 'message' ? channelEvent?.payload.translatedEntry || channelEvent?.payload.entry : {
12153
- options: undefined,
12154
- type: undefined
12155
- };
12494
+ const entry = channelEvent?.payload?.translatedEntry || channelEvent?.payload?.entry;
12156
12495
  const {
12157
12496
  blockAutoEntrySwitch
12158
12497
  } = entryMeta;
12159
12498
  const actions = channelEvent?.payload?.actions || {};
12160
12499
  const translatedActions = channelEvent?.payload?.translatedActions || {};
12161
- if (!entry) {
12162
- return {
12163
- ...entryMeta,
12164
- actions,
12165
- optionsOverride: {},
12166
- translatedActions
12167
- };
12168
- }
12169
12500
  const {
12170
12501
  type,
12171
12502
  options
@@ -12226,6 +12557,7 @@ const initialStoreState = {
12226
12557
  skiplinkTargetId: randomId(),
12227
12558
  optionsButtonId: randomId(),
12228
12559
  headerCollapseButtonId: randomId(),
12560
+ windowOpenButtonId: randomId(),
12229
12561
  serviceData: {},
12230
12562
  options: {
12231
12563
  features: {
@@ -12262,7 +12594,7 @@ const storeSlice = createSlice({
12262
12594
  type: eventType,
12263
12595
  payload
12264
12596
  } = action.payload;
12265
- const accountHasUploads = state.options.features.hasOwnProperty(featureKeys.uploads);
12597
+ const accountHasUploads = Object.prototype.hasOwnProperty.call(state.options.features, featureKeys.uploads);
12266
12598
  let newOptions = {
12267
12599
  ...state.options
12268
12600
  };
@@ -12377,18 +12709,20 @@ const storeSlice = createSlice({
12377
12709
  const historyNewEntryMeta = calculateNewEntryMeta({
12378
12710
  ...state.entryMeta,
12379
12711
  ...entry,
12380
- active: entry?.default || payloadTypes.text,
12381
- // @ts-ignore
12712
+ active: payloadTypes.text,
12713
+ // @ts-expect-error This only has part of the upload related options set
12382
12714
  options: {
12383
- ...(entry?.options ? entry.options : {})
12715
+ ...entry?.options
12384
12716
  }
12385
- }, events[events.length - 1]);
12717
+ },
12718
+ // Only events of type 'message' can change the entry options
12719
+ events.findLast(event => event.type === 'message'));
12386
12720
  let newFeatures = {
12387
12721
  ...state.options.features
12388
12722
  };
12389
12723
  // The first service message found is the 'last', as we receive them from newest to oldest.
12390
12724
  const lastServiceMessage = messages.find(m => !m.payload.fromClient && ['message', 'participant'].includes(m.type));
12391
- const newFeaturesHasUpload = newFeatures.hasOwnProperty(featureKeys.uploads);
12725
+ const newFeaturesHasUpload = Object.prototype.hasOwnProperty.call(newFeatures, featureKeys.uploads);
12392
12726
 
12393
12727
  // Check for upload enabled by entry type
12394
12728
  if (newFeaturesHasUpload && lastServiceMessage?.type === 'message') {
@@ -12534,7 +12868,7 @@ const storeSlice = createSlice({
12534
12868
  setFeatureEnabledState: (state, {
12535
12869
  payload
12536
12870
  }) => {
12537
- if (!state.options.features.hasOwnProperty(payload.key)) {
12871
+ if (!Object.prototype.hasOwnProperty.call(state.options.features, payload.key)) {
12538
12872
  return;
12539
12873
  }
12540
12874
  state.options.features[payload.key].enabled = payload.enabled;
@@ -12576,8 +12910,13 @@ const storeSlice = createSlice({
12576
12910
  setServiceEntryMetadata: (state, {
12577
12911
  payload
12578
12912
  }) => {
12579
- state.entryMeta.active = payload.default;
12580
- state.entryMeta.options = payload.options || {};
12913
+ state.entryMeta.options = {
12914
+ ...state.entryMeta.options,
12915
+ // @ts-expect-error This only has part of the upload related options set
12916
+ upload: {
12917
+ ...payload.options.upload
12918
+ }
12919
+ };
12581
12920
  state.entryMeta.optionsOverride = {};
12582
12921
  state.entryMeta.actions = {};
12583
12922
  state.entryMeta.translatedActions = {};
@@ -13058,6 +13397,11 @@ function store_createStore({
13058
13397
  return store;
13059
13398
  }
13060
13399
  const useAppDispatch = useDispatch;
13400
+ // EXTERNAL MODULE: ./node_modules/minivents/dist/minivents.commonjs.min.js
13401
+ var minivents_commonjs_min = __webpack_require__(2086);
13402
+ var minivents_commonjs_min_default = /*#__PURE__*/__webpack_require__.n(minivents_commonjs_min);
13403
+ // EXTERNAL MODULE: external "preact"
13404
+ var external_preact_ = __webpack_require__(8785);
13061
13405
  // EXTERNAL MODULE: external "preact/hooks"
13062
13406
  var hooks_ = __webpack_require__(1162);
13063
13407
  ;// ./node_modules/@ultraq/function-utils/function-utils.js
@@ -13303,8 +13647,10 @@ function split(string, separator, limit, accumulator = []) {
13303
13647
  */
13304
13648
 
13305
13649
  /**
13306
- * @callback TypeHandler
13307
- * @param {any} value
13650
+ * @typedef {(value: TValue | null | undefined, matches: string, locale: string, values: FormatValues, process: ProcessFunction) => TReturn} TypeHandler
13651
+ * @template [TValue=any]
13652
+ * @template [TReturn=any]
13653
+ * @param {TValue} value
13308
13654
  * The object which matched the key of the block being processed.
13309
13655
  * @param {string} matches
13310
13656
  * Any format options associated with the block being processed.
@@ -13316,7 +13662,7 @@ function split(string, separator, limit, accumulator = []) {
13316
13662
  * @param {ProcessFunction} process
13317
13663
  * The `process` function itself so that sub-messages can be processed by type
13318
13664
  * handlers.
13319
- * @return {any | any[]}
13665
+ * @return {TReturn}
13320
13666
  */
13321
13667
 
13322
13668
  /**
@@ -13387,9 +13733,6 @@ class MessageFormatter {
13387
13733
  }
13388
13734
  let [key, type, format] = splitFormattedArgument(block);
13389
13735
  let body = values[key];
13390
- if (body === null || body === undefined) {
13391
- body = '';
13392
- }
13393
13736
  let typeHandler = type && this.typeHandlers[type];
13394
13737
  result.push(typeHandler ?
13395
13738
  typeHandler(body, format, this.locale, values, this.process.bind(this)) :
@@ -13697,7 +14040,8 @@ const useIntersect = ({
13697
14040
  (0,hooks_.useEffect)(() => {
13698
14041
  const node = containerRef?.current;
13699
14042
  const hasIOSupport = !!window.IntersectionObserver;
13700
- if (!node && "production" === 'development') {}
14043
+ if (!node && "production" === 'development') // removed by dead control flow
14044
+ {}
13701
14045
 
13702
14046
  // Return an arrow function to have a consistent return value
13703
14047
  if (!hasIOSupport || frozen || !node || !enabled) return () => undefined;
@@ -14240,6 +14584,12 @@ const useSkiplinkTargetFocusing = () => {
14240
14584
  const skiplinkTargetId = useSkiplink();
14241
14585
  return useElementFocusingById(skiplinkTargetId);
14242
14586
  };
14587
+ const useWindowOpenButtonFocusing = () => {
14588
+ const {
14589
+ windowOpenButtonId
14590
+ } = useSeamlyStateContext();
14591
+ return useElementFocusingById(windowOpenButtonId);
14592
+ };
14243
14593
  const useFocusIfSeamlyContainedFocus = () => {
14244
14594
  const containerElementRef = useRef(null);
14245
14595
  const [seamlyContainerElement] = useSeamlyContainerElement();
@@ -14687,6 +15037,18 @@ const useSeamlyIdleDetachCountdown = () => {
14687
15037
  const {
14688
15038
  isOpen
14689
15039
  } = useVisibility();
15040
+
15041
+ // We create a ref here, and explicitly overwrite the current values, because the
15042
+ // `endCountdown` call initiated by the server has a different lifecycle from the
15043
+ // `IdleDetachWarning` component.
15044
+ const countdownState = (0,hooks_.useRef)({
15045
+ hasCountdown: false,
15046
+ wasStopped: false
15047
+ });
15048
+ countdownState.current = {
15049
+ hasCountdown,
15050
+ wasStopped: wasStopped || false
15051
+ };
14690
15052
  const {
14691
15053
  emitEvent,
14692
15054
  sendAction
@@ -14719,6 +15081,10 @@ const useSeamlyIdleDetachCountdown = () => {
14719
15081
  sendAssertiveIfOpen(`${t('idleDetachWarning.countdownTitle')} ${t('idleDetachWarning.countdownText')} ${t('idleDetachWarning.countdownTimer', delayTime)}`);
14720
15082
  }, [dispatch, emitEvent, sendAssertiveIfOpen, t]);
14721
15083
  const endCountdown = (0,hooks_.useCallback)((continueChat = undefined, isServerAction = false) => {
15084
+ const {
15085
+ hasCountdown,
15086
+ wasStopped
15087
+ } = countdownState.current;
14722
15088
  if (!hasCountdown) {
14723
15089
  return;
14724
15090
  }
@@ -14734,7 +15100,7 @@ const useSeamlyIdleDetachCountdown = () => {
14734
15100
  emitEvent('idleTimer.stop');
14735
15101
  }
14736
15102
  dispatch(clearIdleDetachCountdown());
14737
- }, [dispatch, emitEvent, hasCountdown, sendAction, sendAssertiveIfOpen, t, wasStopped]);
15103
+ }, [dispatch, emitEvent, sendAction, sendAssertiveIfOpen, t]);
14738
15104
  const decrementCountdown = (0,hooks_.useCallback)(() => {
14739
15105
  if (!remaining || remaining <= 0) {
14740
15106
  return;
@@ -14818,7 +15184,6 @@ const useSeamlyResumeConversationPrompt = () => {
14818
15184
  const useForceUpdate = () => {
14819
15185
  // This is an escape hatch mentioned in the React docs:
14820
15186
  // https://reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate
14821
- /* eslint-disable-next-line no-unused-vars */
14822
15187
  const [_, forceUpdate] = (0,hooks_.useReducer)(x => x + 1, 0);
14823
15188
  return (0,hooks_.useCallback)(() => {
14824
15189
  setTimeout(() => {
@@ -14957,7 +15322,6 @@ const MessageContainer = ({
14957
15322
  }
14958
15323
  if (modifiers) {
14959
15324
  if (typeof modifiers === 'string') {
14960
- // eslint-disable-next-line no-param-reassign
14961
15325
  modifiers = modifiers.split(' ').filter(v => v.length);
14962
15326
  }
14963
15327
  modifiers.forEach(modifier => {
@@ -14971,7 +15335,6 @@ const MessageContainer = ({
14971
15335
  classNames.push('message--has-translation');
14972
15336
  }
14973
15337
  if (isTranslated) {
14974
- // eslint-disable-next-line no-param-reassign
14975
15338
  bodyProps = {
14976
15339
  ...bodyProps,
14977
15340
  lang: locale
@@ -15022,7 +15385,7 @@ const CardComponent = ({
15022
15385
  const isMounted = (0,hooks_.useRef)(false);
15023
15386
  const CardActionComponent = action?.type === cardTypes.navigate ? 'a' : 'button';
15024
15387
  const emitCardEvent = (0,hooks_.useCallback)(() => emitEvent(`action.${actionTypes.clickCard}`, {
15025
- type: actionTypes.clickCta,
15388
+ type: actionTypes.clickCard,
15026
15389
  originMessage: id,
15027
15390
  action
15028
15391
  }), [emitEvent, id, action]);
@@ -15620,7 +15983,7 @@ const ChoicePrompt = ({
15620
15983
  child.props = {
15621
15984
  ...child.props,
15622
15985
  event: subEvent,
15623
- descriptorId,
15986
+ id: descriptorId,
15624
15987
  showTranslationToggle: false
15625
15988
  };
15626
15989
  return child;
@@ -15840,87 +16203,6 @@ const ConversationSuggestions = ({
15840
16203
  });
15841
16204
  };
15842
16205
  /* harmony default export */ const conversation_suggestions = (ConversationSuggestions);
15843
- ;// ./src/javascripts/core/ui/components/conversation/event/hooks/use-event-link-click-handler.ts
15844
-
15845
-
15846
- const useEventLinkClickHandler = ({
15847
- originMessage,
15848
- transactionId
15849
- }) => {
15850
- const {
15851
- emitEvent,
15852
- sendAction
15853
- } = use_seamly_commands();
15854
- const eventClick = e => {
15855
- if (e.target && e.target.dataset.linkId) {
15856
- const action = {
15857
- type: actionTypes.navigate,
15858
- originMessage,
15859
- transactionId,
15860
- link: {
15861
- id: e.target.dataset.linkId,
15862
- url: e.target.getAttribute('href')
15863
- }
15864
- };
15865
- sendAction(action);
15866
- emitEvent(`action.${action.type}`, action);
15867
- }
15868
- };
15869
- return eventClick;
15870
- };
15871
- /* harmony default export */ const use_event_link_click_handler = (useEventLinkClickHandler);
15872
- ;// ./src/javascripts/core/ui/components/conversation/event/cta.tsx
15873
-
15874
-
15875
-
15876
-
15877
-
15878
-
15879
-
15880
-
15881
- const Cta = ({
15882
- event
15883
- }) => {
15884
- const {
15885
- body
15886
- } = useTranslatedEventData(event);
15887
- const eventClick = use_event_link_click_handler({
15888
- originMessage: event.payload.id,
15889
- transactionId: event.payload.transactionId
15890
- });
15891
- const {
15892
- emitEvent
15893
- } = use_seamly_commands();
15894
- const descriptionId = useGeneratedId();
15895
- const onClickHandler = (0,hooks_.useCallback)(() => emitEvent(`action.${actionTypes.clickCta}`, {
15896
- type: actionTypes.clickCta,
15897
- originMessage: event.payload.id,
15898
- link: {
15899
- url: body?.buttonLink
15900
- }
15901
- }), [emitEvent, body, event]);
15902
- return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)(message_container, {
15903
- type: "cta",
15904
- event: event,
15905
- children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
15906
- className: css_className('cta__content'),
15907
- id: descriptionId,
15908
- dangerouslySetInnerHTML: body?.description ? {
15909
- __html: body.description
15910
- } : undefined,
15911
- onClick: eventClick
15912
- }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("a", {
15913
- className: css_className('button', 'button--primary'),
15914
- "aria-describedby": descriptionId,
15915
- href: body?.buttonLink,
15916
- rel: "noreferrer",
15917
- target: body?.buttonNewTab ? '_blank' : '_self',
15918
- onClick: onClickHandler,
15919
- children: body?.buttonText
15920
- })]
15921
- });
15922
- };
15923
- /* harmony default export */ const cta = (Cta);
15924
16206
  ;// ./src/javascripts/core/ui/components/conversation/event-divider.tsx
15925
16207
 
15926
16208
 
@@ -16742,7 +17024,7 @@ var isFocusable = function isFocusable(node, options) {
16742
17024
 
16743
17025
  ;// ./node_modules/focus-trap/dist/focus-trap.esm.js
16744
17026
  /*!
16745
- * focus-trap 7.6.4
17027
+ * focus-trap 7.6.5
16746
17028
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
16747
17029
  */
16748
17030
 
@@ -16796,8 +17078,8 @@ function _toConsumableArray(r) {
16796
17078
  function _toPrimitive(t, r) {
16797
17079
  if ("object" != typeof t || !t) return t;
16798
17080
  var e = t[Symbol.toPrimitive];
16799
- if (undefined !== e) {
16800
- var i = e.call(t, r || "default");
17081
+ if (void 0 !== e) {
17082
+ var i = e.call(t, r);
16801
17083
  if ("object" != typeof i) return i;
16802
17084
  throw new TypeError("@@toPrimitive must return a primitive value.");
16803
17085
  }
@@ -16811,7 +17093,7 @@ function _unsupportedIterableToArray(r, a) {
16811
17093
  if (r) {
16812
17094
  if ("string" == typeof r) return _arrayLikeToArray(r, a);
16813
17095
  var t = {}.toString.call(r).slice(8, -1);
16814
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;
17096
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
16815
17097
  }
16816
17098
  }
16817
17099
 
@@ -16846,10 +17128,10 @@ var isSelectableInput = function isSelectableInput(node) {
16846
17128
  return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';
16847
17129
  };
16848
17130
  var isEscapeEvent = function isEscapeEvent(e) {
16849
- return (e === null || e === undefined ? undefined : e.key) === 'Escape' || (e === null || e === undefined ? undefined : e.key) === 'Esc' || (e === null || e === undefined ? undefined : e.keyCode) === 27;
17131
+ return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;
16850
17132
  };
16851
17133
  var isTabEvent = function isTabEvent(e) {
16852
- return (e === null || e === undefined ? undefined : e.key) === 'Tab' || (e === null || e === undefined ? undefined : e.keyCode) === 9;
17134
+ return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;
16853
17135
  };
16854
17136
 
16855
17137
  // checks for TAB by default
@@ -16876,7 +17158,7 @@ var valueOrHandler = function valueOrHandler(value) {
16876
17158
  for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
16877
17159
  params[_key - 1] = arguments[_key];
16878
17160
  }
16879
- return typeof value === 'function' ? value.apply(undefined, params) : value;
17161
+ return typeof value === 'function' ? value.apply(void 0, params) : value;
16880
17162
  };
16881
17163
  var getActualTarget = function getActualTarget(event) {
16882
17164
  // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the
@@ -16895,8 +17177,8 @@ var internalTrapStack = [];
16895
17177
  var createFocusTrap = function createFocusTrap(elements, userOptions) {
16896
17178
  // SSR: a live trap shouldn't be created in this type of environment so this
16897
17179
  // should be safe code to execute if the `document` option isn't specified
16898
- var doc = (userOptions === null || userOptions === undefined ? undefined : userOptions.document) || document;
16899
- var trapStack = (userOptions === null || userOptions === undefined ? undefined : userOptions.trapStack) || internalTrapStack;
17180
+ var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;
17181
+ var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;
16900
17182
  var config = _objectSpread2({
16901
17183
  returnFocusOnDeactivate: true,
16902
17184
  escapeDeactivates: true,
@@ -16968,7 +17250,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
16968
17250
  * if the element isn't found.
16969
17251
  */
16970
17252
  var findContainerIndex = function findContainerIndex(element, event) {
16971
- var composedPath = typeof (event === null || event === undefined ? undefined : event.composedPath) === 'function' ? event.composedPath() : undefined;
17253
+ var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;
16972
17254
  // NOTE: search `containerGroups` because it's possible a group contains no tabbable
16973
17255
  // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)
16974
17256
  // and we still need to find the element in there
@@ -16979,7 +17261,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
16979
17261
  // web components if the `tabbableOptions.getShadowRoot` option was used for
16980
17262
  // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
16981
17263
  // look inside web components even if open)
16982
- composedPath === null || composedPath === undefined ? undefined : composedPath.includes(container)) || tabbableNodes.find(function (node) {
17264
+ composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {
16983
17265
  return node === element;
16984
17266
  });
16985
17267
  });
@@ -17006,12 +17288,12 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
17006
17288
  var getNodeForOption = function getNodeForOption(optionName) {
17007
17289
  var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
17008
17290
  _ref2$hasFallback = _ref2.hasFallback,
17009
- hasFallback = _ref2$hasFallback === undefined ? false : _ref2$hasFallback,
17291
+ hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback,
17010
17292
  _ref2$params = _ref2.params,
17011
- params = _ref2$params === undefined ? [] : _ref2$params;
17293
+ params = _ref2$params === void 0 ? [] : _ref2$params;
17012
17294
  var optionValue = config[optionName];
17013
17295
  if (typeof optionValue === 'function') {
17014
- optionValue = optionValue.apply(undefined, _toConsumableArray(params));
17296
+ optionValue = optionValue.apply(void 0, _toConsumableArray(params));
17015
17297
  }
17016
17298
  if (optionValue === true) {
17017
17299
  optionValue = undefined; // use default value
@@ -17227,7 +17509,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
17227
17509
  var target = _ref3.target,
17228
17510
  event = _ref3.event,
17229
17511
  _ref3$isBackward = _ref3.isBackward,
17230
- isBackward = _ref3$isBackward === undefined ? false : _ref3$isBackward;
17512
+ isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;
17231
17513
  target = target || getActualTarget(event);
17232
17514
  updateTabbableNodes();
17233
17515
  var destinationNode = null;
@@ -17608,15 +17890,15 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
17608
17890
  }
17609
17891
  state.active = true;
17610
17892
  state.paused = false;
17611
- state.nodeFocusedBeforeActivation = doc.activeElement;
17612
- onActivate === null || onActivate === undefined || onActivate();
17893
+ state.nodeFocusedBeforeActivation = _getActiveElement(doc);
17894
+ onActivate === null || onActivate === void 0 || onActivate();
17613
17895
  var finishActivation = function finishActivation() {
17614
17896
  if (checkCanFocusTrap) {
17615
17897
  updateTabbableNodes();
17616
17898
  }
17617
17899
  addListeners();
17618
17900
  updateObservedNodes();
17619
- onPostActivate === null || onPostActivate === undefined || onPostActivate();
17901
+ onPostActivate === null || onPostActivate === void 0 || onPostActivate();
17620
17902
  };
17621
17903
  if (checkCanFocusTrap) {
17622
17904
  checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);
@@ -17645,13 +17927,13 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
17645
17927
  var onPostDeactivate = getOption(options, 'onPostDeactivate');
17646
17928
  var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
17647
17929
  var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
17648
- onDeactivate === null || onDeactivate === undefined || onDeactivate();
17930
+ onDeactivate === null || onDeactivate === void 0 || onDeactivate();
17649
17931
  var finishDeactivation = function finishDeactivation() {
17650
17932
  delay(function () {
17651
17933
  if (returnFocus) {
17652
17934
  _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
17653
17935
  }
17654
- onPostDeactivate === null || onPostDeactivate === undefined || onPostDeactivate();
17936
+ onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();
17655
17937
  });
17656
17938
  };
17657
17939
  if (returnFocus && checkCanReturnFocus) {
@@ -17705,18 +17987,18 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
17705
17987
  if (paused) {
17706
17988
  var onPause = getOption(options, 'onPause');
17707
17989
  var onPostPause = getOption(options, 'onPostPause');
17708
- onPause === null || onPause === undefined || onPause();
17990
+ onPause === null || onPause === void 0 || onPause();
17709
17991
  removeListeners();
17710
17992
  updateObservedNodes();
17711
- onPostPause === null || onPostPause === undefined || onPostPause();
17993
+ onPostPause === null || onPostPause === void 0 || onPostPause();
17712
17994
  } else {
17713
17995
  var onUnpause = getOption(options, 'onUnpause');
17714
17996
  var onPostUnpause = getOption(options, 'onPostUnpause');
17715
- onUnpause === null || onUnpause === undefined || onUnpause();
17997
+ onUnpause === null || onUnpause === void 0 || onUnpause();
17716
17998
  updateTabbableNodes();
17717
17999
  addListeners();
17718
18000
  updateObservedNodes();
17719
- onPostUnpause === null || onPostUnpause === undefined || onPostUnpause();
18001
+ onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();
17720
18002
  }
17721
18003
  return this;
17722
18004
  }
@@ -18021,6 +18303,35 @@ const Participant = ({
18021
18303
  });
18022
18304
  };
18023
18305
  /* harmony default export */ const participant = (Participant);
18306
+ ;// ./src/javascripts/core/ui/components/conversation/event/hooks/use-event-link-click-handler.ts
18307
+
18308
+
18309
+ const useEventLinkClickHandler = ({
18310
+ originMessage,
18311
+ transactionId
18312
+ }) => {
18313
+ const {
18314
+ emitEvent,
18315
+ sendAction
18316
+ } = use_seamly_commands();
18317
+ const eventClick = e => {
18318
+ if (e.target && e.target.dataset.linkId) {
18319
+ const action = {
18320
+ type: actionTypes.navigate,
18321
+ originMessage,
18322
+ transactionId,
18323
+ link: {
18324
+ id: e.target.dataset.linkId,
18325
+ url: e.target.getAttribute('href')
18326
+ }
18327
+ };
18328
+ sendAction(action);
18329
+ emitEvent(`action.${action.type}`, action);
18330
+ }
18331
+ };
18332
+ return eventClick;
18333
+ };
18334
+ /* harmony default export */ const use_event_link_click_handler = (useEventLinkClickHandler);
18024
18335
  ;// ./src/javascripts/core/ui/components/conversation/event/splash.tsx
18025
18336
 
18026
18337
 
@@ -18047,7 +18358,6 @@ const Splash = ({
18047
18358
  ...props,
18048
18359
  bodyProps: {
18049
18360
  dangerouslySetInnerHTML: {
18050
- // @ts-ignore
18051
18361
  __html: body?.text || ''
18052
18362
  }
18053
18363
  }
@@ -18143,7 +18453,7 @@ const useImageFromStorage = currentFileId => {
18143
18453
  if (isProcessingImg) return PROCESSING_IMAGE;
18144
18454
  try {
18145
18455
  return sessionStorage.getItem(`image-${currentFileId}`);
18146
- } catch (error) {
18456
+ } catch (_error) {
18147
18457
  return undefined;
18148
18458
  }
18149
18459
  }, [currentFileId, processingFileUploads]);
@@ -18314,7 +18624,6 @@ const Video = ({
18314
18624
 
18315
18625
 
18316
18626
 
18317
-
18318
18627
  const eventTypeMapping = {
18319
18628
  message: {
18320
18629
  choice_prompt: choice_prompt,
@@ -18323,7 +18632,6 @@ const eventTypeMapping = {
18323
18632
  splash: splash,
18324
18633
  video: video,
18325
18634
  upload: upload,
18326
- cta: cta,
18327
18635
  carousel: carousel_message,
18328
18636
  card: card_message
18329
18637
  },
@@ -18566,28 +18874,30 @@ const SeamlyEventSubscriber = () => {
18566
18874
  }
18567
18875
  break;
18568
18876
  case 'service_attach':
18569
- const {
18570
- service: {
18571
- name,
18572
- settings: {
18573
- proactiveMessages: {
18574
- enabled
18877
+ {
18878
+ const {
18879
+ service: {
18880
+ name,
18881
+ settings: {
18882
+ proactiveMessages: {
18883
+ enabled
18884
+ },
18885
+ entry
18575
18886
  },
18576
- entry
18577
- },
18578
- sessionId
18579
- }
18580
- } = event.payload;
18581
- dispatch(setProactiveMessages(enabled || false));
18582
- if (name) emitEvent('system.serviceChanged', name);
18583
- if (sessionId) dispatch(setActiveService(sessionId));
18584
- dispatch(setServiceEntryMetadata(entry));
18585
- dispatch(updateFeatures({
18586
- uploads: {
18587
- enabled: entry.options?.upload?.enabled || false
18588
- }
18589
- }));
18590
- break;
18887
+ sessionId
18888
+ }
18889
+ } = event.payload;
18890
+ dispatch(setProactiveMessages(enabled || false));
18891
+ if (name) emitEvent('system.serviceChanged', name);
18892
+ if (sessionId) dispatch(setActiveService(sessionId));
18893
+ dispatch(setServiceEntryMetadata(entry));
18894
+ dispatch(updateFeatures({
18895
+ uploads: {
18896
+ enabled: entry.options?.upload?.enabled || false
18897
+ }
18898
+ }));
18899
+ break;
18900
+ }
18591
18901
  case 'context':
18592
18902
  if (event.payload.contentLocale && event.payload.userLocale) {
18593
18903
  dispatch(setLocale(event.payload.userLocale));
@@ -18601,7 +18911,6 @@ const SeamlyEventSubscriber = () => {
18601
18911
  case 'image':
18602
18912
  case 'upload':
18603
18913
  case 'video':
18604
- case 'cta':
18605
18914
  case 'custom':
18606
18915
  case 'carousel':
18607
18916
  case 'card':
@@ -18641,26 +18950,30 @@ const SeamlyEventSubscriber = () => {
18641
18950
  case 'error':
18642
18951
  switch (event.payload.type) {
18643
18952
  case 'find_conversation':
18644
- const seamlySessionExpiredError = new SeamlySessionExpiredError(event);
18645
- dispatch(setInterrupt({
18646
- name: seamlySessionExpiredError.name,
18647
- action: seamlySessionExpiredError.action,
18648
- message: seamlySessionExpiredError.message,
18649
- originalEvent: seamlySessionExpiredError.originalEvent,
18650
- originalError: seamlySessionExpiredError.originalError
18651
- }));
18652
- break;
18953
+ {
18954
+ const seamlySessionExpiredError = new SeamlySessionExpiredError(event);
18955
+ dispatch(setInterrupt({
18956
+ name: seamlySessionExpiredError.name,
18957
+ action: seamlySessionExpiredError.action,
18958
+ message: seamlySessionExpiredError.message,
18959
+ originalEvent: seamlySessionExpiredError.originalEvent,
18960
+ originalError: seamlySessionExpiredError.originalError
18961
+ }));
18962
+ break;
18963
+ }
18653
18964
  case 'conversation':
18654
- const seamlyGeneralError = new SeamlyGeneralError(event);
18655
- dispatch(setInterrupt({
18656
- name: seamlyGeneralError.name,
18657
- message: seamlyGeneralError.message,
18658
- langKey: seamlyGeneralError.langKey,
18659
- originalEvent: seamlyGeneralError.originalEvent,
18660
- originalError: seamlyGeneralError.originalError,
18661
- action: seamlyGeneralError.action
18662
- }));
18663
- break;
18965
+ {
18966
+ const seamlyGeneralError = new SeamlyGeneralError(event);
18967
+ dispatch(setInterrupt({
18968
+ name: seamlyGeneralError.name,
18969
+ message: seamlyGeneralError.message,
18970
+ langKey: seamlyGeneralError.langKey,
18971
+ originalEvent: seamlyGeneralError.originalEvent,
18972
+ originalError: seamlyGeneralError.originalError,
18973
+ action: seamlyGeneralError.action
18974
+ }));
18975
+ break;
18976
+ }
18664
18977
  }
18665
18978
  }
18666
18979
  return event;
@@ -18686,7 +18999,7 @@ const SeamlyEventSubscriber = () => {
18686
18999
  if (events && 'service' in events) {
18687
19000
  dispatch(setEvents(events));
18688
19001
  }
18689
- } catch (e) {
19002
+ } catch (_e) {
18690
19003
  // nothing to do,
18691
19004
  }
18692
19005
  }
@@ -18774,7 +19087,7 @@ const SeamlyFileUpload = ({
18774
19087
  const newDataUri = resizeImage(img);
18775
19088
  try {
18776
19089
  sessionStorage.setItem(`image-${fileId}`, newDataUri);
18777
- } catch (error) {
19090
+ } catch (_error) {
18778
19091
  // Nothing to do!
18779
19092
  } finally {
18780
19093
  dispatch(doneProcessingImage(fileId));
@@ -18792,7 +19105,6 @@ const SeamlyFileUpload = ({
18792
19105
  id,
18793
19106
  transactionId,
18794
19107
  occurredAt,
18795
- // @ts-ignore
18796
19108
  body: {
18797
19109
  contentType,
18798
19110
  filename,
@@ -18847,8 +19159,6 @@ const useInterval = (callback, delay) => {
18847
19159
  (0,hooks_.useEffect)(() => {
18848
19160
  savedCallback.current = callback;
18849
19161
  }, [callback]);
18850
-
18851
- /* eslint-disable-next-line consistent-return */
18852
19162
  (0,hooks_.useEffect)(() => {
18853
19163
  function tick() {
18854
19164
  savedCallback.current();
@@ -19499,9 +19809,16 @@ const useEntryTextTranslation = controlName => {
19499
19809
  } = useCharacterLimit(controlName);
19500
19810
  const {
19501
19811
  entryMeta: {
19812
+ active: entryType,
19502
19813
  optionsOverride
19503
19814
  }
19504
19815
  } = useSeamlyStateContext();
19816
+ let labelOverride = null;
19817
+ let placeholderOverride = null;
19818
+ if (entryType && optionsOverride && typeof optionsOverride[entryType] === 'object') {
19819
+ labelOverride = optionsOverride[entryType].label;
19820
+ placeholderOverride = optionsOverride[entryType].placeholder;
19821
+ }
19505
19822
  const {
19506
19823
  alwaysShowEntryLabel
19507
19824
  } = useConfig();
@@ -19510,15 +19827,15 @@ const useEntryTextTranslation = controlName => {
19510
19827
  } = useI18n();
19511
19828
  const placeholder = (0,hooks_.useMemo)(() => t('input.inputPlaceholder', {
19512
19829
  hasLimit: hasCharacterLimit,
19513
- text: optionsOverride?.text?.placeholder || t('input.inputPlaceholderText'),
19830
+ text: placeholderOverride || t('input.inputPlaceholderText'),
19514
19831
  limit: hasCharacterLimit ? characterLimit : null
19515
- }), [t, hasCharacterLimit, characterLimit, optionsOverride?.text?.placeholder]);
19832
+ }), [t, hasCharacterLimit, characterLimit, placeholderOverride]);
19516
19833
  const label = (0,hooks_.useMemo)(() => t('input.inputLabel', {
19517
- hasLimit: !optionsOverride?.text?.label ? hasCharacterLimit : false,
19518
- text: optionsOverride?.text?.label || t('input.inputLabelText'),
19519
- limit: !optionsOverride?.text?.label && hasCharacterLimit ? characterLimit : null
19520
- }), [t, hasCharacterLimit, characterLimit, optionsOverride?.text?.label]);
19521
- const labelClass = (0,hooks_.useMemo)(() => alwaysShowEntryLabel === true || optionsOverride?.text?.label ? 'label' : 'visually-hidden', [alwaysShowEntryLabel, optionsOverride?.text?.label]);
19834
+ hasLimit: !labelOverride ? hasCharacterLimit : false,
19835
+ text: labelOverride || t('input.inputLabelText'),
19836
+ limit: !labelOverride && hasCharacterLimit ? characterLimit : null
19837
+ }), [t, hasCharacterLimit, characterLimit, labelOverride]);
19838
+ const labelClass = (0,hooks_.useMemo)(() => alwaysShowEntryLabel === true || labelOverride ? 'label' : 'visually-hidden', [alwaysShowEntryLabel, labelOverride]);
19522
19839
  return {
19523
19840
  placeholder,
19524
19841
  label,
@@ -19794,13 +20111,15 @@ const Conversation = () => {
19794
20111
  className: css_className('chat__body'),
19795
20112
  children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("div", {
19796
20113
  className: css_className('conversation__container'),
19797
- children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(privacy_disclaimer, {}), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("ol", {
19798
- className: css_className('conversation'),
20114
+ children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(privacy_disclaimer, {}), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
19799
20115
  role: "log",
19800
20116
  "aria-label": t('chat.srLabel'),
19801
- children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(component_filter, {
19802
- children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(Events, {})
19803
- }), debouncedIsLoading ? /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(loader, {}) : null, /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(AbortTransactionButton, {})]
20117
+ children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("ol", {
20118
+ className: css_className('conversation'),
20119
+ children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(component_filter, {
20120
+ children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(Events, {})
20121
+ }), debouncedIsLoading ? /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(loader, {}) : null, /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(AbortTransactionButton, {})]
20122
+ })
19804
20123
  })]
19805
20124
  })
19806
20125
  })]
@@ -20128,10 +20447,11 @@ const Chat = (0,compat_namespaceObject.forwardRef)(({
20128
20447
  className: givenClassName = ''
20129
20448
  }, forwardedRef) => {
20130
20449
  const {
20450
+ closeChat,
20131
20451
  isOpen,
20132
- isVisible,
20133
- setVisibility
20452
+ isVisible
20134
20453
  } = useVisibility();
20454
+ const focusWindowOpenButton = useWindowOpenButtonFocusing();
20135
20455
  const {
20136
20456
  namespace,
20137
20457
  layoutMode
@@ -20158,9 +20478,8 @@ const Chat = (0,compat_namespaceObject.forwardRef)(({
20158
20478
  }
20159
20479
  const onKeyDownHandler = e => {
20160
20480
  if (e.code && e.code === 'Escape' || e.keyCode === 27) if (!isInline && isOpen) {
20161
- setVisibility({
20162
- visibility: visibilityStates.minimized
20163
- });
20481
+ closeChat();
20482
+ focusWindowOpenButton();
20164
20483
  }
20165
20484
  };
20166
20485
  return isVisible && /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("section", {
@@ -20173,7 +20492,7 @@ const Chat = (0,compat_namespaceObject.forwardRef)(({
20173
20492
  children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("h2", {
20174
20493
  className: css_className('chat__title', 'visually-hidden'),
20175
20494
  id: headingId,
20176
- children: t('chat.srLabel')
20495
+ children: t('window.srModalLayoutLabel')
20177
20496
  }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
20178
20497
  className: css_className('chat-wrapper'),
20179
20498
  children: children
@@ -20787,15 +21106,13 @@ const validateFileSize = (fileList, maxSize) => {
20787
21106
  return isValid;
20788
21107
  };
20789
21108
  const fileListObjectIsNotEmpty = fileListObj => !!fileListObj?.length;
20790
-
20791
- /* eslint-disable no-control-regex */
20792
21109
  const isEmailString = val => {
20793
- 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;
21110
+ const regex =
21111
+ // eslint-disable-next-line no-control-regex
21112
+ /^(?:[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;
20794
21113
  const trimmedVal = val && val.trim();
20795
21114
  return !!(trimmedVal && trimmedVal.match(regex));
20796
21115
  };
20797
- /* eslint-enable no-control-regex */
20798
-
20799
21116
  const isNotEmptyString = val => !!val;
20800
21117
  ;// ./src/javascripts/core/ui/components/form-controls/form.tsx
20801
21118
 
@@ -21218,12 +21535,8 @@ const OptionsButton = () => {
21218
21535
  }
21219
21536
  return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("div", {
21220
21537
  className: css_className('options__container'),
21221
- onKeyDown: onMainKeyDownHandler
21222
- // eslint-disable-next-line react/no-unknown-property
21223
- ,
21224
- onFocusOut: onFocusOutHandler
21225
- // eslint-disable-next-line react/no-unknown-property
21226
- ,
21538
+ onKeyDown: onMainKeyDownHandler,
21539
+ onFocusOut: onFocusOutHandler,
21227
21540
  onFocusIn: onFocusInHandler,
21228
21541
  children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(in_out_transition, {
21229
21542
  transitionStartState: transitionStartStates.notRendered,
@@ -22392,6 +22705,7 @@ const UploadToggle = () => {
22392
22705
  "aria-disabled": !showUploadButton,
22393
22706
  type: "button",
22394
22707
  onClick: showUploadButton ? onClickHandler : undefined,
22708
+ tabIndex: !showUploadButton ? -1 : undefined,
22395
22709
  children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(layout_icon, {
22396
22710
  name: "file",
22397
22711
  size: "32",
@@ -22479,9 +22793,15 @@ const EntryContainer = () => {
22479
22793
 
22480
22794
  // Check if the active element is inside this container and save it.
22481
22795
  containedFocus.current = !!(entryContainer.current && entryContainer.current.contains(document.activeElement));
22482
- const EntryComponent = entryComponents[renderEntry];
22796
+
22797
+ // Everything other than `text` and `upload` will fallback to `TextEntry` for now.
22798
+ // This is also done for `choice_prompt`, see comment above `allowManualInput` below.
22799
+ // At a later stage we could implement components like `DateTime` or `PhoneNumber`.
22800
+ const EntryComponent = entryComponents[renderEntry] || TextEntry;
22801
+
22483
22802
  // Currently we do not have an actual ChoicePrompt entry component.
22484
- // Once we do, this property should be moved to that component instead.
22803
+ // If we ever do, this property should be moved to that component instead.
22804
+ // The current ChoicePrompt component is only responsible for the rendering of the buttons/choose again option.
22485
22805
  const {
22486
22806
  allowManualInput = true
22487
22807
  } = activeEntryOptions;
@@ -22502,6 +22822,8 @@ const EntryContainer = () => {
22502
22822
 
22503
22823
 
22504
22824
 
22825
+
22826
+
22505
22827
  const CollapseButton = () => {
22506
22828
  const {
22507
22829
  t
@@ -22513,10 +22835,15 @@ const CollapseButton = () => {
22513
22835
  const {
22514
22836
  isWindow
22515
22837
  } = useSeamlyLayoutMode();
22838
+ const focusWindowOpenButton = useWindowOpenButtonFocusing();
22839
+ const handleClick = (0,hooks_.useCallback)(() => {
22840
+ closeChat();
22841
+ focusWindowOpenButton();
22842
+ }, [closeChat, focusWindowOpenButton]);
22516
22843
  return isOpen && isWindow ? /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("button", {
22517
22844
  type: "button",
22518
22845
  className: css_className('button', 'collapse-button'),
22519
- onClick: closeChat,
22846
+ onClick: handleClick,
22520
22847
  children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(layout_icon, {
22521
22848
  name: "chevronDown",
22522
22849
  size: "32",
@@ -22761,6 +23088,7 @@ function ContinueChatMessages() {
22761
23088
 
22762
23089
 
22763
23090
 
23091
+
22764
23092
  const ButtonIcon = () => {
22765
23093
  const startChatIcon = useStartChatIcon();
22766
23094
  const currentAgent = useSeamlyCurrentAgent();
@@ -22789,6 +23117,9 @@ const WindowOpenButton = ({
22789
23117
  const {
22790
23118
  isOpen
22791
23119
  } = useVisibility();
23120
+ const {
23121
+ windowOpenButtonId
23122
+ } = useSeamlyStateContext();
22792
23123
  const count = useSeamlyUnreadCount();
22793
23124
  const handleClick = (0,hooks_.useCallback)(() => {
22794
23125
  onClick();
@@ -22798,10 +23129,12 @@ const WindowOpenButton = ({
22798
23129
  isActive: !isOpen,
22799
23130
  transitionStartState: transitionStartStates.rendered,
22800
23131
  children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("button", {
23132
+ type: "button",
22801
23133
  className: css_className('window-open-button'),
22802
23134
  "aria-label": ariaLabel,
22803
- "aria-hidden": isOpen,
22804
23135
  onClick: handleClick,
23136
+ inert: isOpen || undefined,
23137
+ id: windowOpenButtonId,
22805
23138
  children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(in_out_transition, {
22806
23139
  isActive: !!count,
22807
23140
  transitionStartState: transitionStartStates.notRendered,
@@ -22906,9 +23239,7 @@ const useNotification = () => {
22906
23239
  requestPermission();
22907
23240
  }
22908
23241
  }, [permission, proactiveMessages, requestPermission]);
22909
- const sendNotification = (0,hooks_.useCallback)(
22910
- // eslint-disable-next-line no-undef
22911
- async (title, options) => {
23242
+ const sendNotification = (0,hooks_.useCallback)(async (title, options) => {
22912
23243
  if (!showNotifications || !hasNotificationSupport) return;
22913
23244
  if (permission === 'default') {
22914
23245
  requestPermission();
@@ -23226,7 +23557,6 @@ class ExternalApi {
23226
23557
  this.context = {};
23227
23558
  }
23228
23559
  push(...actionObjects) {
23229
- // eslint-disable-next-line no-param-reassign
23230
23560
  actionObjects = actionObjects.filter(isActionObject).map(fixActionObjectArgs);
23231
23561
  if (actionObjects.length) {
23232
23562
  this._waitingActions.push(...actionObjects);
@@ -23269,35 +23599,41 @@ class ExternalApi {
23269
23599
  }
23270
23600
  switch (action) {
23271
23601
  case 'setTopic':
23272
- const {
23273
- name
23274
- } = args;
23275
- if (name) {
23276
- this.context.topic = name;
23602
+ {
23603
+ const {
23604
+ name
23605
+ } = args;
23606
+ if (name) {
23607
+ this.context.topic = name;
23608
+ }
23609
+ return true;
23277
23610
  }
23278
- return true;
23279
23611
  // Deprecated.
23280
23612
  case 'setTranslation':
23281
- const {
23282
- enabled,
23283
- locale
23284
- } = args;
23285
- if (!!enabled && locale) {
23286
- this.context.userLocale = locale;
23287
- this.context.source = sourceTypes.windowApi;
23613
+ {
23614
+ const {
23615
+ enabled,
23616
+ locale
23617
+ } = args;
23618
+ if (!!enabled && locale) {
23619
+ this.context.userLocale = locale;
23620
+ this.context.source = sourceTypes.windowApi;
23621
+ }
23622
+ return true;
23288
23623
  }
23289
- return true;
23290
23624
  case 'setContext':
23291
- const {
23292
- userLocale,
23293
- contentLocale
23294
- } = args;
23295
- this.context.userLocale = userLocale;
23296
- this.context.contentLocale = contentLocale;
23297
- if (userLocale && userLocale != this.appConfig?.userLocale) {
23298
- this.context.source = sourceTypes.windowApi;
23625
+ {
23626
+ const {
23627
+ userLocale,
23628
+ contentLocale
23629
+ } = args;
23630
+ this.context.userLocale = userLocale;
23631
+ this.context.contentLocale = contentLocale;
23632
+ if (userLocale && userLocale != this.appConfig?.userLocale) {
23633
+ this.context.source = sourceTypes.windowApi;
23634
+ }
23635
+ return true;
23299
23636
  }
23300
- return true;
23301
23637
  case 'setVariables':
23302
23638
  if (Object.keys(args).length > 0) {
23303
23639
  this.context.variables = {
@@ -23377,7 +23713,6 @@ class ExternalApi {
23377
23713
  });
23378
23714
  } else {
23379
23715
  if (typeof instance === 'string') {
23380
- // eslint-disable-next-line no-param-reassign
23381
23716
  instance = this._instances[instance];
23382
23717
  }
23383
23718
  if (instance) {
@@ -23386,8 +23721,6 @@ class ExternalApi {
23386
23721
  }
23387
23722
  }
23388
23723
  }
23389
-
23390
- // eslint-disable-next-line class-methods-use-this
23391
23724
  getUserConfig(userConfig = {}) {
23392
23725
  return userConfig;
23393
23726
  }
@@ -23490,10 +23823,9 @@ function appStore() {
23490
23823
  get: () => {
23491
23824
  // For Android we can retrieve data directly over the bridge
23492
23825
  // iOS and ReactNative will write the data on the window.seamlyBridgeData object on init
23493
- if (window.hasOwnProperty('SeamlyBridge')) {
23826
+ if (Object.prototype.hasOwnProperty.call(window, 'SeamlyBridge')) {
23494
23827
  try {
23495
- // eslint-disable-next-line no-undef
23496
- return JSON.parse(SeamlyBridge.getData());
23828
+ return JSON.parse(window.SeamlyBridge.getData());
23497
23829
  } catch (e) {
23498
23830
  console.error('Unexpected or malformed data retrieved from bridge', e);
23499
23831
  // Android should always return unchanged JSON data.
@@ -23510,9 +23842,8 @@ function appStore() {
23510
23842
  }
23511
23843
 
23512
23844
  // Android
23513
- if (window.hasOwnProperty('SeamlyBridge')) {
23514
- // eslint-disable-next-line no-undef
23515
- SeamlyBridge.setData(JSON.stringify(newData));
23845
+ if (Object.prototype.hasOwnProperty.call(window, 'SeamlyBridge')) {
23846
+ window.SeamlyBridge.setData(JSON.stringify(newData));
23516
23847
  }
23517
23848
 
23518
23849
  // React Native
@@ -23784,6 +24115,9 @@ const Header = ({
23784
24115
 
23785
24116
 
23786
24117
 
24118
+
24119
+
24120
+
23787
24121
  const getUrlSearchParams = () => {
23788
24122
  const params = new URLSearchParams(window.location.search);
23789
24123
  return Array.from(params.entries()).reduce((acc, [key, val]) => ({