@seamly/web-ui 22.2.0 → 22.3.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 (47) hide show
  1. package/build/dist/lib/components.js +269 -138
  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 +217 -41
  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 +43 -21
  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 +12 -4
  13. package/build/dist/lib/index.debug.min.js.map +1 -1
  14. package/build/dist/lib/index.js +257 -133
  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 +265 -133
  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 +274 -134
  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 +325 -171
  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/visibility/actions.ts +4 -1
  41. package/src/javascripts/style-guide/states.js +18 -1
  42. package/src/javascripts/ui/components/conversation/event/{card-component.js → card-component.tsx} +6 -4
  43. package/src/javascripts/ui/components/conversation/event/event-participant.js +1 -1
  44. package/src/javascripts/ui/components/core/seamly-event-subscriber.ts +14 -30
  45. package/src/javascripts/ui/components/view/window-view/window-open-button.js +8 -3
  46. package/src/javascripts/ui/hooks/use-session-expired-command.ts +31 -2
  47. 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) {
@@ -6888,7 +7065,7 @@ const EventParticipant = ({
6888
7065
  })
6889
7066
  }));
6890
7067
  }
6891
- if (showName) {
7068
+ if (showName && participantName) {
6892
7069
  authorInfo.push((0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
6893
7070
  className: (0,lib_css__WEBPACK_IMPORTED_MODULE_3__/* .className */ .o)('message__author-name'),
6894
7071
  children: participantName
@@ -7617,7 +7794,7 @@ const useSeamlyActivityEventHandler = () => (0,preact_hooks__WEBPACK_IMPORTED_MO
7617
7794
  /* harmony import */ var config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9787);
7618
7795
  /* harmony import */ var ui_components_core_seamly_api_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2871);
7619
7796
  /* 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);
7797
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(526);
7621
7798
  /* harmony import */ var domains_app_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3423);
7622
7799
  /* harmony import */ var domains_app_slice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1322);
7623
7800
  /* harmony import */ var domains_config_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6134);
@@ -11609,7 +11786,8 @@ class API {
11609
11786
  });
11610
11787
  }
11611
11788
  getConversationUrl() {
11612
- return this.store.get('conversationUrl');
11789
+ const conversationUrl = this.store.get('conversationUrl');
11790
+ return conversationUrl;
11613
11791
  }
11614
11792
  hasConversation() {
11615
11793
  return !!this.getConversationUrl();
@@ -11717,7 +11895,7 @@ class API {
11717
11895
  if (error.status >= 500) {
11718
11896
  throw new seamly_general_error/* default */.Z(error);
11719
11897
  }
11720
- throw error;
11898
+ throw new ApiError(error);
11721
11899
  }
11722
11900
  });
11723
11901
  }
@@ -11826,7 +12004,7 @@ class API {
11826
12004
  if (error.status >= 500) {
11827
12005
  throw new seamly_general_error/* default */.Z(error);
11828
12006
  }
11829
- throw error;
12007
+ throw new ApiError(error);
11830
12008
  }
11831
12009
  });
11832
12010
  }
@@ -11886,15 +12064,17 @@ class API {
11886
12064
  }
11887
12065
  }
11888
12066
  _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');
