@bigbinary/neeto-molecules 4.0.94 → 4.0.96

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 (42) hide show
  1. package/dist/EmailForm.js +20 -5
  2. package/dist/EmailForm.js.map +1 -1
  3. package/dist/ShareRecordingPane.js +102 -68
  4. package/dist/ShareRecordingPane.js.map +1 -1
  5. package/dist/cjs/EmailForm.js +20 -5
  6. package/dist/cjs/EmailForm.js.map +1 -1
  7. package/dist/cjs/ShareRecordingPane.js +100 -66
  8. package/dist/cjs/ShareRecordingPane.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/translations/ar.json +23 -0
  11. package/src/translations/ca.json +23 -0
  12. package/src/translations/cs.json +23 -0
  13. package/src/translations/da.json +23 -0
  14. package/src/translations/de.json +23 -0
  15. package/src/translations/en.json +7 -1
  16. package/src/translations/es-MX.json +23 -0
  17. package/src/translations/es.json +23 -0
  18. package/src/translations/et.json +23 -0
  19. package/src/translations/fi.json +23 -0
  20. package/src/translations/fil.json +23 -0
  21. package/src/translations/fr.json +23 -0
  22. package/src/translations/he.json +152 -0
  23. package/src/translations/hr.json +23 -0
  24. package/src/translations/id.json +23 -0
  25. package/src/translations/it.json +23 -0
  26. package/src/translations/ja.json +23 -0
  27. package/src/translations/ko.json +23 -0
  28. package/src/translations/nl.json +23 -0
  29. package/src/translations/pl.json +23 -0
  30. package/src/translations/pt-BR.json +23 -0
  31. package/src/translations/pt.json +23 -0
  32. package/src/translations/ro.json +23 -0
  33. package/src/translations/ru.json +23 -0
  34. package/src/translations/sk.json +23 -0
  35. package/src/translations/sl.json +23 -0
  36. package/src/translations/sv.json +23 -0
  37. package/src/translations/th.json +23 -0
  38. package/src/translations/tr.json +23 -0
  39. package/src/translations/uk.json +23 -0
  40. package/src/translations/vi.json +23 -0
  41. package/src/translations/zh-CN.json +23 -0
  42. package/src/translations/zh-TW.json +23 -0
@@ -12,16 +12,16 @@ var React = require('react');
12
12
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
13
13
  var Label = require('@bigbinary/neetoui/Label');
14
14
  var Input = require('@bigbinary/neetoui/Input');
15
- var Tooltip = require('@bigbinary/neetoui/Tooltip');
16
15
  var Switch = require('@bigbinary/neetoui/Switch');
16
+ var Button = require('@bigbinary/neetoui/Button');
17
17
  var ramda = require('ramda');
18
+ var CardLayout = require('./CardLayout.js');
18
19
  var CopyToClipboardButton = require('./CopyToClipboardButton.js');
19
20
  var jsxRuntime = require('react/jsx-runtime');
20
21
  require('classnames');
21
22
  require('@bigbinary/neeto-commons-frontend/utils/general');
22
23
  require('@bigbinary/neeto-icons/Copy');
23
24
  require('@bigbinary/neeto-icons/Check');
24
- require('@bigbinary/neetoui/Button');
25
25
  require('./inject-css-B6qYtOJe.js');
26
26
 
27
27
  var ONE_SECOND = 1;
