@seamly/web-ui 20.0.0 → 20.2.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/dist/lib/deprecated-view.css +1 -1
- package/build/dist/lib/index.debug.js +135 -135
- package/build/dist/lib/index.debug.min.js +1 -1
- package/build/dist/lib/index.js +86 -59
- package/build/dist/lib/index.min.js +1 -1
- package/build/dist/lib/standalone.js +86 -59
- package/build/dist/lib/standalone.min.js +1 -1
- package/build/dist/lib/style-guide.js +45 -31
- package/build/dist/lib/style-guide.min.js +1 -1
- package/build/dist/lib/styles-default-implementation.css +1 -1
- package/build/dist/lib/styles.css +1 -1
- package/package.json +1 -1
- package/src/javascripts/api/errors/seamly-base-error.js +1 -0
- package/src/javascripts/api/index.js +33 -21
- package/src/javascripts/api/producer.js +3 -3
- package/src/javascripts/domains/app/actions.js +12 -8
- package/src/javascripts/domains/app/hooks.js +1 -1
- package/src/javascripts/domains/app/utils.js +1 -1
- package/src/javascripts/domains/config/hooks.js +1 -1
- package/src/javascripts/domains/config/reducer.js +3 -3
- package/src/javascripts/domains/config/selectors.js +1 -1
- package/src/javascripts/domains/config/utils.js +1 -1
- package/src/javascripts/domains/errors/index.js +2 -2
- package/src/javascripts/domains/forms/hooks.js +1 -1
- package/src/javascripts/domains/forms/provider.js +5 -3
- package/src/javascripts/domains/forms/reducer.js +1 -1
- package/src/javascripts/domains/forms/selectors.js +1 -1
- package/src/javascripts/domains/forms/utils.js +1 -1
- package/src/javascripts/domains/i18n/actions.js +1 -1
- package/src/javascripts/domains/i18n/hooks.js +1 -1
- package/src/javascripts/domains/i18n/reducer.js +1 -1
- package/src/javascripts/domains/i18n/utils.js +1 -1
- package/src/javascripts/domains/interrupt/hooks.js +2 -2
- package/src/javascripts/domains/interrupt/middleware.js +6 -6
- package/src/javascripts/domains/interrupt/reducer.js +1 -1
- package/src/javascripts/domains/interrupt/utils.js +1 -1
- package/src/javascripts/domains/options/middleware.js +1 -1
- package/src/javascripts/domains/store/index.js +10 -10
- package/src/javascripts/domains/store/state-reducer.js +3 -3
- package/src/javascripts/domains/translations/components/chat-status.js +5 -5
- package/src/javascripts/domains/translations/components/options-button.js +6 -6
- package/src/javascripts/domains/translations/components/options-dialog/form.js +5 -5
- package/src/javascripts/domains/translations/components/options-dialog/index.js +7 -7
- package/src/javascripts/domains/translations/hooks.js +3 -3
- package/src/javascripts/domains/translations/middleware.js +2 -2
- package/src/javascripts/domains/translations/reducer.js +3 -3
- package/src/javascripts/domains/translations/selectors.js +1 -1
- package/src/javascripts/domains/translations/utils.js +1 -1
- package/src/javascripts/domains/visibility/actions.js +3 -3
- package/src/javascripts/domains/visibility/hooks.js +1 -1
- package/src/javascripts/domains/visibility/utils.js +1 -1
- package/src/javascripts/lib/css.js +1 -1
- package/src/javascripts/lib/engine/index.js +6 -5
- package/src/javascripts/lib/external-api/index.js +1 -1
- package/src/javascripts/lib/redux-helpers/index.js +1 -1
- package/src/javascripts/style-guide/components/app.js +1 -1
- package/src/javascripts/style-guide/components/links.js +6 -6
- package/src/javascripts/style-guide/components/static-core.js +8 -8
- package/src/javascripts/style-guide.js +2 -0
- package/src/javascripts/ui/components/app-options/index.js +4 -4
- package/src/javascripts/ui/components/chat-status/index.js +2 -2
- package/src/javascripts/ui/components/conversation/component-filter.js +1 -1
- package/src/javascripts/ui/components/conversation/conversation.js +6 -6
- package/src/javascripts/ui/components/conversation/event/card-component.js +4 -4
- package/src/javascripts/ui/components/conversation/event/card-message.js +3 -3
- package/src/javascripts/ui/components/conversation/event/carousel-component/components/controls.js +3 -3
- package/src/javascripts/ui/components/conversation/event/carousel-component/components/pagination.js +1 -1
- package/src/javascripts/ui/components/conversation/event/carousel-component/index.js +3 -3
- package/src/javascripts/ui/components/conversation/event/carousel-message/components/slide.js +3 -3
- package/src/javascripts/ui/components/conversation/event/carousel-message/index.js +3 -3
- package/src/javascripts/ui/components/conversation/event/choice-prompt.js +7 -7
- package/src/javascripts/ui/components/conversation/event/cta.js +6 -6
- package/src/javascripts/ui/components/conversation/event/divider/index.js +1 -1
- package/src/javascripts/ui/components/conversation/event/divider/variants/default.js +3 -3
- package/src/javascripts/ui/components/conversation/event/divider/variants/new-translation.js +4 -4
- package/src/javascripts/ui/components/conversation/event/divider/variants/time-indicator.js +5 -5
- package/src/javascripts/ui/components/conversation/event/event-participant.js +4 -4
- package/src/javascripts/ui/components/conversation/event/event.js +2 -2
- package/src/javascripts/ui/components/conversation/event/hooks/use-event-link-click-handler.js +2 -2
- package/src/javascripts/ui/components/conversation/event/hooks/use-formatted-date.js +3 -3
- package/src/javascripts/ui/components/conversation/event/image-lightbox.js +4 -4
- package/src/javascripts/ui/components/conversation/event/image.js +2 -2
- package/src/javascripts/ui/components/conversation/event/participant.js +4 -4
- package/src/javascripts/ui/components/conversation/event/text.js +3 -3
- package/src/javascripts/ui/components/conversation/event/translation.js +3 -3
- package/src/javascripts/ui/components/conversation/event/upload.js +18 -15
- package/src/javascripts/ui/components/conversation/event/video.js +4 -4
- package/src/javascripts/ui/components/conversation/event-divider.js +2 -2
- package/src/javascripts/ui/components/conversation/loader.js +2 -2
- package/src/javascripts/ui/components/conversation/message-container.js +4 -4
- package/src/javascripts/ui/components/core/seamly-activity-monitor.js +3 -3
- package/src/javascripts/ui/components/core/seamly-core.js +2 -2
- package/src/javascripts/ui/components/core/seamly-event-subscriber.js +8 -8
- package/src/javascripts/ui/components/core/seamly-file-upload.js +4 -4
- package/src/javascripts/ui/components/core/seamly-idle-detach-counter.js +2 -2
- package/src/javascripts/ui/components/core/seamly-initializer.js +2 -2
- package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +5 -5
- package/src/javascripts/ui/components/core/seamly-live-region.js +2 -2
- package/src/javascripts/ui/components/core/seamly-new-notifications.js +5 -5
- package/src/javascripts/ui/components/core/seamly-read-state.js +6 -6
- package/src/javascripts/ui/components/entry/deprecated-toggle-button.js +5 -5
- package/src/javascripts/ui/components/entry/entry-container.js +8 -8
- package/src/javascripts/ui/components/entry/text-entry/hooks.js +6 -6
- package/src/javascripts/ui/components/entry/text-entry/index.js +2 -2
- package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +8 -8
- package/src/javascripts/ui/components/entry/upload/file-upload-form.js +5 -5
- package/src/javascripts/ui/components/entry/upload/index.js +10 -10
- package/src/javascripts/ui/components/entry/upload-toggle.js +9 -9
- package/src/javascripts/ui/components/faq/faq.js +16 -16
- package/src/javascripts/ui/components/form-controls/error.js +2 -2
- package/src/javascripts/ui/components/form-controls/file-input.js +4 -4
- package/src/javascripts/ui/components/form-controls/form.js +2 -2
- package/src/javascripts/ui/components/form-controls/input.js +1 -1
- package/src/javascripts/ui/components/form-controls/select.js +1 -1
- package/src/javascripts/ui/components/form-controls/wrapper.js +1 -1
- package/src/javascripts/ui/components/layout/agent-info.js +6 -6
- package/src/javascripts/ui/components/layout/chat-frame.js +5 -5
- package/src/javascripts/ui/components/layout/deprecated-app-frame.js +7 -7
- package/src/javascripts/ui/components/layout/header.js +3 -3
- package/src/javascripts/ui/components/layout/icon.js +1 -1
- package/src/javascripts/ui/components/layout/interrupt.js +3 -3
- package/src/javascripts/ui/components/layout/privacy-disclaimer.js +3 -3
- package/src/javascripts/ui/components/options/options-button.js +7 -12
- package/src/javascripts/ui/components/options/options-frame.js +4 -4
- package/src/javascripts/ui/components/options/options.js +1 -1
- package/src/javascripts/ui/components/options/transcript/index.js +8 -8
- package/src/javascripts/ui/components/options/transcript/transcript-form.js +4 -4
- package/src/javascripts/ui/components/warnings/idle-detach-warning.js +6 -6
- package/src/javascripts/ui/components/warnings/prompt.js +2 -2
- package/src/javascripts/ui/components/warnings/resume-conversation-prompt.js +5 -5
- package/src/javascripts/ui/components/widgets/in-out-transition.js +3 -3
- package/src/javascripts/ui/components/widgets/lightbox.js +5 -5
- package/src/javascripts/ui/components/widgets/modal.js +2 -2
- package/src/javascripts/ui/components/widgets/upload-progress.js +4 -4
- package/src/javascripts/ui/hooks/component-helper-hooks.js +1 -1
- package/src/javascripts/ui/hooks/file-upload-hooks.js +2 -2
- package/src/javascripts/ui/hooks/focus-helper-hooks.js +2 -2
- package/src/javascripts/ui/hooks/live-region-hooks.js +2 -2
- package/src/javascripts/ui/hooks/seamly-api-hooks.js +1 -1
- package/src/javascripts/ui/hooks/seamly-entry-hooks.js +2 -2
- package/src/javascripts/ui/hooks/seamly-option-hooks.js +2 -2
- package/src/javascripts/ui/hooks/seamly-state-hooks.js +5 -5
- package/src/javascripts/ui/hooks/use-event-component-mapping.js +2 -2
- package/src/javascripts/ui/hooks/use-seamly-activity-event-handler.js +1 -1
- package/src/javascripts/ui/hooks/use-seamly-chat.js +3 -3
- package/src/javascripts/ui/hooks/use-seamly-commands.js +9 -9
- package/src/javascripts/ui/hooks/use-seamly-dispatch.js +1 -1
- package/src/javascripts/ui/hooks/use-seamly-idle-detach-countdown.js +5 -5
- package/src/javascripts/ui/hooks/use-seamly-resume-conversation-prompt.js +2 -2
- package/src/javascripts/ui/hooks/use-single-file-upload.js +2 -2
- package/src/javascripts/ui/hooks/utility-hooks.js +1 -1
- package/src/stylesheets/4-base/_formelements.scss +3 -3
- package/src/stylesheets/5-components/_buttons.scss +1 -1
- package/src/stylesheets/5-components/_chat-status.scss +4 -0
- package/src/stylesheets/5-components/_input.scss +2 -2
- package/src/stylesheets/5-components/_message-body.scss +19 -12
- package/src/stylesheets/6-default-implementation/_hover.scss +24 -12
- package/src/stylesheets/7-deprecated/4-base/_formelements.scss +4 -4
- package/src/stylesheets/7-deprecated/5-components/_buttons.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_input.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_message.scss +4 -3
- package/src/stylesheets/7-deprecated/5-components/_options.scss +2 -2
- package/webpack/config.common.js +5 -0
- package/webpack/config.package.js +10 -0
- package/src/.DS_Store +0 -0
package/build/dist/lib/index.js
CHANGED
|
@@ -9225,6 +9225,29 @@ const setLocale = i18n_utils_createThunk('setLocale', async (locale, {
|
|
|
9225
9225
|
return api.getTranslations(locale);
|
|
9226
9226
|
});
|
|
9227
9227
|
});
|
|
9228
|
+
;// CONCATENATED MODULE: ./src/javascripts/domains/translations/utils.js
|
|
9229
|
+
|
|
9230
|
+
const {
|
|
9231
|
+
createActions: utils_createActions,
|
|
9232
|
+
createReducer: translations_utils_createReducer,
|
|
9233
|
+
selectState: translations_utils_selectState
|
|
9234
|
+
} = createDomain('translations');
|
|
9235
|
+
;// CONCATENATED MODULE: ./src/javascripts/domains/translations/actions.js
|
|
9236
|
+
|
|
9237
|
+
const [enable, disable] = utils_createActions('translate', {
|
|
9238
|
+
enable: locale => ({
|
|
9239
|
+
locale
|
|
9240
|
+
}),
|
|
9241
|
+
disable: () => ({})
|
|
9242
|
+
});
|
|
9243
|
+
const [enableEvent, disableEvent] = utils_createActions('event', {
|
|
9244
|
+
enable: payloadId => ({
|
|
9245
|
+
payloadId
|
|
9246
|
+
}),
|
|
9247
|
+
disable: payloadId => ({
|
|
9248
|
+
payloadId
|
|
9249
|
+
})
|
|
9250
|
+
});
|
|
9228
9251
|
;// CONCATENATED MODULE: ./src/javascripts/domains/app/utils.js
|
|
9229
9252
|
|
|
9230
9253
|
const {
|
|
@@ -9243,7 +9266,7 @@ const selectUserHasResponded = createSelector(app_utils_selectState, state => st
|
|
|
9243
9266
|
|
|
9244
9267
|
const {
|
|
9245
9268
|
createAction: visibility_utils_createAction,
|
|
9246
|
-
createActions:
|
|
9269
|
+
createActions: visibility_utils_createActions,
|
|
9247
9270
|
createThunk: visibility_utils_createThunk,
|
|
9248
9271
|
createReducer: visibility_utils_createReducer,
|
|
9249
9272
|
selectState: visibility_utils_selectState
|
|
@@ -9509,6 +9532,7 @@ class SeamlyBaseError extends Error {
|
|
|
9509
9532
|
if (originalError !== null && originalError !== void 0 && originalError.payload) {
|
|
9510
9533
|
this.originalEvent = originalError;
|
|
9511
9534
|
this.originalError = originalError.payload.error;
|
|
9535
|
+
this.message = `Event of type ${originalError.payload.type} encountered`;
|
|
9512
9536
|
}
|
|
9513
9537
|
|
|
9514
9538
|
if (originalError !== null && originalError !== void 0 && originalError.error) {
|
|
@@ -9549,6 +9573,7 @@ const clear = interrupt_utils_createAction('clear');
|
|
|
9549
9573
|
|
|
9550
9574
|
|
|
9551
9575
|
|
|
9576
|
+
|
|
9552
9577
|
const setHasResponded = app_utils_createAction('setHasResponded', hasResponded => ({
|
|
9553
9578
|
hasResponded
|
|
9554
9579
|
}));
|
|
@@ -9591,7 +9616,7 @@ const app_actions_initialize = app_utils_createThunk('initialize', async (_, {
|
|
|
9591
9616
|
|
|
9592
9617
|
if (agentParticipant !== null && agentParticipant !== void 0 && agentParticipant.name) {
|
|
9593
9618
|
dispatch({
|
|
9594
|
-
type: seamlyActions.
|
|
9619
|
+
type: seamlyActions.SET_HEADER_SUB_TITLE,
|
|
9595
9620
|
title: agentParticipant.name
|
|
9596
9621
|
});
|
|
9597
9622
|
}
|
|
@@ -9600,6 +9625,8 @@ const app_actions_initialize = app_utils_createThunk('initialize', async (_, {
|
|
|
9600
9625
|
}
|
|
9601
9626
|
|
|
9602
9627
|
try {
|
|
9628
|
+
var _config$context2;
|
|
9629
|
+
|
|
9603
9630
|
if (api.hasConversation()) {
|
|
9604
9631
|
var _initialState$transla;
|
|
9605
9632
|
|
|
@@ -9613,6 +9640,9 @@ const app_actions_initialize = app_utils_createThunk('initialize', async (_, {
|
|
|
9613
9640
|
if ('userResponded' in initialState) {
|
|
9614
9641
|
dispatch(setHasResponded(initialState.userResponded));
|
|
9615
9642
|
}
|
|
9643
|
+
} else if (config !== null && config !== void 0 && (_config$context2 = config.context) !== null && _config$context2 !== void 0 && _config$context2.translationLocale) {
|
|
9644
|
+
locale = config.context.translationLocale;
|
|
9645
|
+
dispatch(enable(locale));
|
|
9616
9646
|
}
|
|
9617
9647
|
} catch (e) {
|
|
9618
9648
|
if (e instanceof SeamlySessionExpiredError) {
|
|
@@ -11848,29 +11878,6 @@ const app_reducer_initialState = {
|
|
|
11848
11878
|
|
|
11849
11879
|
|
|
11850
11880
|
|
|
11851
|
-
;// CONCATENATED MODULE: ./src/javascripts/domains/translations/utils.js
|
|
11852
|
-
|
|
11853
|
-
const {
|
|
11854
|
-
createActions: translations_utils_createActions,
|
|
11855
|
-
createReducer: translations_utils_createReducer,
|
|
11856
|
-
selectState: translations_utils_selectState
|
|
11857
|
-
} = createDomain('translations');
|
|
11858
|
-
;// CONCATENATED MODULE: ./src/javascripts/domains/translations/actions.js
|
|
11859
|
-
|
|
11860
|
-
const [enable, disable] = translations_utils_createActions('translate', {
|
|
11861
|
-
enable: locale => ({
|
|
11862
|
-
locale
|
|
11863
|
-
}),
|
|
11864
|
-
disable: () => ({})
|
|
11865
|
-
});
|
|
11866
|
-
const [enableEvent, disableEvent] = translations_utils_createActions('event', {
|
|
11867
|
-
enable: payloadId => ({
|
|
11868
|
-
payloadId
|
|
11869
|
-
}),
|
|
11870
|
-
disable: payloadId => ({
|
|
11871
|
-
payloadId
|
|
11872
|
-
})
|
|
11873
|
-
});
|
|
11874
11881
|
;// CONCATENATED MODULE: ./src/javascripts/domains/redux/utils.js
|
|
11875
11882
|
const arrayContentEquals = (a, b) => {
|
|
11876
11883
|
if (a === b) {
|
|
@@ -12635,10 +12642,14 @@ function FormProvider(_ref) {
|
|
|
12635
12642
|
});
|
|
12636
12643
|
}, [setExternalErrors]);
|
|
12637
12644
|
const handleSubmit = (0,hooks_namespaceObject.useCallback)(e => {
|
|
12638
|
-
|
|
12639
|
-
setIsSubmitted(true);
|
|
12645
|
+
var _e$submitter;
|
|
12640
12646
|
|
|
12641
|
-
|
|
12647
|
+
e.preventDefault(); // If the submitter is set to being aria-disabled, block the submit action
|
|
12648
|
+
|
|
12649
|
+
const ariaDisabled = ((_e$submitter = e.submitter) === null || _e$submitter === void 0 ? void 0 : _e$submitter.ariaDisabled) === 'true';
|
|
12650
|
+
setIsSubmitted(!ariaDisabled);
|
|
12651
|
+
|
|
12652
|
+
if (!ariaDisabled && validationIsValid) {
|
|
12642
12653
|
onSubmit(values, {
|
|
12643
12654
|
updateControlValue,
|
|
12644
12655
|
setError
|
|
@@ -19575,8 +19586,10 @@ const UploadContent = ({
|
|
|
19575
19586
|
href: url,
|
|
19576
19587
|
download: true,
|
|
19577
19588
|
target: target || undefined,
|
|
19589
|
+
className: css_className(['download', 'download-link']),
|
|
19578
19590
|
children: children
|
|
19579
19591
|
}) : (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
19592
|
+
className: css_className('download'),
|
|
19580
19593
|
children: children
|
|
19581
19594
|
});
|
|
19582
19595
|
|
|
@@ -19606,22 +19619,19 @@ const Upload = _ref => {
|
|
|
19606
19619
|
event: event,
|
|
19607
19620
|
type: "upload"
|
|
19608
19621
|
}, props), {}, {
|
|
19609
|
-
children: (0,jsx_runtime_namespaceObject.jsxs)(
|
|
19610
|
-
|
|
19622
|
+
children: (0,jsx_runtime_namespaceObject.jsxs)(UploadContent, {
|
|
19623
|
+
url: url,
|
|
19624
|
+
target: !fromClient ? '_blank' : undefined,
|
|
19611
19625
|
children: [(0,jsx_runtime_namespaceObject.jsx)(icon, {
|
|
19612
19626
|
name: "download",
|
|
19613
19627
|
size: "16"
|
|
19614
|
-
}), (0,jsx_runtime_namespaceObject.
|
|
19615
|
-
|
|
19616
|
-
|
|
19617
|
-
children:
|
|
19618
|
-
|
|
19619
|
-
|
|
19620
|
-
|
|
19621
|
-
}), (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
19622
|
-
className: css_className('visually-hidden'),
|
|
19623
|
-
children: srText
|
|
19624
|
-
})]
|
|
19628
|
+
}), (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
19629
|
+
"aria-hidden": "true",
|
|
19630
|
+
className: css_className('file-download'),
|
|
19631
|
+
children: filename
|
|
19632
|
+
}), (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
19633
|
+
className: css_className('visually-hidden'),
|
|
19634
|
+
children: srText
|
|
19625
19635
|
})]
|
|
19626
19636
|
})
|
|
19627
19637
|
}));
|
|
@@ -20741,7 +20751,7 @@ function TextEntryForm({
|
|
|
20741
20751
|
}), (0,jsx_runtime_namespaceObject.jsx)("button", {
|
|
20742
20752
|
className: css_className('button', 'input__submit'),
|
|
20743
20753
|
type: "submit",
|
|
20744
|
-
disabled: !hasValue || reachedCharacterLimit,
|
|
20754
|
+
"aria-disabled": !hasValue || reachedCharacterLimit ? 'true' : null,
|
|
20745
20755
|
children: (0,jsx_runtime_namespaceObject.jsx)(icon, {
|
|
20746
20756
|
name: "send",
|
|
20747
20757
|
size: "32",
|
|
@@ -20875,9 +20885,9 @@ const UploadToggle = () => {
|
|
|
20875
20885
|
children: (0,jsx_runtime_namespaceObject.jsx)("button", {
|
|
20876
20886
|
className: css_className(['button', 'button--secondary', 'upload-toggle']),
|
|
20877
20887
|
ref: uploadButton,
|
|
20878
|
-
disabled: !showUploadButton ? 'true' : null,
|
|
20888
|
+
"aria-disabled": !showUploadButton ? 'true' : null,
|
|
20879
20889
|
type: "button",
|
|
20880
|
-
onClick: onClickHandler,
|
|
20890
|
+
onClick: showUploadButton ? onClickHandler : null,
|
|
20881
20891
|
children: (0,jsx_runtime_namespaceObject.jsx)(icon, {
|
|
20882
20892
|
name: "file",
|
|
20883
20893
|
size: "32",
|
|
@@ -21724,7 +21734,7 @@ const OptionsButton = () => {
|
|
|
21724
21734
|
ref: item => {
|
|
21725
21735
|
menuItemButtons.current[i] = item;
|
|
21726
21736
|
},
|
|
21727
|
-
className: css_className(['button', 'button--secondary'
|
|
21737
|
+
className: css_className(['button', 'button--secondary']),
|
|
21728
21738
|
onKeyDown: e => onMenuItemKeyDownHandler(e, i),
|
|
21729
21739
|
onKeyPress: e => onKeyPressHandler(e, i),
|
|
21730
21740
|
onClick: () => onMenuItemClickHandler(name, available),
|
|
@@ -21741,7 +21751,7 @@ const OptionsButton = () => {
|
|
|
21741
21751
|
})
|
|
21742
21752
|
}), (0,jsx_runtime_namespaceObject.jsxs)("button", {
|
|
21743
21753
|
type: "button",
|
|
21744
|
-
className: css_className(['button', 'button--secondary', 'chat__options__button', ...(!multiMenu && firstOptionName ? [`chat__options__button--${firstOptionName}`] : [])
|
|
21754
|
+
className: css_className(['button', 'button--secondary', 'chat__options__button', ...(!multiMenu && firstOptionName ? [`chat__options__button--${firstOptionName}`] : [])]),
|
|
21745
21755
|
id: id,
|
|
21746
21756
|
onClick: onClickHandler,
|
|
21747
21757
|
onKeyDown: multiMenu ? onButtonKeyDownHandler : null,
|
|
@@ -24921,15 +24931,6 @@ function getTimeZone() {
|
|
|
24921
24931
|
}
|
|
24922
24932
|
}
|
|
24923
24933
|
|
|
24924
|
-
function getEnvironment() {
|
|
24925
|
-
return {
|
|
24926
|
-
screenResolution: `${window.screen.width}x${window.screen.height}`,
|
|
24927
|
-
userAgent: navigator.userAgent,
|
|
24928
|
-
currentUrl: window.location.toString(),
|
|
24929
|
-
timezone: getTimeZone()
|
|
24930
|
-
};
|
|
24931
|
-
}
|
|
24932
|
-
|
|
24933
24934
|
class API {
|
|
24934
24935
|
/**
|
|
24935
24936
|
* Creates an instance of API.
|
|
@@ -24939,14 +24940,17 @@ class API {
|
|
|
24939
24940
|
* @param {string} config.secure Connect securely
|
|
24940
24941
|
* @param {string} config.externalId Unique visitor identifier (optional)
|
|
24941
24942
|
* @param {boolean} config.sendEnvironment
|
|
24943
|
+
* @param {string} layoutMode
|
|
24942
24944
|
* @param {string} namespace
|
|
24943
|
-
* @param {Object} [context={ channelName: undefined, variables: undefined, locale: undefined }]
|
|
24945
|
+
* @param {Object} [context={ channelName: undefined, variables: undefined, locale: undefined, translationLocale: undefined }]
|
|
24944
24946
|
* @param {string} context.channelName
|
|
24945
24947
|
* @param {object} context.variables
|
|
24946
24948
|
* @param {string} context.locale
|
|
24949
|
+
* @param {string} context.translationLocale
|
|
24947
24950
|
* @memberof API
|
|
24948
24951
|
*/
|
|
24949
24952
|
constructor({
|
|
24953
|
+
layoutMode,
|
|
24950
24954
|
namespace,
|
|
24951
24955
|
config = {},
|
|
24952
24956
|
context = {}
|
|
@@ -24966,6 +24970,7 @@ class API {
|
|
|
24966
24970
|
this.connected = false;
|
|
24967
24971
|
this.configReady = false;
|
|
24968
24972
|
this.externalId = config.externalId;
|
|
24973
|
+
this.layoutMode = layoutMode;
|
|
24969
24974
|
this.internalProducer = new EventProducer('API');
|
|
24970
24975
|
this.internal$ = xstream_default().create(this.internalProducer).flatten();
|
|
24971
24976
|
this.connection$ = this.internal$.filter(event => event.type === 'connection');
|
|
@@ -25090,7 +25095,7 @@ class API {
|
|
|
25090
25095
|
v: apiVersion
|
|
25091
25096
|
}).send({
|
|
25092
25097
|
context: api_objectSpread(api_objectSpread({}, this.config.context), {}, {
|
|
25093
|
-
environment: this.config.sendEnvironment === true ? getEnvironment() : this.config.sendEnvironment
|
|
25098
|
+
environment: this.config.sendEnvironment === true ? this.getEnvironment() : this.config.sendEnvironment
|
|
25094
25099
|
})
|
|
25095
25100
|
}).then(({
|
|
25096
25101
|
body
|
|
@@ -25104,7 +25109,7 @@ class API {
|
|
|
25104
25109
|
}
|
|
25105
25110
|
|
|
25106
25111
|
if (error.status >= 500) {
|
|
25107
|
-
throw new SeamlyGeneralError();
|
|
25112
|
+
throw new SeamlyGeneralError(error);
|
|
25108
25113
|
}
|
|
25109
25114
|
|
|
25110
25115
|
throw error;
|
|
@@ -25178,7 +25183,7 @@ class API {
|
|
|
25178
25183
|
|
|
25179
25184
|
if (this.config.sendEnvironment) {
|
|
25180
25185
|
this.send('context', {
|
|
25181
|
-
environment: this.config.sendEnvironment === true ? getEnvironment() : this.config.sendEnvironment
|
|
25186
|
+
environment: this.config.sendEnvironment === true ? this.getEnvironment() : this.config.sendEnvironment
|
|
25182
25187
|
}, false);
|
|
25183
25188
|
}
|
|
25184
25189
|
|
|
@@ -25271,6 +25276,7 @@ class API {
|
|
|
25271
25276
|
sendContext(context = {}) {
|
|
25272
25277
|
const {
|
|
25273
25278
|
locale,
|
|
25279
|
+
translationLocale,
|
|
25274
25280
|
variables
|
|
25275
25281
|
} = context;
|
|
25276
25282
|
const payload = {};
|
|
@@ -25283,6 +25289,14 @@ class API {
|
|
|
25283
25289
|
payload.locale = locale;
|
|
25284
25290
|
}
|
|
25285
25291
|
|
|
25292
|
+
if (translationLocale) {
|
|
25293
|
+
if (typeof translationLocale !== 'string') {
|
|
25294
|
+
throw new Error('Translation locale must be a string');
|
|
25295
|
+
}
|
|
25296
|
+
|
|
25297
|
+
payload.translationLocale = translationLocale;
|
|
25298
|
+
}
|
|
25299
|
+
|
|
25286
25300
|
if (variables) {
|
|
25287
25301
|
if (typeof variables !== 'object') {
|
|
25288
25302
|
throw new Error('Variables must be an object');
|
|
@@ -25303,6 +25317,18 @@ class API {
|
|
|
25303
25317
|
return this.internal$.filter(event => event.type !== 'connection');
|
|
25304
25318
|
}
|
|
25305
25319
|
|
|
25320
|
+
getEnvironment() {
|
|
25321
|
+
return {
|
|
25322
|
+
clientName: "@seamly/web-ui",
|
|
25323
|
+
clientVariant: this.layoutMode,
|
|
25324
|
+
clientVersion: "20.2.0-alpha.1",
|
|
25325
|
+
currentUrl: window.location.toString(),
|
|
25326
|
+
screenResolution: `${window.screen.width}x${window.screen.height}`,
|
|
25327
|
+
timezone: getTimeZone(),
|
|
25328
|
+
userAgent: navigator.userAgent
|
|
25329
|
+
};
|
|
25330
|
+
}
|
|
25331
|
+
|
|
25306
25332
|
}
|
|
25307
25333
|
;// CONCATENATED MODULE: ./node_modules/redux-thunk/es/index.js
|
|
25308
25334
|
function createThunkMiddleware(extraArgument) {
|
|
@@ -25496,6 +25522,7 @@ class Engine {
|
|
|
25496
25522
|
this.parentElement = parentElement;
|
|
25497
25523
|
this.externalApi = externalApi;
|
|
25498
25524
|
this.api = new API({
|
|
25525
|
+
layoutMode: config.layoutMode,
|
|
25499
25526
|
namespace: config.namespace,
|
|
25500
25527
|
config: config.api,
|
|
25501
25528
|
context: config.context
|