@seamly/web-ui 22.2.0 → 22.3.0-beta.2

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 (61) hide show
  1. package/build/dist/lib/components.js +449 -291
  2. package/build/dist/lib/components.js.map +1 -1
  3. package/build/dist/lib/components.min.js +1 -1
  4. package/build/dist/lib/components.min.js.map +1 -1
  5. package/build/dist/lib/hooks.js +367 -177
  6. package/build/dist/lib/hooks.js.map +1 -1
  7. package/build/dist/lib/hooks.min.js +1 -1
  8. package/build/dist/lib/hooks.min.js.map +1 -1
  9. package/build/dist/lib/index.debug.js +76 -54
  10. package/build/dist/lib/index.debug.js.map +1 -1
  11. package/build/dist/lib/index.debug.min.js +1 -1
  12. package/build/dist/lib/index.debug.min.js.LICENSE.txt +16 -8
  13. package/build/dist/lib/index.debug.min.js.map +1 -1
  14. package/build/dist/lib/index.js +342 -193
  15. package/build/dist/lib/index.js.map +1 -1
  16. package/build/dist/lib/index.min.js +1 -1
  17. package/build/dist/lib/index.min.js.map +1 -1
  18. package/build/dist/lib/standalone.js +350 -194
  19. package/build/dist/lib/standalone.js.map +1 -1
  20. package/build/dist/lib/standalone.min.js +1 -1
  21. package/build/dist/lib/standalone.min.js.map +1 -1
  22. package/build/dist/lib/style-guide.js +365 -194
  23. package/build/dist/lib/style-guide.js.map +1 -1
  24. package/build/dist/lib/style-guide.min.js +1 -1
  25. package/build/dist/lib/style-guide.min.js.map +1 -1
  26. package/build/dist/lib/styles.css +1 -1
  27. package/build/dist/lib/utils.js +504 -324
  28. package/build/dist/lib/utils.js.map +1 -1
  29. package/build/dist/lib/utils.min.js +1 -1
  30. package/build/dist/lib/utils.min.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/javascripts/api/errors/seamly-api-error.ts +0 -1
  33. package/src/javascripts/api/index.ts +16 -8
  34. package/src/javascripts/domains/app/actions.ts +8 -3
  35. package/src/javascripts/domains/interrupt/selectors.ts +3 -2
  36. package/src/javascripts/domains/interrupt/slice.ts +2 -0
  37. package/src/javascripts/domains/redux/create-debounced-async-thunk.ts +109 -0
  38. package/src/javascripts/domains/redux/redux.types.ts +2 -1
  39. package/src/javascripts/domains/store/actions.ts +38 -0
  40. package/src/javascripts/domains/translations/components/options-dialog/translation-option.tsx +1 -1
  41. package/src/javascripts/domains/visibility/actions.ts +4 -1
  42. package/src/javascripts/style-guide/states.js +26 -1
  43. package/src/javascripts/ui/components/chat-status/chat-status-action.tsx +2 -2
  44. package/src/javascripts/ui/components/conversation/event/{card-component.js → card-component.tsx} +6 -4
  45. package/src/javascripts/ui/components/conversation/event/carousel-component/components/controls.js +2 -2
  46. package/src/javascripts/ui/components/conversation/event/choice-prompt.js +1 -1
  47. package/src/javascripts/ui/components/conversation/event/event-participant.js +1 -1
  48. package/src/javascripts/ui/components/conversation/event/image-lightbox.js +1 -1
  49. package/src/javascripts/ui/components/conversation/event-divider.js +6 -1
  50. package/src/javascripts/ui/components/core/seamly-event-subscriber.ts +14 -30
  51. package/src/javascripts/ui/components/form-controls/error.js +1 -1
  52. package/src/javascripts/ui/components/form-controls/file-input.js +1 -1
  53. package/src/javascripts/ui/components/layout/agent-info.js +1 -1
  54. package/src/javascripts/ui/components/layout/{icon.js → icon.tsx} +74 -37
  55. package/src/javascripts/ui/components/options/options-button.js +1 -1
  56. package/src/javascripts/ui/components/suggestions/suggestions-item.js +1 -1
  57. package/src/javascripts/ui/components/view/window-view/window-open-button.js +9 -4
  58. package/src/javascripts/ui/components/widgets/lightbox.js +1 -1
  59. package/src/javascripts/ui/hooks/use-session-expired-command.ts +31 -2
  60. package/src/stylesheets/5-components/_message-card.scss +4 -3
  61. package/src/stylesheets/5-components/_message-count.scss +11 -9
@@ -2700,21 +2700,88 @@ const defaultConfig = {
2700
2700
 
2701
2701
  /***/ }),
2702
2702
 
2703
- /***/ 9201:
2703
+ /***/ 526:
2704
2704
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2705
2705
 
2706
2706
  "use strict";
2707
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2708
- /* harmony export */ Z: () => (/* binding */ initializeApp),
2709
- /* harmony export */ m: () => (/* binding */ resetApp)
2710
- /* harmony export */ });
2711
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9639);
2712
- /* harmony import */ var api_errors_seamly_session_expired_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6821);
2713
- /* harmony import */ var api_errors_seamly_unavailable_error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7265);
2714
- /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1149);
2715
- /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257);
2716
- /* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5409);
2717
- /* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9586);
2707
+
2708
+ // EXPORTS
2709
+ __webpack_require__.d(__webpack_exports__, {
2710
+ Z: () => (/* binding */ initializeApp),
2711
+ m: () => (/* binding */ resetApp)
2712
+ });
2713
+
2714
+ // EXTERNAL MODULE: ./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js + 2 modules
2715
+ var redux_toolkit_esm = __webpack_require__(9639);
2716
+ // EXTERNAL MODULE: ./src/javascripts/api/errors/seamly-session-expired-error.js
2717
+ var seamly_session_expired_error = __webpack_require__(6821);
2718
+ // EXTERNAL MODULE: ./src/javascripts/api/errors/seamly-unavailable-error.js
2719
+ var seamly_unavailable_error = __webpack_require__(7265);
2720
+ // EXTERNAL MODULE: ./src/javascripts/ui/utils/seamly-utils.ts
2721
+ var seamly_utils = __webpack_require__(1149);
2722
+ // EXTERNAL MODULE: ./src/javascripts/domains/config/actions.ts
2723
+ var actions = __webpack_require__(257);
2724
+ // EXTERNAL MODULE: ./src/javascripts/domains/i18n/actions.ts
2725
+ var i18n_actions = __webpack_require__(5409);
2726
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/redux/create-debounced-async-thunk.ts
2727
+
2728
+ /**
2729
+ * A debounced analogue of the `createAsyncThunk` from `@reduxjs/toolkit`
2730
+ * @param typePrefix - a string action type value
2731
+ * @param payloadCreator - a callback function that should return a promise containing the result of some asynchronous logic
2732
+ * @param debounceOptions - the debounce options object
2733
+ */
2734
+ const createDebouncedAsyncThunk = (typePrefix, payloadCreator, debounceOptions) => {
2735
+ const {
2736
+ wait = 300,
2737
+ maxWait = 0,
2738
+ leading = false
2739
+ } = debounceOptions !== null && debounceOptions !== void 0 ? debounceOptions : {};
2740
+ let debounceTimer = null;
2741
+ let maxWaitTimer = null;
2742
+ let resolve;
2743
+ const cancel = () => {
2744
+ if (resolve) {
2745
+ resolve(false);
2746
+ resolve = undefined;
2747
+ }
2748
+ };
2749
+ const invoke = () => {
2750
+ clearTimeout(maxWaitTimer);
2751
+ maxWaitTimer = undefined;
2752
+ if (resolve) {
2753
+ resolve(true);
2754
+ resolve = undefined;
2755
+ }
2756
+ };
2757
+ const debounceExecutionCondition = () => {
2758
+ const immediate = leading && !debounceTimer;
2759
+ // Start debounced condition resolution
2760
+ clearTimeout(debounceTimer);
2761
+ debounceTimer = setTimeout(() => {
2762
+ invoke();
2763
+ debounceTimer = null;
2764
+ }, wait);
2765
+ if (immediate) {
2766
+ return true;
2767
+ }
2768
+ cancel();
2769
+ // Start max wait condition resolution
2770
+ if (maxWait && !maxWaitTimer) {
2771
+ maxWaitTimer = setTimeout(invoke, maxWait);
2772
+ }
2773
+ return new Promise(res => {
2774
+ resolve = res;
2775
+ });
2776
+ };
2777
+ return (0,redux_toolkit_esm/* createAsyncThunk */.hg)(typePrefix, payloadCreator, {
2778
+ condition: debounceExecutionCondition
2779
+ });
2780
+ };
2781
+ /* harmony default export */ const create_debounced_async_thunk = (createDebouncedAsyncThunk);
2782
+ // EXTERNAL MODULE: ./src/javascripts/domains/visibility/actions.ts
2783
+ var visibility_actions = __webpack_require__(9586);
2784
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/app/actions.ts
2718
2785
  var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
2719
2786
  function adopt(value) {
2720
2787
  return value instanceof P ? value : new P(function (resolve) {
@@ -2749,7 +2816,8 @@ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _argument
2749
2816
 
2750
2817
 
2751
2818
 
2752
- const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .createAsyncThunk */ .hg)('initializeApp', (_, {
2819
+
2820
+ const initializeApp = (0,redux_toolkit_esm/* createAsyncThunk */.hg)('initializeApp', (_, {
2753
2821
  extra: {
2754
2822
  api,
2755
2823
  config
@@ -2770,7 +2838,7 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2770
2838
  } else {
2771
2839
  if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.topic) {
2772
2840
  api.send('action', {
2773
- type: ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_0__/* .actionTypes */ .Hp.setTopic,
2841
+ type: seamly_utils/* actionTypes */.Hp.setTopic,
2774
2842
  body: {
2775
2843
  name: config.context.topic,
2776
2844
  // Separate fallback message is not needed here. Only an attached service will use this, but none will
@@ -2782,7 +2850,7 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2782
2850
  if ((_d = config === null || config === void 0 ? void 0 : config.context) === null || _d === void 0 ? void 0 : _d.translationLocale) {
2783
2851
  locale = config.context.translationLocale;
2784
2852
  api.send('action', {
2785
- type: ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_0__/* .actionTypes */ .Hp.setTranslation,
2853
+ type: seamly_utils/* actionTypes */.Hp.setTranslation,
2786
2854
  body: {
2787
2855
  enabled: true,
2788
2856
  locale
@@ -2796,8 +2864,8 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2796
2864
  };
2797
2865
  }
2798
2866
  } catch (e) {
2799
- if (e instanceof api_errors_seamly_session_expired_error__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z) {
2800
- const err = new api_errors_seamly_session_expired_error__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z();
2867
+ if (e instanceof seamly_session_expired_error/* default */.Z) {
2868
+ const err = new seamly_session_expired_error/* default */.Z();
2801
2869
  return rejectWithValue({
2802
2870
  name: err.name,
2803
2871
  message: err.message,
@@ -2806,7 +2874,7 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2806
2874
  action: err.action
2807
2875
  });
2808
2876
  }
2809
- const err = new api_errors_seamly_unavailable_error__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z();
2877
+ const err = new seamly_unavailable_error/* default */.Z();
2810
2878
  return rejectWithValue({
2811
2879
  name: err.name,
2812
2880
  message: err.message,
@@ -2814,26 +2882,29 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2814
2882
  });
2815
2883
  }
2816
2884
  }));
2817
- const resetApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .createAsyncThunk */ .hg)('resetApp', (_, {
2885
+ const resetApp = create_debounced_async_thunk('resetApp', (_, {
2818
2886
  dispatch,
2819
2887
  extra: {
2820
2888
  api
2821
2889
  }
2822
2890
  }) => __awaiter(void 0, void 0, void 0, function* () {
2823
2891
  yield api.disconnect();
2824
- yield api.clearStore();
2825
- dispatch((0,domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .resetConfig */ .I)());
2826
- yield dispatch((0,domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t)());
2892
+ api.clearStore();
2893
+ dispatch((0,actions/* resetConfig */.I)());
2894
+ yield dispatch((0,actions/* initializeConfig */.t)());
2827
2895
  try {
2828
2896
  const {
2829
2897
  locale
2830
2898
  } = yield dispatch(initializeApp()).unwrap();
2831
- yield dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__/* .setLocale */ .i)(locale));
2832
- } catch (rejectedValueOrSerializedError) {
2899
+ yield dispatch((0,i18n_actions/* setLocale */.i)(locale));
2900
+ } catch (e) {
2833
2901
  // nothing to do
2834
2902
  }
2835
- dispatch((0,domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__/* .initializeVisibility */ .Z)());
2836
- }));
2903
+ dispatch((0,visibility_actions/* initializeVisibility */.Z)());
2904
+ }), {
2905
+ wait: 2000,
2906
+ leading: true
2907
+ });
2837
2908
 
2838
2909
  /***/ }),
2839
2910
 
@@ -2864,7 +2935,7 @@ const selectUserHasResponded = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/
2864
2935
  /* harmony export */ });
2865
2936
  /* unused harmony export appSlice */
2866
2937
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9639);
2867
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
2938
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
2868
2939
 
2869
2940
 
2870
2941
  const initialState = {
@@ -3261,7 +3332,7 @@ function createErrorsMiddleware({
3261
3332
  /* harmony export */ });
3262
3333
  /* unused harmony export formsSlice */
3263
3334
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9639);
3264
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
3335
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
3265
3336
 
3266
3337
 
3267
3338
  const initialFormState = {
@@ -4279,11 +4350,13 @@ const selectHasError = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/* .creat
4279
4350
  /* harmony export */ uc: () => (/* binding */ setInterrupt)
4280
4351
  /* harmony export */ });
4281
4352
  /* unused harmony export interruptSlice */
4282
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9639);
4283
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
4353
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9639);
4354
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
4284
4355
  /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257);