12067
+ const accessToken = this.store.get('accessToken');
12068
+ return accessToken;
11890
12069
  }, _API_setAccessToken = function _API_setAccessToken(accessToken) {
11891
12070
  this.store.set('accessToken', accessToken);
11892
12071
  }, _API_setConversationUrl = function _API_setConversationUrl(url) {
11893
12072
  this.store.set('conversationUrl', url);
11894
12073
  }, _API_getChannelTopic = function _API_getChannelTopic() {
12074
+ const channelTopic = this.store.get('channelTopic') || this.store.get('channelName');
11895
12075
  // The `channelName` fallback is needed for seamless client upgrades.
11896
12076
  // TODO: Remove when all clients have been upgraded past v20.
11897
- return this.store.get('channelTopic') || this.store.get('channelName');
12077
+ return channelTopic;
11898
12078
  }, _API_setChannelTopic = function _API_setChannelTopic(topic) {
11899
12079
  this.store.set('channelTopic', topic);
11900
12080
  }, _API_getUrlPrefix = function _API_getUrlPrefix(protocol) {
@@ -11959,7 +12139,7 @@ _API_ready = new WeakMap(), _API_externalId = new WeakMap(), _API_conversationAu
11959
12139
  return {
11960
12140
  clientName: "@seamly/web-ui",
11961
12141
  clientVariant: api_classPrivateFieldGet(this, _API_layoutMode, "f"),
11962
- clientVersion: "22.2.0",
12142
+ clientVersion: "22.3.0-beta.1",
11963
12143
  currentUrl: window.location.toString(),
11964
12144
  screenResolution: `${window.screen.width}x${window.screen.height}`,
11965
12145
  timezone: getTimeZone(),
@@ -12001,108 +12181,61 @@ var message_container = __webpack_require__(2480);
12001
12181
  var seamly_hooks = __webpack_require__(9470);
12002
12182
  // EXTERNAL MODULE: ./src/javascripts/domains/translations/hooks.ts + 1 modules
12003
12183
  var translations_hooks = __webpack_require__(4398);
12004
- ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-component.js
12005
-
12184
+ ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-component.tsx
12006
12185
 
12007
12186
 
12008
12187
 
12009
12188
 
12010
12189
 
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
12190
+ const CardComponent = ({ id, action, buttonText, description, hasFocus, image, title, isCarouselItem, }) => {
12191
+ const cardRef = (0,hooks_.useRef)(null);
12192
+ const { sendMessage, sendAction, emitEvent } = (0,seamly_hooks/* useSeamlyCommands */.bs)();
12193
+ const descriptionId = (0,seamly_hooks/* useGeneratedId */.I8)();
12194
+ const isMounted = (0,hooks_.useRef)(false);
12195
+ const CardActionComponent = action.type === seamly_utils/* cardTypes */.wh.navigate ? 'a' : 'button';
12196
+ const emitCardEvent = (0,hooks_.useCallback)(() => emitEvent(`action.${seamly_utils/* actionTypes */.Hp.clickCard}`, {
12197
+ type: seamly_utils/* actionTypes */.Hp.clickCta,
12198
+ originMessage: id,
12199
+ action,
12200
+ }), [emitEvent, id, action]);
12201
+ const handleClick = (0,hooks_.useCallback)(() => {
12202
+ emitCardEvent();
12203
+ if (action.type === seamly_utils/* cardTypes */.wh.ask) {
12204
+ sendMessage({ body: action.ask });
12051
12205
  }
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
12206
+ else if (action.type === seamly_utils/* cardTypes */.wh.topic) {
12207
+ const { topic: name, fallbackMessage } = action;
12208
+ sendAction({
12209
+ type: seamly_utils/* actionTypes */.Hp.setTopic,
12210
+ body: { name, fallbackMessage },
12211
+ });
12093
12212
  }
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
- });
12213
+ }, [sendMessage, action, sendAction, emitCardEvent]);
12214
+ const actionProps = (0,hooks_.useMemo)(() => action.type === seamly_utils/* cardTypes */.wh.navigate
12215
+ ? {
12216
+ href: action.link,
12217
+ rel: 'noopener noreferrer',
12218
+ target: action.newTab ? '_blank' : '_self',
12219
+ onClick: emitCardEvent,
12220
+ }
12221
+ : {
12222
+ onClick: handleClick,
12223
+ }, [action, handleClick, emitCardEvent]);
12224
+ (0,hooks_.useEffect)(() => {
12225
+ if (isCarouselItem) {
12226
+ if (hasFocus && isMounted.current) {
12227
+ window.requestAnimationFrame(() => cardRef.current.focus());
12228
+ }
12229
+ else {
12230
+ cardRef.current.blur();
12231
+ }
12232
+ }
12233
+ isMounted.current = true;
12234
+ }, [hasFocus, isCarouselItem]);
12235
+ 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
12236
  };
12105
12237
  /* harmony default export */ const card_component = (CardComponent);
12238
+
12106
12239
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/conversation/event/card-message.js
12107
12240
 
12108
12241
 
@@ -15022,7 +15155,38 @@ var seamly_api_context = __webpack_require__(2871);
15022
15155
  var seamly_offline_error = __webpack_require__(3243);
15023
15156
  // EXTERNAL MODULE: ./src/javascripts/domains/interrupt/slice.ts
15024
15157
  var interrupt_slice = __webpack_require__(6160);
15158
+ // EXTERNAL MODULE: ./src/javascripts/domains/store/index.ts + 4 modules
15159
+ var domains_store = __webpack_require__(7271);
15160
+ // EXTERNAL MODULE: ./src/javascripts/domains/store/actions.ts
15161
+ var actions = __webpack_require__(2770);
15025
15162
  ;// CONCATENATED MODULE: ./src/javascripts/ui/components/core/seamly-event-subscriber.ts