@@ -76,6 +76,7 @@ var SharePaneBody = function SharePaneBody(_ref) {
76
76
  totalDuration = _ref.totalDuration,
77
77
  getCurrentTimestamp = _ref.getCurrentTimestamp,
78
78
  isOpen = _ref.isOpen,
79
+ onClose = _ref.onClose,
79
80
  Preview = _ref.preview,
80
81
  enableAutoplayAndMuteFlags = _ref.enableAutoplayAndMuteFlags;
81
82
  var _useTranslation = reactI18next.useTranslation(),
@@ -117,84 +118,116 @@ var SharePaneBody = function SharePaneBody(_ref) {
117
118
  if (timeInSeconds > totalDuration) {
118
119
  timeInSeconds = totalDuration;
119
120
  }
120
- setCurrentPlaybackTime(timeInSeconds);
121
121
  setRawInput(formatTime(timeInSeconds, showHours));
122
122
  };
123
123
  var handleKeyDown = function handleKeyDown(e) {
124
124
  if (e.key !== "Enter") return;
125
125
  formatAndSetTime();
126
126
  };
127
- React.useEffect(function () {
128
- if (ramda.not(isOpen)) return;
129
- setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
130
- setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
131
- }, [isOpen, showHours, currentTimestamp]);
132
- React.useEffect(function () {
127
+ var generateUrls = React.useCallback(function (timeInSeconds, urlParams) {
133
128
  var playbackUrls = recordingUrls.map(function (recordingUrl) {
134
129
  return utils.buildUrl(recordingUrl, {
135
- time: currentPlaybackTime,
136
- muted: muted ? 1 : undefined,
137
- autoplay: autoplay ? 1 : undefined
130
+ time: timeInSeconds,
131
+ muted: urlParams.muted ? 1 : undefined,
132
+ autoplay: urlParams.autoplay ? 1 : undefined
138
133
  });
139
134
  });
140
135
  setShareLinks(playbackUrls);
141
- }, [recordingUrls, currentPlaybackTime, muted, autoplay]);
142
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
143
- children: [shareLinks.map(function (shareLink, index) {
144
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
145
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2",
146
- children: [/*#__PURE__*/jsxRuntime.jsx(Tooltip, {
147
- content: shareLink,
148
- children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
149
- className: "truncate",
150
- style: "body2",
151
- children: shareLink
152
- })
153
- }), /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
154
- className: "flex-shrink-0",
136
+ }, [recordingUrls]);
137
+ var handleRegenerateUrl = function handleRegenerateUrl() {
138
+ var timeInSeconds = parseTime(rawInput);
139
+ if (timeInSeconds > totalDuration) {
140
+ timeInSeconds = totalDuration;
141
+ }
142
+ setCurrentPlaybackTime(timeInSeconds);
143
+ generateUrls(timeInSeconds, params);
144
+ };
145
+ React.useEffect(function () {
146
+ if (ramda.not(isOpen)) return;
147
+ var initialTime = currentTimestamp > 0 ? currentTimestamp : 0;
148
+ var initialParams = {
149
+ muted: false,
150
+ autoplay: false
151
+ };
152
+ setCurrentPlaybackTime(initialTime);
153
+ setRawInput(formatTime(initialTime, showHours));
154
+ setParams(initialParams);
155
+ generateUrls(initialTime, initialParams);
156
+ }, [isOpen, showHours, currentTimestamp, generateUrls]);
157
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
158
+ className: "flex w-full flex-col gap-y-6",
159
+ children: [/*#__PURE__*/jsxRuntime.jsx(CardLayout, {
160
+ title: t("neetoMolecules.shareRecording.configureUrlParameters"),
161
+ actionBlock: /*#__PURE__*/jsxRuntime.jsxs("div", {
162
+ className: "flex items-center gap-x-2",
163
+ children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
164
+ "data-cy": "regenerate-url-button",
165
+ label: t("neetoMolecules.shareRecording.regenerateUrl"),
166
+ onClick: handleRegenerateUrl
167
+ }), /*#__PURE__*/jsxRuntime.jsx(Button, {
168
+ "data-cy": "cancel-button",
169
+ label: t("neetoMolecules.shareRecording.cancel"),
155
170
  style: "secondary",
156
- value: shareLink
171
+ onClick: onClose
157
172
  })]
158
- }, index);
173
+ }),
174
+ description: t("neetoMolecules.shareRecording.configureUrlParametersDescription"),
175
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
176
+ className: "flex flex-col gap-y-4",
177
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
178
+ className: "flex items-center gap-x-2",
179
+ children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
180
+ children: t("neetoMolecules.shareRecording.startVideoAt")
181
+ }), /*#__PURE__*/jsxRuntime.jsx(Input, {
182
+ unlimitedChars: true,
183
+ className: "w-40",
184
+ "data-cy": "time-input",
185
+ placeholder: showHours ? "HH:MM:SS" : "MM:SS",
186
+ value: rawInput,
187
+ onBlur: formatAndSetTime,
188
+ onChange: handlePlaybackTimestampChange,
189
+ onKeyDown: handleKeyDown
190
+ })]
191
+ }), enableAutoplayAndMuteFlags && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
192
+ children: [/*#__PURE__*/jsxRuntime.jsx(Switch, {
193
+ checked: muted,
194
+ "data-cy": "muted-checkbox",
195
+ id: "muted",
196
+ label: t("neetoMolecules.shareRecording.muted"),
197
+ name: "muted",
198
+ onChange: function onChange(e) {
199
+ return handleFlagsChange("muted", e.target.checked);
200
+ }
201
+ }), /*#__PURE__*/jsxRuntime.jsx(Switch, {
202
+ checked: autoplay,
203
+ "data-cy": "autoplay-checkbox",
204
+ id: "autoplay",
205
+ label: t("neetoMolecules.shareRecording.autoplay"),
206
+ name: "autoplay",
207
+ onChange: function onChange(e) {
208
+ return handleFlagsChange("autoplay", e.target.checked);
209
+ }
210
+ })]
211
+ })]
212
+ })
159
213
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
160
- className: "flex items-center gap-x-2",
161
- children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
162
- children: t("neetoMolecules.shareRecording.checkboxLabel")
163
- }), /*#__PURE__*/jsxRuntime.jsx(Input, {
164
- className: "w-40",
165
- "data-cy": "time-input",
166
- placeholder: showHours ? "HH:MM:SS" : "MM:SS",
167
- value: rawInput,
168
- onBlur: formatAndSetTime,
169
- onChange: handlePlaybackTimestampChange,
170
- onKeyDown: handleKeyDown
171
- })]
172
- }), enableAutoplayAndMuteFlags && /*#__PURE__*/jsxRuntime.jsxs("div", {
173
- className: "mt-3 flex flex-col gap-y-4",
174
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
175
- className: "flex items-center gap-x-2",
176
- children: /*#__PURE__*/jsxRuntime.jsx(Switch, {
177
- checked: muted,
178
- "data-cy": "muted-checkbox",
179
- id: "muted",
180
- label: t("neetoMolecules.shareRecording.muted"),
181
- name: "muted",
182
- onChange: function onChange(e) {
183
- return handleFlagsChange("muted", e.target.checked);
184
- }
185
- })
186
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
187
- className: "flex items-center gap-x-2",
188
- children: /*#__PURE__*/jsxRuntime.jsx(Switch, {
189
- checked: autoplay,
190
- "data-cy": "autoplay-checkbox",
191
- id: "autoplay",
192
- label: t("neetoMolecules.shareRecording.autoplay"),
193
- name: "autoplay",
194
- onChange: function onChange(e) {
195
- return handleFlagsChange("autoplay", e.target.checked);
196
- }
197
- })
214
+ className: "flex flex-col gap-y-2",
215
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
216
+ style: "h3",
217
+ children: t("neetoMolecules.shareRecording.generatedUrls")
218
+ }), shareLinks.map(function (shareLink, index) {
219
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
220
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full items-center justify-between gap-1 p-2",
221
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
222
+ className: "min-w-0 flex-1 break-words",
223
+ style: "body2",
224
+ children: shareLink
225
+ }), /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
226
+ className: "flex-shrink-0",
227
+ style: "secondary",
228
+ value: shareLink
229
+ })]
230
+ }, index);
198
231
  })]