4285
4356
  /* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5409);
4286
- /* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9586);
4357
+ /* harmony import */ var domains_store_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2770);
4358
+ /* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9586);
4359
+
4287
4360
 
4288
4361
 
4289
4362
 
@@ -4292,7 +4365,7 @@ const selectHasError = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/* .creat
4292
4365
  const initialState = {
4293
4366
  error: undefined
4294
4367
  };
4295
- const interruptSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .createSlice */ .oM)({
4368
+ const interruptSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__/* .createSlice */ .oM)({
4296
4369
  name: 'interrupt',
4297
4370
  initialState,
4298
4371
  reducers: {
@@ -4302,7 +4375,7 @@ const interruptSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .creat
4302
4375
  clearInterrupt: () => initialState
4303
4376
  },
4304
4377
  extraReducers: builder => {
4305
- builder.addCase(domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.pending, () => initialState).addMatcher((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .isAnyOf */ .Q)(domains_app_actions__WEBPACK_IMPORTED_MODULE_0__/* .initializeApp */ .Z.rejected, domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.rejected, domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__/* .setLocale */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__/* .setVisibility */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__/* .initializeVisibility */ .Z.rejected), (state, {
4378
+ builder.addCase(domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.pending, () => initialState).addMatcher((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__/* .isAnyOf */ .Q)(domains_app_actions__WEBPACK_IMPORTED_MODULE_0__/* .initializeApp */ .Z.rejected, domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.rejected, domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__/* .setLocale */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_4__/* .setVisibility */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_4__/* .initializeVisibility */ .Z.rejected, domains_store_actions__WEBPACK_IMPORTED_MODULE_3__/* .getConversation */ .c.rejected), (state, {
4306
4379
  payload
4307
4380
  }) => {
4308
4381
  state.error = payload;
@@ -4317,6 +4390,78 @@ const {
4317
4390
 
4318
4391
  /***/ }),
4319
4392
 
4393
+ /***/ 2770:
4394
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4395
+
4396
+ "use strict";
4397
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4398
+ /* harmony export */ c: () => (/* binding */ getConversation)
4399
+ /* harmony export */ });
4400
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9639);
4401
+ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
4402
+ function adopt(value) {
4403
+ return value instanceof P ? value : new P(function (resolve) {
4404
+ resolve(value);
4405
+ });
4406
+ }
4407
+ return new (P || (P = Promise))(function (resolve, reject) {
4408
+ function fulfilled(value) {
4409
+ try {
4410
+ step(generator.next(value));
4411
+ } catch (e) {
4412
+ reject(e);
4413
+ }
4414
+ }
4415
+ function rejected(value) {
4416
+ try {
4417
+ step(generator["throw"](value));
4418
+ } catch (e) {
4419
+ reject(e);
4420
+ }
4421
+ }
4422
+ function step(result) {
4423
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
4424
+ }
4425
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
4426
+ });
4427
+ };
4428
+
4429
+ const getConversation = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/* .createAsyncThunk */ .hg)('getConversation', (_, {
4430
+ extra: {
4431
+ api
4432
+ },
4433
+ rejectWithValue
4434
+ }) => __awaiter(void 0, void 0, void 0, function* () {
4435
+ try {
4436
+ return api.getConversation();
4437
+ } catch (error) {
4438
+ return rejectWithValue({
4439
+ name: error === null || error === void 0 ? void 0 : error.name,
4440
+ message: error === null || error === void 0 ? void 0 : error.message,
4441
+ langKey: error === null || error === void 0 ? void 0 : error.langKey,
4442
+ action: error === null || error === void 0 ? void 0 : error.action,
4443
+ originalEvent: error === null || error === void 0 ? void 0 : error.originalEvent,
4444
+ originalError: error === null || error === void 0 ? void 0 : error.originalError
4445
+ });
4446
+ }
4447
+ }), {
4448
+ condition(payload, {
4449
+ getState
4450
+ }) {
4451
+ var _a;
4452
+ const {
4453
+ state: {
4454
+ events
4455
+ }
4456
+ } = getState();
4457
+ const lastEvent = events[events.length - 1];
4458
+ const payloadLastEventId = (_a = payload === null || payload === void 0 ? void 0 : payload.lastEvent) === null || _a === void 0 ? void 0 : _a.id;
4459
+ return lastEvent && payloadLastEventId !== lastEvent.payload.id;
4460
+ }
4461
+ });
4462
+
4463
+ /***/ }),
4464
+
4320
4465
  /***/ 7271:
4321
4466
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4322
4467
 
@@ -4340,8 +4485,8 @@ var config_slice = __webpack_require__(3701);
4340
4485
  var errors = __webpack_require__(9792);
4341
4486
  // EXTERNAL MODULE: ./src/javascripts/domains/forms/slice.ts
4342
4487
  var forms_slice = __webpack_require__(3939);
4343
- // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts
4344
- var actions = __webpack_require__(9201);
4488
+ // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts + 1 modules
4489
+ var actions = __webpack_require__(526);
4345
4490
  // EXTERNAL MODULE: ./src/javascripts/domains/config/actions.ts
4346
4491
  var config_actions = __webpack_require__(257);
4347
4492
  // EXTERNAL MODULE: ./src/javascripts/domains/i18n/actions.ts
@@ -4625,7 +4770,7 @@ const useAppDispatch = es/* useDispatch */.I0;
4625
4770
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9639);
4626
4771
  /* harmony import */ var ui_utils_general_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(822);
4627
4772
  /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1149);
4628
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9201);
4773
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(526);
4629
4774
  /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(257);
4630
4775
  /* harmony import */ var lib_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8527);
4631
4776
 
@@ -5462,7 +5607,7 @@ const useTranslationProposal = () => {
5462
5607
  /* harmony export */ });
5463
5608
  /* unused harmony exports translationsInitialState, translationSlice */
5464
5609
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9639);
5465
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
5610
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
5466
5611
  /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257);
5467
5612
  /* harmony import */ var domains_store_slice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8801);
5468
5613
 
@@ -5680,8 +5825,9 @@ const setVisibility = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_6__/* .create
5680
5825
  if (previousVisibility === calculatedVisibility) {
5681
5826
  return undefined;
5682
5827
  }
5828
+ const visibility = api.store.get(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K);
5683
5829
  // Store the user-requested visibility in order to reinitialize after refresh
5684
- api.store.set(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K, Object.assign(Object.assign({}, api.store.get(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K) || {}), {
5830
+ api.store.set(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K, Object.assign(Object.assign({}, visibility || {}), {
5685
5831
  [layoutMode]: requestedVisibility
5686
5832
  }));
5687
5833
  if (requestedVisibility) {
@@ -6138,12 +6284,21 @@ var selectors = __webpack_require__(703);
6138
6284
  var live_region_hooks = __webpack_require__(5136);
6139
6285
  // EXTERNAL MODULE: ./src/javascripts/ui/hooks/seamly-state-hooks.ts
6140
6286
  var seamly_state_hooks = __webpack_require__(2140);
6287
+ // EXTERNAL MODULE: ./src/javascripts/api/errors/seamly-general-error.js
6288
+ var seamly_general_error = __webpack_require__(5332);
6141
6289
  // EXTERNAL MODULE: ./src/javascripts/domains/interrupt/hooks.ts
6142
6290
  var interrupt_hooks = __webpack_require__(5889);
6291
+ // EXTERNAL MODULE: ./src/javascripts/domains/interrupt/slice.ts
6292
+ var slice = __webpack_require__(6160);
6293
+ // EXTERNAL MODULE: ./src/javascripts/domains/store/index.ts + 4 modules
6294
+ var store = __webpack_require__(7271);
6143
6295
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/use-session-expired-command.ts
6144
6296
 
6145
6297
 
6146
6298
 
6299
+
6300
+
6301
+
6147
6302
  function useSessionExpiredCommand() {
6148
6303
  const {
6149
6304
  meta: {
@@ -6151,13 +6306,35 @@ function useSessionExpiredCommand() {
6151
6306
  action
6152
6307
  }
6153
6308
  } = (0,interrupt_hooks/* useInterrupt */.i)();
6309
+ const dispatch = (0,store/* useAppDispatch */.T)();
6154
6310
  const seamlyCommands = (0,use_seamly_commands/* default */.Z)();
6155
6311
  const isExpiredError = (originalError === null || originalError === void 0 ? void 0 : originalError.name) === 'SeamlySessionExpiredError';
6312
+ const limit = (0,hooks_.useRef)(0);
6313
+ const limitTimer = (0,hooks_.useRef)(null);
6156
6314
  (0,hooks_.useEffect)(() => {
6157
6315
  if (isExpiredError && seamlyCommands[action]) {
6316
+ if (limit.current >= 10) {
6317
+ limitTimer.current = setTimeout(() => {
6318
+ limit.current = 0;
6319
+ }, 10000);
6320
+ const error = new seamly_general_error/* default */.Z();
6321
+ dispatch((0,slice/* setInterrupt */.uc)({
6322
+ name: error.name,
6323
+ message: error.message,
6324
+ langKey: error.langKey,
6325
+ originalEvent: error.originalEvent,
6326
+ originalError: error.originalError,
6327
+ action: error.action
6328
+ }));
6329
+ return () => {};
6330
+ }
6331
+ limit.current += 1;
6158
6332
  seamlyCommands[action]();
6159
6333
  }
6160
- }, [action, seamlyCommands, isExpiredError]);
6334
+ return () => {
6335
+ if (limitTimer.current) clearTimeout(limitTimer.current);
6336
+ };
6337
+ }, [action, seamlyCommands, isExpiredError, dispatch]);
6161
6338
  }
6162
6339
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/use-seamly-chat.ts
6163
6340
  var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
@@ -6684,7 +6861,7 @@ function randomId() {
6684
6861
  /* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9207);
6685
6862
  /* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(preact_hooks__WEBPACK_IMPORTED_MODULE_1__);
6686
6863
  /* harmony import */ var ui_components_conversation_message_container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2480);
6687
- /* harmony import */ var ui_components_layout_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9016);
6864
+ /* harmony import */ var ui_components_layout_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2398);
6688
6865
  /* harmony import */ var ui_hooks_seamly_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9470);
6689
6866
  /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1149);
