videomail-client 13.1.3 → 13.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -13,15 +13,15 @@ import websocket_stream from "websocket-stream";
13
13
  import audio_sample from "audio-sample";
14
14
  import is_power_of_two from "is-power-of-two";
15
15
  var __webpack_modules__ = {
16
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl": function(module, __webpack_exports__, __webpack_require__) {
16
+ "./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[13].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[13].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[13].use[3]!./src/styles/main.styl": function(module, __webpack_exports__, __webpack_require__) {
17
17
  __webpack_require__.d(__webpack_exports__, {
18
18
  A: ()=>__WEBPACK_DEFAULT_EXPORT__
19
19
  });
20
- var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
21
- var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
22
- var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/api.js");
23
- var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
24
- var ___CSS_LOADER_EXPORT___ = _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
20
+ var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
21
+ var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
22
+ var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/api.js");
23
+ var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
24
+ var ___CSS_LOADER_EXPORT___ = _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
25
25
  ___CSS_LOADER_EXPORT___.push([
26
26
  module.id,
27
27
  `@keyframes blink {
@@ -3320,7 +3320,7 @@ var __webpack_modules__ = {
3320
3320
  return tryTypedArrays(value);
3321
3321
  };
3322
3322
  },
3323
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/api.js": function(module) {
3323
+ "./node_modules/@rsbuild/core/compiled/css-loader/api.js": function(module) {
3324
3324
  module.exports = function(cssWithMappingToString) {
3325
3325
  var list = [];
3326
3326
  list.toString = function() {
@@ -3373,12 +3373,12 @@ var __webpack_modules__ = {
3373
3373
  return list;
3374
3374
  };
3375
3375
  },
3376
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js": function(module) {
3376
+ "./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js": function(module) {
3377
3377
  module.exports = function(i) {
3378
3378
  return i[1];
3379
3379
  };
3380
3380
  },
3381
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js": function(module) {
3381
+ "./node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js": function(module) {
3382
3382
  var stylesInDOM = [];
3383
3383
  function getIndexByIdentifier(identifier) {
3384
3384
  var result = -1;
@@ -3456,7 +3456,7 @@ var __webpack_modules__ = {
3456
3456
  };
3457
3457
  };
3458
3458
  },
3459
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js": function(module) {
3459
+ "./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js": function(module) {
3460
3460
  var memo = {};
3461
3461
  function getTarget(target) {
3462
3462
  if (void 0 === memo[target]) {
@@ -3477,7 +3477,7 @@ var __webpack_modules__ = {
3477
3477
  }
3478
3478
  module.exports = insertBySelector;
3479
3479
  },
3480
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js": function(module) {
3480
+ "./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js": function(module) {
3481
3481
  function insertStyleElement(options) {
3482
3482
  var element = document.createElement("style");
3483
3483
  options.setAttributes(element, options.attributes);
@@ -3486,14 +3486,14 @@ var __webpack_modules__ = {
3486
3486
  }
3487
3487
  module.exports = insertStyleElement;
3488
3488
  },
3489
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js": function(module, __unused_webpack_exports, __webpack_require__) {
3489
+ "./node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js": function(module, __unused_webpack_exports, __webpack_require__) {
3490
3490
  function setAttributesWithoutAttributes(styleElement) {
3491
3491
  var nonce = __webpack_require__.nc;
3492
3492
  if (nonce) styleElement.setAttribute("nonce", nonce);
3493
3493
  }
3494
3494
  module.exports = setAttributesWithoutAttributes;
3495
3495
  },
3496
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js": function(module) {
3496
+ "./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js": function(module) {
3497
3497
  function apply(styleElement, options, obj) {
3498
3498
  var css = "";
3499
3499
  if (obj.supports) css += "@supports (".concat(obj.supports, ") {");
@@ -3529,7 +3529,7 @@ var __webpack_modules__ = {
3529
3529
  }
3530
3530
  module.exports = domAPI;
3531
3531
  },
3532
- "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js": function(module) {
3532
+ "./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js": function(module) {
3533
3533
  function styleTagTransform(css, styleElement) {
3534
3534
  if (styleElement.styleSheet) styleElement.styleSheet.cssText = css;
3535
3535
  else {
@@ -3606,7 +3606,7 @@ const constants = {
3606
3606
  }
3607
3607
  };
3608
3608
  var package_namespaceObject = {
3609
- rE: "13.1.3"
3609
+ rE: "13.2.0"
3610
3610
  };
3611
3611
  function canPlayType_canPlayType(video, type) {
3612
3612
  const canPlayType = video.canPlayType(`video/${type}`);
@@ -3725,13 +3725,13 @@ function pretty(anything) {
3725
3725
  return inspect(anything);
3726
3726
  }
3727
3727
  const util_pretty = pretty;
3728
- class HTTPVideomailError_HTTPVideomailError extends Error {
3728
+ class HTTPVideomailError extends Error {
3729
3729
  code;
3730
3730
  status;
3731
3731
  explanation;
3732
3732
  }
3733
- const HTTPVideomailError = HTTPVideomailError_HTTPVideomailError;
3734
- class VideomailError extends HTTPVideomailError {
3733
+ const error_HTTPVideomailError = HTTPVideomailError;
3734
+ class VideomailError extends error_HTTPVideomailError {
3735
3735
  title = "Error from videomail-client npm package";
3736
3736
  location = window.location.href;
3737
3737
  logLines;
@@ -4266,7 +4266,7 @@ function findOriginalExc(exc) {
4266
4266
  if ("error" in body) {
4267
4267
  const message = body.error.message;
4268
4268
  const cause = body.error.cause;
4269
- const error = new HTTPVideomailError(message, {
4269
+ const error = new error_HTTPVideomailError(message, {
4270
4270
  cause
4271
4271
  });
4272
4272
  if (body.error.name) error.name = body.error.name;
@@ -4375,6 +4375,7 @@ class Resource {
4375
4375
  async post(videomail) {
4376
4376
  const newVideomail = this.applyDefaultValues(videomail);
4377
4377
  newVideomail[constants.VERSION_LABEL] = package_namespaceObject.rE;
4378
+ newVideomail.recordLocation = window.location.href;
4378
4379
  try {
4379
4380
  let res;
4380
4381
  if (this.options.callbacks.adjustFormDataBeforePosting) {
@@ -4550,7 +4551,7 @@ const options_options = {
4550
4551
  }
4551
4552
  };
4552
4553
  const src_options = options_options;
4553
- class CollectLogger_CollectLogger {
4554
+ class CollectLogger {
4554
4555
  browser;
4555
4556
  logger;
4556
4557
  stack = [];
@@ -4589,37 +4590,37 @@ class CollectLogger_CollectLogger {
4589
4590
  return this.stack;
4590
4591
  }
4591
4592
  }
4592
- const CollectLogger = CollectLogger_CollectLogger;
4593
+ const util_CollectLogger = CollectLogger;
4593
4594
  var isTest_process = __webpack_require__("./node_modules/process/browser.js");
4594
4595
  function isTest() {
4595
4596
  return "test" === isTest_process.env.ENVIRON;
4596
4597
  }
4597
4598
  const util_isTest = isTest;
4598
- function mergeWithDefaultOptions_mergeWithDefaultOptions(options = {}) {
4599
+ function mergeWithDefaultOptions(options = {}) {
4599
4600
  const newOptions = deepmerge(src_options, options, {
4600
4601
  arrayMerge (_destination, source) {
4601
4602
  return source;
4602
4603
  }
4603
4604
  });
4604
- const collectLogger = new CollectLogger(newOptions);
4605
+ const collectLogger = new util_CollectLogger(newOptions);
4605
4606
  newOptions.logger = collectLogger;
4606
4607
  if (util_isTest()) newOptions.verbose = false;
4607
4608
  return newOptions;
4608
4609
  }
4609
- const mergeWithDefaultOptions = mergeWithDefaultOptions_mergeWithDefaultOptions;
4610
- var injectStylesIntoStyleTag = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js");
4610
+ const options_mergeWithDefaultOptions = mergeWithDefaultOptions;
4611
+ var injectStylesIntoStyleTag = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js");
4611
4612
  var injectStylesIntoStyleTag_default = /*#__PURE__*/ __webpack_require__.n(injectStylesIntoStyleTag);
4612
- var styleDomAPI = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js");
4613
+ var styleDomAPI = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js");
4613
4614
  var styleDomAPI_default = /*#__PURE__*/ __webpack_require__.n(styleDomAPI);
4614
- var insertBySelector = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js");
4615
+ var insertBySelector = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js");
4615
4616
  var insertBySelector_default = /*#__PURE__*/ __webpack_require__.n(insertBySelector);
4616
- var setAttributesWithoutAttributes = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js");
4617
+ var setAttributesWithoutAttributes = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js");
4617
4618
  var setAttributesWithoutAttributes_default = /*#__PURE__*/ __webpack_require__.n(setAttributesWithoutAttributes);
4618
- var insertStyleElement = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js");
4619
+ var insertStyleElement = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js");
4619
4620
  var insertStyleElement_default = /*#__PURE__*/ __webpack_require__.n(insertStyleElement);
4620
- var styleTagTransform = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
4621
+ var styleTagTransform = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
4621
4622
  var styleTagTransform_default = /*#__PURE__*/ __webpack_require__.n(styleTagTransform);
4622
- var main = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl");
4623
+ var main = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[13].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[13].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[13].use[3]!./src/styles/main.styl");
4623
4624
  var main_options = {};
4624
4625
  main_options.styleTagTransform = styleTagTransform_default();
4625
4626
  main_options.setAttributes = setAttributesWithoutAttributes_default();
@@ -4638,7 +4639,7 @@ function limitHeight(height, options, calledFrom) {
4638
4639
  return limitedHeight;
4639
4640
  }
4640
4641
  const dimensions_limitHeight = limitHeight;
4641
- function getOuterWidth_getOuterWidth(element) {
4642
+ function getOuterWidth(element) {
4642
4643
  let rect = element.getBoundingClientRect();
4643
4644
  let outerWidth = rect.right - rect.left;
4644
4645
  if (outerWidth < 1) {
@@ -4647,10 +4648,10 @@ function getOuterWidth_getOuterWidth(element) {
4647
4648
  }
4648
4649
  return outerWidth;
4649
4650
  }
4650
- const getOuterWidth = getOuterWidth_getOuterWidth;
4651
+ const dimensions_getOuterWidth = getOuterWidth;
4651
4652
  function limitWidth(element, options, width) {
4652
4653
  let limitedWidth;
4653
- const outerWidth = getOuterWidth(element);
4654
+ const outerWidth = dimensions_getOuterWidth(element);
4654
4655
  limitedWidth = width && "number" == typeof width ? outerWidth > 0 && outerWidth < width ? outerWidth : width : outerWidth;
4655
4656
  if (Number.isInteger(limitedWidth) && limitedWidth < 1) throw error_createError({
4656
4657
  message: "Limited width cannot be less than 1!",
@@ -5081,12 +5082,12 @@ class Buttons extends util_Despot {
5081
5082
  }
5082
5083
  }
5083
5084
  const buttons = Buttons;
5084
- function isHidden_isHidden(element) {
5085
+ function isHidden(element) {
5085
5086
  if (!element) return true;
5086
5087
  const display = element.style.getPropertyValue("display");
5087
5088
  return display.includes("none");
5088
5089
  }
5089
- const isHidden = isHidden_isHidden;
5090
+ const html_isHidden = isHidden;
5090
5091
  class Countdown {
5091
5092
  visuals;
5092
5093
  options;
@@ -5686,7 +5687,7 @@ class Notifier extends util_Despot {
5686
5687
  }
5687
5688
  isVisible() {
5688
5689
  if (!this.built) return false;
5689
- return this.notifyElement && !isHidden(this.notifyElement);
5690
+ return this.notifyElement && !html_isHidden(this.notifyElement);
5690
5691
  }
5691
5692
  isBuilt() {
5692
5693
  return this.built;
@@ -5740,7 +5741,7 @@ function figureMinHeight(height, options) {
5740
5741
  return minHeight;
5741
5742
  }
5742
5743
  const dimensions_figureMinHeight = figureMinHeight;
5743
- function getRatio_getRatio(options, videoHeight, videoWidth) {
5744
+ function getRatio(options, videoHeight, videoWidth) {
5744
5745
  let ratio = 1;
5745
5746
  const hasVideoDimensions = videoHeight && videoWidth;
5746
5747
  const desiredHeight = options.video.height;
@@ -5750,7 +5751,7 @@ function getRatio_getRatio(options, videoHeight, videoWidth) {
5750
5751
  else if (hasVideoDimensions) ratio = videoHeight / videoWidth;
5751
5752
  return ratio;
5752
5753
  }
5753
- const getRatio = getRatio_getRatio;
5754
+ const dimensions_getRatio = getRatio;
5754
5755
  function calculateHeight(responsive, videoWidth, options, target, ratio, element) {
5755
5756
  let width = videoWidth;
5756
5757
  if (width < 1) throw error_createError({
@@ -5758,7 +5759,7 @@ function calculateHeight(responsive, videoWidth, options, target, ratio, element
5758
5759
  options
5759
5760
  });
5760
5761
  if (responsive && element) width = dimensions_limitWidth(element, options, width);
5761
- const chosenRatio = ratio ?? getRatio(options, void 0, videoWidth);
5762
+ const chosenRatio = ratio ?? dimensions_getRatio(options, void 0, videoWidth);
5762
5763
  const height = Math.round(width * chosenRatio);
5763
5764
  if (Number.isInteger(height) && height < 1) throw error_createError({
5764
5765
  message: "Just calculated a height less than 1 which is wrong.",
@@ -5774,7 +5775,7 @@ function calculateWidth(responsive, videoHeight, options, ratio) {
5774
5775
  message: `Height ${height} cannot be smaller than 1 when calculating width.`,
5775
5776
  options
5776
5777
  });
5777
- const chosenRatio = ratio ?? getRatio(options, videoHeight);
5778
+ const chosenRatio = ratio ?? dimensions_getRatio(options, videoHeight);
5778
5779
  const calculatedWidth = Math.round(height / chosenRatio);
5779
5780
  if (calculatedWidth < 1) throw error_createError({
5780
5781
  message: "Calculated width cannot be smaller than 1!",
@@ -5787,7 +5788,7 @@ const CHANNELS = 1;
5787
5788
  function getAudioContextClass() {
5788
5789
  return window.AudioContext;
5789
5790
  }
5790
- class AudioRecorder_AudioRecorder {
5791
+ class AudioRecorder {
5791
5792
  scriptProcessor;
5792
5793
  audioInput;
5793
5794
  vcAudioContext;
@@ -5867,7 +5868,7 @@ class AudioRecorder_AudioRecorder {
5867
5868
  return -1;
5868
5869
  }
5869
5870
  }
5870
- const AudioRecorder = AudioRecorder_AudioRecorder;
5871
+ const media_AudioRecorder = AudioRecorder;
5871
5872
  function getFirstVideoTrack(localMediaStream) {
5872
5873
  const videoTracks = localMediaStream.getVideoTracks();
5873
5874
  let videoTrack;
@@ -5967,7 +5968,7 @@ class UserMedia extends util_Despot {
5967
5968
  this.onPlayReached = false;
5968
5969
  this.onLoadedMetaDataReached = false;
5969
5970
  this.playingPromiseReached = false;
5970
- if (isAudioEnabled(this.options)) this.audioRecorder ??= new AudioRecorder(this, this.options);
5971
+ if (isAudioEnabled(this.options)) this.audioRecorder ??= new media_AudioRecorder(this, this.options);
5971
5972
  const unloadAllEventListeners = ()=>{
5972
5973
  this.options.logger.debug("UserMedia: unloadAllEventListeners()");
5973
5974
  this.unloadRemainingEventListeners();
@@ -6671,7 +6672,7 @@ class Recorder extends util_Despot {
6671
6672
  return this.visuals.isNotifying();
6672
6673
  }
6673
6674
  isHidden() {
6674
- return !this.recorderElement || isHidden(this.recorderElement);
6675
+ return !this.recorderElement || html_isHidden(this.recorderElement);
6675
6676
  }
6676
6677
  writeCommand(command, args, cb) {
6677
6678
  if (this.connected) {
@@ -7087,7 +7088,7 @@ class Recorder extends util_Despot {
7087
7088
  const userMediaVideoHeight = this.userMedia.getVideoHeight();
7088
7089
  if (!userMediaVideoWidth || userMediaVideoWidth < 1) ratio = this.visuals.getRatio();
7089
7090
  else if (userMediaVideoHeight) ratio = userMediaVideoHeight / userMediaVideoWidth;
7090
- } else ratio = getRatio(this.options);
7091
+ } else ratio = dimensions_getRatio(this.options);
7091
7092
  return ratio;
7092
7093
  }
7093
7094
  calculateWidth(responsive) {
@@ -7362,7 +7363,7 @@ class Replay extends util_Despot {
7362
7363
  }
7363
7364
  isShown() {
7364
7365
  if (!this.replayElement) return false;
7365
- return !isHidden(this.replayElement) && !this.visuals.isHidden();
7366
+ return !html_isHidden(this.replayElement) && !this.visuals.isHidden();
7366
7367
  }
7367
7368
  getVisuals() {
7368
7369
  return this.visuals;
@@ -7573,7 +7574,7 @@ class Visuals extends util_Despot {
7573
7574
  }
7574
7575
  isHidden() {
7575
7576
  if (!this.built) return true;
7576
- return isHidden(this.visualsElement);
7577
+ return html_isHidden(this.visualsElement);
7577
7578
  }
7578
7579
  showVisuals() {
7579
7580
  html_showElement(this.visualsElement);
@@ -7713,7 +7714,7 @@ class Container extends util_Despot {
7713
7714
  }
7714
7715
  getFormElement() {
7715
7716
  let formElement;
7716
- if (this.containerElement && "FORM" === this.containerElement.tagName) formElement = this.containerElement;
7717
+ if (this.containerElement?.tagName === "FORM") formElement = this.containerElement;
7717
7718
  else if (this.options.selectors.formId) {
7718
7719
  formElement = document.querySelector(`#${this.options.selectors.formId}`);
7719
7720
  if (formElement && "FORM" !== formElement.tagName) throw new Error(`HTML element with ID ${this.options.selectors.formId} is not a form.`);
@@ -7968,11 +7969,12 @@ class Container extends util_Despot {
7968
7969
  const name = invalidInput.getAttribute("name");
7969
7970
  const validity = util_getValidity(invalidInput);
7970
7971
  valid = false;
7971
- if (name) {
7972
+ if (name) if (validity?.valueMissing) whyInvalid = `Please fill out field "${name}" ⚠️`;
7973
+ else {
7974
+ whyInvalid = `Input "${name}" seems wrong 🤔`;
7972
7975
  invalidData = {
7973
7976
  [name]: invalidInput.getAttribute("value")
7974
7977
  };
7975
- whyInvalid = validity?.valueMissing ? `Please fill out field "${name}" ⚠️` : `Input "${name}" seems wrong 🤔`;
7976
7978
  }
7977
7979
  } else if (!this.areVisualsHidden() && !visualsValid) {
7978
7980
  if (this.buttonsAreReady() || this.isRecording() || this.isPaused() || this.isCountingDown()) {
@@ -8139,7 +8141,7 @@ class VideomailClient extends util_Despot {
8139
8141
  static ENC_TYPE_APP_JSON = constants["public"].ENC_TYPE_APP_JSON;
8140
8142
  static ENC_TYPE_FORM = constants["public"].ENC_TYPE_FORM;
8141
8143
  constructor(options = {}){
8142
- super("VideomailClient", mergeWithDefaultOptions(options));
8144
+ super("VideomailClient", options_mergeWithDefaultOptions(options));
8143
8145
  this.validateOptions();
8144
8146
  util_Despot.removeAllListeners();
8145
8147
  this.container = new wrappers_container(this.options);
@@ -29,6 +29,7 @@ export interface Videomail {
29
29
  captions?: string | undefined;
30
30
  poster: string;
31
31
  recordingStats?: RecordingStats | undefined;
32
+ recordLocation?: string | undefined;
32
33
  replyAllUrl?: string;
33
34
  replyUrl: string;
34
35
  sending: boolean;
@@ -59,6 +59,7 @@ declare class Form extends Despot {
59
59
  wantedFps?: number;
60
60
  wantedInterval?: number;
61
61
  } | undefined;
62
+ recordLocation?: string | undefined | undefined;
62
63
  replyAllUrl?: string;
63
64
  replyUrl?: string;
64
65
  sending?: boolean;
@@ -150,6 +151,7 @@ declare class Form extends Despot {
150
151
  wantedFps?: number;
151
152
  wantedInterval?: number;
152
153
  } | undefined;
154
+ recordLocation?: string | undefined | undefined;
153
155
  replyAllUrl?: string;
154
156
  replyUrl?: string;
155
157
  sending?: boolean;