199
232
  }), Preview && /*#__PURE__*/jsxRuntime.jsxs("div", {
200
233
  className: "flex flex-col gap-y-2 pt-2",
@@ -249,6 +282,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
249
282
  enableAutoplayAndMuteFlags: enableAutoplayAndMuteFlags,
250
283
  getCurrentTimestamp: getCurrentTimestamp,
251
284
  isOpen: isOpen,
285
+ onClose: onClose,
252
286
  preview: preview,
253
287
  totalDuration: totalDuration,
254
288
  recordingUrls: recordingUrlsToShare
@@ -1 +1 @@
1
- {"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Tooltip, Switch } from \"neetoui\";\nimport { assoc, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n preview: Preview,\n enableAutoplayAndMuteFlags,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [params, setParams] = useState({\n muted: false,\n autoplay: false,\n });\n\n const { muted, autoplay } = params;\n\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const handleFlagsChange = (key, value) => setParams(assoc(key, value));\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (e.key !== \"Enter\") return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n time: currentPlaybackTime,\n muted: muted ? 1 : undefined,\n autoplay: autoplay ? 1 : undefined,\n })\n );\n\n setShareLinks(playbackUrls);\n }, [recordingUrls, currentPlaybackTime, muted, autoplay]);\n\n return (\n <>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n <div className=\"flex items-center gap-x-2\">\n <Label>{t(\"neetoMolecules.shareRecording.checkboxLabel\")}</Label>\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {enableAutoplayAndMuteFlags && (\n <div className=\"mt-3 flex flex-col gap-y-4\">\n <div className=\"flex items-center gap-x-2\">\n <Switch\n checked={muted}\n data-cy=\"muted-checkbox\"\n id=\"muted\"\n label={t(\"neetoMolecules.shareRecording.muted\")}\n name=\"muted\"\n onChange={e => handleFlagsChange(\"muted\", e.target.checked)}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Switch\n checked={autoplay}\n data-cy=\"autoplay-checkbox\"\n id=\"autoplay\"\n label={t(\"neetoMolecules.shareRecording.autoplay\")}\n name=\"autoplay\"\n onChange={e => handleFlagsChange(\"autoplay\", e.target.checked)}\n />\n </div>\n </div>\n )}\n {Preview && (\n <div className=\"flex flex-col gap-y-2 pt-2\">\n <Label>{t(\"neetoMolecules.shareRecording.preview\")}</Label>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n enableAutoplayAndMuteFlags = false,\n size = \"large\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane {...{ isOpen, onClose, size, ...otherProps }} data-cy=\"share-pane\">\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col gap-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{\n enableAutoplayAndMuteFlags,\n getCurrentTimestamp,\n isOpen,\n preview,\n totalDuration,\n }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n /**\n * Size of the pane.\n */\n size: PropTypes.oneOf([\"extraLarge\", \"large\", \"small\"]),\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","Preview","preview","enableAutoplayAndMuteFlags","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","muted","autoplay","_useState6","params","setParams","_useState7","_useState8","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","handleFlagsChange","key","assoc","formatAndSetTime","handleKeyDown","useEffect","not","playbackUrls","recordingUrl","buildUrl","time","_jsxs","_Fragment","children","shareLink","index","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Label","Input","placeholder","onBlur","onChange","onKeyDown","Switch","checked","id","label","name","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","onClose","_ref$isLoading","isLoading","_ref$enableAutoplayAn","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","Header","Body","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect, useCallback } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Switch, Button } from \"neetoui\";\nimport { assoc, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CardLayout from \"components/CardLayout\";\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview: Preview,\n enableAutoplayAndMuteFlags,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [params, setParams] = useState({\n muted: false,\n autoplay: false,\n });\n\n const { muted, autoplay } = params;\n\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const handleFlagsChange = (key, value) => setParams(assoc(key, value));\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (e.key !== \"Enter\") return;\n formatAndSetTime();\n };\n\n const generateUrls = useCallback(\n (timeInSeconds, urlParams) => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n time: timeInSeconds,\n muted: urlParams.muted ? 1 : undefined,\n autoplay: urlParams.autoplay ? 1 : undefined,\n })\n );\n setShareLinks(playbackUrls);\n },\n [recordingUrls]\n );\n\n const handleRegenerateUrl = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n generateUrls(timeInSeconds, params);\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n const initialTime = currentTimestamp > 0 ? currentTimestamp : 0;\n const initialParams = { muted: false, autoplay: false };\n\n setCurrentPlaybackTime(initialTime);\n setRawInput(formatTime(initialTime, showHours));\n setParams(initialParams);\n generateUrls(initialTime, initialParams);\n }, [isOpen, showHours, currentTimestamp, generateUrls]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-6\">\n <CardLayout\n title={t(\"neetoMolecules.shareRecording.configureUrlParameters\")}\n actionBlock={\n <div className=\"flex items-center gap-x-2\">\n <Button\n data-cy=\"regenerate-url-button\"\n label={t(\"neetoMolecules.shareRecording.regenerateUrl\")}\n onClick={handleRegenerateUrl}\n />\n <Button\n data-cy=\"cancel-button\"\n label={t(\"neetoMolecules.shareRecording.cancel\")}\n style=\"secondary\"\n onClick={onClose}\n />\n </div>\n }\n description={t(\n \"neetoMolecules.shareRecording.configureUrlParametersDescription\"\n )}\n >\n <div className=\"flex flex-col gap-y-4\">\n <div className=\"flex items-center gap-x-2\">\n <Label>{t(\"neetoMolecules.shareRecording.startVideoAt\")}</Label>\n <Input\n unlimitedChars\n className=\"w-40\"\n data-cy=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {enableAutoplayAndMuteFlags && (\n <>\n <Switch\n checked={muted}\n data-cy=\"muted-checkbox\"\n id=\"muted\"\n label={t(\"neetoMolecules.shareRecording.muted\")}\n name=\"muted\"\n onChange={e => handleFlagsChange(\"muted\", e.target.checked)}\n />\n <Switch\n checked={autoplay}\n data-cy=\"autoplay-checkbox\"\n id=\"autoplay\"\n label={t(\"neetoMolecules.shareRecording.autoplay\")}\n name=\"autoplay\"\n onChange={e => handleFlagsChange(\"autoplay\", e.target.checked)}\n />\n </>\n )}\n </div>\n </CardLayout>\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h3\">\n {t(\"neetoMolecules.shareRecording.generatedUrls\")}\n </Typography>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Typography className=\"min-w-0 flex-1 break-words\" style=\"body2\">\n {shareLink}\n </Typography>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n </div>\n {Preview && (\n <div className=\"flex flex-col gap-y-2 pt-2\">\n <Label>{t(\"neetoMolecules.shareRecording.preview\")}</Label>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </div>\n );\n};\n\nexport default SharePaneBody;\n","import { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n enableAutoplayAndMuteFlags = false,\n size = \"large\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane {...{ isOpen, onClose, size, ...otherProps }} data-cy=\"share-pane\">\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col gap-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{\n enableAutoplayAndMuteFlags,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview,\n totalDuration,\n }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n /**\n * Size of the pane.\n */\n size: PropTypes.oneOf([\"extraLarge\", \"large\", \"small\"]),\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","onClose","Preview","preview","enableAutoplayAndMuteFlags","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","muted","autoplay","_useState6","params","setParams","_useState7","_useState8","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","handleFlagsChange","key","assoc","formatAndSetTime","handleKeyDown","generateUrls","useCallback","urlParams","playbackUrls","recordingUrl","buildUrl","time","handleRegenerateUrl","useEffect","not","initialTime","initialParams","_jsxs","className","children","_jsx","CardLayout","title","actionBlock","Button","label","onClick","style","description","Label","Input","unlimitedChars","placeholder","onBlur","onChange","onKeyDown","_Fragment","Switch","checked","id","name","Typography","shareLink","index","CopyToClipboardButton","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","_ref$isLoading","isLoading","_ref$enableAutoplayAn","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","Header","Body","Spinner"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "4.0.94",
3
+ "version": "4.0.96",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -501,6 +501,29 @@
501
501
  "permissions": {
502
502
  "description": "الوصف"
503
503
  }
504
+ },
505
+ "text": {
506
+ "invitedUsers": "{{performedBy, anyCase}} قد <Semibold>دعوة</Semibold> <Code>{{emailList}}</Code> إلى {{productSuffix, anyCase}}",
507
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>حاول</Semibold> دعوة مستخدم {{productSuffix, anyCase}}{{errorMessage}}",
508
+ "userSignedUp": "{{userIdentifier}} <Semibold>سجل</Semibold> في {{productSuffix, anyCase}}",
509
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>حدث</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> في {{productSuffix, anyCase}}",
510
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> في {{productSuffix, anyCase}}",
511
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> في {{productSuffix, anyCase}}{{errorMessage}}",
512
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>حدث</Semibold> ملفه الشخصي <ChangedFields></ChangedFields> في {{productSuffix, anyCase}}",
513
+ "createdRole": "{{performedBy, anyCase}} <Semibold>أنشأ</Semibold> <Code>{{roleName}}</Code> دورًا في {{productSuffix, anyCase}}",
514
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>حدث</Semibold> <Code>{{roleName}}</Code> دورًا مع <Code>{{addedPermissionsText}}</Code> الأذونات في {{productSuffix, anyCase}}",
515
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>حدث</Semibold> <Code>{{roleName}}</Code> دورًا مع <Code>{{addedPermissionsText}}</Code> الإذن في {{productSuffix, anyCase}}",
516
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>حذف</Semibold> <Code>{{roleName}}</Code> دورًا في {{productSuffix, anyCase}}",
517
+ "performedAction": "{{performedBy, anyCase}} <Semibold>أجرى</Semibold> إجراءً في {{productSuffix, anyCase}}",
518
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: من <Code>{{from}}</Code> إلى <Code>{{to}}</Code>",
519
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: إلى <Code>{{to}}</Code>",
520
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>اتصلت بـ Google Calendar</Semibold> باستخدام الحساب <Code>{{emailAddress}}</Code> في {{productSuffix, anyCase}}",
521
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>فصل تكامل Google Calendar</Semibold> في {{productSuffix, anyCase}}",
522
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>اتصلت بتكامل Stripe</Semibold> مع معرف الحساب: <Code>{{stripeAccountId}}</Code> في {{productSuffix, anyCase}}",
523
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>فصل تكامل Stripe</Semibold> في {{productSuffix, anyCase}}",
524
+ "connectedZoomAccount": "{{performedBy, anyCase}} قد <Semibold>اتصلت بتكامل Zoom</Semibold> مع معرف الحساب: <Code>{{zoomAccountId}}</Code> في {{productSuffix, anyCase}}",
525
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} قد <Semibold>فصل تكامل Zoom</Semibold> في {{productSuffix, anyCase}}",
526
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold>اتصلت بالنطاق المخصص:</Semibold> <Code>{{hostname}}</Code> في {{productSuffix, anyCase}}"
504
527
  }
505
528
  },