15163
+ var seamly_event_subscriber_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
15164
+ function adopt(value) {
15165
+ return value instanceof P ? value : new P(function (resolve) {
15166
+ resolve(value);
15167
+ });
15168
+ }
15169
+ return new (P || (P = Promise))(function (resolve, reject) {
15170
+ function fulfilled(value) {
15171
+ try {
15172
+ step(generator.next(value));
15173
+ } catch (e) {
15174
+ reject(e);
15175
+ }
15176
+ }
15177
+ function rejected(value) {
15178
+ try {
15179
+ step(generator["throw"](value));
15180
+ } catch (e) {
15181
+ reject(e);
15182
+ }
15183
+ }
15184
+ function step(result) {
15185
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
15186
+ }
15187
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15188
+ });
15189
+ };
15026
15190
  var seamly_event_subscriber_rest = undefined && undefined.__rest || function (s, e) {
15027
15191
  var t = {};
15028
15192
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
@@ -15043,13 +15207,13 @@ var seamly_event_subscriber_rest = undefined && undefined.__rest || function (s,
15043
15207
 
15044
15208
 
15045
15209
 
15210
+
15046
15211
  const EMITTABLE_MESSAGE_TYPES = ['text', 'choice_prompt', 'image', 'video'];
15047
15212
  const SeamlyEventSubscriber = () => {
15048
15213
  const api = (0,seamly_hooks/* useSeamlyApiContext */.jM)();
15049
15214
  const syncChannelRef = (0,hooks_.useRef)();
15050
15215
  const messageChannelRef = (0,hooks_.useRef)();
15051
- const dispatch = (0,es/* useDispatch */.I0)();
15052
- const events = (0,seamly_hooks/* useEvents */.hI)();
15216
+ const dispatch = (0,domains_store/* useAppDispatch */.T)();
15053
15217
  const eventBus = (0,hooks_.useContext)(seamly_api_context/* SeamlyEventBusContext */.T);
15054
15218
  const prevEmittedEventId = (0,hooks_.useRef)(null);
15055
15219
  const {
@@ -15294,31 +15458,19 @@ const SeamlyEventSubscriber = () => {
15294
15458
  if (syncChannelRef.current) {
15295
15459
  (_a = api.conversation.channel) === null || _a === void 0 ? void 0 : _a.off('sync', syncChannelRef.current);
15296
15460
  }
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 => {
15461
+ syncChannelRef.current = api.conversation.channel.on('sync', payload => seamly_event_subscriber_awaiter(void 0, void 0, void 0, function* () {
15462
+ try {
15463
+ const history = yield dispatch((0,actions/* getConversation */.c)(payload)).unwrap();
15305
15464
  if (!history) return;
15306
15465
  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
- });
15466
+ } catch (_e) {
15467
+ // nothing to do, the error is handled in the thunk
15468
+ }
15469
+ }));
15318
15470
  return true;
15319
15471
  });
15320
15472
  }
15321
- }, [api, api.connectionInfo, api.conversation.channel, events, dispatch]);
15473
+ }, [api, api.connectionInfo, api.conversation.channel, dispatch]);
15322
15474
  return null;
15323
15475
  };
15324
15476
  /* harmony default export */ const seamly_event_subscriber = (SeamlyEventSubscriber);
@@ -18927,10 +19079,14 @@ const WindowOpenButton = ({
18927
19079
  "aria-label": ariaLabel,
18928
19080
  "aria-hidden": isOpen,
18929
19081
  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
19082
+ children: [(0,jsx_runtime_.jsx)(in_out_transition, {
19083
+ isActive: !!count,
19084
+ transitionStartState: transitionStartStates.notRendered,
19085
+ children: (0,jsx_runtime_.jsx)("span", {
19086
+ className: (0,css/* className */.o)('message-count'),
19087
+ "aria-hidden": "true",
19088
+ children: count
19089
+ })
18934
19090
  }), (0,jsx_runtime_.jsx)(ButtonIcon, {})]
18935
19091
  })
18936
19092
  });
@@ -19195,14 +19351,12 @@ const ChatApp = props => {
19195
19351
  });
19196
19352
  };
19197
19353
  /* harmony default export */ const chat_app = (ChatApp);
19198
- // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts
19199
- var actions = __webpack_require__(9201);
19354
+ // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts + 1 modules
19355
+ var app_actions = __webpack_require__(526);
19200
19356
  // EXTERNAL MODULE: ./src/javascripts/domains/config/actions.ts
19201
19357
  var config_actions = __webpack_require__(257);
19202
19358
  // EXTERNAL MODULE: ./src/javascripts/domains/i18n/actions.ts
19203
19359
  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
19360
  // EXTERNAL MODULE: ./src/javascripts/domains/visibility/actions.ts
19207
19361
  var visibility_actions = __webpack_require__(9586);
19208
19362
  ;// CONCATENATED MODULE: ./src/javascripts/lib/engine/index.tsx
@@ -19279,7 +19433,7 @@ class Engine {
19279
19433
  store.dispatch((0,config_slice/* setConfig */.v6)(renderConfig));
19280
19434
  yield store.dispatch((0,config_actions/* initializeConfig */.t)());
19281
19435
  try {
19282
- const { locale } = yield store.dispatch((0,actions/* initializeApp */.Z)()).unwrap();
19436
+ const { locale } = yield store.dispatch((0,app_actions/* initializeApp */.Z)()).unwrap();
19283
19437
  if (locale) {
19284
19438
  yield store.dispatch((0,i18n_actions/* setLocale */.i)(locale));
19285
19439
  }