6690
6867
  /* harmony import */ var domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5962);
@@ -6807,7 +6984,8 @@ const ChoicePrompt = ({
6807
6984
  "aria-describedby": descriptorId,
6808
6985
  children: [showOptions ? t('message.choicePrompts.cancelChooseAgain') : t('message.choicePrompts.chooseAgain'), (0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(ui_components_layout_icon__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
6809
6986
  name: "chevronDown",
6810
- size: "8"
6987
+ size: "8",
6988
+ alt: ""
6811
6989
  })]
6812
6990
  }), showOptions && (0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(ui_components_conversation_message_container__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
6813
6991
  type: "choice-prompt",
@@ -6888,7 +7066,7 @@ const EventParticipant = ({
6888
7066
  })
6889
7067
  }));
6890
7068
  }
6891
- if (showName) {
7069
+ if (showName && participantName) {
6892
7070
  authorInfo.push((0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
6893
7071
  className: (0,lib_css__WEBPACK_IMPORTED_MODULE_3__/* .className */ .o)('message__author-name'),
6894
7072
  children: participantName
@@ -7030,144 +7208,6 @@ const SeamlyLiveRegionContext = (0,preact__WEBPACK_IMPORTED_MODULE_0__.createCon
7030
7208
 
7031
7209
  /***/ }),
7032
7210
 
7033
- /***/ 9016:
7034
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7035
-
7036
- "use strict";
7037
-
7038
- // EXPORTS
7039
- __webpack_require__.d(__webpack_exports__, {
7040
- Z: () => (/* binding */ icon)
7041
- });
7042
-
7043
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/avatar_bot-32.svg
7044
- /* harmony default export */ const avatar_bot_32 = ("<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 32 32\" enable-background=\"new 0 0 32 32\" xml:space=\"preserve\">\n<path fill=\"#4A48C1\" d=\"M10,14.8c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S11.1,14.8,10,14.8z M15.9,14.8c1.1,0,2-0.9,2-2s-0.9-2-2-2\n\ts-2,0.9-2,2S14.8,14.8,15.9,14.8z M21.8,10.8c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S22.9,10.8,21.8,10.8z M21.3,18.1H10.7\n\tC11.7,23.9,20.2,23.9,21.3,18.1z\"/>\n</svg>\n");
7045
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_arrow_left-16.svg
7046
- /* harmony default export */ const icon_arrow_left_16 = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 16 16\" enable-background=\"new 0 0 16 16\" xml:space=\"preserve\">\n<path fill=\"#5053A4\" d=\"M13.6,8c0,0.6-0.4,1-1,1h-7l2.2,2.5c0.4,0.4,0.3,1-0.1,1.4c-0.2,0.2-0.4,0.2-0.7,0.2c-0.3,0-0.6-0.1-0.8-0.3\n\tL2.6,8.6c0,0-0.1-0.1-0.1-0.2c0,0-0.1-0.1-0.1-0.1c0-0.1-0.1-0.2-0.1-0.3c0,0,0,0,0,0c0,0,0,0,0,0c0-0.1,0-0.3,0.1-0.4\n\tc0,0,0.1-0.1,0.1-0.1c0-0.1,0.1-0.1,0.1-0.2l3.7-4.1c0.4-0.4,1-0.4,1.4-0.1c0.4,0.4,0.4,1,0.1,1.4L5.6,7h7C13.2,7,13.6,7.4,13.6,8z\"\n\t/>\n</svg>\n");
7047
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_arrow_right-16.svg
7048
- /* harmony default export */ const icon_arrow_right_16 = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 16 16\" enable-background=\"new 0 0 16 16\" xml:space=\"preserve\">\n<path fill=\"#5053A4\" d=\"M2.4,8.1c0-0.6,0.4-1,1-1h7L8.1,4.5c-0.4-0.4-0.3-1,0.1-1.4c0.2-0.2,0.4-0.2,0.7-0.2c0.3,0,0.6,0.1,0.8,0.3\n\tl3.7,4.2c0,0,0.1,0.1,0.1,0.2c0,0,0.1,0.1,0.1,0.1c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0,0,0c0,0,0,0,0,0c0,0.1,0,0.3-0.1,0.4\n\tc0,0-0.1,0.1-0.1,0.1c0,0.1-0.1,0.1-0.1,0.2l-3.7,4.1c-0.4,0.4-1,0.4-1.4,0.1c-0.4-0.4-0.4-1-0.1-1.4l2.2-2.4h-7\n\tC2.8,9.1,2.4,8.6,2.4,8.1z\"/>\n</svg>\n");
7049
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_balloon-32.svg
7050
- /* harmony default export */ const icon_balloon_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M24,10.824v10.375c0,1.104-0.896,2-2,2h-4.694l-4.931,3.625v-3.625H10c-1.104,0-2-0.896-2-2V10.824\tc0-1.104,0.896-2,2-2h12C23.104,8.824,24,9.719,24,10.824z\"/></svg>");
7051
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_check-16.svg
7052
- /* harmony default export */ const icon_check_16 = ("<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16px\"\n height=\"16px\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 16 16\"\n>\n <path\n fill=\"currentColor\"\n d=\"M11.6,4.3l-5,5L4.9,7.5C4.4,7,3.7,7,3.2,7.5l0,0C2.8,8,2.8,8.7,3.2,9.2l1.7,1.7l0,0l0.8,0.8\n\tc0.5,0.5,1.2,0.5,1.7,0l0.8-0.8l5-5c0.5-0.5,0.5-1.2,0-1.7l0,0C12.8,3.8,12.1,3.8,11.6,4.3z\"\n />\n</svg>\n");
7053
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_check-32.svg
7054
- /* harmony default export */ const icon_check_32 = ("<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32px\"\n height=\"32px\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 32 32\"\n>\n <path\n fill=\"currentColor\"\n d=\"M22.9,9.3l-9.3,9.3l-3.2-3.2c-0.9-0.9-2.3-0.9-3.2,0l0,0c-0.9,0.9-0.9,2.3,0,3.2l3.2,3.2l0,0l1.6,1.6\n\tc0.9,0.9,2.3,0.9,3.2,0l1.6-1.6l9.3-9.3c0.9-0.9,0.9-2.3,0-3.2l0,0C25.2,8.4,23.7,8.4,22.9,9.3z\"\n />\n</svg>\n");
7055
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_down-8.svg
7056
- /* harmony default export */ const icon_chevron_down_8 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\" height=\"8px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 8 8\"><defs/><path fill=\"#4A48C1\" d=\"M-0.001,2.876c0-0.247,0.091-0.494,0.273-0.688c0.38-0.401,1.013-0.418,1.414-0.039l1.938,1.834\tc0.199,0.188,0.547,0.188,0.746,0L6.31,2.15c0.401-0.379,1.034-0.362,1.414,0.04c0.379,0.401,0.361,1.034-0.04,1.414L5.745,5.437\tC4.782,6.35,3.213,6.35,2.249,5.436L0.311,3.603C0.103,3.406-0.001,3.142-0.001,2.876z\"/></svg>");
7057
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_down-32.svg
7058
- /* harmony default export */ const icon_chevron_down_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M16,20.425c-0.782,0-1.563-0.291-2.159-0.874l-6.541-6.408c-0.395-0.387-0.401-1.02-0.015-1.414\tc0.387-0.394,1.021-0.4,1.414-0.015l6.541,6.408c0.42,0.409,1.102,0.409,1.52-0.001l6.541-6.407c0.396-0.386,1.028-0.38,1.414,0.015\tc0.387,0.395,0.381,1.027-0.014,1.414l-6.541,6.407C17.563,20.133,16.782,20.425,16,20.425z\"/></svg>");
7059
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_right-8.svg
7060
- /* harmony default export */ const icon_chevron_right_8 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\" height=\"8px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 8 8\"><defs/><path fill=\"#4A48C1\" d=\"M2.875,7.998c-0.247,0-0.494-0.091-0.688-0.273c-0.401-0.38-0.418-1.013-0.039-1.414l1.834-1.938\tc0.188-0.199,0.188-0.547,0-0.746l-1.835-1.94c-0.379-0.401-0.362-1.034,0.04-1.414s1.034-0.361,1.414,0.04l1.834,1.939\tc0.913,0.963,0.913,2.532-0.001,3.496L3.601,7.686C3.405,7.894,3.14,7.998,2.875,7.998z\"/></svg>");
7061
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_right-16.svg
7062
- /* harmony default export */ const icon_chevron_right_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#4A48C1\" d=\"M6.5,13c-0.247,0-0.494-0.091-0.687-0.273c-0.401-0.38-0.419-1.013-0.04-1.414L8.22,8.727\tc0.373-0.394,0.373-1.06,0-1.454L5.773,4.687c-0.379-0.401-0.362-1.034,0.04-1.414c0.4-0.378,1.034-0.362,1.414,0.04l2.446,2.586\tc1.096,1.159,1.096,3.043,0,4.203l-2.446,2.586C7.03,12.896,6.765,13,6.5,13z\"/></svg>");
7063
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_close-8.svg
7064
- /* harmony default export */ const icon_close_8 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\" height=\"8px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 8 8\"><defs/><path fill=\"#4A48C1\" d=\"M7.705,7.729C7.511,7.923,7.255,8.02,7,8.02c-0.257,0-0.514-0.099-0.709-0.295L4,5.423L1.709,7.725\tC1.513,7.921,1.257,8.02,1,8.02c-0.255,0-0.51-0.097-0.706-0.291c-0.391-0.39-0.393-1.022-0.003-1.414l2.298-2.309l-2.27-2.28\tC-0.07,1.334-0.068,0.701,0.323,0.311c0.392-0.389,1.024-0.387,1.415,0.003L4,2.587l2.263-2.274C6.653-0.077,7.287-0.079,7.677,0.31\tC8.068,0.7,8.07,1.333,7.681,1.725l-2.27,2.281l2.298,2.309C8.099,6.705,8.097,7.339,7.705,7.729z\"/></svg>");
7065
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_close-16.svg
7066
- /* harmony default export */ const icon_close_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#4A48C1\" d=\"M12.709,11.295L9.411,7.982l3.262-3.276c0.39-0.392,0.388-1.024-0.004-1.414\tc-0.39-0.39-1.023-0.388-1.414,0.003L8,6.564L4.746,3.295C4.357,2.904,3.724,2.903,3.332,3.292C2.94,3.682,2.939,4.315,3.329,4.707\tl3.261,3.275l-3.298,3.313c-0.39,0.391-0.388,1.024,0.003,1.414C3.49,12.903,3.745,13,4,13c0.257,0,0.513-0.099,0.708-0.295L8,9.399\tl3.291,3.306C11.486,12.901,11.743,13,12,13c0.255,0,0.511-0.097,0.705-0.291C13.097,12.319,13.099,11.686,12.709,11.295z\"/></svg>");
7067
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_download-16.svg
7068
- /* harmony default export */ const icon_download_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#FFF\" d=\"M3.175,7.726c-0.413-0.367-0.45-0.999-0.083-1.412c0.367-0.413,0.999-0.45,1.412-0.083L7,8.45V1.5\tc0-0.552,0.448-1,1-1c0.553,0,1,0.448,1,1v6.95l2.496-2.219c0.412-0.367,1.044-0.331,1.411,0.083\tc0.367,0.413,0.33,1.045-0.083,1.412l-4.16,3.698c-0.047,0.041-0.103,0.062-0.154,0.094c-0.047,0.028-0.089,0.064-0.141,0.085\tC8.25,11.649,8.125,11.677,8,11.677c-0.126,0-0.25-0.027-0.369-0.074c-0.05-0.021-0.09-0.055-0.136-0.083\tc-0.053-0.031-0.111-0.053-0.159-0.096L3.175,7.726z M12.018,13.5H3.983c-0.552,0-1,0.447-1,1s0.448,1,1,1h8.035\tc0.553,0,1-0.447,1-1S12.57,13.5,12.018,13.5z\"/></svg>");
7069
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_enlarge-32.svg
7070
- /* harmony default export */ const icon_enlarge_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M24,9v6.5c0,0.552-0.447,1-1,1s-1-0.448-1-1v-4.086L11.414,22H15.5c0.552,0,1,0.447,1,1s-0.448,1-1,1H9\tc-0.13,0-0.26-0.026-0.382-0.077c-0.245-0.102-0.439-0.296-0.541-0.541C8.026,23.26,8,23.13,8,23v-6.5c0-0.552,0.448-1,1-1\ts1,0.448,1,1v4.085L20.586,10H16.5c-0.552,0-1-0.448-1-1s0.448-1,1-1H23c0.13,0,0.26,0.026,0.382,0.077\tc0.245,0.102,0.439,0.296,0.541,0.541C23.974,8.74,24,8.87,24,9z\"/></svg>");
7071
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_error-16.svg
7072
- /* harmony default export */ const icon_error_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#ad001f\" d=\"M15.744,13.104L9.097,1.47c-0.604-1.055-1.59-1.055-2.193,0L0.256,13.104\tc-0.604,1.056-0.102,1.919,1.113,1.919H14.63C15.847,15.022,16.348,14.159,15.744,13.104z M7,5.045c0-0.552,0.448-1,1-1s1,0.448,1,1\tv3.656c0,0.552-0.448,1-1,1s-1-0.448-1-1V5.045z M8,13.212c-0.748,0-1.354-0.607-1.354-1.354c0-0.748,0.606-1.354,1.354-1.354\ts1.354,0.606,1.354,1.354C9.354,12.604,8.748,13.212,8,13.212z\"/></svg>");
7073
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_file-32.svg
7074
- /* harmony default export */ const icon_file_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" x=\"0px\" y=\"0px\" version=\"1.1\" viewBox=\"0 0 32 32\"><path fill=\"#4A48C1\" d=\"M16,28.5c-3.6,0-6.5-3-6.5-6.6V9.6c0-0.6,0.4-1,1-1s1,0.4,1,1v12.3c0,2.5,2,4.6,4.5,4.6\tc2.5,0,4.5-2.1,4.5-4.6V8.3c0-1.5-1.2-2.8-2.7-2.8c-1.5,0-2.7,1.3-2.7,2.8v13.5c0,0.6,0.5,1.1,1,1.1c0.6,0,1-0.5,1-1.1v-10\tc0-0.6,0.4-1,1-1s1,0.4,1,1v10c0,1.7-1.4,3.1-3,3.1s-3-1.4-3-3.1V8.3c0-2.6,2.1-4.8,4.7-4.8c2.6,0,4.7,2.2,4.7,4.8v13.6\tC22.5,25.5,19.6,28.5,16,28.5z\"/></svg>");
7075
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_newtopic-32.svg
7076
- /* harmony default export */ const icon_newtopic_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><path fill=\"#4A48C1\" d=\"M16,8.593l2.407,4.573l5.093,0.876l-3.604,3.702l0.74,5.115L16,20.574l-4.634,2.285l0.739-5.115L8.5,14.042\tl5.094-0.876L16,8.593z\"/></svg>");
7077
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_newtranslation-16.svg
7078
- /* harmony default export */ const icon_newtranslation_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><path fill=\"#4A48C1\" d=\"M8,0C3.6,0,0,3.6,0,8s3.6,8,8,8s8-3.6,8-8S12.4,0,8,0z M14.1,7.1h-1.4c-0.1-1.5-0.4-2.9-1-4\tC13,4,13.9,5.4,14.1,7.1z M7.1,2.1v5H5C5.2,4.7,6.1,2.9,7.1,2.1z M7.1,8.9v5c-1-0.7-1.9-2.5-2.1-5H7.1z M8.9,13.9v-5H11\tC10.8,11.3,9.9,13.2,8.9,13.9z M8.9,7.1v-5c1,0.7,1.9,2.5,2.1,5H8.9z M4.2,3.1c-0.5,1.1-0.9,2.5-1,4H1.9C2.1,5.4,3,4,4.2,3.1z M1.9,8.9h1.4c0.1,1.5,0.4,2.9,1,4C3,12,2.1,10.5,1.9,8.9z M11.8,12.9c0.5-1.1,0.9-2.5,1-4h1.4C13.9,10.5,13,12,11.8,12.9z\"/></svg>");
7079
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_newtranslation-32.svg
7080
- /* harmony default export */ const icon_newtranslation_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><path fill=\"#4A48C1\" d=\"M16,7c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4.1,9-9S20.9,7,16,7z M22.9,15h-1.6c-0.1-1.7-0.5-3.3-1.1-4.5\tC21.6,11.5,22.6,13.1,22.9,15z M15,9.4V15h-2.3C12.9,12.3,13.9,10.2,15,9.4z M15,17v5.6c-1.1-0.8-2.1-2.9-2.3-5.6H15z M17,22.6V17\th2.3C19.1,19.8,18.1,21.8,17,22.6z M17,15V9.4c1.1,0.8,2.1,2.9,2.3,5.6H17z M11.8,10.4c-0.6,1.3-1,2.8-1.1,4.5H9.1\tC9.4,13.1,10.4,11.5,11.8,10.4z M9.1,17h1.6c0.1,1.7,0.5,3.3,1.1,4.5C10.4,20.5,9.4,18.9,9.1,17z M20.2,21.5c0.6-1.3,1-2.8,1.1-4.5\th1.6C22.6,18.8,21.6,20.5,20.2,21.5z\"/></svg>");
7081
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_options-32.svg
7082
- /* harmony default export */ const icon_options_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M26.1,21.383c0.334-0.625,0.602-1.279,0.812-1.949L32,18.609V13.51l-5.058-0.846\tc-0.208-0.67-0.468-1.325-0.795-1.956l3.009-4.145l-3.604-3.634L21.38,5.903c-0.626-0.333-1.276-0.602-1.948-0.81L18.609,0\tl-5.098,0.001l-0.847,5.061c-0.669,0.203-1.326,0.465-1.957,0.794L6.562,2.847L2.929,6.449l2.973,4.171\tC5.569,11.247,5.3,11.9,5.091,12.569L0,13.373v5.099l5.06,0.866c0.204,0.669,0.467,1.324,0.796,1.955l-3.009,4.146l3.601,3.635\tl4.171-2.975c0.627,0.335,1.282,0.603,1.951,0.811L13.372,32h5.118l0.849-5.057c0.668-0.207,1.323-0.469,1.953-0.795l4.144,3.01\tl3.639-3.604L26.1,21.383z M19.01,19.035c-1.675,1.663-4.381,1.652-6.041-0.025c-1.662-1.675-1.649-4.381,0.024-6.042\tc1.676-1.661,4.382-1.648,6.043,0.025C20.699,14.67,20.686,17.377,19.01,19.035z\"/></svg>");
7083
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_send-32.svg
7084
- /* harmony default export */ const icon_send_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M6.714,14.985l17.837-7.906c0.681-0.302,1.414,0.301,1.25,1.027L22.273,23.59\tc-0.13,0.566-0.751,0.865-1.275,0.613l-3.623-1.752l-2.334,2.287c-0.572,0.562-1.538,0.156-1.538-0.645V21.01\tc0-0.217,0.078-0.43,0.222-0.594l7.676-8.841l-10.414,7.472l-4.351-2.445C5.987,16.236,6.033,15.287,6.714,14.985L6.714,14.985z\"/></svg>");
7085
- ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_upload-32.svg
7086
- /* harmony default export */ const icon_upload_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M9.488,13.481c-0.391-0.391-0.391-1.023,0-1.414l5.805-5.805c0.026-0.026,0.06-0.036,0.088-0.058\tc0.073-0.06,0.146-0.119,0.235-0.156c0.246-0.103,0.522-0.103,0.769,0c0.093,0.039,0.171,0.101,0.249,0.165\tc0.023,0.02,0.053,0.027,0.074,0.049l5.805,5.805c0.391,0.391,0.391,1.023,0,1.414c-0.195,0.195-0.451,0.293-0.707,0.293\ts-0.512-0.098-0.707-0.293L17,9.383V20.33c0,0.553-0.447,1-1,1c-0.552,0-1-0.447-1-1V9.383l-4.098,4.098\tC10.512,13.872,9.879,13.872,9.488,13.481z M22.819,24.031H9.181c-0.552,0-1,0.447-1,1s0.448,1,1,1h13.639c0.553,0,1-0.447,1-1\tS23.372,24.031,22.819,24.031z\"/></svg>");
7087
- // EXTERNAL MODULE: ./src/javascripts/lib/css.js
7088
- var css = __webpack_require__(2);
7089
- // EXTERNAL MODULE: external "preact/jsx-runtime"
7090
- var jsx_runtime_ = __webpack_require__(7844);
7091
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/layout/icon.js
7092
- /* eslint-disable import/no-webpack-loader-syntax */
7093
- // The eslint rules are disabled for this as otherwsise we'd need to include the loader rule in all implementations
7094
- // this can again be changed when we can import pre-built packages in implementations
7095
-
7096
-
7097
-
7098
-
7099
-
7100
-
7101
-
7102
-
7103
-
7104
-
7105
-
7106
-
7107
-
7108
-
7109
-
7110
-
7111
-
7112
-
7113
-
7114
-
7115
-
7116
-
7117
-
7118
-
7119
- /* eslint-enable import/no-webpack-loader-syntax */
7120
-
7121
-
7122
-
7123
- const ICONS = {
7124
- send32: icon_send_32,
7125
- balloon32: icon_balloon_32,
7126
- newTopic32: icon_newtopic_32,
7127
- newTranslation16: icon_newtranslation_16,
7128
- newTranslation32: icon_newtranslation_32,
7129
- avatar32: avatar_bot_32,
7130
- chevronDown8: icon_chevron_down_8,
7131
- chevronDown32: icon_chevron_down_32,
7132
- chevronRight8: icon_chevron_right_8,
7133
- chevronRight16: icon_chevron_right_16,
7134
- close8: icon_close_8,
7135
- close16: icon_close_16,
7136
- enlarge32: icon_enlarge_32,
7137
- options32: icon_options_32,
7138
- file32: icon_file_32,
7139
- upload32: icon_upload_32,
7140
- download16: icon_download_16,
7141
- error16: icon_error_16,
7142
- arrowLeft16: icon_arrow_left_16,
7143
- arrowRight16: icon_arrow_right_16,
7144
- check32: icon_check_32,
7145
- check16: icon_check_16
7146
- };
7147
- const Icon = ({
7148
- name,
7149
- size = '32',
7150
- className = undefined,
7151
- alt
7152
- }) => {
7153
- const iconName = `${name}${size}`;
7154
- return (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
7155
- children: [(0,jsx_runtime_.jsx)("div", {
7156
- "aria-hidden": "true",
7157
- className: className || (0,css/* className */.o)('icon'),
7158
- dangerouslySetInnerHTML: {
7159
- __html: ICONS[iconName]
7160
- }
7161
- }), alt && (0,jsx_runtime_.jsx)("span", {
7162
- className: (0,css/* className */.o)('visually-hidden'),
7163
- children: alt
7164
- })]
7165
- });
7166
- };
7167
- /* harmony default export */ const icon = (Icon);
7168
-
7169
- /***/ }),
7170
-
7171
7211
  /***/ 7054:
