@seamly/web-ui 18.3.1 → 19.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/build/dist/lib/index.debug.js +344 -69
  2. package/build/dist/lib/index.debug.min.js +1 -1
  3. package/build/dist/lib/index.debug.min.js.LICENSE.txt +108 -8
  4. package/build/dist/lib/index.js +5241 -5181
  5. package/build/dist/lib/index.min.js +1 -1
  6. package/build/dist/lib/index.min.js.LICENSE.txt +1 -1
  7. package/build/dist/lib/standalone.js +2332 -2225
  8. package/build/dist/lib/standalone.min.js +1 -1
  9. package/build/dist/lib/standalone.min.js.LICENSE.txt +1 -1
  10. package/build/dist/lib/style-guide.js +1477 -791
  11. package/build/dist/lib/style-guide.min.js +1 -1
  12. package/build/dist/lib/styles.css +1 -1
  13. package/package.json +26 -28
  14. package/src/javascripts/api/index.js +25 -40
  15. package/src/javascripts/api/producer.js +3 -6
  16. package/src/javascripts/config.js +3 -3
  17. package/src/javascripts/domains/app/actions.js +24 -6
  18. package/src/javascripts/domains/app/hooks.js +6 -0
  19. package/src/javascripts/domains/app/index.js +3 -0
  20. package/src/javascripts/domains/app/reducer.js +16 -0
  21. package/src/javascripts/domains/app/selectors.js +8 -0
  22. package/src/javascripts/domains/app/utils.js +4 -0
  23. package/src/javascripts/domains/config/actions.js +1 -3
  24. package/src/javascripts/domains/config/middleware.js +0 -4
  25. package/src/javascripts/domains/config/reducer.js +2 -13
  26. package/src/javascripts/domains/config/selectors.js +3 -3
  27. package/src/javascripts/domains/config/utils.js +4 -0
  28. package/src/javascripts/domains/forms/actions.js +1 -3
  29. package/src/javascripts/domains/forms/reducer.js +1 -2
  30. package/src/javascripts/domains/forms/selectors.js +2 -2
  31. package/src/javascripts/domains/forms/utils.js +5 -0
  32. package/src/javascripts/domains/i18n/actions.js +35 -0
  33. package/src/javascripts/domains/i18n/hooks.js +38 -0
  34. package/src/javascripts/domains/i18n/index.js +5 -84
  35. package/src/javascripts/domains/i18n/reducer.js +58 -0
  36. package/src/javascripts/domains/i18n/selectors.js +15 -0
  37. package/src/javascripts/domains/i18n/utils.js +9 -0
  38. package/src/javascripts/domains/interrupt/actions.js +1 -3
  39. package/src/javascripts/domains/interrupt/reducer.js +1 -2
  40. package/src/javascripts/domains/interrupt/selectors.js +3 -2
  41. package/src/javascripts/domains/interrupt/utils.js +4 -0
  42. package/src/javascripts/domains/redux/hooks.js +1 -0
  43. package/src/javascripts/domains/store/index.js +7 -1
  44. package/src/javascripts/domains/translations/actions.js +1 -3
  45. package/src/javascripts/domains/translations/components/chat-status.js +1 -1
  46. package/src/javascripts/domains/translations/components/options-dialog/form.js +11 -6
  47. package/src/javascripts/domains/translations/index.js +1 -0
  48. package/src/javascripts/domains/translations/middleware.js +43 -0
  49. package/src/javascripts/domains/translations/reducer.js +2 -9
  50. package/src/javascripts/domains/translations/selectors.js +2 -2
  51. package/src/javascripts/domains/translations/utils.js +4 -0
  52. package/src/javascripts/index.js +3 -0
  53. package/src/javascripts/lib/engine/index.js +1 -0
  54. package/src/javascripts/lib/mutex.js +30 -0
  55. package/src/javascripts/lib/redux-helpers/index.js +11 -8
  56. package/src/javascripts/style-guide/components/app.js +7 -2
  57. package/src/javascripts/style-guide/components/static-core.js +9 -3
  58. package/src/javascripts/style-guide/states.js +8 -8
  59. package/src/javascripts/style-guide/style-guide-engine.js +12 -11
  60. package/src/javascripts/ui/components/conversation/event/divider/variants/new-translation.js +1 -1
  61. package/src/javascripts/ui/components/conversation/event/upload.js +2 -2
  62. package/src/javascripts/ui/components/core/seamly-event-subscriber.js +2 -0
  63. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +1 -7
  64. package/src/javascripts/ui/components/core/seamly-new-notifications.js +5 -6
  65. package/src/javascripts/ui/components/core/seamly-read-state.js +6 -4
  66. package/src/javascripts/ui/components/entry/text-entry/hooks.js +6 -4
  67. package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +10 -3
  68. package/src/javascripts/ui/components/entry/upload/file-upload-form.js +6 -3
  69. package/src/javascripts/ui/components/entry/upload/index.js +8 -3
  70. package/src/javascripts/ui/components/faq/faq.js +2 -2
  71. package/src/javascripts/ui/components/layout/app-frame.js +11 -8
  72. package/src/javascripts/ui/components/layout/interrupt.js +6 -2
  73. package/src/javascripts/ui/components/warnings/resume-conversation-prompt.js +1 -1
  74. package/src/javascripts/ui/components/widgets/upload-progress.js +1 -1
  75. package/src/javascripts/ui/hooks/seamly-api-hooks.js +0 -6
  76. package/src/javascripts/ui/hooks/seamly-entry-hooks.js +17 -21
  77. package/src/javascripts/ui/hooks/seamly-hooks.js +0 -1
  78. package/src/javascripts/ui/hooks/use-seamly-commands.js +5 -6
  79. package/src/javascripts/ui/hooks/use-seamly-visibility.js +3 -5
  80. package/src/javascripts/ui/hooks/use-single-file-upload.js +4 -1
  81. package/src/javascripts/ui/utils/general-utils.js +6 -13
  82. package/src/stylesheets/1-settings/_config.scss +2 -1
  83. package/src/stylesheets/3-app/_app.scss +3 -4
  84. package/src/stylesheets/5-components/_faq.scss +3 -8
  85. package/src/stylesheets/5-components/_modal.scss +3 -3
  86. package/webpack/config.package.js +0 -18
  87. package/webpack/defaults.js +0 -3
  88. package/build/dist/translations/de-informal.js +0 -274
  89. package/build/dist/translations/de-informal.min.js +0 -1
  90. package/build/dist/translations/en.js +0 -274
  91. package/build/dist/translations/en.min.js +0 -1
  92. package/build/dist/translations/es-informal.js +0 -280
  93. package/build/dist/translations/es-informal.min.js +0 -1
  94. package/build/dist/translations/nl-formal.js +0 -274
  95. package/build/dist/translations/nl-formal.min.js +0 -1
  96. package/build/dist/translations/nl-informal.js +0 -274
  97. package/build/dist/translations/nl-informal.min.js +0 -1
  98. package/src/javascripts/lib/i18n.js +0 -46
  99. package/translations/de-informal.js +0 -235
  100. package/translations/en.js +0 -232
  101. package/translations/es-informal.js +0 -241
  102. package/translations/nl-formal.js +0 -228
  103. package/translations/nl-informal.js +0 -228