506
529
  "ipRestriction": {
@@ -501,6 +501,29 @@
501
501
  "permissions": {
502
502
  "description": "Descripció"
503
503
  }
504
+ },
505
+ "text": {
506
+ "invitedUsers": "{{performedBy, anyCase}} ha <Semibold>invitat</Semibold> <Code>{{emailList}}</Code> a {{productSuffix, anyCase}}",
507
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>va intentar</Semibold> convidar un usuari {{productSuffix, anyCase}}{{errorMessage}}",
508
+ "userSignedUp": "{{userIdentifier}} <Semibold>s'ha registrat</Semibold> a {{productSuffix, anyCase}}",
509
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>ha actualitzat</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> a {{productSuffix, anyCase}}",
510
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> a {{productSuffix, anyCase}}",
511
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> a {{productSuffix, anyCase}}{{errorMessage}}",
512
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>ha actualitzat</Semibold> els seus <ChangedFields></ChangedFields> a {{productSuffix, anyCase}}",
513
+ "createdRole": "{{performedBy, anyCase}} <Semibold>ha creat</Semibold> <Code>{{roleName}}</Code> rol a {{productSuffix, anyCase}}",
514
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>ha actualitzat</Semibold> <Code>{{roleName}}</Code> rol amb <Code>{{addedPermissionsText}}</Code> permisos a {{productSuffix, anyCase}}",
515
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>ha actualitzat</Semibold> <Code>{{roleName}}</Code> rol amb <Code>{{addedPermissionsText}}</Code> permís a {{productSuffix, anyCase}}",
516
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>ha eliminat</Semibold> <Code>{{roleName}}</Code> rol a {{productSuffix, anyCase}}",
517
+ "performedAction": "{{performedBy, anyCase}} <Semibold>ha realitzat</Semibold> una acció a {{productSuffix, anyCase}}",
518
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: de <Code>{{from}}</Code> a <Code>{{to}}</Code>",
519
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: a <Code>{{to}}</Code>",
520
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha connectat a Google Calendar</Semibold> utilitzant el compte <Code>{{emailAddress}}</Code> a {{productSuffix, anyCase}}",
521
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha desconnectat la integració de Google Calendar</Semibold> a {{productSuffix, anyCase}}",
522
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ha connectat a la integració de Stripe</Semibold> amb ID del compte: <Code>{{stripeAccountId}}</Code> a {{productSuffix, anyCase}}",
523
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ha desconnectat la integració de Stripe</Semibold> a {{productSuffix, anyCase}}",
524
+ "connectedZoomAccount": "{{performedBy, anyCase}} ha <Semibold>connectat a la integració de Zoom</Semibold> amb ID del compte: <Code>{{zoomAccountId}}</Code> a {{productSuffix, anyCase}}",
525
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} ha <Semibold>disconnectat la integració de Zoom</Semibold> a {{productSuffix, anyCase}}",
526
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold>ha connectat el domini personalitzat:</Semibold> <Code>{{hostname}}</Code> a {{productSuffix, anyCase}}"
504
527
  }