7172
7212
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7173
7213
 
@@ -7617,7 +7657,7 @@ const useSeamlyActivityEventHandler = () => (0,preact_hooks__WEBPACK_IMPORTED_MO
7617
7657
  /* harmony import */ var config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9787);
7618
7658
  /* harmony import */ var ui_components_core_seamly_api_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2871);
7619
7659
  /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1149);
7620
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9201);
7660
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(526);
7621
7661
  /* harmony import */ var domains_app_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3423);
7622
7662
  /* harmony import */ var domains_app_slice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1322);
7623
7663
  /* harmony import */ var domains_config_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6134);
@@ -9709,6 +9749,159 @@ var createStructuredSelector = function createStructuredSelector(selectors, sele
9709
9749
  return resultSelector;
9710
9750
  };
9711
9751
 
9752
+ /***/ }),
9753
+
9754
+ /***/ 2398:
9755
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9756
+
9757
+ "use strict";
9758
+
9759
+ // EXPORTS
9760
+ __webpack_require__.d(__webpack_exports__, {
9761
+ Z: () => (/* binding */ icon)
9762
+ });
9763
+
9764
+ // UNUSED EXPORTS: ICONS
9765
+
9766
+ // EXTERNAL MODULE: external "preact/jsx-runtime"
9767
+ var jsx_runtime_ = __webpack_require__(7844);
9768
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/avatar_bot-32.svg
9769
+ /* harmony default export */ const avatar_bot_32 = ("<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 32 32\" enable-background=\"new 0 0 32 32\" xml:space=\"preserve\">\n<path fill=\"#4A48C1\" d=\"M10,14.8c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S11.1,14.8,10,14.8z M15.9,14.8c1.1,0,2-0.9,2-2s-0.9-2-2-2\n\ts-2,0.9-2,2S14.8,14.8,15.9,14.8z M21.8,10.8c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S22.9,10.8,21.8,10.8z M21.3,18.1H10.7\n\tC11.7,23.9,20.2,23.9,21.3,18.1z\"/>\n</svg>\n");
9770
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_arrow_left-16.svg
9771
+ /* harmony default export */ const icon_arrow_left_16 = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 16 16\" enable-background=\"new 0 0 16 16\" xml:space=\"preserve\">\n<path fill=\"#5053A4\" d=\"M13.6,8c0,0.6-0.4,1-1,1h-7l2.2,2.5c0.4,0.4,0.3,1-0.1,1.4c-0.2,0.2-0.4,0.2-0.7,0.2c-0.3,0-0.6-0.1-0.8-0.3\n\tL2.6,8.6c0,0-0.1-0.1-0.1-0.2c0,0-0.1-0.1-0.1-0.1c0-0.1-0.1-0.2-0.1-0.3c0,0,0,0,0,0c0,0,0,0,0,0c0-0.1,0-0.3,0.1-0.4\n\tc0,0,0.1-0.1,0.1-0.1c0-0.1,0.1-0.1,0.1-0.2l3.7-4.1c0.4-0.4,1-0.4,1.4-0.1c0.4,0.4,0.4,1,0.1,1.4L5.6,7h7C13.2,7,13.6,7.4,13.6,8z\"\n\t/>\n</svg>\n");
9772
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_arrow_right-16.svg
9773
+ /* harmony default export */ const icon_arrow_right_16 = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 16 16\" enable-background=\"new 0 0 16 16\" xml:space=\"preserve\">\n<path fill=\"#5053A4\" d=\"M2.4,8.1c0-0.6,0.4-1,1-1h7L8.1,4.5c-0.4-0.4-0.3-1,0.1-1.4c0.2-0.2,0.4-0.2,0.7-0.2c0.3,0,0.6,0.1,0.8,0.3\n\tl3.7,4.2c0,0,0.1,0.1,0.1,0.2c0,0,0.1,0.1,0.1,0.1c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0,0,0c0,0,0,0,0,0c0,0.1,0,0.3-0.1,0.4\n\tc0,0-0.1,0.1-0.1,0.1c0,0.1-0.1,0.1-0.1,0.2l-3.7,4.1c-0.4,0.4-1,0.4-1.4,0.1c-0.4-0.4-0.4-1-0.1-1.4l2.2-2.4h-7\n\tC2.8,9.1,2.4,8.6,2.4,8.1z\"/>\n</svg>\n");
9774
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_balloon-32.svg
9775
+ /* harmony default export */ const icon_balloon_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M24,10.824v10.375c0,1.104-0.896,2-2,2h-4.694l-4.931,3.625v-3.625H10c-1.104,0-2-0.896-2-2V10.824\tc0-1.104,0.896-2,2-2h12C23.104,8.824,24,9.719,24,10.824z\"/></svg>");
9776
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_check-16.svg
9777
+ /* harmony default export */ const icon_check_16 = ("<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16px\"\n height=\"16px\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 16 16\"\n>\n <path\n fill=\"currentColor\"\n d=\"M11.6,4.3l-5,5L4.9,7.5C4.4,7,3.7,7,3.2,7.5l0,0C2.8,8,2.8,8.7,3.2,9.2l1.7,1.7l0,0l0.8,0.8\n\tc0.5,0.5,1.2,0.5,1.7,0l0.8-0.8l5-5c0.5-0.5,0.5-1.2,0-1.7l0,0C12.8,3.8,12.1,3.8,11.6,4.3z\"\n />\n</svg>\n");
9778
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_check-32.svg
9779
+ /* harmony default export */ const icon_check_32 = ("<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32px\"\n height=\"32px\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 32 32\"\n>\n <path\n fill=\"currentColor\"\n d=\"M22.9,9.3l-9.3,9.3l-3.2-3.2c-0.9-0.9-2.3-0.9-3.2,0l0,0c-0.9,0.9-0.9,2.3,0,3.2l3.2,3.2l0,0l1.6,1.6\n\tc0.9,0.9,2.3,0.9,3.2,0l1.6-1.6l9.3-9.3c0.9-0.9,0.9-2.3,0-3.2l0,0C25.2,8.4,23.7,8.4,22.9,9.3z\"\n />\n</svg>\n");
9780
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_down-8.svg
9781
+ /* harmony default export */ const icon_chevron_down_8 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\" height=\"8px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 8 8\"><defs/><path fill=\"#4A48C1\" d=\"M-0.001,2.876c0-0.247,0.091-0.494,0.273-0.688c0.38-0.401,1.013-0.418,1.414-0.039l1.938,1.834\tc0.199,0.188,0.547,0.188,0.746,0L6.31,2.15c0.401-0.379,1.034-0.362,1.414,0.04c0.379,0.401,0.361,1.034-0.04,1.414L5.745,5.437\tC4.782,6.35,3.213,6.35,2.249,5.436L0.311,3.603C0.103,3.406-0.001,3.142-0.001,2.876z\"/></svg>");
9782
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_down-32.svg
9783
+ /* harmony default export */ const icon_chevron_down_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M16,20.425c-0.782,0-1.563-0.291-2.159-0.874l-6.541-6.408c-0.395-0.387-0.401-1.02-0.015-1.414\tc0.387-0.394,1.021-0.4,1.414-0.015l6.541,6.408c0.42,0.409,1.102,0.409,1.52-0.001l6.541-6.407c0.396-0.386,1.028-0.38,1.414,0.015\tc0.387,0.395,0.381,1.027-0.014,1.414l-6.541,6.407C17.563,20.133,16.782,20.425,16,20.425z\"/></svg>");
9784
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_right-8.svg
9785
+ /* harmony default export */ const icon_chevron_right_8 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\" height=\"8px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 8 8\"><defs/><path fill=\"#4A48C1\" d=\"M2.875,7.998c-0.247,0-0.494-0.091-0.688-0.273c-0.401-0.38-0.418-1.013-0.039-1.414l1.834-1.938\tc0.188-0.199,0.188-0.547,0-0.746l-1.835-1.94c-0.379-0.401-0.362-1.034,0.04-1.414s1.034-0.361,1.414,0.04l1.834,1.939\tc0.913,0.963,0.913,2.532-0.001,3.496L3.601,7.686C3.405,7.894,3.14,7.998,2.875,7.998z\"/></svg>");
9786
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_chevron_right-16.svg
9787
+ /* harmony default export */ const icon_chevron_right_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#4A48C1\" d=\"M6.5,13c-0.247,0-0.494-0.091-0.687-0.273c-0.401-0.38-0.419-1.013-0.04-1.414L8.22,8.727\tc0.373-0.394,0.373-1.06,0-1.454L5.773,4.687c-0.379-0.401-0.362-1.034,0.04-1.414c0.4-0.378,1.034-0.362,1.414,0.04l2.446,2.586\tc1.096,1.159,1.096,3.043,0,4.203l-2.446,2.586C7.03,12.896,6.765,13,6.5,13z\"/></svg>");
9788
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_close-8.svg
9789
+ /* harmony default export */ const icon_close_8 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\" height=\"8px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 8 8\"><defs/><path fill=\"#4A48C1\" d=\"M7.705,7.729C7.511,7.923,7.255,8.02,7,8.02c-0.257,0-0.514-0.099-0.709-0.295L4,5.423L1.709,7.725\tC1.513,7.921,1.257,8.02,1,8.02c-0.255,0-0.51-0.097-0.706-0.291c-0.391-0.39-0.393-1.022-0.003-1.414l2.298-2.309l-2.27-2.28\tC-0.07,1.334-0.068,0.701,0.323,0.311c0.392-0.389,1.024-0.387,1.415,0.003L4,2.587l2.263-2.274C6.653-0.077,7.287-0.079,7.677,0.31\tC8.068,0.7,8.07,1.333,7.681,1.725l-2.27,2.281l2.298,2.309C8.099,6.705,8.097,7.339,7.705,7.729z\"/></svg>");
9790
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_close-16.svg
9791
+ /* harmony default export */ const icon_close_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#4A48C1\" d=\"M12.709,11.295L9.411,7.982l3.262-3.276c0.39-0.392,0.388-1.024-0.004-1.414\tc-0.39-0.39-1.023-0.388-1.414,0.003L8,6.564L4.746,3.295C4.357,2.904,3.724,2.903,3.332,3.292C2.94,3.682,2.939,4.315,3.329,4.707\tl3.261,3.275l-3.298,3.313c-0.39,0.391-0.388,1.024,0.003,1.414C3.49,12.903,3.745,13,4,13c0.257,0,0.513-0.099,0.708-0.295L8,9.399\tl3.291,3.306C11.486,12.901,11.743,13,12,13c0.255,0,0.511-0.097,0.705-0.291C13.097,12.319,13.099,11.686,12.709,11.295z\"/></svg>");
9792
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_download-16.svg
9793
+ /* harmony default export */ const icon_download_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#FFF\" d=\"M3.175,7.726c-0.413-0.367-0.45-0.999-0.083-1.412c0.367-0.413,0.999-0.45,1.412-0.083L7,8.45V1.5\tc0-0.552,0.448-1,1-1c0.553,0,1,0.448,1,1v6.95l2.496-2.219c0.412-0.367,1.044-0.331,1.411,0.083\tc0.367,0.413,0.33,1.045-0.083,1.412l-4.16,3.698c-0.047,0.041-0.103,0.062-0.154,0.094c-0.047,0.028-0.089,0.064-0.141,0.085\tC8.25,11.649,8.125,11.677,8,11.677c-0.126,0-0.25-0.027-0.369-0.074c-0.05-0.021-0.09-0.055-0.136-0.083\tc-0.053-0.031-0.111-0.053-0.159-0.096L3.175,7.726z M12.018,13.5H3.983c-0.552,0-1,0.447-1,1s0.448,1,1,1h8.035\tc0.553,0,1-0.447,1-1S12.57,13.5,12.018,13.5z\"/></svg>");
9794
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_enlarge-32.svg
9795
+ /* harmony default export */ const icon_enlarge_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M24,9v6.5c0,0.552-0.447,1-1,1s-1-0.448-1-1v-4.086L11.414,22H15.5c0.552,0,1,0.447,1,1s-0.448,1-1,1H9\tc-0.13,0-0.26-0.026-0.382-0.077c-0.245-0.102-0.439-0.296-0.541-0.541C8.026,23.26,8,23.13,8,23v-6.5c0-0.552,0.448-1,1-1\ts1,0.448,1,1v4.085L20.586,10H16.5c-0.552,0-1-0.448-1-1s0.448-1,1-1H23c0.13,0,0.26,0.026,0.382,0.077\tc0.245,0.102,0.439,0.296,0.541,0.541C23.974,8.74,24,8.87,24,9z\"/></svg>");
9796
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_error-16.svg
9797
+ /* harmony default export */ const icon_error_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><defs/><path fill=\"#ad001f\" d=\"M15.744,13.104L9.097,1.47c-0.604-1.055-1.59-1.055-2.193,0L0.256,13.104\tc-0.604,1.056-0.102,1.919,1.113,1.919H14.63C15.847,15.022,16.348,14.159,15.744,13.104z M7,5.045c0-0.552,0.448-1,1-1s1,0.448,1,1\tv3.656c0,0.552-0.448,1-1,1s-1-0.448-1-1V5.045z M8,13.212c-0.748,0-1.354-0.607-1.354-1.354c0-0.748,0.606-1.354,1.354-1.354\ts1.354,0.606,1.354,1.354C9.354,12.604,8.748,13.212,8,13.212z\"/></svg>");
9798
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_file-32.svg
9799
+ /* harmony default export */ const icon_file_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" x=\"0px\" y=\"0px\" version=\"1.1\" viewBox=\"0 0 32 32\"><path fill=\"#4A48C1\" d=\"M16,28.5c-3.6,0-6.5-3-6.5-6.6V9.6c0-0.6,0.4-1,1-1s1,0.4,1,1v12.3c0,2.5,2,4.6,4.5,4.6\tc2.5,0,4.5-2.1,4.5-4.6V8.3c0-1.5-1.2-2.8-2.7-2.8c-1.5,0-2.7,1.3-2.7,2.8v13.5c0,0.6,0.5,1.1,1,1.1c0.6,0,1-0.5,1-1.1v-10\tc0-0.6,0.4-1,1-1s1,0.4,1,1v10c0,1.7-1.4,3.1-3,3.1s-3-1.4-3-3.1V8.3c0-2.6,2.1-4.8,4.7-4.8c2.6,0,4.7,2.2,4.7,4.8v13.6\tC22.5,25.5,19.6,28.5,16,28.5z\"/></svg>");
9800
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_newtopic-32.svg
9801
+ /* harmony default export */ const icon_newtopic_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><path fill=\"#4A48C1\" d=\"M16,8.593l2.407,4.573l5.093,0.876l-3.604,3.702l0.74,5.115L16,20.574l-4.634,2.285l0.739-5.115L8.5,14.042\tl5.094-0.876L16,8.593z\"/></svg>");
9802
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_newtranslation-16.svg
9803
+ /* harmony default export */ const icon_newtranslation_16 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 16 16\"><path fill=\"#4A48C1\" d=\"M8,0C3.6,0,0,3.6,0,8s3.6,8,8,8s8-3.6,8-8S12.4,0,8,0z M14.1,7.1h-1.4c-0.1-1.5-0.4-2.9-1-4\tC13,4,13.9,5.4,14.1,7.1z M7.1,2.1v5H5C5.2,4.7,6.1,2.9,7.1,2.1z M7.1,8.9v5c-1-0.7-1.9-2.5-2.1-5H7.1z M8.9,13.9v-5H11\tC10.8,11.3,9.9,13.2,8.9,13.9z M8.9,7.1v-5c1,0.7,1.9,2.5,2.1,5H8.9z M4.2,3.1c-0.5,1.1-0.9,2.5-1,4H1.9C2.1,5.4,3,4,4.2,3.1z M1.9,8.9h1.4c0.1,1.5,0.4,2.9,1,4C3,12,2.1,10.5,1.9,8.9z M11.8,12.9c0.5-1.1,0.9-2.5,1-4h1.4C13.9,10.5,13,12,11.8,12.9z\"/></svg>");
9804
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_newtranslation-32.svg
9805
+ /* harmony default export */ const icon_newtranslation_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><path fill=\"#4A48C1\" d=\"M16,7c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4.1,9-9S20.9,7,16,7z M22.9,15h-1.6c-0.1-1.7-0.5-3.3-1.1-4.5\tC21.6,11.5,22.6,13.1,22.9,15z M15,9.4V15h-2.3C12.9,12.3,13.9,10.2,15,9.4z M15,17v5.6c-1.1-0.8-2.1-2.9-2.3-5.6H15z M17,22.6V17\th2.3C19.1,19.8,18.1,21.8,17,22.6z M17,15V9.4c1.1,0.8,2.1,2.9,2.3,5.6H17z M11.8,10.4c-0.6,1.3-1,2.8-1.1,4.5H9.1\tC9.4,13.1,10.4,11.5,11.8,10.4z M9.1,17h1.6c0.1,1.7,0.5,3.3,1.1,4.5C10.4,20.5,9.4,18.9,9.1,17z M20.2,21.5c0.6-1.3,1-2.8,1.1-4.5\th1.6C22.6,18.8,21.6,20.5,20.2,21.5z\"/></svg>");
9806
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_options-32.svg
9807
+ /* harmony default export */ const icon_options_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M26.1,21.383c0.334-0.625,0.602-1.279,0.812-1.949L32,18.609V13.51l-5.058-0.846\tc-0.208-0.67-0.468-1.325-0.795-1.956l3.009-4.145l-3.604-3.634L21.38,5.903c-0.626-0.333-1.276-0.602-1.948-0.81L18.609,0\tl-5.098,0.001l-0.847,5.061c-0.669,0.203-1.326,0.465-1.957,0.794L6.562,2.847L2.929,6.449l2.973,4.171\tC5.569,11.247,5.3,11.9,5.091,12.569L0,13.373v5.099l5.06,0.866c0.204,0.669,0.467,1.324,0.796,1.955l-3.009,4.146l3.601,3.635\tl4.171-2.975c0.627,0.335,1.282,0.603,1.951,0.811L13.372,32h5.118l0.849-5.057c0.668-0.207,1.323-0.469,1.953-0.795l4.144,3.01\tl3.639-3.604L26.1,21.383z M19.01,19.035c-1.675,1.663-4.381,1.652-6.041-0.025c-1.662-1.675-1.649-4.381,0.024-6.042\tc1.676-1.661,4.382-1.648,6.043,0.025C20.699,14.67,20.686,17.377,19.01,19.035z\"/></svg>");
9808
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_send-32.svg
9809
+ /* harmony default export */ const icon_send_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M6.714,14.985l17.837-7.906c0.681-0.302,1.414,0.301,1.25,1.027L22.273,23.59\tc-0.13,0.566-0.751,0.865-1.275,0.613l-3.623-1.752l-2.334,2.287c-0.572,0.562-1.538,0.156-1.538-0.645V21.01\tc0-0.217,0.078-0.43,0.222-0.594l7.676-8.841l-10.414,7.472l-4.351-2.445C5.987,16.236,6.033,15.287,6.714,14.985L6.714,14.985z\"/></svg>");
9810
+ ;// CONCATENATED MODULE: ./node_modules/raw-loader/dist/cjs.js!./src/icons/icon_upload-32.svg
9811
+ /* harmony default export */ const icon_upload_32 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32px\" height=\"32px\" x=\"0px\" y=\"0px\" viewBox=\"0 0 32 32\"><defs/><path fill=\"#4A48C1\" d=\"M9.488,13.481c-0.391-0.391-0.391-1.023,0-1.414l5.805-5.805c0.026-0.026,0.06-0.036,0.088-0.058\tc0.073-0.06,0.146-0.119,0.235-0.156c0.246-0.103,0.522-0.103,0.769,0c0.093,0.039,0.171,0.101,0.249,0.165\tc0.023,0.02,0.053,0.027,0.074,0.049l5.805,5.805c0.391,0.391,0.391,1.023,0,1.414c-0.195,0.195-0.451,0.293-0.707,0.293\ts-0.512-0.098-0.707-0.293L17,9.383V20.33c0,0.553-0.447,1-1,1c-0.552,0-1-0.447-1-1V9.383l-4.098,4.098\tC10.512,13.872,9.879,13.872,9.488,13.481z M22.819,24.031H9.181c-0.552,0-1,0.447-1,1s0.448,1,1,1h13.639c0.553,0,1-0.447,1-1\tS23.372,24.031,22.819,24.031z\"/></svg>");
9812
+ // EXTERNAL MODULE: ./src/javascripts/lib/css.js
9813
+ var css = __webpack_require__(2);
9814
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/layout/icon.tsx
9815
+
9816
+ /* eslint-disable import/no-webpack-loader-syntax */
9817
+ // The eslint rules are disabled for this as otherwsise we'd need to include the loader rule in all implementations
9818
+ // this can again be changed when we can import pre-built packages in implementations
9819
+
9820
+
9821
+
9822
+
9823
+
9824
+
9825
+
9826
+
9827
+
9828
+
9829
+
9830
+
9831
+
9832
+
9833
+
9834
+
9835
+
9836
+
9837
+
9838
+
9839
+
9840
+
9841
+
9842
+ /* eslint-enable import/no-webpack-loader-syntax */
9843
+ const ICONS = {
9844
+ send: {
9845
+ 32: icon_send_32,
9846
+ },
9847
+ balloon: {
9848
+ 32: icon_balloon_32,
9849
+ },
9850
+ newTopic: {
9851
+ 32: icon_newtopic_32,
9852
+ },
9853
+ newTranslation: {
9854
+ 16: icon_newtranslation_16,
9855
+ 32: icon_newtranslation_32,
9856
+ },
9857
+ avatar: {
9858
+ 32: avatar_bot_32,
9859
+ },
9860
+ chevronDown: {
9861
+ 8: icon_chevron_down_8,
9862
+ 32: icon_chevron_down_32,
9863
+ },
9864
+ chevronRight: {
9865
+ 8: icon_chevron_right_8,
9866
+ 16: icon_chevron_right_16,
9867
+ },
9868
+ close: {
9869
+ 8: icon_close_8,
9870
+ 16: icon_close_16,
9871
+ },
9872
+ enlarge: {
9873
+ 32: icon_enlarge_32,
9874
+ },
9875
+ options: {
9876
+ 32: icon_options_32,
9877
+ },
9878
+ file: {
9879
+ 32: icon_file_32,
9880
+ },
9881
+ upload: {
9882
+ 32: icon_upload_32,
9883
+ },
9884
+ download: {
9885
+ 16: icon_download_16,
9886
+ },
9887
+ error: {
9888
+ 16: icon_error_16,
9889
+ },
9890
+ arrowLeft: {
9891
+ 16: icon_arrow_left_16,
9892
+ },
9893
+ arrowRight: {
9894
+ 16: icon_arrow_right_16,
9895
+ },
9896
+ check: {
9897
+ 16: icon_check_16,
9898
+ 32: icon_check_32,
9899
+ },
9900
+ };
9901
+ const Icon = ({ name, size = '32', className, alt }) => ((0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, { children: [(0,jsx_runtime_.jsx)("div", { "aria-hidden": "true", className: className || (0,css/* className */.o)('icon'), dangerouslySetInnerHTML: { __html: ICONS[name][size] } }), alt && (0,jsx_runtime_.jsx)("span", { className: (0,css/* className */.o)('visually-hidden'), children: alt })] }));
9902
+ /* harmony default export */ const icon = (Icon);
9903
+
9904
+
9712
9905
  /***/ }),