@@ -2,7 +2,6 @@ import { useCallback, useContext } from 'preact/hooks'
2
2
  import {
3
3
  useSeamlyApiContext,
4
4
  useSeamlyHasConversation,
5
- useSeamlyHasUserResponded,
6
5
  } from './seamly-api-hooks'
7
6
  import {
8
7
  useSeamlyStateContext,
@@ -17,6 +16,7 @@ import { actionTypes, seamlyActions } from '../utils/seamly-utils'
17
16
  import { useStableCallback } from './utility-hooks'
18
17
  import { Actions as InterruptActions } from '../../domains/interrupt'
19
18
  import { useConfig } from '../../domains/config'
19
+ import { useUserHasResponded } from '../../domains/app'
20
20
 
21
21
  const {
22
22
  ADD_EVENT,
@@ -37,7 +37,7 @@ const useSeamlyCommands = () => {
37
37
  const dispatch = useSeamlyDispatchContext()
38
38
  const eventBus = useContext(SeamlyEventBusContext)
39
39
 
40
- const hasResponded = useSeamlyHasUserResponded()
40
+ const hasResponded = useUserHasResponded()
41
41
  const hasConversation = useSeamlyHasConversation()
42
42
  const { visible: visibility } = useSeamlyStateContext()
43
43
  const unreadMessageCount = useSeamlyUnreadCount()
@@ -75,8 +75,8 @@ const useSeamlyCommands = () => {
75
75
  ])
76
76
 
77
77
  const reset = useCallback(async () => {
78
- dispatch({ type: CLEAR_EVENTS })
79
78
  dispatch(InterruptActions.clear())
79
+ dispatch({ type: CLEAR_EVENTS })
80
80
  dispatch({
81
81
  type: SET_IS_LOADING,
82
82
  isLoading: true,
@@ -96,11 +96,10 @@ const useSeamlyCommands = () => {
96
96
  })
97
97
 
98
98
  try {
99
- const { accountConfig = {}, initialState = {} } = await api.reset()
100
- const { features } = accountConfig || {}
99
+ const { features } = await api.reset()
101
100
 
102
101
  dispatch({ type: SET_FEATURES, features })
103
- dispatch({ type: SET_INITIAL_STATE, initialState })
102
+ dispatch({ type: SET_INITIAL_STATE, initialState: {} })
104
103
  } catch (error) {
105
104
  dispatch(InterruptActions.set(error))
106
105
  }
@@ -5,10 +5,7 @@ import {
5
5
  } from './seamly-state-hooks'
6
6
  import useSeamlyCommands from './use-seamly-commands'
7
7
  import useSeamlyDispatchContext from './use-seamly-dispatch'
8
- import {
9
- useSeamlyHasConversation,
10
- useSeamlyHasUserResponded,
11
- } from './seamly-api-hooks'
8
+ import { useSeamlyHasConversation } from './seamly-api-hooks'
12
9
  import useSeamlyStoredVisibility from './use-seamly-stored-visibility'
13
10
  import {
14
11
  calculateVisibility,
@@ -16,6 +13,7 @@ import {
16
13
  visibilityStates,
17
14
  } from '../utils/seamly-utils'
18
15
  import { useConfig } from '../../domains/config'
16
+ import { useUserHasResponded } from '../../domains/app'
19
17
 
20
18
  const { SET_VISIBILITY } = seamlyActions
21
19
 
@@ -26,7 +24,7 @@ const useSeamlyVisibility = () => {
26
24
  const { emitEvent } = useSeamlyCommands()
27
25
  const dispatch = useSeamlyDispatchContext()
28
26
  const [storedVisibility, setStoredVisibility] = useSeamlyStoredVisibility()
29
- const hasResponded = useSeamlyHasUserResponded()
27
+ const hasResponded = useUserHasResponded()
30
28
  const hasConversation = useSeamlyHasConversation()
31
29
  const unreadMessageCount = useSeamlyUnreadCount()
32
30
  const isVisible = visible ? visible !== visibilityStates.hidden : false
@@ -13,6 +13,8 @@ const useSingleFileUpload = (formId, name) => {
13
13
  // This hook HAS to be used inside the FormBoundary of the file upload.
14
14
  const { currentUploads } = useFileUploads()
15
15
 
16
+ const hasFile = fileList && fileList.length > 0
17
+
16
18
  let uploadHandle = null
17
19
  let hasServerError = false
18
20
  let progress = 0
@@ -24,7 +26,8 @@ const useSingleFileUpload = (formId, name) => {
24
26
  }
25
27
 
26
28
  return {
27
- selectedFileName: fileList && fileList.length > 0 ? fileList[0].name : '',
29
+ hasFile,
30
+ selectedFileName: hasFile ? fileList[0].name : '',
28
31
  uploadHandle,
29
32
  hasServerError,
30
33
  progress,
@@ -195,21 +195,14 @@ export const getRelativeDate = (date, currentDate) => {
195
195
  }
196
196
  }
197
197
 
198
- export const flattenObject = (obj, prefix = '') =>
199
- Object.keys(obj).reduce((acc, k) => {
200
- const pre = prefix.length ? `${prefix}.` : ''
201
- if (
202
- typeof obj[k] === 'object' &&
203
- obj[k] !== null &&
204
- Object.keys(obj[k]).length > 0
205
- )
206
- Object.assign(acc, flattenObject(obj[k], pre + k))
207
- else acc[pre + k] = obj[k]
208
- return acc
209
- }, {})
210
-
211
198
  export const pick = (obj, keys) =>
212
199
  keys.reduce((accum, key) => {
213
200
  if (key in obj) accum[key] = obj[key]
214
201
  return accum
215
202
  }, {})
203
+
204
+ export const omit = (obj, keys) =>
205
+ Object.keys(obj).reduce((accum, key) => {
206
+ if (!keys.includes(key)) accum[key] = obj[key]
207
+ return accum
208
+ }, {})
@@ -81,7 +81,8 @@ $app-started-width: 375px !default;
81
81
  $app-full-height: 720px !default;
82
82
  $app-collapsed-height: 54px !default;
83
83
 
84
- $app-inline-height: 480px !default;
84
+ $app-inline-min-height: 480px !default;
85
+ $app-inline-max-height: 720px !default;
85
86
 
86
87
  $post-full-height: 170px !default;
87
88
  $post-collapsed-height: 65px !default;
@@ -31,16 +31,15 @@ $app-header-bgcolor: $brand3;
31
31
  right: auto;
32
32
  bottom: auto;
33
33
  width: auto;
34
- height: 100vh;
35
- min-height: $spacer * 24;
36
- max-height: $spacer * 32;
34
+ height: 90vh;
35
+ min-height: $app-inline-min-height;
36
+ max-height: $app-inline-max-height;
37
37
  transition: height $transition, width $transition;
38
38
  background-color: initial;
39
39
  box-shadow: none;
40
40
 
41
41
  @include media('>phablet-l') {
42
42
  display: block;
43
- height: $app-inline-height;
44
43
  border: 0 none;
45
44
  }
46
45
  }
@@ -9,8 +9,6 @@
9
9
 
10
10
  &.#{$n}-app--layout-window .#{$n}-faqs {
11
11
  overscroll-behavior: contain;
12
- /* stylelint-disable-next-line property-no-vendor-prefix */
13
- -ms-scroll-chaining: none;
14
12
  }
15
13
 
16
14
  &.#{$n}-app--layout-inline .#{$n}-faqs {
@@ -20,9 +18,9 @@
20
18
  left: 50%;
21
19
  flex-direction: column;
22
20
  width: 50%;
23
- height: $app-inline-height;
24
- min-height: $spacer * 24;
25
- max-height: 100%;
21
+ height: 100%;
22
+ min-height: 100%;
23
+ overflow: hidden;
26
24
  transform: translateX(-100%);
27
25
  border: $thin-border solid set-border-color($app-bg);
28
26
  border-left: 0;
@@ -59,9 +57,6 @@
59
57
 
60
58
  &.#{$n}-app--layout-inline .#{$n}-faqs.#{$n}-transition--in {
61
59
  @include media('>phablet-l') {
62
- height: $app-inline-height;
63
- min-height: $spacer * 24;
64
- max-height: 100%;
65
60
  overflow-y: initial;
66
61
  transform: translateX(0%);
67
62
  }
@@ -130,9 +130,9 @@ $button-transition: $transition;
130
130
 
131
131
  &:hover {
132
132
  background-color: $brand3;
133
+ }
133
134
 
134
- svg path {
135
- fill: $app-bg;
136
- }
135
+ &:hover .cvco-icon svg path {
136
+ fill: $white;
137
137
  }
138
138
  }
@@ -16,7 +16,6 @@ module.exports = (env = {}, argv = {}, configOverrides = {}) => {
16
16
  const {
17
17
  BUILD_ROOT,
18
18
  SRC_ROOT,
19
- TRANSLATIONS_ROOT,
20
19
 
21
20
  ROOT,
22
21
 
@@ -43,7 +42,6 @@ module.exports = (env = {}, argv = {}, configOverrides = {}) => {
43
42
  ...Object.keys(pkg.peerDependencies || {}).map(
44
43
  (key) => new RegExp(`^${key}(\\/.*)`, 'i'),
45
44
  ),
46
- /^@seamly\/web-ui\/translations(\/.*)?/i,
47
45
  ],
48
46
  module: {
49
47
  rules: [
@@ -101,21 +99,6 @@ module.exports = (env = {}, argv = {}, configOverrides = {}) => {
101
99
  externals: [/^@seamly\/web-ui(\/.*)?/i],
102
100
  })
103
101
 
104
- const translationFiles = glob.sync(path.join(TRANSLATIONS_ROOT, '*.js'))
105
- const translationEntries = translationFiles.reduce((entries, file) => {
106
- const fileName = path.parse(file).name
107
- return {
108
- ...entries,
109
- [fileName]: file,
110
- }
111
- }, {})
112
- const translationsConfig = webpackMerge(baseConfig, {
113
- entry: translationEntries,
114
- output: {
115
- path: path.join(BUILD_ROOT, '/dist/translations'),
116
- },
117
- })
118
-
119
102
  const standalonePackageConfig = {
120
103
  ...packageConfig,
121
104
  output: {
@@ -193,7 +176,6 @@ module.exports = (env = {}, argv = {}, configOverrides = {}) => {
193
176
  standalonePackageConfig,
194
177
  styleguideConfig,
195
178
  externalsConfig,
196
- translationsConfig,
197
179
  ]
198
180
 
199
181
  const configsMinimized = configs.map((config) =>
@@ -6,7 +6,6 @@ const BROWSERS = 'last 1 version, > 1%, not dead, not ie 11, not ie_mob 11'
6
6
  const ROOT = path.resolve(__dirname, '..')
7
7
  const BUILD_ROOT = path.join(ROOT, 'build')
8
8
  const SRC_ROOT = path.join(ROOT, 'src')
9
- const TRANSLATIONS_ROOT = path.join(ROOT, 'translations')
10
9
  const PUBLIC_ROOT = path.join(ROOT, 'public')
11
10
  const PUBLIC_TEST_ROOT = path.join(PUBLIC_ROOT, 'test')
12
11
  const PUBLIC_STYLEGUIDE_ROOT = path.join(PUBLIC_ROOT, 'style-guide')
@@ -43,7 +42,6 @@ const ALIASSES = {
43
42
  SRC_ROOT,
44
43
  'javascripts/style-guide.js',
45
44
  ),
46
- '@seamly/web-ui/translations': TRANSLATIONS_ROOT,
47
45
  '@seamly/web-ui/src/stylesheets/styles.scss': path.resolve(
48
46
  SRC_ROOT,
49
47
  'stylesheets',
@@ -64,7 +62,6 @@ module.exports = {
64
62
  ROOT,
65
63
  BUILD_ROOT,
66
64
  SRC_ROOT,
67
- TRANSLATIONS_ROOT,
68
65
  PUBLIC_ROOT,
69
66
 
70
67
  PUBLIC_TEST_ROOT,
@@ -1,274 +0,0 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ // The require scope
4
- /******/ var __webpack_require__ = {};
5
- /******/
6
- /************************************************************************/
7
- /******/ /* webpack/runtime/define property getters */
8
- /******/ (() => {
9
- /******/ // define getter functions for harmony exports
10
- /******/ __webpack_require__.d = (exports, definition) => {
11
- /******/ for(var key in definition) {
12
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14
- /******/ }
15
- /******/ }
16
- /******/ };
17
- /******/ })();
18
- /******/
19
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
20
- /******/ (() => {
21
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
22
- /******/ })();
23
- /******/
24
- /******/ /* webpack/runtime/make namespace object */
25
- /******/ (() => {
26
- /******/ // define __esModule on exports
27
- /******/ __webpack_require__.r = (exports) => {
28
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
29
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
30
- /******/ }
31
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
32
- /******/ };
33
- /******/ })();
34
- /******/
35
- /************************************************************************/
36
- var __webpack_exports__ = {};
37
- __webpack_require__.r(__webpack_exports__);
38
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
40
- /* harmony export */ });
41
- // Please note: All texts containing the string 'srText' are short for
42
- // Screen Reader Text. These texts are invisible on screen but broadcast
43
- // to screen readers. Avoid undue verbosity, but ensure that a user who cannot
44
- // see the screen will get both the message content as well as the context
45
- // in which the message occurred if not already clear from the current
46
- // position of the keyboard focus.
47
- // Example: An error occurs in the chat window and this error has an 'srText'
48
- // entry. Because the error could occur while the user is NOT chatting in the window,
49
- // add context such as "Something went wrong with the chat session" as just saying
50
- // "Something went wrong" would not be clear enough for users who cannot see the
51
- // source of the error on screen.
52
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
53
- 'carousel.controls.next': 'Weiter',
54
- 'carousel.controls.previous': 'Zurück',
55
- 'carousel.slide.label': ({
56
- index,
57
- total
58
- }) => `${index} von ${total}`,
59
- 'dateTime.srText': ({
60
- date,
61
- time
62
- }) => `Nachrichten ab ${date} um ${time}`,
63
- 'dateTime.today': 'Heute',
64
- 'dateTime.yesterday': 'Gestern',
65
- 'disclaimer.content': 'Diese Chat Session wird von uns aufgezeichnet, um unseren Service stetig zu verbessern.',
66
- 'disclaimer.title': 'Datenschutzbestimmungen',
67
- 'dividerKeys.newTopic': 'Neues Thema gestartet',
68
- 'errors.configError.message': 'Leider ist momentan kein Aufbau möglich, bitte versuche es später noch einmal.',
69
- 'errors.configError.srText': 'Es gab einen Fehler beim Chat Aufbau. Bitte versuche es später noch einmal.',
70
- 'errors.configError.title': 'Fehler im Chat Aufbau.',
71
- 'errors.general.buttonText': 'Chat neu starten',
72
- 'errors.general.message': 'Möchtest du eine neue Chat Session starten?',
73
- 'errors.general.srText': 'Es ist etwas schief gegangen. Du kannst den Chat neu starten.',
74
- 'errors.general.title': 'Da ist etwas schief gegangen',
75
- 'errors.seamlyOffline.message': 'Es scheint ein Problem mit deiner oder unserer Verbindung zu geben. Die Chat Session kann weiter gehen, sobald wieder eine Verbindung besteht.',
76
- 'errors.seamlyOffline.srText': 'Der Chat hat Verbindungsprobleme. Es scheint ein Problem mit deiner oder unserer Verbindung zu geben. Die Chat Session kann weiter gehen, sobald wieder eine Verbindung besteht.',
77
- 'errors.seamlyOffline.title': 'Verbindungsprobleme',
78
- 'faq.headingText': 'Themenvorschläge',
79
- 'faq.srAvailableText': 'Themenvorschläge sind im Chat verfügbar.',
80
- 'faq.srUnavailableText': 'Themenvorschläge sind im Chat nicht mehr verfügbar',
81
- 'faq.srUpdatedText': 'Es gibt neue Themenvorschläge im Chat.',
82
- 'fileUpload.cancelButtonText': 'Upload abbrechen',
83
- 'fileUpload.contentHint': size => `Wähle eine Datei von maximal ${size}`,
84
- 'fileUpload.errors.general': 'Beim Hochladen ist ein Fehler aufgetreten. Brich den Upload ab und versuche es erneut.',
85
- 'fileUpload.errors.noFile': 'Wähle eine Datei zum Hochladen',
86
- 'fileUpload.errors.tooLarge': 'Die gewählte Datei ist zu groß, wähle eine kleinere Datei',
87
- 'fileUpload.errors.unavailable': 'Das Hochladen von Dateien ist derzeit nicht möglich. Brich den Upload ab und versuche es später erneut.',
88
- 'fileUpload.errors.virusFound': 'The selected file is unsafe, please upload a different file.',
89
- 'fileUpload.errors.wrongType': 'Der ausgewählte Dateityp wird nicht unterstützt. Brich den Upload ab und wähle eine andere Datei.',
90
- 'fileUpload.fileUnavailableText': 'Dieser Download-Link ist nicht mehr gültig',
91
- 'fileUpload.labelText': 'Wähle eine Datei',
92
- 'fileUpload.selectedText': fileName => {
93
- if (fileName) {
94
- return fileName;
95
- } else {
96
- return 'Keine Datei ausgewählt';
97
- }
98
- },
99
- 'fileUpload.srAvailableText': 'Das Uploaden von Dateien im Chat ist jetzt möglich',
100
- 'fileUpload.srCompleteText': 'Upload abgeschlossen.',
101
- 'fileUpload.srFileUploadedText': fileName => `Hochgeladene Datei ${fileName}.`,
102
- 'fileUpload.srFileDownloadText': fileName => `Datei ${fileName} herunterladen.`,
103
- 'fileUpload.srProgressLabel': fileName => `Upload-Fortschritt von ${fileName}`,
104
- 'fileUpload.srStartedText': 'Upload gestartet.',
105
- 'fileUpload.srUnavailableText': 'Das Uploaden von Dateien im Chat ist jetzt nicht mehr möglich',
106
- 'fileUpload.toggleButtonText': 'Dateien hochladen',
107
- 'fileUpload.uploadButtonText': 'Datei hochladen',
108
- 'header.collapseApp': 'Chat schliessen',
109
- 'header.title': 'Du sprichst mit',
110
- 'idleDetachWarning.continueButton': 'Gespräch fortsetzen',
111
- 'idleDetachWarning.countdownText': 'Das Gespräch wird beendet in:',
112
- 'idleDetachWarning.countdownTimer': ({
113
- minutes,
114
- seconds
115
- }) => {
116
- switch (minutes) {
117
- case 1:
118
- switch (seconds) {
119
- case 1:
120
- return '1 Minute, 1 Sekunde';
121
-
122
- case 0:
123
- return '1 Minute';
124
-
125
- default:
126
- return `1 Minute, ${seconds} Sekunden`;
127
- }
128
-
129
- case 0:
130
- switch (seconds) {
131
- case 1:
132
- return '1 Sekunde';
133
-
134
- case 0:
135
- default:
136
- return `${seconds} Sekunden`;
137
- }
138
-
139
- default:
140
- switch (seconds) {
141
- case 1:
142
- return `${minutes} Minuten, 1 seconde`;
143
-
144
- case 0:
145
- return `${minutes} Minuten`;
146
-
147
- default:
148
- return `${minutes} Minuten, ${seconds} Sekunden`;
149
- }
150
-
151
- }
152
- },
153
- 'idleDetachWarning.countdownTitle': 'Bist du noch da?',
154
- 'idleDetachWarning.detachButton': 'Gespräch beenden',
155
- 'idleDetachWarning.notifyTransferText': 'Das Gespräch wird beendet.',
156
- 'idleDetachWarning.srCountDownStoppedText': 'Automatische Beendung des Gesprächs abgebrochen. Willkommmen zurück!',
157
- 'info.cobrowsing.cobrowsingEnded': 'Die Bildschirmfreigabe ist beendet',
158
- 'info.cobrowsing.cobrowsingStarted': 'Die Bildschirmfreigabe ist jetzt aktiviert. Der Mitarbeiter kann die Seite sehen, auf der du dich gerade befindest',
159
- 'info.sendTranscript.accepted': ({
160
- emailAddress
161
- }) => `Das Chatgespräch wird per E-Mail an ${emailAddress} gesendet`,
162
- 'input.inputLabel': limit => {
163
- if (limit) {
164
- return `Deine Nachricht (max. ${limit} Zeichen)`;
165
- }
166
-
167
- return 'Deine Nachricht';
168
- },
169
- 'input.inputPlaceholder': limit => {
170
- if (limit) {
171
- return `Deine Nachricht (max. ${limit} Zeichen)`;
172
- }
173
-
174
- return 'Deine Nachricht';
175
- },
176
- 'input.sendMessage': 'Versenden',
177
- 'input.srCharacterLimitText': limit => {
178
- switch (limit) {
179
- case 1:
180
- return '1 Zeichen übrig.';
181
-
182
- case 0:
183
- default:
184
- return `${limit} Zeichen übrig.`;
185
- }
186
- },
187
- 'lightbox.closeLabel': 'Schliessen.',
188
- 'lightbox.heading': 'Bild vergrössern',
189
- 'message.choicePrompts.cancelChooseAgain': 'Auswahl ändern abbrechen',
190
- 'message.choicePrompts.chooseAgain': 'Auswahl ändern',
191
- 'message.image.srTextEnlargeButtonLabel': ({
192
- description
193
- }) => `Enlarge ${description}`,
194
- 'message.srNewEventCount': ({
195
- newCount
196
- }) => {
197
- switch (newCount) {
198
- case 1:
199
- return `Es gibt eine ungelesene Nachricht.`;
200
-
201
- case 0:
202
- default:
203
- return `Es gibt ${newCount} ungelesene Nachrichten.`;
204
- }
205
- },
206
- 'message.srTextUnreadCount': ({
207
- unreadCount
208
- }) => {
209
- switch (unreadCount) {
210
- case 1:
211
- return `Es gibt eine ungelesene Nachricht.`;
212
-
213
- case 0:
214
- default:
215
- return `Es gibt ${unreadCount} ungelesene Nachrichten.`;
216
- }
217
- },
218
- 'options.cancelButtonText': 'Abbrechen',
219
- 'options.cobrowsing.cobrowsingActiveText': 'Bildschirmfreigabe aktiv',
220
- 'options.cobrowsing.cobrowsingUnavailable': 'Die Freigabe des Bildschirms ist jetzt nicht möglich.',
221
- 'options.cobrowsing.description': 'Dadurch kann der Mitarbeiter deine aktuelle Seite sehen. Nichts anderes wird geteilt.',
222
- 'options.cobrowsing.labelTurnOff': 'Bildschirmfreigabe ausschalten',
223
- 'options.cobrowsing.labelTurnOn': 'Bildschirmfreigabe einschalten',
224
- 'options.cobrowsing.menuTitle': 'Bildschirmfreigabe',
225
- 'options.cobrowsing.srCobrowsingAvailable': 'Du kannst jetzt deinen Bildschirm freigeben.',
226
- 'options.cobrowsing.srStartedCobrowsingText': 'Die Bildschirmfreigabe ist eingeschaltet',
227
- 'options.cobrowsing.srStopCobrowsingText': 'Stoppen der Bildschirmfreigabe',
228
- 'options.cobrowsing.srStoppedCobrowsingText': 'Die Bildschirmfreigabe wurde gestoppt',
229
- 'options.cobrowsing.stopCobrowsingText': 'Stoppen',
230
- 'options.cobrowsing.title': 'Bildschirmfreigabe',
231
- 'options.openButtonText': 'Optionen',
232
- 'options.saveButtonText': 'Speichern',
233
- 'options.sendTranscript.description': 'Geben Sie die E-Mail-Adresse ein, an die Sie die Chatgespräch erhalten möchten',
234
- 'options.sendTranscript.invalidEmailText': 'Bitte eine gültige E-Mail-Adresse eingeben',
235
- 'options.sendTranscript.label': 'E-Mail-Adresse',
236
- 'options.sendTranscript.menuTitle': 'Chat senden',
237
- 'options.sendTranscript.noEmailText': 'Bitte eine E-Mail-Adresse eingeben',
238
- 'options.sendTranscript.sendButtonText': 'Senden',
239
- 'options.sendTranscript.title': 'Chatgespräch senden',
240
- 'options.unavailableText': 'nicht verfügbar',
241
- 'resumeConversationPrompt.continueButton': 'Gespräch fortsetzen',
242
- 'resumeConversationPrompt.detachButton': 'Stelle eine neue Frage',
243
- 'resumeConversationPrompt.title': name => `Möchtest du das Gespräch mit ${name} fortsetzen?`,
244
- skiplinkText: 'Zum Eingabefeld',
245
- 'toggleButton.resumeTitle': 'Gespräch fortsetzen mit',
246
- 'toggleButton.subtitle': 'Starte einen Chat mit uns',
247
- 'toggleButton.title': 'Wie können wir dir weiterhelfen?',
248
- 'translations.divider.restartButtonText': 'Neu starten',
249
- 'translations.divider.startText': language => `Übersetzung auf ${language}`,
250
- 'translations.divider.stopText': language => `Übersetzung auf ${language} beendet`,
251
- 'translations.settings.cancelButtonText': 'Abbrechen',
252
- 'translations.settings.currentTranslationLabel': 'Es wird derzeit übersetzt in',
253
- 'translations.settings.defaultOptionLabel': 'Sprache wählen',
254
- 'translations.settings.description': 'Automatische Übersetzungen können Fehler enthalten.',
255
- 'translations.settings.endButtonText': 'Übersetzen beenden',
256
- 'translations.settings.inputLabel': 'Übersetze Chat auf',
257
- 'translations.settings.noLocaleText': 'Wähle eine Sprache, in die übersetzt werden soll',
258
- 'translations.settings.openButtonText': 'Übersetzung',
259
- 'translations.settings.startButtonText': 'Übersetzen beginnen',
260
- 'translations.settings.title': 'Übersetzung',
261
- 'translations.status.label': language => `Übersetzung auf ${language}`,
262
- 'translations.status.srStopText': 'Übersetzen beenden',
263
- 'translations.status.stopText': 'Stop',
264
- 'translations.toggle.hideButtonText': 'Original anzeigen',
265
- 'translations.toggle.showButtonText': 'Übersetzung anzeigen',
266
- 'window.srModalLayoutLabel': 'Chatfenster',
267
- 'window.srTexts.onClose': 'Der Chat wurde geschlossen.',
268
- 'window.srTexts.onHistoryLoad': 'Die Chat Historie wurde geladen.',
269
- 'window.srTexts.onLoad': 'Chat ist verfügbar.',
270
- 'window.srTexts.onOpen': 'Der Chat wurde gestartet.'
271
- });
272
- module.exports = __webpack_exports__;
273
- /******/ })()
274
- ;
@@ -1 +0,0 @@
1
- (()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:()=>n});const n={"carousel.controls.next":"Weiter","carousel.controls.previous":"Zurück","carousel.slide.label":({index:e,total:t})=>`${e} von ${t}`,"dateTime.srText":({date:e,time:t})=>`Nachrichten ab ${e} um ${t}`,"dateTime.today":"Heute","dateTime.yesterday":"Gestern","disclaimer.content":"Diese Chat Session wird von uns aufgezeichnet, um unseren Service stetig zu verbessern.","disclaimer.title":"Datenschutzbestimmungen","dividerKeys.newTopic":"Neues Thema gestartet","errors.configError.message":"Leider ist momentan kein Aufbau möglich, bitte versuche es später noch einmal.","errors.configError.srText":"Es gab einen Fehler beim Chat Aufbau. Bitte versuche es später noch einmal.","errors.configError.title":"Fehler im Chat Aufbau.","errors.general.buttonText":"Chat neu starten","errors.general.message":"Möchtest du eine neue Chat Session starten?","errors.general.srText":"Es ist etwas schief gegangen. Du kannst den Chat neu starten.","errors.general.title":"Da ist etwas schief gegangen","errors.seamlyOffline.message":"Es scheint ein Problem mit deiner oder unserer Verbindung zu geben. Die Chat Session kann weiter gehen, sobald wieder eine Verbindung besteht.","errors.seamlyOffline.srText":"Der Chat hat Verbindungsprobleme. Es scheint ein Problem mit deiner oder unserer Verbindung zu geben. Die Chat Session kann weiter gehen, sobald wieder eine Verbindung besteht.","errors.seamlyOffline.title":"Verbindungsprobleme","faq.headingText":"Themenvorschläge","faq.srAvailableText":"Themenvorschläge sind im Chat verfügbar.","faq.srUnavailableText":"Themenvorschläge sind im Chat nicht mehr verfügbar","faq.srUpdatedText":"Es gibt neue Themenvorschläge im Chat.","fileUpload.cancelButtonText":"Upload abbrechen","fileUpload.contentHint":e=>`Wähle eine Datei von maximal ${e}`,"fileUpload.errors.general":"Beim Hochladen ist ein Fehler aufgetreten. Brich den Upload ab und versuche es erneut.","fileUpload.errors.noFile":"Wähle eine Datei zum Hochladen","fileUpload.errors.tooLarge":"Die gewählte Datei ist zu groß, wähle eine kleinere Datei","fileUpload.errors.unavailable":"Das Hochladen von Dateien ist derzeit nicht möglich. Brich den Upload ab und versuche es später erneut.","fileUpload.errors.virusFound":"The selected file is unsafe, please upload a different file.","fileUpload.errors.wrongType":"Der ausgewählte Dateityp wird nicht unterstützt. Brich den Upload ab und wähle eine andere Datei.","fileUpload.fileUnavailableText":"Dieser Download-Link ist nicht mehr gültig","fileUpload.labelText":"Wähle eine Datei","fileUpload.selectedText":e=>e||"Keine Datei ausgewählt","fileUpload.srAvailableText":"Das Uploaden von Dateien im Chat ist jetzt möglich","fileUpload.srCompleteText":"Upload abgeschlossen.","fileUpload.srFileUploadedText":e=>`Hochgeladene Datei ${e}.`,"fileUpload.srFileDownloadText":e=>`Datei ${e} herunterladen.`,"fileUpload.srProgressLabel":e=>`Upload-Fortschritt von ${e}`,"fileUpload.srStartedText":"Upload gestartet.","fileUpload.srUnavailableText":"Das Uploaden von Dateien im Chat ist jetzt nicht mehr möglich","fileUpload.toggleButtonText":"Dateien hochladen","fileUpload.uploadButtonText":"Datei hochladen","header.collapseApp":"Chat schliessen","header.title":"Du sprichst mit","idleDetachWarning.continueButton":"Gespräch fortsetzen","idleDetachWarning.countdownText":"Das Gespräch wird beendet in:","idleDetachWarning.countdownTimer":({minutes:e,seconds:t})=>{switch(e){case 1:switch(t){case 1:return"1 Minute, 1 Sekunde";case 0:return"1 Minute";default:return`1 Minute, ${t} Sekunden`}case 0:switch(t){case 1:return"1 Sekunde";case 0:default:return`${t} Sekunden`}default:switch(t){case 1:return`${e} Minuten, 1 seconde`;case 0:return`${e} Minuten`;default:return`${e} Minuten, ${t} Sekunden`}}},"idleDetachWarning.countdownTitle":"Bist du noch da?","idleDetachWarning.detachButton":"Gespräch beenden","idleDetachWarning.notifyTransferText":"Das Gespräch wird beendet.","idleDetachWarning.srCountDownStoppedText":"Automatische Beendung des Gesprächs abgebrochen. Willkommmen zurück!","info.cobrowsing.cobrowsingEnded":"Die Bildschirmfreigabe ist beendet","info.cobrowsing.cobrowsingStarted":"Die Bildschirmfreigabe ist jetzt aktiviert. Der Mitarbeiter kann die Seite sehen, auf der du dich gerade befindest","info.sendTranscript.accepted":({emailAddress:e})=>`Das Chatgespräch wird per E-Mail an ${e} gesendet`,"input.inputLabel":e=>e?`Deine Nachricht (max. ${e} Zeichen)`:"Deine Nachricht","input.inputPlaceholder":e=>e?`Deine Nachricht (max. ${e} Zeichen)`:"Deine Nachricht","input.sendMessage":"Versenden","input.srCharacterLimitText":e=>{switch(e){case 1:return"1 Zeichen übrig.";case 0:default:return`${e} Zeichen übrig.`}},"lightbox.closeLabel":"Schliessen.","lightbox.heading":"Bild vergrössern","message.choicePrompts.cancelChooseAgain":"Auswahl ändern abbrechen","message.choicePrompts.chooseAgain":"Auswahl ändern","message.image.srTextEnlargeButtonLabel":({description:e})=>`Enlarge ${e}`,"message.srNewEventCount":({newCount:e})=>{switch(e){case 1:return"Es gibt eine ungelesene Nachricht.";case 0:default:return`Es gibt ${e} ungelesene Nachrichten.`}},"message.srTextUnreadCount":({unreadCount:e})=>{switch(e){case 1:return"Es gibt eine ungelesene Nachricht.";case 0:default:return`Es gibt ${e} ungelesene Nachrichten.`}},"options.cancelButtonText":"Abbrechen","options.cobrowsing.cobrowsingActiveText":"Bildschirmfreigabe aktiv","options.cobrowsing.cobrowsingUnavailable":"Die Freigabe des Bildschirms ist jetzt nicht möglich.","options.cobrowsing.description":"Dadurch kann der Mitarbeiter deine aktuelle Seite sehen. Nichts anderes wird geteilt.","options.cobrowsing.labelTurnOff":"Bildschirmfreigabe ausschalten","options.cobrowsing.labelTurnOn":"Bildschirmfreigabe einschalten","options.cobrowsing.menuTitle":"Bildschirmfreigabe","options.cobrowsing.srCobrowsingAvailable":"Du kannst jetzt deinen Bildschirm freigeben.","options.cobrowsing.srStartedCobrowsingText":"Die Bildschirmfreigabe ist eingeschaltet","options.cobrowsing.srStopCobrowsingText":"Stoppen der Bildschirmfreigabe","options.cobrowsing.srStoppedCobrowsingText":"Die Bildschirmfreigabe wurde gestoppt","options.cobrowsing.stopCobrowsingText":"Stoppen","options.cobrowsing.title":"Bildschirmfreigabe","options.openButtonText":"Optionen","options.saveButtonText":"Speichern","options.sendTranscript.description":"Geben Sie die E-Mail-Adresse ein, an die Sie die Chatgespräch erhalten möchten","options.sendTranscript.invalidEmailText":"Bitte eine gültige E-Mail-Adresse eingeben","options.sendTranscript.label":"E-Mail-Adresse","options.sendTranscript.menuTitle":"Chat senden","options.sendTranscript.noEmailText":"Bitte eine E-Mail-Adresse eingeben","options.sendTranscript.sendButtonText":"Senden","options.sendTranscript.title":"Chatgespräch senden","options.unavailableText":"nicht verfügbar","resumeConversationPrompt.continueButton":"Gespräch fortsetzen","resumeConversationPrompt.detachButton":"Stelle eine neue Frage","resumeConversationPrompt.title":e=>`Möchtest du das Gespräch mit ${e} fortsetzen?`,skiplinkText:"Zum Eingabefeld","toggleButton.resumeTitle":"Gespräch fortsetzen mit","toggleButton.subtitle":"Starte einen Chat mit uns","toggleButton.title":"Wie können wir dir weiterhelfen?","translations.divider.restartButtonText":"Neu starten","translations.divider.startText":e=>`Übersetzung auf ${e}`,"translations.divider.stopText":e=>`Übersetzung auf ${e} beendet`,"translations.settings.cancelButtonText":"Abbrechen","translations.settings.currentTranslationLabel":"Es wird derzeit übersetzt in","translations.settings.defaultOptionLabel":"Sprache wählen","translations.settings.description":"Automatische Übersetzungen können Fehler enthalten.","translations.settings.endButtonText":"Übersetzen beenden","translations.settings.inputLabel":"Übersetze Chat auf","translations.settings.noLocaleText":"Wähle eine Sprache, in die übersetzt werden soll","translations.settings.openButtonText":"Übersetzung","translations.settings.startButtonText":"Übersetzen beginnen","translations.settings.title":"Übersetzung","translations.status.label":e=>`Übersetzung auf ${e}`,"translations.status.srStopText":"Übersetzen beenden","translations.status.stopText":"Stop","translations.toggle.hideButtonText":"Original anzeigen","translations.toggle.showButtonText":"Übersetzung anzeigen","window.srModalLayoutLabel":"Chatfenster","window.srTexts.onClose":"Der Chat wurde geschlossen.","window.srTexts.onHistoryLoad":"Die Chat Historie wurde geladen.","window.srTexts.onLoad":"Chat ist verfügbar.","window.srTexts.onOpen":"Der Chat wurde gestartet."};module.exports=t})();