505
528
  },
506
529
  "ipRestriction": {
@@ -501,6 +501,29 @@
501
501
  "permissions": {
502
502
  "description": "Popis"
503
503
  }
504
+ },
505
+ "text": {
506
+ "invitedUsers": "{{performedBy, anyCase}} pozval <Semibold>pozvané</Semibold> <Code>{{emailList}}</Code> na {{productSuffix, anyCase}}",
507
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>provízhú003c/Semibold> pozvat uživatele {{productSuffix, anyCase}}{{errorMessage}}",
508
+ "userSignedUp": "{{userIdentifier}} <Semibold>úspěšně se zaregistroval</Semibold> na {{productSuffix, anyCase}}",
509
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>aktualizoval</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> na {{productSuffix, anyCase}}",
510
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> na {{productSuffix, anyCase}}",
511
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> na {{productSuffix, anyCase}}{{errorMessage}}",
512
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>aktualizoval</Semibold> svůj <ChangedFields></ChangedFields> na {{productSuffix, anyCase}}",
513
+ "createdRole": "{{performedBy, anyCase}} <Semibold> vytvořil</Semibold> <Code>{{roleName}}</Code> roli na {{productSuffix, anyCase}}",
514
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>aktualizoval</Semibold> <Code>{{roleName}}</Code> roli s <Code>{{addedPermissionsText}}</Code> oprávněními na {{productSuffix, anyCase}}",
515
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>aktualizoval</Semibold> <Code>{{roleName}}</Code> roli s <Code>{{addedPermissionsText}}</Code> oprávněním na {{productSuffix, anyCase}}",
516
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>odstranil</Semibold> <Code>{{roleName}}</Code> roli na {{productSuffix, anyCase}}",
517
+ "performedAction": "{{performedBy, anyCase}} <Semibold> provedl</Semibold> akci na {{productSuffix, anyCase}}",
518
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: z <Code>{{from}}</Code> na <Code>{{to}}</Code>",
519
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: na <Code>{{to}}</Code>",
520
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold> se připojil k Google Kalendáři</Semibold> pomocí účtu <Code>{{emailAddress}}</Code> na {{productSuffix, anyCase}}",
521
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>odstranil integraci Google Kalendáře</Semibold> na {{productSuffix, anyCase}}",
522
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold> se připojil k integraci Stripe</Semibold> s ID účtu: <Code>{{stripeAccountId}}</Code> na {{productSuffix, anyCase}}",
523
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>odstranil integraci Stripe</Semibold> na {{productSuffix, anyCase}}",
524
+ "connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>se připojil k integraci Zoom</Semibold> s ID účtu: <Code>{{zoomAccountId}}</Code> na {{productSuffix, anyCase}}",
525
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} <Semibold>odstranil integraci Zoom</Semibold> na {{productSuffix, anyCase}}",
526
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold> se připojil k vlastnímu doméně:</Semibold> <Code>{{hostname}}</Code> na {{productSuffix, anyCase}}"
504
527
  }