9713
9906
 
9714
9907
  /***/ 3250:
@@ -11609,7 +11802,8 @@ class API {
11609
11802
  });
11610
11803
  }
11611
11804
  getConversationUrl() {
11612
- return this.store.get('conversationUrl');
11805
+ const conversationUrl = this.store.get('conversationUrl');
11806
+ return conversationUrl;
11613
11807
  }
11614
11808
  hasConversation() {
11615
11809
  return !!this.getConversationUrl();
@@ -11717,7 +11911,7 @@ class API {
11717
11911
  if (error.status >= 500) {
11718
11912
  throw new seamly_general_error/* default */.Z(error);
11719
11913
  }
11720
- throw error;
11914
+ throw new ApiError(error);
11721
11915
  }
11722
11916
  });
11723
11917
  }
@@ -11826,7 +12020,7 @@ class API {
11826
12020
  if (error.status >= 500) {
11827
12021
  throw new seamly_general_error/* default */.Z(error);
11828
12022
  }
11829
- throw error;
12023
+ throw new ApiError(error);
11830
12024
  }
11831
12025
  });
11832
12026
  }
@@ -11886,15 +12080,17 @@ class API {
11886
12080
  }
11887
12081
  }
11888
12082
  _API_ready = new WeakMap(), _API_externalId = new WeakMap(), _API_conversationAuthToken = new WeakMap(), _API_layoutMode = new WeakMap(), _API_config = new WeakMap(), _API_getLocale = new WeakMap(), _API_instances = new WeakSet(), _API_getAccessToken = function _API_getAccessToken() {
11889
- return this.store.get('accessToken');
12083
+ const accessToken = this.store.get('accessToken');
12084
+ return accessToken;
11890
12085
  }, _API_setAccessToken = function _API_setAccessToken(accessToken) {
11891
12086
  this.store.set('accessToken', accessToken);
11892
12087
  }, _API_setConversationUrl = function _API_setConversationUrl(url) {
11893
12088
  this.store.set('conversationUrl', url);
11894
12089
  }, _API_getChannelTopic = function _API_getChannelTopic() {
12090
+ const channelTopic = this.store.get('channelTopic') || this.store.get('channelName');
11895
12091
  // The `channelName` fallback is needed for seamless client upgrades.
11896
12092
  // TODO: Remove when all clients have been upgraded past v20.
11897
- return this.store.get('channelTopic') || this.store.get('channelName');
12093
+ return channelTopic;
11898
12094
  }, _API_setChannelTopic = function _API_setChannelTopic(topic) {
11899
12095
  this.store.set('channelTopic', topic);
11900
12096
  }, _API_getUrlPrefix = function _API_getUrlPrefix(protocol) {
@@ -11959,7 +12155,7 @@ _API_ready = new WeakMap(), _API_externalId = new WeakMap(), _API_conversationAu
11959
12155
  return {
11960
12156
  clientName: "@seamly/web-ui",
11961
12157
  clientVariant: api_classPrivateFieldGet(this, _API_layoutMode, "f"),
11962
- clientVersion: "22.2.0",
12158
+ clientVersion: "22.3.0-beta.2",
11963
12159
  currentUrl: window.location.toString(),
11964
12160
  screenResolution: `${window.screen.width}x${window.screen.height}`,
11965
12161
  timezone: getTimeZone(),
@@ -12001,108 +12197,61 @@ var message_container = __webpack_require__(2480);
12001
12197
  var seamly_hooks = __webpack_require__(9470);
12002
12198
  // EXTERNAL MODULE: ./src/javascripts/domains/translations/hooks.ts + 1 modules
12003
12199
  var translations_hooks = __webpack_require__(4398);
12004
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-component.js
12005
-
12200
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-component.tsx
12006
12201
 
12007
12202
 
12008
12203
 
12009
12204
 
12010
12205
 
12011
- const CardComponent = ({
12012
- id,
12013
- action,
12014
- buttonText,
12015
- description,
12016
- hasFocus,
12017
- image,
12018
- title,
12019
- isCarouselItem
12020
- }) => {
12021
- const cardRef = (0,hooks_.useRef)(null);
12022
- const {
12023
- sendMessage,
12024
- sendAction,
12025
- emitEvent
12026
- } = (0,seamly_hooks/* useSeamlyCommands */.bs)();
12027
- const descriptionId = (0,seamly_hooks/* useGeneratedId */.I8)();
12028
- const isMounted = (0,hooks_.useRef)();
12029
- const CardActionComponent = action.type === seamly_utils/* cardTypes */.wh.navigate ? 'a' : 'button';
12030
- const emitCardEvent = (0,hooks_.useCallback)(() => emitEvent(`action.${seamly_utils/* actionTypes */.Hp.clickCard}`, {
12031
- type: seamly_utils/* actionTypes */.Hp.clickCta,
12032
- originMessage: id,
12033
- action
12034
- }), [emitEvent, id, action]);
12035
- const handleClick = (0,hooks_.useCallback)(() => {
12036
- emitCardEvent();
12037
- if (action.type === seamly_utils/* cardTypes */.wh.ask) {
12038
- sendMessage({
12039
- body: action.ask
12040
- });
12041
- } else if (action.type === seamly_utils/* cardTypes */.wh.topic) {
12042
- const {
12043
- topic: name,
12044
- fallbackMessage
12045
- } = action;
12046
- sendAction({
12047
- type: seamly_utils/* actionTypes */.Hp.setTopic,
12048
- body: {
12049
- name,
12050
- fallbackMessage
12206
+ const CardComponent = ({ id, action, buttonText, description, hasFocus, image, title, isCarouselItem, }) => {
12207
+ const cardRef = (0,hooks_.useRef)(null);
12208
+ const { sendMessage, sendAction, emitEvent } = (0,seamly_hooks/* useSeamlyCommands */.bs)();
12209
+ const descriptionId = (0,seamly_hooks/* useGeneratedId */.I8)();
12210
+ const isMounted = (0,hooks_.useRef)(false);
12211
+ const CardActionComponent = action.type === seamly_utils/* cardTypes */.wh.navigate ? 'a' : 'button';
12212
+ const emitCardEvent = (0,hooks_.useCallback)(() => emitEvent(`action.${seamly_utils/* actionTypes */.Hp.clickCard}`, {
12213
+ type: seamly_utils/* actionTypes */.Hp.clickCta,
12214
+ originMessage: id,
12215
+ action,
12216
+ }), [emitEvent, id, action]);
12217
+ const handleClick = (0,hooks_.useCallback)(() => {
12218
+ emitCardEvent();
12219
+ if (action.type === seamly_utils/* cardTypes */.wh.ask) {
12220
+ sendMessage({ body: action.ask });
12051
12221
  }
12052
- });
12053
- }
12054
- }, [sendMessage, action, sendAction, emitCardEvent]);
12055
- const actionProps = (0,hooks_.useMemo)(() => action.type === seamly_utils/* cardTypes */.wh.navigate ? {
12056
- href: action.link,
12057
- rel: 'noopener noreferrer',
12058
- target: action.newTab ? '_blank' : '_self',
12059
- onClick: emitCardEvent
12060
- } : {
12061
- onClick: handleClick
12062
- }, [action, handleClick, emitCardEvent]);
12063
- (0,hooks_.useEffect)(() => {
12064
- if (isCarouselItem) {
12065
- if (hasFocus && isMounted.current) {
12066
- window.requestAnimationFrame(() => cardRef.current.focus());
12067
- } else {
12068
- cardRef.current.blur();
12069
- }
12070
- }
12071
- isMounted.current = true;
12072
- }, [hasFocus, isCarouselItem]);
12073
- return (0,jsx_runtime_.jsxs)("div", {
12074
- className: (0,css/* className */.o)('card__wrapper'),
12075
- id: id,
12076
- tabIndex: "-1" // set tabIndex of -1 so card can be focussed
12077
- ,
12078
- ref: cardRef,
12079
- children: [(0,jsx_runtime_.jsx)("img", {
12080
- className: (0,css/* className */.o)('card__image'),
12081
- src: image,
12082
- alt: ""
12083
- }), (0,jsx_runtime_.jsxs)("div", {
12084
- className: (0,css/* className */.o)('card__content'),
12085
- id: id,
12086
- children: [title && (0,jsx_runtime_.jsx)("h2", {
12087
- className: (0,css/* className */.o)('card__title'),
12088
- children: title
12089
- }), description && (0,jsx_runtime_.jsx)("div", {
12090
- className: (0,css/* className */.o)('card__description'),
12091
- dangerouslySetInnerHTML: {
12092
- __html: description
12222
+ else if (action.type === seamly_utils/* cardTypes */.wh.topic) {
12223
+ const { topic: name, fallbackMessage } = action;
12224
+ sendAction({
12225
+ type: seamly_utils/* actionTypes */.Hp.setTopic,
12226
+ body: { name, fallbackMessage },
12227
+ });
12093
12228
  }
12094
- }), (0,jsx_runtime_.jsx)(CardActionComponent, {
12095
- tabIndex: isCarouselItem && !hasFocus ? '-1' : undefined // disable to prevent tabbing through cards
12096
- ,
12097
- className: (0,css/* className */.o)('button', 'button--primary'),
12098
- "aria-describedby": descriptionId,
12099
- ...actionProps,
12100
- children: buttonText
12101
- })]
12102
- })]
12103
- });
12229
+ }, [sendMessage, action, sendAction, emitCardEvent]);
12230
+ const actionProps = (0,hooks_.useMemo)(() => action.type === seamly_utils/* cardTypes */.wh.navigate
12231
+ ? {
12232
+ href: action.link,
12233
+ rel: 'noopener noreferrer',
12234
+ target: action.newTab ? '_blank' : '_self',
12235
+ onClick: emitCardEvent,
12236
+ }
12237
+ : {
12238
+ onClick: handleClick,
12239
+ }, [action, handleClick, emitCardEvent]);
12240
+ (0,hooks_.useEffect)(() => {
12241
+ if (isCarouselItem) {
12242
+ if (hasFocus && isMounted.current) {
12243
+ window.requestAnimationFrame(() => cardRef.current.focus());
12244
+ }
12245
+ else {
12246
+ cardRef.current.blur();
12247
+ }
12248
+ }
12249
+ isMounted.current = true;
12250
+ }, [hasFocus, isCarouselItem]);
12251
+ return ((0,jsx_runtime_.jsxs)("div", { className: (0,css/* className */.o)('card__wrapper'), id: id, tabIndex: -1, ref: cardRef, children: [image ? ((0,jsx_runtime_.jsx)("img", { className: (0,css/* className */.o)('card__image'), src: image, alt: "" })) : null, (0,jsx_runtime_.jsxs)("div", { className: (0,css/* className */.o)('card__content'), id: id, children: [title && (0,jsx_runtime_.jsx)("h2", { className: (0,css/* className */.o)('card__title'), children: title }), description && ((0,jsx_runtime_.jsx)("div", { className: (0,css/* className */.o)('card__description'), dangerouslySetInnerHTML: { __html: description } })), (0,jsx_runtime_.jsx)(CardActionComponent, Object.assign({ tabIndex: isCarouselItem && !hasFocus ? -1 : undefined, className: (0,css/* className */.o)('button', 'button--primary'), "aria-describedby": descriptionId }, actionProps, { children: buttonText }))] })] }));
12104
12252
  };
12105
12253
  /* harmony default export */ const card_component = (CardComponent);
12254
+
12106
12255
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-message.js
12107
12256
 
12108
12257
 
@@ -12159,8 +12308,8 @@ function CarouselMessageSlide({
12159
12308
  }
12160
12309
  // EXTERNAL MODULE: ./src/javascripts/ui/hooks/utility-hooks.js
12161
12310
  var utility_hooks = __webpack_require__(7750);
12162
- // EXTERNAL MODULE: ./src/javascripts/ui/components/layout/icon.js + 22 modules
12163
- var layout_icon = __webpack_require__(9016);
12311
+ // EXTERNAL MODULE: ./src/javascripts/ui/components/layout/icon.tsx + 22 modules
12312
+ var layout_icon = __webpack_require__(2398);
12164
12313
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/carousel-component/components/controls.js
12165
12314
 
12166
12315
 
@@ -12191,7 +12340,8 @@ function CarouselControls({
12191
12340
  onClick: handlePrevious,
12192
12341
  children: (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
12193
12342
  name: "arrowLeft",
12194
- size: "16"
12343
+ size: "16",
12344
+ alt: ""
12195
12345
  })
12196
12346
  }), children, (0,jsx_runtime_.jsx)("button", {
12197
12347
  className: (0,css/* className */.o)('button', 'button--next'),
@@ -12199,7 +12349,8 @@ function CarouselControls({
12199
12349
  onClick: handleNext,
12200
12350
  children: (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
12201
12351
  name: "arrowRight",
12202
- size: "16"
12352
+ size: "16",
12353
+ alt: ""
12203
12354
  })
12204
12355
  })]
12205
12356
  });
@@ -12406,7 +12557,8 @@ const SuggestionsItem = ({
12406
12557
  className: (0,css/* className */.o)('button', 'button--primary'),
12407
12558
  children: [hasIcon && (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
12408
12559
  name: "chevronRight",
12409
- size: "8"
12560
+ size: "8",
12561
+ alt: ""
12410
12562
  }), question]
12411
12563
  })
12412
12564
  });
