@seamly/web-ui 20.8.0-beta.2 → 20.8.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/dist/lib/hooks.js +0 -1
- package/build/dist/lib/hooks.min.js +1 -1
- package/build/dist/lib/index.debug.js +22 -11
- package/build/dist/lib/index.debug.min.js +1 -1
- package/build/dist/lib/index.debug.min.js.LICENSE.txt +4 -0
- package/build/dist/lib/index.js +150 -30
- package/build/dist/lib/index.min.js +1 -1
- package/build/dist/lib/standalone.js +154 -30
- package/build/dist/lib/standalone.min.js +1 -1
- package/build/dist/lib/style-guide.js +56 -58
- package/build/dist/lib/style-guide.min.js +1 -1
- package/package.json +1 -1
- package/src/javascripts/domains/app/actions.ts +9 -3
- package/src/javascripts/domains/config/actions.ts +2 -0
- package/src/javascripts/domains/i18n/actions.ts +24 -14
- package/src/javascripts/domains/i18n/hooks.ts +6 -1
- package/src/javascripts/domains/i18n/i18n.types.ts +3 -1
- package/src/javascripts/domains/i18n/slice.ts +7 -1
- package/src/javascripts/domains/translations/middleware.js +1 -0
- package/src/javascripts/domains/visibility/slice.ts +15 -7
- package/src/javascripts/index.ts +1 -1
- package/src/javascripts/lib/engine/index.js +7 -1
- package/src/javascripts/package/hooks.js +0 -1
- package/src/javascripts/ui/hooks/seamly-hooks.js +0 -3
- package/src/javascripts/ui/hooks/use-seamly-actions.ts +102 -0
- package/src/javascripts/ui/hooks/use-seamly-chat.js +14 -1
package/build/dist/lib/hooks.js
CHANGED
|
@@ -45,7 +45,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
45
45
|
"useI18n": () => (/* reexport */ web_ui_namespaceObject.useI18n),
|
|
46
46
|
"useSeamlyChat": () => (/* reexport */ web_ui_namespaceObject.useSeamlyChat),
|
|
47
47
|
"useSeamlyCommands": () => (/* reexport */ web_ui_namespaceObject.useSeamlyCommands),
|
|
48
|
-
"useSeamlyDispatchContext": () => (/* reexport */ web_ui_namespaceObject.useSeamlyDispatchContext),
|
|
49
48
|
"useSeamlyEventStream": () => (/* reexport */ web_ui_namespaceObject.useSeamlyEventStream),
|
|
50
49
|
"useSeamlyIdleDetachCountdown": () => (/* reexport */ web_ui_namespaceObject.useSeamlyIdleDetachCountdown),
|
|
51
50
|
"useSeamlyMessageContainerClassNames": () => (/* reexport */ web_ui_namespaceObject.useSeamlyMessageContainerClassNames),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e={d:(s,a)=>{for(var t in a)e.o(a,t)&&!e.o(s,t)&&Object.defineProperty(s,t,{enumerable:!0,get:a[t]})},o:(e,s)=>Object.prototype.hasOwnProperty.call(e,s),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},s={};e.r(s),e.d(s,{useChoicePrompt:()=>a.useChoicePrompt,useEvents:()=>a.useEvents,useGeneratedId:()=>a.useGeneratedId,useI18n:()=>a.useI18n,useSeamlyChat:()=>a.useSeamlyChat,useSeamlyCommands:()=>a.useSeamlyCommands,
|
|
1
|
+
(()=>{"use strict";var e={d:(s,a)=>{for(var t in a)e.o(a,t)&&!e.o(s,t)&&Object.defineProperty(s,t,{enumerable:!0,get:a[t]})},o:(e,s)=>Object.prototype.hasOwnProperty.call(e,s),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},s={};e.r(s),e.d(s,{useChoicePrompt:()=>a.useChoicePrompt,useEvents:()=>a.useEvents,useGeneratedId:()=>a.useGeneratedId,useI18n:()=>a.useI18n,useSeamlyChat:()=>a.useSeamlyChat,useSeamlyCommands:()=>a.useSeamlyCommands,useSeamlyEventStream:()=>a.useSeamlyEventStream,useSeamlyIdleDetachCountdown:()=>a.useSeamlyIdleDetachCountdown,useSeamlyMessageContainerClassNames:()=>a.useSeamlyMessageContainerClassNames,useSeamlyOptions:()=>a.useSeamlyOptions,useTranslatedEventData:()=>a.useTranslatedEventData,useTranslations:()=>a.useTranslations,useTranslationsContainer:()=>a.useTranslationsContainer});const a=require("@seamly/web-ui");module.exports=s})();
|
|
@@ -201,7 +201,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
|
|
|
201
201
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
202
202
|
|
|
203
203
|
"use strict";
|
|
204
|
-
eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.resetApp = exports.initializeApp = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst seamly_session_expired_error_1 = __importDefault(__webpack_require__(/*! api/errors/seamly-session-expired-error */ \"./src/javascripts/api/errors/seamly-session-expired-error.js\"));\n\nconst seamly_unavailable_error_1 = __importDefault(__webpack_require__(/*! api/errors/seamly-unavailable-error */ \"./src/javascripts/api/errors/seamly-unavailable-error.js\"));\n\nconst actions_1 = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n\nconst actions_2 = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n\nconst actions_3 = __webpack_require__(/*! domains/visibility/actions */ \"./src/javascripts/domains/visibility/actions.ts\");\n\nconst seamly_utils_1 = __webpack_require__(/*! ui/utils/seamly-utils */ \"./src/javascripts/ui/utils/seamly-utils.ts\");\n\nexports.initializeApp = (0, toolkit_1.createAsyncThunk)('initializeApp', (_, {\n extra: {\n api,\n config\n },\n rejectWithValue,\n dispatch\n}) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n\n let locale = (_a = config === null || config === void 0 ? void 0 : config.context) === null || _a === void 0 ? void 0 : _a.locale;\n\n try {\n if (api.hasConversation()) {\n const initialState = yield api.getConversationIntitialState();\n locale = ((_b = initialState.translation) === null || _b === void 0 ? void 0 : _b.locale) || locale;\n return {\n initialState,\n locale,\n config\n };\n } else {\n if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.topic) {\n api.send('action', {\n type: seamly_utils_1.actionTypes.setTopic,\n body: {\n name: config.context.topic,\n // Separate fallback message is not needed here. Only an attached service will use this, but none will\n // be attached before the conversation has started (meaning the fallback message will never be shown).\n fallbackMessage: config.context.topic\n }\n });\n }\n\n if ((_d = config === null || config === void 0 ? void 0 : config.context) === null || _d === void 0 ? void 0 : _d.translationLocale) {\n locale = config.context.translationLocale;\n api.send('action', {\n type: seamly_utils_1.actionTypes.setTranslation,\n body: {\n enabled: true,\n locale\n }\n });\n }\n\n
|
|
204
|
+
eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.resetApp = exports.initializeApp = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst seamly_session_expired_error_1 = __importDefault(__webpack_require__(/*! api/errors/seamly-session-expired-error */ \"./src/javascripts/api/errors/seamly-session-expired-error.js\"));\n\nconst seamly_unavailable_error_1 = __importDefault(__webpack_require__(/*! api/errors/seamly-unavailable-error */ \"./src/javascripts/api/errors/seamly-unavailable-error.js\"));\n\nconst actions_1 = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n\nconst actions_2 = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n\nconst actions_3 = __webpack_require__(/*! domains/visibility/actions */ \"./src/javascripts/domains/visibility/actions.ts\");\n\nconst seamly_utils_1 = __webpack_require__(/*! ui/utils/seamly-utils */ \"./src/javascripts/ui/utils/seamly-utils.ts\");\n\nexports.initializeApp = (0, toolkit_1.createAsyncThunk)('initializeApp', (_, {\n extra: {\n api,\n config\n },\n rejectWithValue,\n dispatch\n}) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n\n let locale = (_a = config === null || config === void 0 ? void 0 : config.context) === null || _a === void 0 ? void 0 : _a.locale;\n\n try {\n if (api.hasConversation()) {\n const initialState = yield api.getConversationIntitialState();\n locale = ((_b = initialState.translation) === null || _b === void 0 ? void 0 : _b.locale) || locale;\n return {\n initialState,\n locale,\n config\n };\n } else {\n if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.topic) {\n api.send('action', {\n type: seamly_utils_1.actionTypes.setTopic,\n body: {\n name: config.context.topic,\n // Separate fallback message is not needed here. Only an attached service will use this, but none will\n // be attached before the conversation has started (meaning the fallback message will never be shown).\n fallbackMessage: config.context.topic\n }\n });\n }\n\n if ((_d = config === null || config === void 0 ? void 0 : config.context) === null || _d === void 0 ? void 0 : _d.translationLocale) {\n locale = config.context.translationLocale;\n api.send('action', {\n type: seamly_utils_1.actionTypes.setTranslation,\n body: {\n enabled: true,\n locale\n }\n });\n }\n\n return {\n initialState: undefined,\n locale,\n config\n };\n }\n } catch (e) {\n if (e instanceof seamly_session_expired_error_1.default) {\n const err = new seamly_session_expired_error_1.default();\n return rejectWithValue({\n name: err.name,\n message: err.message,\n originalEvent: err.originalEvent,\n originalError: err.originalError,\n action: err.action\n });\n }\n\n const err = new seamly_unavailable_error_1.default();\n return rejectWithValue({\n name: err.name,\n message: err.message,\n langKey: err.langKey\n });\n }\n}));\nexports.resetApp = (0, toolkit_1.createAsyncThunk)('resetApp', (_, {\n dispatch,\n extra: {\n api\n }\n}) => __awaiter(void 0, void 0, void 0, function* () {\n yield api.disconnect();\n yield api.clearStore();\n dispatch((0, actions_1.resetConfig)());\n yield dispatch((0, actions_1.initializeConfig)());\n\n try {\n const {\n locale\n } = yield dispatch((0, exports.initializeApp)()).unwrap();\n yield dispatch((0, actions_2.setLocale)(locale));\n } catch (rejectedValueOrSerializedError) {// nothing to do\n }\n\n dispatch((0, actions_3.initializeVisibility)());\n}));\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/app/actions.ts?");
|
|
205
205
|
|
|
206
206
|
/***/ }),
|
|
207
207
|
|
|
@@ -234,7 +234,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
|
|
|
234
234
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
235
235
|
|
|
236
236
|
"use strict";
|
|
237
|
-
eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.resetConfig = exports.initializeConfig = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst seamly_unavailable_error_1 = __importDefault(__webpack_require__(/*! api/errors/seamly-unavailable-error */ \"./src/javascripts/api/errors/seamly-unavailable-error.js\"));\n\nexports.initializeConfig = (0, toolkit_1.createAsyncThunk)('initializeConfig', (_, {\n extra: {\n api,\n config\n },\n rejectWithValue\n}) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n\n try {\n const {\n features,\n defaultLocale,\n preChat,\n agentParticipant,\n userParticipant,\n startChatIcon\n } = yield api.getConfig();\n const locale = ((_a = config === null || config === void 0 ? void 0 : config.context) === null || _a === void 0 ? void 0 : _a.locale) || defaultLocale;\n return {\n features,\n defaultLocale,\n preChat,\n agentParticipant,\n userParticipant,\n startChatIcon,\n locale\n };\n } catch (e) {\n const err = new seamly_unavailable_error_1.default();\n return rejectWithValue({\n name: err.name,\n langKey: err.langKey,\n message: err.message\n });\n }\n}));\nexports.resetConfig = (0, toolkit_1.createAsyncThunk)('resetConfig', (_, {\n extra: {\n config\n }\n}) => __awaiter(void 0, void 0, void 0, function* () {\n return config;\n}));\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/config/actions.ts?");
|
|
237
|
+
eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.resetConfig = exports.initializeConfig = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst seamly_unavailable_error_1 = __importDefault(__webpack_require__(/*! api/errors/seamly-unavailable-error */ \"./src/javascripts/api/errors/seamly-unavailable-error.js\"));\n\nexports.initializeConfig = (0, toolkit_1.createAsyncThunk)('initializeConfig', (_, {\n extra: {\n api,\n config\n },\n rejectWithValue\n}) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n\n try {\n const {\n features,\n defaultLocale,\n preChat,\n agentParticipant,\n userParticipant,\n startChatIcon\n } = yield api.getConfig();\n const locale = ((_a = config === null || config === void 0 ? void 0 : config.context) === null || _a === void 0 ? void 0 : _a.locale) || defaultLocale;\n const {\n connectWhenInView\n } = config;\n return {\n features,\n defaultLocale,\n preChat,\n agentParticipant,\n userParticipant,\n startChatIcon,\n locale,\n connectWhenInView\n };\n } catch (e) {\n const err = new seamly_unavailable_error_1.default();\n return rejectWithValue({\n name: err.name,\n langKey: err.langKey,\n message: err.message\n });\n }\n}));\nexports.resetConfig = (0, toolkit_1.createAsyncThunk)('resetConfig', (_, {\n extra: {\n config\n }\n}) => __awaiter(void 0, void 0, void 0, function* () {\n return config;\n}));\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/config/actions.ts?");
|
|
238
238
|
|
|
239
239
|
/***/ }),
|
|
240
240
|
|
|
@@ -333,7 +333,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
|
|
|
333
333
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
334
334
|
|
|
335
335
|
"use strict";
|
|
336
|
-
eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setLocale = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\
|
|
336
|
+
eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setLocale = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nexports.setLocale = (0, toolkit_1.createAsyncThunk)('setLocale', (locale, {\n extra: {\n api\n }\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const response = yield api.getTranslations(locale);\n return {\n translations: response,\n locale\n };\n}), {\n condition: (locale, {\n getState\n }) => {\n const {\n i18n: {\n isLoading,\n locale: stateLocale\n }\n } = getState();\n\n if (locale === stateLocale || isLoading) {\n // Already fetched or in progress, don't need to re-fetch\n return false;\n }\n }\n});\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/i18n/actions.ts?");
|
|
337
337
|
|
|
338
338
|
/***/ }),
|
|
339
339
|
|
|
@@ -344,7 +344,7 @@ eval("\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _argument
|
|
|
344
344
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
345
345
|
|
|
346
346
|
"use strict";
|
|
347
|
-
eval("\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useI18n = void 0;\n\nconst icu_message_formatter_1 = __webpack_require__(/*! @ultraq/icu-message-formatter */ \"./node_modules/@ultraq/icu-message-formatter/lib/icu-message-formatter.es.js\");\n\nconst hooks_1 = __webpack_require__(/*! preact/hooks */ \"preact/hooks\");\n\nconst react_redux_1 = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nconst Selectors = __importStar(__webpack_require__(/*! ./selectors */ \"./src/javascripts/domains/i18n/selectors.ts\")); // The passed in locale (en-GB) is only used to call Intl.PluralRules.select() in\n// pluralTypeHandler. Since we only use exact plural matches (=0, =1 etc) we can\n// safely use en-GB all the time.\n\n\nconst formatter = new icu_message_formatter_1.MessageFormatter('en-GB', {\n plural: icu_message_formatter_1.pluralTypeHandler,\n select: icu_message_formatter_1.selectTypeHandler\n});\n\nfunction useI18n() {\n const translations = (0, react_redux_1.useSelector)(Selectors.selectTranslations);\n const locale = (0, react_redux_1.useSelector)(Selectors.selectLocale);\n const initialLocale = (0, react_redux_1.useSelector)(Selectors.selectInitialLocale);\n const t = (0, hooks_1.useCallback)((key, values = {}) => {\n const translation = translations[key];\n\n if (!translation) {\n console.warn(`Translation key: ${key} is missing in locale: ${locale}`);\n return null;\n }\n\n return formatter.format(translation, values);\n }, [translations, locale]);\n return {\n t,\n locale,\n initialLocale\n };\n}\n\nexports.useI18n = useI18n;\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/i18n/hooks.ts?");
|
|
347
|
+
eval("\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useI18n = void 0;\n\nconst icu_message_formatter_1 = __webpack_require__(/*! @ultraq/icu-message-formatter */ \"./node_modules/@ultraq/icu-message-formatter/lib/icu-message-formatter.es.js\");\n\nconst hooks_1 = __webpack_require__(/*! preact/hooks */ \"preact/hooks\");\n\nconst react_redux_1 = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nconst Selectors = __importStar(__webpack_require__(/*! ./selectors */ \"./src/javascripts/domains/i18n/selectors.ts\")); // The passed in locale (en-GB) is only used to call Intl.PluralRules.select() in\n// pluralTypeHandler. Since we only use exact plural matches (=0, =1 etc) we can\n// safely use en-GB all the time.\n\n\nconst formatter = new icu_message_formatter_1.MessageFormatter('en-GB', {\n plural: icu_message_formatter_1.pluralTypeHandler,\n select: icu_message_formatter_1.selectTypeHandler\n});\n\nfunction useI18n() {\n const translations = (0, react_redux_1.useSelector)(Selectors.selectTranslations);\n const locale = (0, react_redux_1.useSelector)(Selectors.selectLocale);\n const initialLocale = (0, react_redux_1.useSelector)(Selectors.selectInitialLocale);\n const isLoading = (0, react_redux_1.useSelector)(state => state.i18n.isLoading);\n const t = (0, hooks_1.useCallback)((key, values = {}) => {\n const translation = translations[key];\n\n if (!translation) {\n if (isLoading) return null;\n console.warn(`Translation key: ${key} is missing in locale: ${locale}`);\n return null;\n }\n\n return formatter.format(translation, values);\n }, [translations, locale, isLoading]);\n return {\n t,\n locale,\n initialLocale\n };\n}\n\nexports.useI18n = useI18n;\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/i18n/hooks.ts?");
|
|
348
348
|
|
|
349
349
|
/***/ }),
|
|
350
350
|
|
|
@@ -366,7 +366,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
|
|
|
366
366
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
367
367
|
|
|
368
368
|
"use strict";
|
|
369
|
-
eval("\n\nvar _a;\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setTranslations = exports.setInitialLocale = exports.i18nSlice = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst actions_1 = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n\nconst actions_2 = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n\nconst initialState = {\n translations: {\n 'errors.configError.message': 'We are sorry this happened, please retry at a later time.',\n 'errors.configError.srText': 'A chat configuration error occurred. Our apologies, please retry at a later time.',\n 'errors.configError.title': 'Chat configuration error.',\n 'errors.general.buttonText': 'Restart chat',\n 'errors.general.message': 'Do you want to start a new chat session?',\n 'errors.general.srText': 'Something went wrong with the chat session. You can restart the chat.',\n 'errors.general.title': 'Something went wrong',\n 'errors.seamlyOffline.message': 'There might be a problem with your or our network connection. The chat session should resume as soon the connection is available again.',\n 'errors.seamlyOffline.srText': 'The chat has connection issues. There might be a problem with your or our network connection. The chat session should resume as soon as the connection is available again.',\n 'errors.seamlyOffline.title': 'Connection issues',\n 'errors.seamlyUnavailable.buttonText': 'Try again',\n 'errors.seamlyUnavailable.message': 'The server could not be reached. Try again in a little while.',\n 'errors.seamlyUnavailable.srText': 'The chat server could not be reached. Try again in a little while.',\n 'errors.seamlyUnavailable.title': 'Server unavailable'\n },\n isLoading: false,\n initialLocale: undefined,\n locale: undefined\n};\nexports.i18nSlice = (0, toolkit_1.createSlice)({\n name: 'app',\n initialState,\n reducers: {\n setInitialLocale: (state, action) => {\n state.initialLocale = action.payload;\n },\n setTranslations: (state, {\n payload\n }) => {\n state.translations = payload;\n }\n },\n extraReducers: builder => {\n // Add reducers for additional action types here, and handle loading state as needed\n builder.addCase(actions_1.initializeConfig.fulfilled, (state, {\n payload\n }) => {\n state.initialLocale = payload.locale;\n }).addCase(actions_2.setLocale.fulfilled, (state, {\n payload\n }) => {\n if (!(payload === null || payload === void 0 ? void 0 : payload.translations)) {\n
|
|
369
|
+
eval("\n\nvar _a;\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setTranslations = exports.setInitialLocale = exports.i18nSlice = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst actions_1 = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n\nconst actions_2 = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n\nconst initialState = {\n translations: {\n 'errors.configError.message': 'We are sorry this happened, please retry at a later time.',\n 'errors.configError.srText': 'A chat configuration error occurred. Our apologies, please retry at a later time.',\n 'errors.configError.title': 'Chat configuration error.',\n 'errors.general.buttonText': 'Restart chat',\n 'errors.general.message': 'Do you want to start a new chat session?',\n 'errors.general.srText': 'Something went wrong with the chat session. You can restart the chat.',\n 'errors.general.title': 'Something went wrong',\n 'errors.seamlyOffline.message': 'There might be a problem with your or our network connection. The chat session should resume as soon the connection is available again.',\n 'errors.seamlyOffline.srText': 'The chat has connection issues. There might be a problem with your or our network connection. The chat session should resume as soon as the connection is available again.',\n 'errors.seamlyOffline.title': 'Connection issues',\n 'errors.seamlyUnavailable.buttonText': 'Try again',\n 'errors.seamlyUnavailable.message': 'The server could not be reached. Try again in a little while.',\n 'errors.seamlyUnavailable.srText': 'The chat server could not be reached. Try again in a little while.',\n 'errors.seamlyUnavailable.title': 'Server unavailable'\n },\n isLoading: false,\n initialLocale: undefined,\n locale: undefined\n};\nexports.i18nSlice = (0, toolkit_1.createSlice)({\n name: 'app',\n initialState,\n reducers: {\n setInitialLocale: (state, action) => {\n state.initialLocale = action.payload;\n },\n setTranslations: (state, {\n payload\n }) => {\n state.translations = payload;\n }\n },\n extraReducers: builder => {\n // Add reducers for additional action types here, and handle loading state as needed\n builder.addCase(actions_1.initializeConfig.fulfilled, (state, {\n payload\n }) => {\n state.initialLocale = payload.locale;\n }).addCase(actions_2.setLocale.pending, state => {\n state.isLoading = true;\n }).addCase(actions_2.setLocale.rejected, state => {\n state.isLoading = false;\n }).addCase(actions_2.setLocale.fulfilled, (state, {\n payload\n }) => {\n state.isLoading = false;\n\n if (!(payload === null || payload === void 0 ? void 0 : payload.translations)) {\n return;\n }\n\n state.locale = payload.locale;\n state.translations = Object.keys(payload.translations).sort().reduce((accum, key) => Object.assign(Object.assign({}, accum), {\n [key]: payload.translations[key]\n }), {});\n });\n }\n});\n_a = exports.i18nSlice.actions, exports.setInitialLocale = _a.setInitialLocale, exports.setTranslations = _a.setTranslations;\nexports[\"default\"] = exports.i18nSlice.reducer;\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/i18n/slice.ts?");
|
|
370
370
|
|
|
371
371
|
/***/ }),
|
|
372
372
|
|
|
@@ -509,7 +509,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
|
|
|
509
509
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
510
510
|
|
|
511
511
|
"use strict";
|
|
512
|
-
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setShowInlineView = exports.setFromStorage = exports.visibilitySlice = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst actions_1 = __webpack_require__(/*! domains/visibility/actions */ \"./src/javascripts/domains/visibility/actions.ts\");\n\nconst constants_1 = __webpack_require__(/*! domains/visibility/constants */ \"./src/javascripts/domains/visibility/constants.js\");\n\nconst initialState = {\n visibility: constants_1.visibilityStates.initialize,\n showInlineView: false\n};\nexports.visibilitySlice = (0, toolkit_1.createSlice)({\n name: 'visibility',\n initialState,\n reducers: {\n setFromStorage: (state, action) => {\n state.visibility = action.payload;\n },\n setShowInlineView: state => {\n state.showInlineView = true;\n }\n },\n extraReducers: builder => {\n builder.addCase(
|
|
512
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setShowInlineView = exports.setFromStorage = exports.visibilitySlice = void 0;\n\nconst toolkit_1 = __webpack_require__(/*! @reduxjs/toolkit */ \"./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js\");\n\nconst actions_1 = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n\nconst actions_2 = __webpack_require__(/*! domains/visibility/actions */ \"./src/javascripts/domains/visibility/actions.ts\");\n\nconst constants_1 = __webpack_require__(/*! domains/visibility/constants */ \"./src/javascripts/domains/visibility/constants.js\");\n\nconst initialState = {\n visibility: constants_1.visibilityStates.initialize,\n showInlineView: false\n};\nexports.visibilitySlice = (0, toolkit_1.createSlice)({\n name: 'visibility',\n initialState,\n reducers: {\n setFromStorage: (state, action) => {\n state.visibility = action.payload;\n },\n setShowInlineView: state => {\n state.showInlineView = true;\n }\n },\n extraReducers: builder => {\n builder.addCase(actions_2.setVisibility.fulfilled, (state, {\n payload: visibility\n }) => {\n if (visibility) {\n state.visibility = visibility;\n }\n }).addCase(actions_1.initializeConfig.fulfilled, (state, {\n payload\n }) => {\n // We only want to (always) show the inlineView when connectWhenInView is disabled\n if (!payload.connectWhenInView) {\n state.showInlineView = !payload.connectWhenInView;\n }\n });\n }\n});\nexports.setFromStorage = exports.visibilitySlice.actions.setFromStorage;\nexports.setShowInlineView = exports.visibilitySlice.actions.setShowInlineView;\nexports[\"default\"] = exports.visibilitySlice.reducer;\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/visibility/slice.ts?");
|
|
513
513
|
|
|
514
514
|
/***/ }),
|
|
515
515
|
|
|
@@ -520,7 +520,18 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
|
|
|
520
520
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
521
521
|
|
|
522
522
|
"use strict";
|
|
523
|
-
eval("\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.eventTypes = exports.getUrlSearchString = exports.getUrlParams = exports.useSeamlyOptions = exports.useSeamlyMessageContainerClassNames = exports.useSeamlyIdleDetachCountdown = exports.useSeamlyEventStream = exports.useSeamlyDispatchContext = exports.useSeamlyCommands = exports.useSeamlyChat = exports.useGeneratedId = exports.useEvents = exports.DeprecatedView = exports.View = exports.Interrupt = exports.Icon = exports.Header = exports.ChatFrame = exports.Chat = exports.AgentInfo = exports.EntryContainer = exports.DeprecatedToggleButton = exports.SeamlyLiveRegionContext = exports.SeamlyEventBusContext = exports.SeamlyApiContext = exports.MessageContainer = exports.Text = exports.EventParticipant = exports.useChoicePrompt = exports.Conversation = exports.ComponentFilter = exports.randomId = exports.ExternalApi = exports.Engine = exports.className = exports.calculateVisibility = exports.visibilityStates = exports.useSeamlyVisibility = exports.useTranslationsContainer = exports.useTranslations = exports.useTranslatedEventData = exports.useI18n = exports.useSeamlyConfig = exports.SeamlyOfflineError = exports.SeamlyGeneralError = exports.SeamlyStoreProvider = exports.API = void 0; // Used by: Client\n\nconst initialize_api_1 = __importDefault(__webpack_require__(/*! ./lib/external-api/initialize-api */ \"./src/javascripts/lib/external-api/initialize-api.js\")); // Used by: Client\n\n\nexports[\"default\"] = initialize_api_1.default; // Used by: StyleGuide\n\nvar api_1 = __webpack_require__(/*! ./api */ \"./src/javascripts/api/index.js\");\n\nObject.defineProperty(exports, \"API\", ({\n enumerable: true,\n get: function () {\n return api_1.API;\n }\n})); // Used by: StyleGuide\n\nvar react_redux_1 = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nObject.defineProperty(exports, \"SeamlyStoreProvider\", ({\n enumerable: true,\n get: function () {\n return react_redux_1.Provider;\n }\n})); // Used by: StyleGuide\n\nvar seamly_general_error_1 = __webpack_require__(/*! ./api/errors/seamly-general-error */ \"./src/javascripts/api/errors/seamly-general-error.js\");\n\nObject.defineProperty(exports, \"SeamlyGeneralError\", ({\n enumerable: true,\n get: function () {\n return __importDefault(seamly_general_error_1).default;\n }\n})); // Used by: StyleGuide\n\nvar seamly_offline_error_1 = __webpack_require__(/*! ./api/errors/seamly-offline-error */ \"./src/javascripts/api/errors/seamly-offline-error.js\");\n\nObject.defineProperty(exports, \"SeamlyOfflineError\", ({\n enumerable: true,\n get: function () {\n return __importDefault(seamly_offline_error_1).default;\n }\n})); // Used by: Client\n\nvar hooks_1 = __webpack_require__(/*! domains/config/hooks */ \"./src/javascripts/domains/config/hooks.ts\");\n\nObject.defineProperty(exports, \"useSeamlyConfig\", ({\n enumerable: true,\n get: function () {\n return hooks_1.useConfig;\n }\n})); // Used by: Client\n\nvar hooks_2 = __webpack_require__(/*! domains/i18n/hooks */ \"./src/javascripts/domains/i18n/hooks.ts\");\n\nObject.defineProperty(exports, \"useI18n\", ({\n enumerable: true,\n get: function () {\n return hooks_2.useI18n;\n }\n})); // Used by: Client\n\nvar hooks_3 = __webpack_require__(/*! domains/translations/hooks */ \"./src/javascripts/domains/translations/hooks.ts\");\n\nObject.defineProperty(exports, \"useTranslatedEventData\", ({\n enumerable: true,\n get: function () {\n return hooks_3.useTranslatedEventData;\n }\n}));\nObject.defineProperty(exports, \"useTranslations\", ({\n enumerable: true,\n get: function () {\n return hooks_3.useTranslations;\n }\n}));\nObject.defineProperty(exports, \"useTranslationsContainer\", ({\n enumerable: true,\n get: function () {\n return hooks_3.useTranslationsContainer;\n }\n})); // Used by: Client\n\nvar hooks_4 = __webpack_require__(/*! domains/visibility/hooks */ \"./src/javascripts/domains/visibility/hooks.ts\");\n\nObject.defineProperty(exports, \"useSeamlyVisibility\", ({\n enumerable: true,\n get: function () {\n return hooks_4.useVisibility;\n }\n}));\n\nvar constants_1 = __webpack_require__(/*! domains/visibility/constants */ \"./src/javascripts/domains/visibility/constants.js\");\n\nObject.defineProperty(exports, \"visibilityStates\", ({\n enumerable: true,\n get: function () {\n return constants_1.visibilityStates;\n }\n}));\n\nvar utils_1 = __webpack_require__(/*! domains/visibility/utils */ \"./src/javascripts/domains/visibility/utils.js\");\n\nObject.defineProperty(exports, \"calculateVisibility\", ({\n enumerable: true,\n get: function () {\n return utils_1.calculateVisibility;\n }\n})); // Used by: Client\n\nvar css_1 = __webpack_require__(/*! ./lib/css */ \"./src/javascripts/lib/css.js\");\n\nObject.defineProperty(exports, \"className\", ({\n enumerable: true,\n get: function () {\n return css_1.className;\n }\n})); // Used by: StyleGuide\n\nvar engine_1 = __webpack_require__(/*! ./lib/engine */ \"./src/javascripts/lib/engine/index.js\");\n\nObject.defineProperty(exports, \"Engine\", ({\n enumerable: true,\n get: function () {\n return __importDefault(engine_1).default;\n }\n})); // Used by: StyleGuide\n\nvar external_api_1 = __webpack_require__(/*! ./lib/external-api */ \"./src/javascripts/lib/external-api/index.js\");\n\nObject.defineProperty(exports, \"ExternalApi\", ({\n enumerable: true,\n get: function () {\n return __importDefault(external_api_1).default;\n }\n})); // Used by: StyleGuide\n\nvar id_1 = __webpack_require__(/*! ./lib/id */ \"./src/javascripts/lib/id.js\");\n\nObject.defineProperty(exports, \"randomId\", ({\n enumerable: true,\n get: function () {\n return id_1.randomId;\n }\n})); // Used by: StyleGuide\n\nvar component_filter_1 = __webpack_require__(/*! ui/components/conversation/component-filter */ \"./src/javascripts/ui/components/conversation/component-filter.js\");\n\nObject.defineProperty(exports, \"ComponentFilter\", ({\n enumerable: true,\n get: function () {\n return __importDefault(component_filter_1).default;\n }\n})); // Used by: Client\n\nvar conversation_1 = __webpack_require__(/*! ui/components/conversation/conversation */ \"./src/javascripts/ui/components/conversation/conversation.js\");\n\nObject.defineProperty(exports, \"Conversation\", ({\n enumerable: true,\n get: function () {\n return __importDefault(conversation_1).default;\n }\n})); // Used by: Client\n\nvar choice_prompt_1 = __webpack_require__(/*! ui/components/conversation/event/choice-prompt */ \"./src/javascripts/ui/components/conversation/event/choice-prompt.js\");\n\nObject.defineProperty(exports, \"useChoicePrompt\", ({\n enumerable: true,\n get: function () {\n return choice_prompt_1.useChoicePrompt;\n }\n})); // Used by: Demo\n\nvar event_participant_1 = __webpack_require__(/*! ui/components/conversation/event/event-participant */ \"./src/javascripts/ui/components/conversation/event/event-participant.js\");\n\nObject.defineProperty(exports, \"EventParticipant\", ({\n enumerable: true,\n get: function () {\n return __importDefault(event_participant_1).default;\n }\n})); // Used by: Client\n\nvar text_1 = __webpack_require__(/*! ui/components/conversation/event/text */ \"./src/javascripts/ui/components/conversation/event/text.js\");\n\nObject.defineProperty(exports, \"Text\", ({\n enumerable: true,\n get: function () {\n return __importDefault(text_1).default;\n }\n})); // Used by: Client\n\nvar message_container_1 = __webpack_require__(/*! ui/components/conversation/message-container */ \"./src/javascripts/ui/components/conversation/message-container.js\");\n\nObject.defineProperty(exports, \"MessageContainer\", ({\n enumerable: true,\n get: function () {\n return __importDefault(message_container_1).default;\n }\n})); // Used by: StyleGuide\n\nvar seamly_api_context_1 = __webpack_require__(/*! ui/components/core/seamly-api-context */ \"./src/javascripts/ui/components/core/seamly-api-context.js\");\n\nObject.defineProperty(exports, \"SeamlyApiContext\", ({\n enumerable: true,\n get: function () {\n return seamly_api_context_1.SeamlyApiContext;\n }\n}));\nObject.defineProperty(exports, \"SeamlyEventBusContext\", ({\n enumerable: true,\n get: function () {\n return seamly_api_context_1.SeamlyEventBusContext;\n }\n})); // Used by: StyleGuide\n\nvar seamly_live_region_context_1 = __webpack_require__(/*! ui/components/core/seamly-live-region-context */ \"./src/javascripts/ui/components/core/seamly-live-region-context.js\");\n\nObject.defineProperty(exports, \"SeamlyLiveRegionContext\", ({\n enumerable: true,\n get: function () {\n return seamly_live_region_context_1.SeamlyLiveRegionContext;\n }\n})); // Used by: Client\n\nvar deprecated_toggle_button_1 = __webpack_require__(/*! ui/components/entry/deprecated-toggle-button */ \"./src/javascripts/ui/components/entry/deprecated-toggle-button.js\");\n\nObject.defineProperty(exports, \"DeprecatedToggleButton\", ({\n enumerable: true,\n get: function () {\n return __importDefault(deprecated_toggle_button_1).default;\n }\n})); // Used by: Client\n\nvar entry_container_1 = __webpack_require__(/*! ui/components/entry/entry-container */ \"./src/javascripts/ui/components/entry/entry-container.js\");\n\nObject.defineProperty(exports, \"EntryContainer\", ({\n enumerable: true,\n get: function () {\n return __importDefault(entry_container_1).default;\n }\n}));\n\nvar agent_info_1 = __webpack_require__(/*! ui/components/layout/agent-info */ \"./src/javascripts/ui/components/layout/agent-info.js\");\n\nObject.defineProperty(exports, \"AgentInfo\", ({\n enumerable: true,\n get: function () {\n return __importDefault(agent_info_1).default;\n }\n})); // Used by: Client\n\nvar chat_1 = __webpack_require__(/*! ui/components/layout/chat */ \"./src/javascripts/ui/components/layout/chat.js\");\n\nObject.defineProperty(exports, \"Chat\", ({\n enumerable: true,\n get: function () {\n return __importDefault(chat_1).default;\n }\n})); // Used by: Client\n\nvar chat_frame_1 = __webpack_require__(/*! ui/components/layout/chat-frame */ \"./src/javascripts/ui/components/layout/chat-frame.js\");\n\nObject.defineProperty(exports, \"ChatFrame\", ({\n enumerable: true,\n get: function () {\n return __importDefault(chat_frame_1).default;\n }\n})); // Used by: Client\n\nvar header_1 = __webpack_require__(/*! ui/components/layout/header */ \"./src/javascripts/ui/components/layout/header.js\");\n\nObject.defineProperty(exports, \"Header\", ({\n enumerable: true,\n get: function () {\n return __importDefault(header_1).default;\n }\n})); // Used by: Client\n\nvar icon_1 = __webpack_require__(/*! ui/components/layout/icon */ \"./src/javascripts/ui/components/layout/icon.js\");\n\nObject.defineProperty(exports, \"Icon\", ({\n enumerable: true,\n get: function () {\n return __importDefault(icon_1).default;\n }\n})); // Used by: Client\n\nvar interrupt_1 = __webpack_require__(/*! ui/components/layout/interrupt */ \"./src/javascripts/ui/components/layout/interrupt.js\");\n\nObject.defineProperty(exports, \"Interrupt\", ({\n enumerable: true,\n get: function () {\n return __importDefault(interrupt_1).default;\n }\n})); // Used by: StyleGuide\n// Used by: Client (with custom view)\n\nvar view_1 = __webpack_require__(/*! ui/components/view */ \"./src/javascripts/ui/components/view/index.js\");\n\nObject.defineProperty(exports, \"View\", ({\n enumerable: true,\n get: function () {\n return __importDefault(view_1).default;\n }\n})); // Used by: Client\n\nvar deprecated_view_1 = __webpack_require__(/*! ui/components/view/deprecated-view */ \"./src/javascripts/ui/components/view/deprecated-view.js\");\n\nObject.defineProperty(exports, \"DeprecatedView\", ({\n enumerable: true,\n get: function () {\n return __importDefault(deprecated_view_1).default;\n }\n})); // Used by: Client\n\nvar seamly_hooks_1 = __webpack_require__(/*! ./ui/hooks/seamly-hooks */ \"./src/javascripts/ui/hooks/seamly-hooks.js\");\n\nObject.defineProperty(exports, \"useEvents\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useEvents;\n }\n}));\nObject.defineProperty(exports, \"useGeneratedId\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useGeneratedId;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyChat\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyChat;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyCommands\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyCommands;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyDispatchContext\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyDispatchContext;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyEventStream\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyEventStream;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyIdleDetachCountdown\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyIdleDetachCountdown;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyMessageContainerClassNames\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyMessageContainerClassNames;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyOptions\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyOptions;\n }\n})); // Used by: StyleGuide\n\nvar general_utils_1 = __webpack_require__(/*! ./ui/utils/general-utils */ \"./src/javascripts/ui/utils/general-utils.js\");\n\nObject.defineProperty(exports, \"getUrlParams\", ({\n enumerable: true,\n get: function () {\n return general_utils_1.getUrlParams;\n }\n}));\nObject.defineProperty(exports, \"getUrlSearchString\", ({\n enumerable: true,\n get: function () {\n return general_utils_1.getUrlSearchString;\n }\n})); // Used by: Client\n\nvar seamly_utils_1 = __webpack_require__(/*! ./ui/utils/seamly-utils */ \"./src/javascripts/ui/utils/seamly-utils.ts\");\n\nObject.defineProperty(exports, \"eventTypes\", ({\n enumerable: true,\n get: function () {\n return seamly_utils_1.eventTypes;\n }\n}));\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/index.ts?");
|
|
523
|
+
eval("\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useSeamlyActions = exports.eventTypes = exports.getUrlSearchString = exports.getUrlParams = exports.useSeamlyOptions = exports.useSeamlyMessageContainerClassNames = exports.useSeamlyIdleDetachCountdown = exports.useSeamlyEventStream = exports.useSeamlyCommands = exports.useSeamlyChat = exports.useGeneratedId = exports.useEvents = exports.DeprecatedView = exports.View = exports.Interrupt = exports.Icon = exports.Header = exports.ChatFrame = exports.Chat = exports.AgentInfo = exports.EntryContainer = exports.DeprecatedToggleButton = exports.SeamlyLiveRegionContext = exports.SeamlyEventBusContext = exports.SeamlyApiContext = exports.MessageContainer = exports.Text = exports.EventParticipant = exports.useChoicePrompt = exports.Conversation = exports.ComponentFilter = exports.randomId = exports.ExternalApi = exports.Engine = exports.className = exports.calculateVisibility = exports.visibilityStates = exports.useSeamlyVisibility = exports.useTranslationsContainer = exports.useTranslations = exports.useTranslatedEventData = exports.useI18n = exports.useSeamlyConfig = exports.SeamlyOfflineError = exports.SeamlyGeneralError = exports.SeamlyStoreProvider = exports.API = void 0; // Used by: Client\n\nconst initialize_api_1 = __importDefault(__webpack_require__(/*! ./lib/external-api/initialize-api */ \"./src/javascripts/lib/external-api/initialize-api.js\")); // Used by: Client\n\n\nexports[\"default\"] = initialize_api_1.default; // Used by: StyleGuide\n\nvar api_1 = __webpack_require__(/*! ./api */ \"./src/javascripts/api/index.js\");\n\nObject.defineProperty(exports, \"API\", ({\n enumerable: true,\n get: function () {\n return api_1.API;\n }\n})); // Used by: StyleGuide\n\nvar react_redux_1 = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nObject.defineProperty(exports, \"SeamlyStoreProvider\", ({\n enumerable: true,\n get: function () {\n return react_redux_1.Provider;\n }\n})); // Used by: StyleGuide\n\nvar seamly_general_error_1 = __webpack_require__(/*! ./api/errors/seamly-general-error */ \"./src/javascripts/api/errors/seamly-general-error.js\");\n\nObject.defineProperty(exports, \"SeamlyGeneralError\", ({\n enumerable: true,\n get: function () {\n return __importDefault(seamly_general_error_1).default;\n }\n})); // Used by: StyleGuide\n\nvar seamly_offline_error_1 = __webpack_require__(/*! ./api/errors/seamly-offline-error */ \"./src/javascripts/api/errors/seamly-offline-error.js\");\n\nObject.defineProperty(exports, \"SeamlyOfflineError\", ({\n enumerable: true,\n get: function () {\n return __importDefault(seamly_offline_error_1).default;\n }\n})); // Used by: Client\n\nvar hooks_1 = __webpack_require__(/*! domains/config/hooks */ \"./src/javascripts/domains/config/hooks.ts\");\n\nObject.defineProperty(exports, \"useSeamlyConfig\", ({\n enumerable: true,\n get: function () {\n return hooks_1.useConfig;\n }\n})); // Used by: Client\n\nvar hooks_2 = __webpack_require__(/*! domains/i18n/hooks */ \"./src/javascripts/domains/i18n/hooks.ts\");\n\nObject.defineProperty(exports, \"useI18n\", ({\n enumerable: true,\n get: function () {\n return hooks_2.useI18n;\n }\n})); // Used by: Client\n\nvar hooks_3 = __webpack_require__(/*! domains/translations/hooks */ \"./src/javascripts/domains/translations/hooks.ts\");\n\nObject.defineProperty(exports, \"useTranslatedEventData\", ({\n enumerable: true,\n get: function () {\n return hooks_3.useTranslatedEventData;\n }\n}));\nObject.defineProperty(exports, \"useTranslations\", ({\n enumerable: true,\n get: function () {\n return hooks_3.useTranslations;\n }\n}));\nObject.defineProperty(exports, \"useTranslationsContainer\", ({\n enumerable: true,\n get: function () {\n return hooks_3.useTranslationsContainer;\n }\n})); // Used by: Client\n\nvar hooks_4 = __webpack_require__(/*! domains/visibility/hooks */ \"./src/javascripts/domains/visibility/hooks.ts\");\n\nObject.defineProperty(exports, \"useSeamlyVisibility\", ({\n enumerable: true,\n get: function () {\n return hooks_4.useVisibility;\n }\n}));\n\nvar constants_1 = __webpack_require__(/*! domains/visibility/constants */ \"./src/javascripts/domains/visibility/constants.js\");\n\nObject.defineProperty(exports, \"visibilityStates\", ({\n enumerable: true,\n get: function () {\n return constants_1.visibilityStates;\n }\n}));\n\nvar utils_1 = __webpack_require__(/*! domains/visibility/utils */ \"./src/javascripts/domains/visibility/utils.js\");\n\nObject.defineProperty(exports, \"calculateVisibility\", ({\n enumerable: true,\n get: function () {\n return utils_1.calculateVisibility;\n }\n})); // Used by: Client\n\nvar css_1 = __webpack_require__(/*! ./lib/css */ \"./src/javascripts/lib/css.js\");\n\nObject.defineProperty(exports, \"className\", ({\n enumerable: true,\n get: function () {\n return css_1.className;\n }\n})); // Used by: StyleGuide\n\nvar engine_1 = __webpack_require__(/*! ./lib/engine */ \"./src/javascripts/lib/engine/index.js\");\n\nObject.defineProperty(exports, \"Engine\", ({\n enumerable: true,\n get: function () {\n return __importDefault(engine_1).default;\n }\n})); // Used by: StyleGuide\n\nvar external_api_1 = __webpack_require__(/*! ./lib/external-api */ \"./src/javascripts/lib/external-api/index.js\");\n\nObject.defineProperty(exports, \"ExternalApi\", ({\n enumerable: true,\n get: function () {\n return __importDefault(external_api_1).default;\n }\n})); // Used by: StyleGuide\n\nvar id_1 = __webpack_require__(/*! ./lib/id */ \"./src/javascripts/lib/id.js\");\n\nObject.defineProperty(exports, \"randomId\", ({\n enumerable: true,\n get: function () {\n return id_1.randomId;\n }\n})); // Used by: StyleGuide\n\nvar component_filter_1 = __webpack_require__(/*! ui/components/conversation/component-filter */ \"./src/javascripts/ui/components/conversation/component-filter.js\");\n\nObject.defineProperty(exports, \"ComponentFilter\", ({\n enumerable: true,\n get: function () {\n return __importDefault(component_filter_1).default;\n }\n})); // Used by: Client\n\nvar conversation_1 = __webpack_require__(/*! ui/components/conversation/conversation */ \"./src/javascripts/ui/components/conversation/conversation.js\");\n\nObject.defineProperty(exports, \"Conversation\", ({\n enumerable: true,\n get: function () {\n return __importDefault(conversation_1).default;\n }\n})); // Used by: Client\n\nvar choice_prompt_1 = __webpack_require__(/*! ui/components/conversation/event/choice-prompt */ \"./src/javascripts/ui/components/conversation/event/choice-prompt.js\");\n\nObject.defineProperty(exports, \"useChoicePrompt\", ({\n enumerable: true,\n get: function () {\n return choice_prompt_1.useChoicePrompt;\n }\n})); // Used by: Demo\n\nvar event_participant_1 = __webpack_require__(/*! ui/components/conversation/event/event-participant */ \"./src/javascripts/ui/components/conversation/event/event-participant.js\");\n\nObject.defineProperty(exports, \"EventParticipant\", ({\n enumerable: true,\n get: function () {\n return __importDefault(event_participant_1).default;\n }\n})); // Used by: Client\n\nvar text_1 = __webpack_require__(/*! ui/components/conversation/event/text */ \"./src/javascripts/ui/components/conversation/event/text.js\");\n\nObject.defineProperty(exports, \"Text\", ({\n enumerable: true,\n get: function () {\n return __importDefault(text_1).default;\n }\n})); // Used by: Client\n\nvar message_container_1 = __webpack_require__(/*! ui/components/conversation/message-container */ \"./src/javascripts/ui/components/conversation/message-container.js\");\n\nObject.defineProperty(exports, \"MessageContainer\", ({\n enumerable: true,\n get: function () {\n return __importDefault(message_container_1).default;\n }\n})); // Used by: StyleGuide\n\nvar seamly_api_context_1 = __webpack_require__(/*! ui/components/core/seamly-api-context */ \"./src/javascripts/ui/components/core/seamly-api-context.js\");\n\nObject.defineProperty(exports, \"SeamlyApiContext\", ({\n enumerable: true,\n get: function () {\n return seamly_api_context_1.SeamlyApiContext;\n }\n}));\nObject.defineProperty(exports, \"SeamlyEventBusContext\", ({\n enumerable: true,\n get: function () {\n return seamly_api_context_1.SeamlyEventBusContext;\n }\n})); // Used by: StyleGuide\n\nvar seamly_live_region_context_1 = __webpack_require__(/*! ui/components/core/seamly-live-region-context */ \"./src/javascripts/ui/components/core/seamly-live-region-context.js\");\n\nObject.defineProperty(exports, \"SeamlyLiveRegionContext\", ({\n enumerable: true,\n get: function () {\n return seamly_live_region_context_1.SeamlyLiveRegionContext;\n }\n})); // Used by: Client\n\nvar deprecated_toggle_button_1 = __webpack_require__(/*! ui/components/entry/deprecated-toggle-button */ \"./src/javascripts/ui/components/entry/deprecated-toggle-button.js\");\n\nObject.defineProperty(exports, \"DeprecatedToggleButton\", ({\n enumerable: true,\n get: function () {\n return __importDefault(deprecated_toggle_button_1).default;\n }\n})); // Used by: Client\n\nvar entry_container_1 = __webpack_require__(/*! ui/components/entry/entry-container */ \"./src/javascripts/ui/components/entry/entry-container.js\");\n\nObject.defineProperty(exports, \"EntryContainer\", ({\n enumerable: true,\n get: function () {\n return __importDefault(entry_container_1).default;\n }\n}));\n\nvar agent_info_1 = __webpack_require__(/*! ui/components/layout/agent-info */ \"./src/javascripts/ui/components/layout/agent-info.js\");\n\nObject.defineProperty(exports, \"AgentInfo\", ({\n enumerable: true,\n get: function () {\n return __importDefault(agent_info_1).default;\n }\n})); // Used by: Client\n\nvar chat_1 = __webpack_require__(/*! ui/components/layout/chat */ \"./src/javascripts/ui/components/layout/chat.js\");\n\nObject.defineProperty(exports, \"Chat\", ({\n enumerable: true,\n get: function () {\n return __importDefault(chat_1).default;\n }\n})); // Used by: Client\n\nvar chat_frame_1 = __webpack_require__(/*! ui/components/layout/chat-frame */ \"./src/javascripts/ui/components/layout/chat-frame.js\");\n\nObject.defineProperty(exports, \"ChatFrame\", ({\n enumerable: true,\n get: function () {\n return __importDefault(chat_frame_1).default;\n }\n})); // Used by: Client\n\nvar header_1 = __webpack_require__(/*! ui/components/layout/header */ \"./src/javascripts/ui/components/layout/header.js\");\n\nObject.defineProperty(exports, \"Header\", ({\n enumerable: true,\n get: function () {\n return __importDefault(header_1).default;\n }\n})); // Used by: Client\n\nvar icon_1 = __webpack_require__(/*! ui/components/layout/icon */ \"./src/javascripts/ui/components/layout/icon.js\");\n\nObject.defineProperty(exports, \"Icon\", ({\n enumerable: true,\n get: function () {\n return __importDefault(icon_1).default;\n }\n})); // Used by: Client\n\nvar interrupt_1 = __webpack_require__(/*! ui/components/layout/interrupt */ \"./src/javascripts/ui/components/layout/interrupt.js\");\n\nObject.defineProperty(exports, \"Interrupt\", ({\n enumerable: true,\n get: function () {\n return __importDefault(interrupt_1).default;\n }\n})); // Used by: StyleGuide\n// Used by: Client (with custom view)\n\nvar view_1 = __webpack_require__(/*! ui/components/view */ \"./src/javascripts/ui/components/view/index.js\");\n\nObject.defineProperty(exports, \"View\", ({\n enumerable: true,\n get: function () {\n return __importDefault(view_1).default;\n }\n})); // Used by: Client\n\nvar deprecated_view_1 = __webpack_require__(/*! ui/components/view/deprecated-view */ \"./src/javascripts/ui/components/view/deprecated-view.js\");\n\nObject.defineProperty(exports, \"DeprecatedView\", ({\n enumerable: true,\n get: function () {\n return __importDefault(deprecated_view_1).default;\n }\n})); // Used by: Client\n\nvar seamly_hooks_1 = __webpack_require__(/*! ./ui/hooks/seamly-hooks */ \"./src/javascripts/ui/hooks/seamly-hooks.js\");\n\nObject.defineProperty(exports, \"useEvents\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useEvents;\n }\n}));\nObject.defineProperty(exports, \"useGeneratedId\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useGeneratedId;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyChat\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyChat;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyCommands\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyCommands;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyEventStream\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyEventStream;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyIdleDetachCountdown\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyIdleDetachCountdown;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyMessageContainerClassNames\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyMessageContainerClassNames;\n }\n}));\nObject.defineProperty(exports, \"useSeamlyOptions\", ({\n enumerable: true,\n get: function () {\n return seamly_hooks_1.useSeamlyOptions;\n }\n})); // Used by: StyleGuide\n\nvar general_utils_1 = __webpack_require__(/*! ./ui/utils/general-utils */ \"./src/javascripts/ui/utils/general-utils.js\");\n\nObject.defineProperty(exports, \"getUrlParams\", ({\n enumerable: true,\n get: function () {\n return general_utils_1.getUrlParams;\n }\n}));\nObject.defineProperty(exports, \"getUrlSearchString\", ({\n enumerable: true,\n get: function () {\n return general_utils_1.getUrlSearchString;\n }\n})); // Used by: Client\n\nvar seamly_utils_1 = __webpack_require__(/*! ./ui/utils/seamly-utils */ \"./src/javascripts/ui/utils/seamly-utils.ts\");\n\nObject.defineProperty(exports, \"eventTypes\", ({\n enumerable: true,\n get: function () {\n return seamly_utils_1.eventTypes;\n }\n}));\n\nvar use_seamly_actions_1 = __webpack_require__(/*! ui/hooks/use-seamly-actions */ \"./src/javascripts/ui/hooks/use-seamly-actions.ts\");\n\nObject.defineProperty(exports, \"useSeamlyActions\", ({\n enumerable: true,\n get: function () {\n return use_seamly_actions_1.useSeamlyActions;\n }\n}));\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/index.ts?");
|
|
524
|
+
|
|
525
|
+
/***/ }),
|
|
526
|
+
|
|
527
|
+
/***/ "./src/javascripts/ui/hooks/use-seamly-actions.ts":
|
|
528
|
+
/*!********************************************************!*\
|
|
529
|
+
!*** ./src/javascripts/ui/hooks/use-seamly-actions.ts ***!
|
|
530
|
+
\********************************************************/
|
|
531
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
532
|
+
|
|
533
|
+
"use strict";
|
|
534
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useSeamlyActions = void 0;\n\nconst slice_1 = __webpack_require__(/*! domains/store/slice */ \"./src/javascripts/domains/store/slice.ts\");\n\nconst react_redux_1 = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nconst useSeamlyActions = () => {\n const dispatch = (0, react_redux_1.useDispatch)();\n return {\n addEvent: event => dispatch((0, slice_1.addEvent)(event)),\n clearEvents: () => dispatch((0, slice_1.clearEvents)()),\n setHistory: history => dispatch((0, slice_1.setHistory)(history)),\n setEventsRead: payload => dispatch((0, slice_1.setEventsRead)(payload)),\n setLoadedImageEventIds: ids => dispatch((0, slice_1.setLoadedImageEventIds)(ids)),\n ackEvent: event => dispatch((0, slice_1.ackEvent)(event)),\n setIsLoading: isLoading => dispatch((0, slice_1.setIsLoading)(isLoading)),\n setParticipant: participant => dispatch((0, slice_1.setParticipant)(participant)),\n setHeaderTitle: title => dispatch((0, slice_1.setHeaderTitle)(title)),\n setHeaderSubTitle: title => dispatch((0, slice_1.setHeaderSubTitle)(title)),\n resetHistoryLoadedFlag: () => dispatch((0, slice_1.resetHistoryLoadedFlag)()),\n setActiveService: () => dispatch((0, slice_1.setActiveService)()),\n initIdleDetachCountdown: payload => dispatch((0, slice_1.initIdleDetachCountdown)(payload)),\n decrementIdleDetachCountdownCounter: () => dispatch((0, slice_1.decrementIdleDetachCountdownCounter)()),\n stopIdleDetachCountdownCounter: () => dispatch((0, slice_1.stopIdleDetachCountdownCounter)()),\n clearIdleDetachCountdown: () => dispatch((0, slice_1.clearIdleDetachCountdown)()),\n initResumeConversationPrompt: () => dispatch((0, slice_1.initResumeConversationPrompt)()),\n clearResumeConversationPrompt: () => dispatch((0, slice_1.clearResumeConversationPrompt)()),\n setServiceDataItem: payload => dispatch((0, slice_1.setServiceDataItem)(payload)),\n setFeatures: payload => dispatch((0, slice_1.setFeatures)(payload)),\n setFeatureEnabledState: payload => dispatch((0, slice_1.setFeatureEnabledState)(payload)),\n clearFeatures: () => dispatch((0, slice_1.clearFeatures)()),\n setInitialState: initialState => dispatch((0, slice_1.setInitialState)(initialState)),\n setUserSelectedOptions: payload => dispatch((0, slice_1.setUserSelectedOptions)(payload)),\n setUserSelectedOption: payload => dispatch((0, slice_1.setUserSelectedOption)(payload)),\n showOption: payload => dispatch((0, slice_1.showOption)(payload)),\n hideOption: () => dispatch((0, slice_1.hideOption)()),\n setServiceEntryMetadata: payload => dispatch((0, slice_1.setServiceEntryMetadata)(payload)),\n setBlockAutoEntrySwitch: payload => dispatch((0, slice_1.setBlockAutoEntrySwitch)(payload)),\n setActiveEntryType: payload => dispatch((0, slice_1.setActiveEntryType)(payload)),\n setUserEntryType: payload => dispatch((0, slice_1.setUserEntryType)(payload)),\n registerUpload: payload => dispatch((0, slice_1.registerUpload)(payload)),\n setUploadProgress: payload => dispatch((0, slice_1.setUploadProgress)(payload)),\n setUploadComplete: payload => dispatch((0, slice_1.setUploadComplete)(payload)),\n setUploadError: payload => dispatch((0, slice_1.setUploadError)(payload)),\n clearAllUploads: () => dispatch((0, slice_1.clearAllUploads)()),\n setSeamlyContainerElement: payload => dispatch((0, slice_1.setSeamlyContainerElement)(payload))\n };\n};\n\nexports.useSeamlyActions = useSeamlyActions;\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/ui/hooks/use-seamly-actions.ts?");
|
|
524
535
|
|
|
525
536
|
/***/ }),
|
|
526
537
|
|
|
@@ -729,7 +740,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
729
740
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
730
741
|
|
|
731
742
|
"use strict";
|
|
732
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createI18nMiddleware)\n/* harmony export */ });\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(domains_config_actions__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n/* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var domains_i18n_selectors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! domains/i18n/selectors */ \"./src/javascripts/domains/i18n/selectors.ts\");\n/* harmony import */ var domains_store_slice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! domains/store/slice */ \"./src/javascripts/domains/store/slice.ts\");\n/* harmony import */ var domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! domains/translations/slice */ \"./src/javascripts/domains/translations/slice.ts\");\n\n\n\n\n\nfunction createI18nMiddleware({\n dispatch,\n getState\n}) {\n return next => {\n return action => {\n const result = next(action);\n const {\n payload\n } = action;\n\n switch (action.type) {\n case domains_store_slice__WEBPACK_IMPORTED_MODULE_3__.setHistory.type:\n if (payload?.translation?.enabled) {\n dispatch((0,domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__.enableTranslation)(payload.translation.locale));\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.translation.locale));\n }\n\n break;\n\n case domains_config_actions__WEBPACK_IMPORTED_MODULE_0__.initializeConfig.fulfilled.type:\n if (payload.locale) {\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.locale));\n }\n\n break;\n\n case domains_store_slice__WEBPACK_IMPORTED_MODULE_3__.setInitialState.type:\n if (payload?.translation?.enabled) {\n dispatch((0,domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__.enableTranslation)(payload.translation.locale));\n }\n\n break;\n\n case domains_store_slice__WEBPACK_IMPORTED_MODULE_3__.addEvent.type:\n if (payload.type === 'info' && payload?.payload?.body?.subtype === 'new_translation' && payload.payload.body.translationEnabled) {\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.payload.body.translationLocale));\n }\n\n break;\n\n case domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__.disableTranslation.type:\n const initialLocale = (0,domains_i18n_selectors__WEBPACK_IMPORTED_MODULE_2__.selectInitialLocale)(getState());\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(initialLocale));\n break;\n }\n\n return result;\n };\n };\n}\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/translations/middleware.js?");
|
|
743
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createI18nMiddleware)\n/* harmony export */ });\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(domains_config_actions__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n/* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var domains_i18n_selectors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! domains/i18n/selectors */ \"./src/javascripts/domains/i18n/selectors.ts\");\n/* harmony import */ var domains_store_slice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! domains/store/slice */ \"./src/javascripts/domains/store/slice.ts\");\n/* harmony import */ var domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! domains/translations/slice */ \"./src/javascripts/domains/translations/slice.ts\");\n\n\n\n\n\nfunction createI18nMiddleware({\n dispatch,\n getState\n}) {\n return next => {\n return action => {\n const result = next(action);\n const {\n payload\n } = action;\n\n switch (action.type) {\n case domains_store_slice__WEBPACK_IMPORTED_MODULE_3__.setHistory.type:\n if (payload?.translation?.enabled) {\n dispatch((0,domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__.enableTranslation)(payload.translation.locale));\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.translation.locale));\n }\n\n break;\n\n case domains_config_actions__WEBPACK_IMPORTED_MODULE_0__.initializeConfig.fulfilled.type:\n if (payload.locale) {\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.locale));\n }\n\n break;\n\n case domains_store_slice__WEBPACK_IMPORTED_MODULE_3__.setInitialState.type:\n if (payload?.translation?.enabled) {\n dispatch((0,domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__.enableTranslation)(payload.translation.locale));\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.locale));\n }\n\n break;\n\n case domains_store_slice__WEBPACK_IMPORTED_MODULE_3__.addEvent.type:\n if (payload.type === 'info' && payload?.payload?.body?.subtype === 'new_translation' && payload.payload.body.translationEnabled) {\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(payload.payload.body.translationLocale));\n }\n\n break;\n\n case domains_translations_slice__WEBPACK_IMPORTED_MODULE_4__.disableTranslation.type:\n const initialLocale = (0,domains_i18n_selectors__WEBPACK_IMPORTED_MODULE_2__.selectInitialLocale)(getState());\n dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_1__.setLocale)(initialLocale));\n break;\n }\n\n return result;\n };\n };\n}\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/domains/translations/middleware.js?");
|
|
733
744
|
|
|
734
745
|
/***/ }),
|
|
735
746
|
|
|
@@ -783,7 +794,7 @@ eval("if (true) {\n module.exports = __webpack_require__(/*! debug */ \"./node_
|
|
|
783
794
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
784
795
|
|
|
785
796
|
"use strict";
|
|
786
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! api */ \"./src/javascripts/api/index.js\");\n/* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! domains/app/actions */ \"./src/javascripts/domains/app/actions.ts\");\n/* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(domains_app_actions__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(domains_config_actions__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var domains_config_slice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! domains/config/slice */ \"./src/javascripts/domains/config/slice.ts\");\n/* harmony import */ var domains_config_slice__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(domains_config_slice__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var
|
|
797
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! api */ \"./src/javascripts/api/index.js\");\n/* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! domains/app/actions */ \"./src/javascripts/domains/app/actions.ts\");\n/* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(domains_app_actions__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! domains/config/actions */ \"./src/javascripts/domains/config/actions.ts\");\n/* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(domains_config_actions__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var domains_config_slice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! domains/config/slice */ \"./src/javascripts/domains/config/slice.ts\");\n/* harmony import */ var domains_config_slice__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(domains_config_slice__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! domains/i18n/actions */ \"./src/javascripts/domains/i18n/actions.ts\");\n/* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(domains_i18n_actions__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var domains_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! domains/store */ \"./src/javascripts/domains/store/index.ts\");\n/* harmony import */ var domains_store__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(domains_store__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! domains/visibility/actions */ \"./src/javascripts/domains/visibility/actions.ts\");\n/* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(domains_visibility_actions__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var minivents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! minivents */ \"./node_modules/minivents/dist/minivents.commonjs.min.js\");\n/* harmony import */ var minivents__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(minivents__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! preact */ \"preact\");\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(preact__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var ui_components_chat_app__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/components/chat-app */ \"./src/javascripts/ui/components/chat-app.js\");\n/* harmony import */ var ui_components_core_seamly_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/components/core/seamly-core */ \"./src/javascripts/ui/components/core/seamly-core.js\");\n/* harmony import */ var preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! preact/jsx-runtime */ \"preact/jsx-runtime\");\n/* harmony import */ var preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__);\nconst _excluded = [\"namespace\", \"parentElement\", \"showFaq\"],\n _excluded2 = [\"view\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass Engine {\n constructor(config, externalApi) {\n const {\n namespace = '',\n parentElement,\n showFaq\n } = config,\n restConfig = _objectWithoutProperties(config, _excluded);\n\n this.config = _objectSpread(_objectSpread({}, restConfig), {}, {\n namespace,\n showFaq: showFaq !== false\n });\n this.namespace = namespace;\n this.parentElement = parentElement;\n this.externalApi = externalApi;\n this.api = new api__WEBPACK_IMPORTED_MODULE_0__.API({\n layoutMode: config.layoutMode,\n namespace: config.namespace,\n config: config.api,\n context: config.context\n });\n this.eventBus = new (minivents__WEBPACK_IMPORTED_MODULE_7___default())();\n this.functions = {};\n this.registerFunctions({\n on: this.eventBus.on,\n off: this.eventBus.off\n });\n this.eventBus.on('function.register', (functionName, fn) => this.registerFunction(functionName, fn));\n this.eventBus.on('function.unregister', (functionName, fn) => this.unregisterFunction(functionName, fn));\n }\n\n async render() {\n const _ref = this.config.customComponents || {},\n {\n view: View\n } = _ref,\n restComponents = _objectWithoutProperties(_ref, _excluded2);\n\n const renderConfig = _objectSpread(_objectSpread({}, this.config), {}, {\n customComponents: Object.keys(restComponents).length ? restComponents : undefined\n });\n\n const store = (0,domains_store__WEBPACK_IMPORTED_MODULE_5__.createStore)({\n api: this.api,\n eventBus: this.eventBus,\n config: renderConfig,\n initialState: undefined\n });\n store.dispatch((0,domains_config_slice__WEBPACK_IMPORTED_MODULE_3__.setConfig)(renderConfig));\n await store.dispatch((0,domains_config_actions__WEBPACK_IMPORTED_MODULE_2__.initializeConfig)());\n\n try {\n const {\n locale\n } = await store.dispatch((0,domains_app_actions__WEBPACK_IMPORTED_MODULE_1__.initializeApp)()).unwrap();\n await store.dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_4__.setLocale)(locale));\n } catch (rejectedValueOrSerializedError) {// nothing to do\n }\n\n store.dispatch((0,domains_visibility_actions__WEBPACK_IMPORTED_MODULE_6__.initializeVisibility)());\n\n if (View) {\n (0,preact__WEBPACK_IMPORTED_MODULE_8__.render)((0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(ui_components_core_seamly_core__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n eventBus: this.eventBus,\n store: store,\n api: this.api,\n children: (0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(View, {})\n }), this.parentElement);\n } else {\n (0,preact__WEBPACK_IMPORTED_MODULE_8__.render)((0,preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(ui_components_chat_app__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n config: renderConfig,\n eventBus: this.eventBus,\n store: store,\n api: this.api\n }), this.parentElement);\n }\n }\n\n destroy() {\n (0,preact__WEBPACK_IMPORTED_MODULE_8__.render)(null, this.parentElement);\n this.eventBus.off();\n this.api.disconnect();\n delete this.functions;\n }\n\n registerFunctions(functionMap) {\n Object.entries(functionMap).forEach(([functionName, fn]) => {\n this.registerFunction(functionName, fn);\n });\n }\n\n registerFunction(functionName, fn) {\n this.functions[functionName] = this.functions[functionName] || [];\n this.functions[functionName].push(fn);\n this.externalApi.handleActions();\n }\n\n unregisterFunction(functionName, fn) {\n const functions = this.functions[functionName];\n\n if (functions && functions.length) {\n this.functions[functionName] = functions.filter(fn2 => fn2 !== fn);\n }\n }\n\n execFunction(functionName, ...args) {\n const functions = this.functions[functionName];\n\n if (!functions || !functions.length) {\n return false;\n }\n\n functions.forEach(fn => {\n try {\n fn(...args);\n } catch (e) {\n console.error(`Action(${functionName}) failed: `, e);\n }\n });\n return true;\n }\n\n}\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/lib/engine/index.js?");
|
|
787
798
|
|
|
788
799
|
/***/ }),
|
|
789
800
|
|
|
@@ -1971,7 +1982,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1971
1982
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1972
1983
|
|
|
1973
1984
|
"use strict";
|
|
1974
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useElementFocusingById\": () => (/* reexport safe */
|
|
1985
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useElementFocusingById\": () => (/* reexport safe */ ui_hooks_focus_helper_hooks__WEBPACK_IMPORTED_MODULE_2__.useElementFocusingById),\n/* harmony export */ \"useEntryTextLimit\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useEntryTextLimit),\n/* harmony export */ \"useEvents\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useEvents),\n/* harmony export */ \"useFileUploadMeta\": () => (/* reexport safe */ _file_upload_hooks__WEBPACK_IMPORTED_MODULE_4__.useFileUploadMeta),\n/* harmony export */ \"useFileUploads\": () => (/* reexport safe */ _file_upload_hooks__WEBPACK_IMPORTED_MODULE_4__.useFileUploads),\n/* harmony export */ \"useFocusIfSeamlyContainedFocus\": () => (/* reexport safe */ ui_hooks_focus_helper_hooks__WEBPACK_IMPORTED_MODULE_2__.useFocusIfSeamlyContainedFocus),\n/* harmony export */ \"useForceUpdate\": () => (/* reexport safe */ _utility_hooks__WEBPACK_IMPORTED_MODULE_13__.useForceUpdate),\n/* harmony export */ \"useGeneratedId\": () => (/* reexport safe */ _utility_hooks__WEBPACK_IMPORTED_MODULE_13__.useGeneratedId),\n/* harmony export */ \"useLastMessageEventId\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useLastMessageEventId),\n/* harmony export */ \"useLiveRegion\": () => (/* reexport safe */ _live_region_hooks__WEBPACK_IMPORTED_MODULE_5__.useLiveRegion),\n/* harmony export */ \"useOptionButton\": () => (/* reexport safe */ _seamly_option_hooks__WEBPACK_IMPORTED_MODULE_6__.useOptionButton),\n/* harmony export */ \"useSeamlyActivityEventHandler\": () => (/* reexport safe */ _use_seamly_activity_event_handler__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ \"useSeamlyApiContext\": () => (/* reexport safe */ _seamly_api_hooks__WEBPACK_IMPORTED_MODULE_1__.useSeamlyApiContext),\n/* harmony export */ \"useSeamlyAppContainerClassNames\": () => (/* reexport safe */ _component_helper_hooks__WEBPACK_IMPORTED_MODULE_3__.useSeamlyAppContainerClassNames),\n/* harmony export */ \"useSeamlyChat\": () => (/* reexport safe */ _use_seamly_chat__WEBPACK_IMPORTED_MODULE_9__[\"default\"]),\n/* harmony export */ \"useSeamlyCommands\": () => (/* reexport safe */ _use_seamly_commands__WEBPACK_IMPORTED_MODULE_10__[\"default\"]),\n/* harmony export */ \"useSeamlyContainerElement\": () => (/* reexport safe */ ui_hooks_focus_helper_hooks__WEBPACK_IMPORTED_MODULE_2__.useSeamlyContainerElement),\n/* harmony export */ \"useSeamlyConversationUrl\": () => (/* reexport safe */ _seamly_api_hooks__WEBPACK_IMPORTED_MODULE_1__.useSeamlyConversationUrl),\n/* harmony export */ \"useSeamlyCurrentAgent\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyCurrentAgent),\n/* harmony export */ \"useSeamlyEventStream\": () => (/* binding */ useSeamlyEventStream),\n/* harmony export */ \"useSeamlyHeaderData\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyHeaderData),\n/* harmony export */ \"useSeamlyIdleDetachCountdown\": () => (/* reexport safe */ _use_seamly_idle_detach_countdown__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n/* harmony export */ \"useSeamlyIsHistoryLoaded\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyIsHistoryLoaded),\n/* harmony export */ \"useSeamlyIsLoading\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyIsLoading),\n/* harmony export */ \"useSeamlyLayoutMode\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyLayoutMode),\n/* harmony export */ \"useSeamlyLiveRegionContext\": () => (/* reexport safe */ _live_region_hooks__WEBPACK_IMPORTED_MODULE_5__.useSeamlyLiveRegionContext),\n/* harmony export */ \"useSeamlyMessageContainerClassNames\": () => (/* reexport safe */ _component_helper_hooks__WEBPACK_IMPORTED_MODULE_3__.useSeamlyMessageContainerClassNames),\n/* harmony export */ \"useSeamlyOptions\": () => (/* reexport safe */ _seamly_option_hooks__WEBPACK_IMPORTED_MODULE_6__.useSeamlyOptions),\n/* harmony export */ \"useSeamlyParticipant\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyParticipant),\n/* harmony export */ \"useSeamlyResumeConversationPrompt\": () => (/* reexport safe */ _use_seamly_resume_conversation_prompt__WEBPACK_IMPORTED_MODULE_12__[\"default\"]),\n/* harmony export */ \"useSeamlyServiceData\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyServiceData),\n/* harmony export */ \"useSeamlyServiceInfo\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyServiceInfo),\n/* harmony export */ \"useSeamlyStateContext\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyStateContext),\n/* harmony export */ \"useSeamlyUnreadCount\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSeamlyUnreadCount),\n/* harmony export */ \"useSkiplink\": () => (/* reexport safe */ _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__.useSkiplink),\n/* harmony export */ \"useSkiplinkTargetFocusing\": () => (/* reexport safe */ ui_hooks_focus_helper_hooks__WEBPACK_IMPORTED_MODULE_2__.useSkiplinkTargetFocusing),\n/* harmony export */ \"useStableCallback\": () => (/* reexport safe */ _utility_hooks__WEBPACK_IMPORTED_MODULE_13__.useStableCallback)\n/* harmony export */ });\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact/hooks */ \"preact/hooks\");\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(preact_hooks__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _seamly_api_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./seamly-api-hooks */ \"./src/javascripts/ui/hooks/seamly-api-hooks.js\");\n/* harmony import */ var ui_hooks_focus_helper_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/hooks/focus-helper-hooks */ \"./src/javascripts/ui/hooks/focus-helper-hooks.js\");\n/* harmony import */ var _component_helper_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./component-helper-hooks */ \"./src/javascripts/ui/hooks/component-helper-hooks.js\");\n/* harmony import */ var _file_upload_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./file-upload-hooks */ \"./src/javascripts/ui/hooks/file-upload-hooks.js\");\n/* harmony import */ var _live_region_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./live-region-hooks */ \"./src/javascripts/ui/hooks/live-region-hooks.js\");\n/* harmony import */ var _seamly_option_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./seamly-option-hooks */ \"./src/javascripts/ui/hooks/seamly-option-hooks.js\");\n/* harmony import */ var _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./seamly-state-hooks */ \"./src/javascripts/ui/hooks/seamly-state-hooks.js\");\n/* harmony import */ var _use_seamly_activity_event_handler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./use-seamly-activity-event-handler */ \"./src/javascripts/ui/hooks/use-seamly-activity-event-handler.js\");\n/* harmony import */ var _use_seamly_chat__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./use-seamly-chat */ \"./src/javascripts/ui/hooks/use-seamly-chat.js\");\n/* harmony import */ var _use_seamly_commands__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./use-seamly-commands */ \"./src/javascripts/ui/hooks/use-seamly-commands.js\");\n/* harmony import */ var _use_seamly_idle_detach_countdown__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./use-seamly-idle-detach-countdown */ \"./src/javascripts/ui/hooks/use-seamly-idle-detach-countdown.js\");\n/* harmony import */ var _use_seamly_resume_conversation_prompt__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./use-seamly-resume-conversation-prompt */ \"./src/javascripts/ui/hooks/use-seamly-resume-conversation-prompt.js\");\n/* harmony import */ var _utility_hooks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utility-hooks */ \"./src/javascripts/ui/hooks/utility-hooks.js\");\n // Import extracted hooks here for use inside this file\n\n // Export extracted hooks here,\n// although this is a redundant, it prevents a bazillion code changes for now.\n// TODO: Remove exports and import them from the correct files\n\n\n\n\n\n\n\n\n\n\n\n\n\n // This hook isn't used within the core\n// But it is used in implementations\n// and imported directly from this file\n// Please do not remove\n\nconst useSeamlyEventStream = (nextFn, filterFn) => {\n const api = (0,_seamly_api_hooks__WEBPACK_IMPORTED_MODULE_1__.useSeamlyApiContext)();\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (api.stream) {\n if (filterFn) {\n api.stream().filter(filterFn).subscribe({\n next: nextFn\n });\n } else {\n api.stream().subscribe({\n next: nextFn\n });\n }\n }\n }, [api, nextFn, filterFn]);\n};\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/ui/hooks/seamly-hooks.js?");
|
|
1975
1986
|
|
|
1976
1987
|
/***/ }),
|
|
1977
1988
|
|
|
@@ -2037,7 +2048,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2037
2048
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2038
2049
|
|
|
2039
2050
|
"use strict";
|
|
2040
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! domains/i18n/hooks */ \"./src/javascripts/domains/i18n/hooks.ts\");\n/* harmony import */ var domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var domains_store_slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! domains/store/slice */ \"./src/javascripts/domains/store/slice.ts\");\n/* harmony import */ var domains_visibility_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! domains/visibility/constants */ \"./src/javascripts/domains/visibility/constants.js\");\n/* harmony import */ var domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! domains/visibility/hooks */ \"./src/javascripts/domains/visibility/hooks.ts\");\n/* harmony import */ var domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! preact/hooks */ \"preact/hooks\");\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(preact_hooks__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n/* harmony import */ var _domains_visibility_selectors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../domains/visibility/selectors */ \"./src/javascripts/domains/visibility/selectors.ts\");\n/* harmony import */ var _live_region_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./live-region-hooks */ \"./src/javascripts/ui/hooks/live-region-hooks.js\");\n/* harmony import */ var _seamly_api_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./seamly-api-hooks */ \"./src/javascripts/ui/hooks/seamly-api-hooks.js\");\n/* harmony import */ var _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./seamly-state-hooks */ \"./src/javascripts/ui/hooks/seamly-state-hooks.js\");\n/* harmony import */ var _use_seamly_commands__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./use-seamly-commands */ \"./src/javascripts/ui/hooks/use-seamly-commands.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst useSeamlyChat = () => {\n const {\n t\n } = (0,domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0__.useI18n)();\n const {\n isInline,\n isWindow\n } = (0,_seamly_state_hooks__WEBPACK_IMPORTED_MODULE_9__.useSeamlyLayoutMode)();\n const {\n isOpen,\n isVisible,\n setVisibility\n } = (0,domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3__.useVisibility)();\n const showInlineView = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(_domains_visibility_selectors__WEBPACK_IMPORTED_MODULE_6__.selectShowInlineView);\n const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();\n const spinnerTimeout = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);\n const {\n start,\n connect,\n apiConfigReady,\n apiConnected\n } = (0,_use_seamly_commands__WEBPACK_IMPORTED_MODULE_10__[\"default\"])();\n const hasConversation = (0,_seamly_api_hooks__WEBPACK_IMPORTED_MODULE_8__.useSeamlyHasConversation)();\n const prevIsOpen = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);\n const prevIsVisible = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);\n const startCalled = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(false);\n const {\n sendAssertive\n } = (0,_live_region_hooks__WEBPACK_IMPORTED_MODULE_7__.useLiveRegion)();\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n if (isVisible) {\n // Wait for the live containers to stabilise in the DOM before injecting\n // the message or some screen readers will swallow it.\n setTimeout(() => {\n sendAssertive(t('window.srTexts.onLoad'));\n }, 500);\n }\n }, [isVisible, sendAssertive, t]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n if (isVisible !== prevIsVisible.current) {\n prevIsOpen.current = isOpen;\n prevIsVisible.current = isVisible;\n return;\n }\n\n if (prevIsOpen.current !== null) {\n if (isOpen) {\n sendAssertive(t('window.srTexts.onOpen'));\n } else {\n sendAssertive(t('window.srTexts.onClose'));\n }\n }\n\n prevIsOpen.current = isOpen;\n prevIsVisible.current = isVisible;\n }, [isOpen, isVisible, sendAssertive, t]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n // This delays the start of the loading inidicator we set when we initialise\n // the application. This is done to only avoid BSOD on initial load if DCX is slow.\n spinnerTimeout.current = setTimeout(() => {\n dispatch((0,domains_store_slice__WEBPACK_IMPORTED_MODULE_1__.setIsLoading)(true));\n }, 500);\n return () => {\n clearTimeout(spinnerTimeout.current);\n };\n }, [dispatch]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n // This is needed to reset the ref to allow connect and start to happen again.\n // Mostly due to Interrupt situations and a reset being called.\n if (!apiConfigReady || !apiConnected) {\n startCalled.current = false;\n }\n }, [apiConfigReady, apiConnected]);\n const connectAndStart = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useCallback)(async () => {\n // We don't connect if we are already connected to the api to avoid multiple in-flight connection processes.\n if (!apiConnected) {\n await connect();\n } // We only start a conversation when the chat interface is either 'open' or if using the inline view if it's 'open' or 'minimized'.\n\n\n if (isOpen || isVisible && isInline) {\n start();\n startCalled.current = true;\n }\n }, [apiConnected, connect, isInline, isOpen, isVisible, start]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n // We dont't connect or start when the apiConfig is not ready yet.\n // We also keep track of whether start has been called to avoid multiple in-flight connection processes.\n // We check if the window view is not open and no conversation is started yet.\n // Lastly we check if the inline view is not scrolled in to view.\n if (!apiConfigReady || startCalled.current || isWindow && !isOpen && !hasConversation() || isInline && !showInlineView) {\n return;\n }\n\n if (hasConversation() && isOpen) {\n // We deactivate the extra startup loading spinner when a conversation is available\n // We also stop setting the loading indicator in the first place to avoid a flash.\n clearTimeout(spinnerTimeout.current);\n dispatch((0,domains_store_slice__WEBPACK_IMPORTED_MODULE_1__.setIsLoading)(false));\n }\n\n connectAndStart();\n }, [apiConfigReady, connectAndStart, dispatch, hasConversation, isInline, isOpen, isWindow, showInlineView]);\n\n const openChat = () => {\n setVisibility(domains_visibility_constants__WEBPACK_IMPORTED_MODULE_2__.visibilityStates.open);\n };\n\n const closeChat = () => {\n setVisibility(domains_visibility_constants__WEBPACK_IMPORTED_MODULE_2__.visibilityStates.minimized);\n };\n\n return {\n openChat,\n closeChat\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useSeamlyChat);\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/ui/hooks/use-seamly-chat.js?");
|
|
2051
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! domains/i18n/hooks */ \"./src/javascripts/domains/i18n/hooks.ts\");\n/* harmony import */ var domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var domains_store_slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! domains/store/slice */ \"./src/javascripts/domains/store/slice.ts\");\n/* harmony import */ var domains_visibility_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! domains/visibility/constants */ \"./src/javascripts/domains/visibility/constants.js\");\n/* harmony import */ var domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! domains/visibility/hooks */ \"./src/javascripts/domains/visibility/hooks.ts\");\n/* harmony import */ var domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! preact/hooks */ \"preact/hooks\");\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(preact_hooks__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n/* harmony import */ var _domains_visibility_selectors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../domains/visibility/selectors */ \"./src/javascripts/domains/visibility/selectors.ts\");\n/* harmony import */ var _live_region_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./live-region-hooks */ \"./src/javascripts/ui/hooks/live-region-hooks.js\");\n/* harmony import */ var _seamly_api_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./seamly-api-hooks */ \"./src/javascripts/ui/hooks/seamly-api-hooks.js\");\n/* harmony import */ var _seamly_state_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./seamly-state-hooks */ \"./src/javascripts/ui/hooks/seamly-state-hooks.js\");\n/* harmony import */ var _use_seamly_commands__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./use-seamly-commands */ \"./src/javascripts/ui/hooks/use-seamly-commands.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst useSeamlyChat = () => {\n const events = (0,_seamly_state_hooks__WEBPACK_IMPORTED_MODULE_9__.useEvents)();\n const {\n t\n } = (0,domains_i18n_hooks__WEBPACK_IMPORTED_MODULE_0__.useI18n)();\n const {\n isInline,\n isWindow\n } = (0,_seamly_state_hooks__WEBPACK_IMPORTED_MODULE_9__.useSeamlyLayoutMode)();\n const {\n isOpen,\n isVisible,\n setVisibility\n } = (0,domains_visibility_hooks__WEBPACK_IMPORTED_MODULE_3__.useVisibility)();\n const showInlineView = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(_domains_visibility_selectors__WEBPACK_IMPORTED_MODULE_6__.selectShowInlineView);\n const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();\n const spinnerTimeout = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);\n const {\n start,\n connect,\n apiConfigReady,\n apiConnected\n } = (0,_use_seamly_commands__WEBPACK_IMPORTED_MODULE_10__[\"default\"])();\n const hasConversation = (0,_seamly_api_hooks__WEBPACK_IMPORTED_MODULE_8__.useSeamlyHasConversation)();\n const prevIsOpen = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);\n const prevIsVisible = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(null);\n const startCalled = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useRef)(false);\n const {\n sendAssertive\n } = (0,_live_region_hooks__WEBPACK_IMPORTED_MODULE_7__.useLiveRegion)();\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n if (isVisible) {\n // Wait for the live containers to stabilise in the DOM before injecting\n // the message or some screen readers will swallow it.\n setTimeout(() => {\n sendAssertive(t('window.srTexts.onLoad'));\n }, 500);\n }\n }, [isVisible, sendAssertive, t]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n if (isVisible !== prevIsVisible.current) {\n prevIsOpen.current = isOpen;\n prevIsVisible.current = isVisible;\n return;\n }\n\n if (prevIsOpen.current !== null) {\n if (isOpen) {\n sendAssertive(t('window.srTexts.onOpen'));\n } else {\n sendAssertive(t('window.srTexts.onClose'));\n }\n }\n\n prevIsOpen.current = isOpen;\n prevIsVisible.current = isVisible;\n }, [isOpen, isVisible, sendAssertive, t]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n // This delays the start of the loading inidicator we set when we initialise\n // the application. This is done to only avoid BSOD on initial load if DCX is slow.\n spinnerTimeout.current = setTimeout(() => {\n dispatch((0,domains_store_slice__WEBPACK_IMPORTED_MODULE_1__.setIsLoading)(true));\n }, 500);\n return () => {\n clearTimeout(spinnerTimeout.current);\n };\n }, [dispatch]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n if (events.length) {\n spinnerTimeout.current = setTimeout(() => {\n dispatch((0,domains_store_slice__WEBPACK_IMPORTED_MODULE_1__.setIsLoading)(false));\n }, 5000);\n }\n\n return () => {\n clearTimeout(spinnerTimeout.current);\n };\n }, [events, dispatch]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n // This is needed to reset the ref to allow connect and start to happen again.\n // Mostly due to Interrupt situations and a reset being called.\n if (!apiConfigReady || !apiConnected) {\n startCalled.current = false;\n }\n }, [apiConfigReady, apiConnected]);\n const connectAndStart = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useCallback)(async () => {\n // We don't connect if we are already connected to the api to avoid multiple in-flight connection processes.\n if (!apiConnected) {\n await connect();\n } // We only start a conversation when the chat interface is either 'open' or if using the inline view if it's 'open' or 'minimized'.\n\n\n if (isOpen || isVisible && isInline) {\n start();\n startCalled.current = true;\n }\n }, [apiConnected, connect, isInline, isOpen, isVisible, start]);\n (0,preact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {\n // We dont't connect or start when the apiConfig is not ready yet.\n // We also keep track of whether start has been called to avoid multiple in-flight connection processes.\n // We check if the window view is not open and no conversation is started yet.\n // Lastly we check if the inline view is not scrolled in to view.\n if (!apiConfigReady || startCalled.current || isWindow && !isOpen && !hasConversation() || isInline && !showInlineView) {\n return;\n }\n\n if (hasConversation() && isOpen) {\n // We deactivate the extra startup loading spinner when a conversation is available\n // We also stop setting the loading indicator in the first place to avoid a flash.\n clearTimeout(spinnerTimeout.current);\n dispatch((0,domains_store_slice__WEBPACK_IMPORTED_MODULE_1__.setIsLoading)(false));\n }\n\n connectAndStart();\n }, [apiConfigReady, connectAndStart, dispatch, hasConversation, isInline, isOpen, isWindow, showInlineView]);\n\n const openChat = () => {\n setVisibility(domains_visibility_constants__WEBPACK_IMPORTED_MODULE_2__.visibilityStates.open);\n };\n\n const closeChat = () => {\n setVisibility(domains_visibility_constants__WEBPACK_IMPORTED_MODULE_2__.visibilityStates.minimized);\n };\n\n return {\n openChat,\n closeChat\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useSeamlyChat);\n\n//# sourceURL=webpack://@seamly/web-ui/./src/javascripts/ui/hooks/use-seamly-chat.js?");
|
|
2041
2052
|
|
|
2042
2053
|
/***/ }),
|
|
2043
2054
|
|