505
528
  },
506
529
  "ipRestriction": {
@@ -501,6 +501,29 @@
501
501
  "permissions": {
502
502
  "description": "Beskrivelse"
503
503
  }
504
+ },
505
+ "text": {
506
+ "invitedUsers": "{{performedBy, anyCase}} har <Semibold>inviteret</Semibold> <Code>{{emailList}}</Code> til {{productSuffix, anyCase}}",
507
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>attemptede</Semibold> at invitere en bruger {{productSuffix, anyCase}}{{errorMessage}}",
508
+ "userSignedUp": "{{userIdentifier}} <Semibold>tilmeldte sig</Semibold> på {{productSuffix, anyCase}}",
509
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>opdaterede</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> på {{productSuffix, anyCase}}",
510
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> på {{productSuffix, anyCase}}",
511
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> ved {{productSuffix, anyCase}}{{errorMessage}}",
512
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>opdaterede</Semibold> deres <ChangedFields></ChangedFields> på {{productSuffix, anyCase}}",
513
+ "createdRole": "{{performedBy, anyCase}} <Semibold>skabte</Semibold> <Code>{{roleName}}</Code> rolle på {{productSuffix, anyCase}}",
514
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>opdaterede</Semibold> <Code>{{roleName}}</Code> rolle med <Code>{{addedPermissionsText}}</Code> rettigheder på {{productSuffix, anyCase}}",
515
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>opdaterede</Semibold> <Code>{{roleName}}</Code> rolle med <Code>{{addedPermissionsText}}</Code> rettighed på {{productSuffix, anyCase}}",
516
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>oglemt</Semibold> <Code>{{roleName}}</Code> rolle på {{productSuffix, anyCase}}",
517
+ "performedAction": "{{performedBy, anyCase}} <Semibold>udførte</Semibold> en handling på {{productSuffix, anyCase}}",
518
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: fra <Code>{{from}}</Code> til <Code>{{to}}</Code>",
519
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: til <Code>{{to}}</Code>",
520
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>forbandt til Google Calendar</Semibold> ved hjælp af konto <Code>{{emailAddress}}</Code> på {{productSuffix, anyCase}}",
521
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>afbrød Google Calendar integration</Semibold> på {{productSuffix, anyCase}}",
522
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>forbandt til Stripe integration</Semibold> med konto-ID: <Code>{{stripeAccountId}}</Code> på {{productSuffix, anyCase}}",
523
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>afbrød Stripe integration</Semibold> på {{productSuffix, anyCase}}",
524
+ "connectedZoomAccount": "{{performedBy, anyCase}} har <Semibold>forbandt til Zoom integration</Semibold> med konto-ID: <Code>{{zoomAccountId}}</Code> på {{productSuffix, anyCase}}",
525
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} har <Semibold>afbrudt Zoom integration</Semibold> på {{productSuffix, anyCase}}",
526
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold>forbandt Custom Domain:</Semibold> <Code>{{hostname}}</Code> på {{productSuffix, anyCase}}"
504
527
  }