@@ -12640,7 +12792,8 @@ function EventDivider({
12640
12792
  children: iconName ? (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
12641
12793
  name: iconName,
12642
12794
  size: iconSize,
12643
- className: iconClassName
12795
+ className: iconClassName,
12796
+ alt: ""
12644
12797
  }) : (0,jsx_runtime_.jsx)("img", {
12645
12798
  src: graphicSrc,
12646
12799
  className: (0,css/* className */.o)({
@@ -14534,7 +14687,8 @@ const Lightbox = ({
14534
14687
  onClick: onClose,
14535
14688
  children: [(0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
14536
14689
  name: "close",
14537
- size: "16"
14690
+ size: "16",
14691
+ alt: ""
14538
14692
  }), t('lightbox.closeLabel')]
14539
14693
  })]
14540
14694
  })
@@ -14582,7 +14736,8 @@ const ImageLightbox = ({
14582
14736
  description
14583
14737
  }), (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
14584
14738
  name: "enlarge",
14585
- size: "32"
14739
+ size: "32",
14740
+ alt: ""
14586
14741
  })]
14587
14742
  }), showLightBox && (0,jsx_runtime_.jsx)(lightbox, {
14588
14743
  url: url,
@@ -15022,7 +15177,38 @@ var seamly_api_context = __webpack_require__(2871);
15022
15177
  var seamly_offline_error = __webpack_require__(3243);
15023
15178
  // EXTERNAL MODULE: ./src/javascripts/domains/interrupt/slice.ts
15024
15179
  var interrupt_slice = __webpack_require__(6160);
15180
+ // EXTERNAL MODULE: ./src/javascripts/domains/store/index.ts + 4 modules
15181
+ var domains_store = __webpack_require__(7271);
15182
+ // EXTERNAL MODULE: ./src/javascripts/domains/store/actions.ts
15183
+ var actions = __webpack_require__(2770);
15025
15184
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/core/seamly-event-subscriber.ts
15185
+ var seamly_event_subscriber_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
15186
+ function adopt(value) {
15187
+ return value instanceof P ? value : new P(function (resolve) {
15188
+ resolve(value);
15189
+ });
15190
+ }
15191
+ return new (P || (P = Promise))(function (resolve, reject) {
15192
+ function fulfilled(value) {
15193
+ try {
15194
+ step(generator.next(value));
15195
+ } catch (e) {
15196
+ reject(e);
15197
+ }
15198
+ }
15199
+ function rejected(value) {
15200
+ try {
15201
+ step(generator["throw"](value));
15202
+ } catch (e) {
15203
+ reject(e);
15204
+ }
15205
+ }
15206
+ function step(result) {
15207
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
15208
+ }
15209
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15210
+ });
15211
+ };
15026
15212
  var seamly_event_subscriber_rest = undefined && undefined.__rest || function (s, e) {
15027
15213
  var t = {};
15028
15214
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
@@ -15043,13 +15229,13 @@ var seamly_event_subscriber_rest = undefined && undefined.__rest || function (s,
15043
15229
 
15044
15230
 
15045
15231
 
15232
+
15046
15233
  const EMITTABLE_MESSAGE_TYPES = ['text', 'choice_prompt', 'image', 'video'];
15047
15234
  const SeamlyEventSubscriber = () => {
15048
15235
  const api = (0,seamly_hooks/* useSeamlyApiContext */.jM)();
15049
15236
  const syncChannelRef = (0,hooks_.useRef)();
15050
15237
  const messageChannelRef = (0,hooks_.useRef)();
15051
- const dispatch = (0,es/* useDispatch */.I0)();
15052
- const events = (0,seamly_hooks/* useEvents */.hI)();
15238
+ const dispatch = (0,domains_store/* useAppDispatch */.T)();
15053
15239
  const eventBus = (0,hooks_.useContext)(seamly_api_context/* SeamlyEventBusContext */.T);
15054
15240
  const prevEmittedEventId = (0,hooks_.useRef)(null);
15055
15241
  const {
@@ -15294,31 +15480,19 @@ const SeamlyEventSubscriber = () => {
15294
15480
  if (syncChannelRef.current) {
15295
15481
  (_a = api.conversation.channel) === null || _a === void 0 ? void 0 : _a.off('sync', syncChannelRef.current);
15296
15482
  }
15297
- syncChannelRef.current = api.conversation.channel.on('sync', payload => {
15298
- var _a;
15299
- const lastEvent = events[events.length - 1];
15300
- const payloadLastEventId = (_a = payload === null || payload === void 0 ? void 0 : payload.lastEvent) === null || _a === void 0 ? void 0 : _a.id;
15301
- if (lastEvent && payloadLastEventId === lastEvent.payload.id) {
15302
- return payload;
15303
- }
15304
- return api.getConversation().then(history => {
15483
+ syncChannelRef.current = api.conversation.channel.on('sync', payload => seamly_event_subscriber_awaiter(void 0, void 0, void 0, function* () {
15484
+ try {
15485
+ const history = yield dispatch((0,actions/* getConversation */.c)(payload)).unwrap();
15305
15486
  if (!history) return;
15306
15487
  dispatch((0,store_slice/* setHistory */.JB)(history));
15307
- }).catch(error => {
15308
- dispatch((0,interrupt_slice/* setInterrupt */.uc)({
15309
- name: error === null || error === void 0 ? void 0 : error.name,
15310
- message: error === null || error === void 0 ? void 0 : error.message,
15311
- langKey: error === null || error === void 0 ? void 0 : error.langKey,
15312
- action: error === null || error === void 0 ? void 0 : error.action,
15313
- originalEvent: error === null || error === void 0 ? void 0 : error.originalEvent,
15314
- originalError: error === null || error === void 0 ? void 0 : error.originalError
15315
- }));
15316
- });
15317
- });
15488
+ } catch (_e) {
15489
+ // nothing to do, the error is handled in the thunk
15490
+ }
15491
+ }));
15318
15492
  return true;
15319
15493
  });
15320
15494
  }
15321
- }, [api, api.connectionInfo, api.conversation.channel, events, dispatch]);
15495
+ }, [api, api.connectionInfo, api.conversation.channel, dispatch]);
15322
15496
  return null;