505
528
  },
506
529
  "ipRestriction": {
@@ -350,6 +350,29 @@
350
350
  "permissions": {
351
351
  "description": "Beschreibung"
352
352
  }
353
+ },
354
+ "text": {
355
+ "invitedUsers": "{{performedBy, anyCase}} hat <Semibold>eingeladen</Semibold> <Code>{{emailList}}</Code> zu {{productSuffix, anyCase}}",
356
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>versuchte</Semibold>, einen Benutzer {{productSuffix, anyCase}} einzuladen{{errorMessage}}",
357
+ "userSignedUp": "{{userIdentifier}} <Semibold>hat sich registriert</Semibold> auf {{productSuffix, anyCase}}",
358
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>hat aktualisiert</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> auf {{productSuffix, anyCase}}",
359
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> auf {{productSuffix, anyCase}}",
360
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> bei {{productSuffix, anyCase}}{{errorMessage}}",
361
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>hat aktualisiert</Semibold> ihr <ChangedFields></ChangedFields> auf {{productSuffix, anyCase}}",
362
+ "createdRole": "{{performedBy, anyCase}} <Semibold>hat erstellt</Semibold> <Code>{{roleName}}</Code> Rolle auf {{productSuffix, anyCase}}",
363
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>hat aktualisiert</Semibold> <Code>{{roleName}}</Code> Rolle mit <Code>{{addedPermissionsText}}</Code> Berechtigungen auf {{productSuffix, anyCase}}",
364
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>hat aktualisiert</Semibold> <Code>{{roleName}}</Code> Rolle mit <Code>{{addedPermissionsText}}</Code> Berechtigung auf {{productSuffix, anyCase}}",
365
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>hat gelöscht</Semibold> <Code>{{roleName}}</Code> Rolle auf {{productSuffix, anyCase}}",
366
+ "performedAction": "{{performedBy, anyCase}} <Semibold>hat eine Aktion ausgeführt</Semibold> auf {{productSuffix, anyCase}}",
367
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: von <Code>{{from}}</Code> zu <Code>{{to}}</Code>",
368
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: zu <Code>{{to}}</Code>",
369
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>hat sich mit Google Kalender verbunden</Semibold> mit Konto <Code>{{emailAddress}}</Code> auf {{productSuffix, anyCase}}",
370
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>hat die Google Kalender-Integration getrennt</Semibold> auf {{productSuffix, anyCase}}",
371
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>hat sich mit der Stripe-Integration verbunden</Semibold> mit Konto-ID: <Code>{{stripeAccountId}}</Code> auf {{productSuffix, anyCase}}",
372
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>hat die Stripe-Integration getrennt</Semibold> auf {{productSuffix, anyCase}}",
373
+ "connectedZoomAccount": "{{performedBy, anyCase}} hat <Semibold>hat sich mit der Zoom-Integration verbunden</Semibold> mit Konto-ID: <Code>{{zoomAccountId}}</Code> auf {{productSuffix, anyCase}}",
374
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} hat <Semibold>hat die Zoom-Integration getrennt</Semibold> auf {{productSuffix, anyCase}}",
375
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold>hat benutzerdefinierte Domain verbunden:</Semibold> <Code>{{hostname}}</Code> auf {{productSuffix, anyCase}}"
353
376
  }
354
377
  },
355
378
  "ipRestriction": {
@@ -814,10 +814,16 @@
814
814
  "title": "Share recording",
815
815
  "preview": "Preview",
816
816
  "checkboxLabel": "Start at",
817
+ "startVideoAt": "Start video at",
817
818
  "tooltipContent": "Copy link",
818
819
  "successTooltipContent": "Link copied",
819
820
  "muted": "Share the video muted",
820
- "autoplay": "Autoplay"
821
+ "autoplay": "Autoplay",
822
+ "configureUrlParameters": "Configure URL parameters",
823
+ "configureUrlParametersDescription": "URLs are generated based on the below configuration. Update the configuration to regenerate them.",
824
+ "generatedUrls": "Generated URLs",
825
+ "regenerateUrl": "Regenerate URL",
826
+ "cancel": "Cancel"
821
827
  },