15323
15497
  };
15324
15498
  /* harmony default export */ const seamly_event_subscriber = (SeamlyEventSubscriber);
@@ -16925,7 +17099,8 @@ function error_Error({
16925
17099
  className: (0,css/* className */.o)('error__message'),
16926
17100
  children: [(0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
16927
17101
  name: "error",
16928
- size: "16"
17102
+ size: "16",
17103
+ alt: ""
16929
17104
  }), error]
16930
17105
  })
16931
17106
  });
@@ -17302,7 +17477,8 @@ const OptionsButton = () => {
17302
17477
  "aria-disabled": !multiMenu && !firstOption.available ? 'true' : null,
17303
17478
  children: [multiMenu && (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
17304
17479
  name: "options",
17305
- size: "32"
17480
+ size: "32",
17481
+ alt: ""
17306
17482
  }), (0,jsx_runtime_.jsx)("span", {
17307
17483
  className: (0,css/* className */.o)('button__text'),
17308
17484
  children: multiMenu ? t('options.openButtonText') : `${firstOption.title}${!firstOption.available ? ' ' : ''}`
@@ -17325,7 +17501,7 @@ const TranslationOption = ({ label, checked, description, onChange, id, itemClas
17325
17501
  onChange();
17326
17502
  }
17327
17503
  };
17328
- return ((0,jsx_runtime_.jsxs)("li", { className: (0,css/* className */.o)([itemClassName, 'translation-options__item']), "aria-selected": checked, role: "option", tabIndex: 0, onClick: onChange, onKeyDown: onKeyDown, id: id, children: [(0,jsx_runtime_.jsx)(layout_icon/* default */.Z, { alt: "", name: "check", size: "16" }), label, " ", description && (0,jsx_runtime_.jsxs)("span", { children: ["(", description, ")"] })] }));
17504
+ return ((0,jsx_runtime_.jsxs)("li", { className: (0,css/* className */.o)([itemClassName, 'translation-options__item']), "aria-selected": checked, role: "option", tabIndex: 0, onClick: onChange, onKeyDown: onKeyDown, id: id, children: [(0,jsx_runtime_.jsx)(layout_icon/* default */.Z, { name: "check", size: "16", alt: "" }), label, " ", description && (0,jsx_runtime_.jsxs)("span", { children: ["(", description, ")"] })] }));
17329
17505
  };
17330
17506
  /* harmony default export */ const translation_option = (TranslationOption);
17331
17507
 
@@ -18154,7 +18330,8 @@ function FileInput({
18154
18330
  className: (0,css/* className */.o)('upload__label'),
18155
18331
  children: [(0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
18156
18332
  name: "upload",
18157
- size: "32"
18333
+ size: "32",
18334
+ alt: ""
18158
18335
  }), (0,jsx_runtime_.jsxs)("div", {
18159
18336
  children: [(0,jsx_runtime_.jsx)("span", {
18160
18337
  className: (0,css/* className */.o)(['upload__label--text']),
@@ -18899,7 +19076,8 @@ const ButtonIcon = () => {
18899
19076
  alt: ""
18900
19077
  }) : (0,jsx_runtime_.jsx)(layout_icon/* default */.Z, {
18901
19078
  name: "avatar",
18902
- size: "32"
19079
+ size: "32",
19080
+ alt: ""
18903
19081
  });
18904
19082
  };
18905
19083
  const WindowOpenButton = ({
@@ -18927,10 +19105,14 @@ const WindowOpenButton = ({
18927
19105
  "aria-label": ariaLabel,
18928
19106
  "aria-hidden": isOpen,
18929
19107
  onClick: handleClick,
18930
- children: [(0,jsx_runtime_.jsx)("span", {
18931
- className: (0,css/* className */.o)('message-count'),
18932
- "aria-hidden": "true",
18933
- children: !!count && count
19108
+ children: [(0,jsx_runtime_.jsx)(in_out_transition, {
19109
+ isActive: !!count,
19110
+ transitionStartState: transitionStartStates.notRendered,
19111
+ children: (0,jsx_runtime_.jsx)("span", {
19112
+ className: (0,css/* className */.o)('message-count'),
19113
+ "aria-hidden": "true",
19114
+ children: count
19115
+ })
18934
19116
  }), (0,jsx_runtime_.jsx)(ButtonIcon, {})]
18935
19117
  })
18936
19118
  });
@@ -19195,14 +19377,12 @@ const ChatApp = props => {
19195
19377
  });
19196
19378
  };
19197
19379
  /* harmony default export */ const chat_app = (ChatApp);
19198
- // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts
19199
- var actions = __webpack_require__(9201);
19380
+ // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts + 1 modules
19381
+ var app_actions = __webpack_require__(526);
19200
19382
  // EXTERNAL MODULE: ./src/javascripts/domains/config/actions.ts
19201
19383
  var config_actions = __webpack_require__(257);
19202
19384
  // EXTERNAL MODULE: ./src/javascripts/domains/i18n/actions.ts
19203
19385
  var i18n_actions = __webpack_require__(5409);
19204
- // EXTERNAL MODULE: ./src/javascripts/domains/store/index.ts + 4 modules
19205
- var domains_store = __webpack_require__(7271);
19206
19386
  // EXTERNAL MODULE: ./src/javascripts/domains/visibility/actions.ts
19207
19387
  var visibility_actions = __webpack_require__(9586);
19208
19388
  ;// CONCATENATED MODULE: ./src/javascripts/lib/engine/index.tsx
@@ -19279,7 +19459,7 @@ class Engine {
19279
19459
  store.dispatch((0,config_slice/* setConfig */.v6)(renderConfig));
19280
19460
  yield store.dispatch((0,config_actions/* initializeConfig */.t)());
19281
19461
  try {
19282
- const { locale } = yield store.dispatch((0,actions/* initializeApp */.Z)()).unwrap();
19462
+ const { locale } = yield store.dispatch((0,app_actions/* initializeApp */.Z)()).unwrap();
19283
19463
  if (locale) {
19284
19464
  yield store.dispatch((0,i18n_actions/* setLocale */.i)(locale));
19285
19465
  }