822
828
  "fileUpload": {
823
829
  "filesDropzone": {
@@ -501,6 +501,29 @@
501
501
  "permissions": {
502
502
  "description": "Descripción"
503
503
  }
504
+ },
505
+ "text": {
506
+ "invitedUsers": "{{performedBy, anyCase}} ha <Semibold>invitado</Semibold> <Code>{{emailList}}</Code> a {{productSuffix, anyCase}}",
507
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>intentó</Semibold> invitar a un usuario {{productSuffix, anyCase}}{{errorMessage}}",
508
+ "userSignedUp": "{{userIdentifier}} <Semibold>inscribió</Semibold> en {{productSuffix, anyCase}}",
509
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> en {{productSuffix, anyCase}}",
510
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> en {{productSuffix, anyCase}}",
511
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> en {{productSuffix, anyCase}}{{errorMessage}}",
512
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> sus <ChangedFields></ChangedFields> en {{productSuffix, anyCase}}",
513
+ "createdRole": "{{performedBy, anyCase}} <Semibold>creó</Semibold> <Code>{{roleName}}</Code> rol en {{productSuffix, anyCase}}",
514
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> <Code>{{roleName}}</Code> rol con <Code>{{addedPermissionsText}}</Code> permisos en {{productSuffix, anyCase}}",
515
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> <Code>{{roleName}}</Code> rol con <Code>{{addedPermissionsText}}</Code> permiso en {{productSuffix, anyCase}}",
516
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>eliminó</Semibold> <Code>{{roleName}}</Code> rol en {{productSuffix, anyCase}}",
517
+ "performedAction": "{{performedBy, anyCase}} <Semibold>realizó</Semibold> una acción en {{productSuffix, anyCase}}",
518
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: de <Code>{{from}}</Code> a <Code>{{to}}</Code>",
519
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: a <Code>{{to}}</Code>",
520
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectó a Google Calendar</Semibold> usando la cuenta <Code>{{emailAddress}}</Code> en {{productSuffix, anyCase}}",
521
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectó la integración de Google Calendar</Semibold> en {{productSuffix, anyCase}}",
522
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>conectó a la integración de Stripe</Semibold> con ID de cuenta: <Code>{{stripeAccountId}}</Code> en {{productSuffix, anyCase}}",
523
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>desconectó la integración de Stripe</Semibold> en {{productSuffix, anyCase}}",
524
+ "connectedZoomAccount": "{{performedBy, anyCase}} ha <Semibold>conectado a la integración de Zoom</Semibold> con ID de cuenta: <Code>{{zoomAccountId}}</Code> en {{productSuffix, anyCase}}",
525
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} ha <Semibold>desconectado la integración de Zoom</Semibold> en {{productSuffix, anyCase}}",
526
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold>conectó Dominio Personalizado:</Semibold> <Code>{{hostname}}</Code> en {{productSuffix, anyCase}}"
504
527
  }
505
528
  },
506
529
  "ipRestriction": {
@@ -350,6 +350,29 @@
350
350
  "permissions": {
351
351
  "description": "Descripción"
352
352
  }
353
+ },
354
+ "text": {
355
+ "invitedUsers": "{{performedBy, anyCase}} ha <Semibold>invitado</Semibold> <Code>{{emailList}}</Code> a {{productSuffix, anyCase}}",
356
+ "invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>intento</Semibold> invitar a un usuario {{productSuffix, anyCase}}{{errorMessage}}",
357
+ "userSignedUp": "{{userIdentifier}} <Semibold>se registró</Semibold> en {{productSuffix, anyCase}}",
358
+ "updatedUser": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> en {{productSuffix, anyCase}}",
359
+ "bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> en {{productSuffix, anyCase}}",
360
+ "bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> en {{productSuffix, anyCase}}{{errorMessage}}",
361
+ "updatedUserProfile": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> su <ChangedFields></ChangedFields> en {{productSuffix, anyCase}}",
362
+ "createdRole": "{{performedBy, anyCase}} <Semibold>creó</Semibold> <Code>{{roleName}}</Code> rol en {{productSuffix, anyCase}}",
363
+ "updatedRole_other": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> <Code>{{roleName}}</Code> rol con <Code>{{addedPermissionsText}}</Code> permisos en {{productSuffix, anyCase}}",
364
+ "updatedRole_one": "{{performedBy, anyCase}} <Semibold>actualizó</Semibold> <Code>{{roleName}}</Code> rol con <Code>{{addedPermissionsText}}</Code> permiso en {{productSuffix, anyCase}}",
365
+ "deletedRole": "{{performedBy, anyCase}} <Semibold>eliminó</Semibold> <Code>{{roleName}}</Code> rol en {{productSuffix, anyCase}}",
366
+ "performedAction": "{{performedBy, anyCase}} <Semibold>realizó</Semibold> una acción en {{productSuffix, anyCase}}",
367
+ "updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold>: de <Code>{{from}}</Code> a <Code>{{to}}</Code>",
368
+ "updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>: a <Code>{{to}}</Code>",
369
+ "connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectó a Google Calendar</Semibold> usando la cuenta <Code>{{emailAddress}}</Code> en {{productSuffix, anyCase}}",
370
+ "disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectó la integración de Google Calendar</Semibold> en {{productSuffix, anyCase}}",
371
+ "connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>conectó a la integración de Stripe</Semibold> con ID de cuenta: <Code>{{stripeAccountId}}</Code> en {{productSuffix, anyCase}}",
372
+ "disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>desconectó la integración de Stripe</Semibold> en {{productSuffix, anyCase}}",
373
+ "connectedZoomAccount": "{{performedBy, anyCase}} ha <Semibold>conectado a la integración de Zoom</Semibold> con ID de cuenta: <Code>{{zoomAccountId}}</Code> en {{productSuffix, anyCase}}",
374
+ "disconnectedZoomAccount": "{{performedBy, anyCase}} ha <Semibold>desconectado la integración de Zoom</Semibold> en {{productSuffix, anyCase}}",
375
+ "connectedCustomDomain": "{{performedBy, anyCase}} <Semibold>conectó un Dominio Personalizado:</Semibold> <Code>{{hostname}}</Code> en {{productSuffix, anyCase}}"
353
376
  }
354
377
  },
355
378
  "ipRestriction": {