botframework-webchat-api 4.18.0 → 4.18.1-main.20240807.dfe788c

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.
@@ -13,6 +13,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
13
13
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
14
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
15
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
16
+ var bubbleImageHeightDeprecation = (0, _botframeworkWebchatCore.warnOnce)('"styleOptions.bubbleImageHeight" has been deprecated. Use "styleOptions.bubbleImageMaxHeight" and "styleOptions.bubbleImageMinHeight" instead. This deprecation migration will be removed on or after 2026-07-05.');
16
17
  var hideScrollToEndButtonDeprecation = (0, _botframeworkWebchatCore.warnOnce)('"styleOptions.hideScrollToEndButton" has been deprecated. To hide scroll to end button, set "scrollToEndBehavior" to false. This deprecation migration will be removed on or after 2023-06-02.');
17
18
  var newMessagesButtonFontSizeDeprecation = (0, _botframeworkWebchatCore.warnOnce)('"styleOptions.newMessagesButtonFontSize" has been renamed to "styleOptions.scrollToEndButtonFontSize". This deprecation migration will be removed on or after 2023-06-02.');
18
19
  var suggestedActionBackgroundDeprecation = (0, _botframeworkWebchatCore.warnOnce)('"styleOptions.suggestedActionBackground" has been deprecated. Please use "styleOptions.suggestedActionBackgroundColor" instead. This deprecation migration will be removed on or after 2021-09-16.');
@@ -137,6 +138,12 @@ function normalizeStyleOptions() {
137
138
  suggestedActionDisabledDeprecation();
138
139
  filledOptions.suggestedActionTextColorOnDisabled = options.suggestedActionTextColorOnDisabled || options.suggestedActionDisabledTextColor;
139
140
  }
141
+ if (options.bubbleImageHeight) {
142
+ bubbleImageHeightDeprecation();
143
+ filledOptions.bubbleImageMaxHeight = options.bubbleImageHeight;
144
+ filledOptions.bubbleImageMinHeight = options.bubbleImageHeight;
145
+ filledOptions.bubbleImageHeight = undefined;
146
+ }
140
147
  return _objectSpread(_objectSpread({}, filledOptions), {}, {
141
148
  bubbleFromUserNubOffset: normalizedBubbleFromUserNubOffset,
142
149
  bubbleNubOffset: normalizedBubbleNubOffset,
@@ -144,4 +151,4 @@ function normalizeStyleOptions() {
144
151
  scrollToEndButtonBehavior: patchedScrollToEndButtonBehavior
145
152
  });
146
153
  }
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdENvcmUiLCJyZXF1aXJlIiwiX2RlZmF1bHRTdHlsZU9wdGlvbnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2V4Y2x1ZGVkIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VTeW1ib2xLZXlzIiwiaW5kZXhPZiIsInByb3RvdHlwZSIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2FsbCIsInNvdXJjZUtleXMiLCJoaWRlU2Nyb2xsVG9FbmRCdXR0b25EZXByZWNhdGlvbiIsIndhcm5PbmNlIiwibmV3TWVzc2FnZXNCdXR0b25Gb250U2l6ZURlcHJlY2F0aW9uIiwic3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZERlcHJlY2F0aW9uIiwic3VnZ2VzdGVkQWN0aW9uWFhYQmFja2dyb3VuZERlcHJlY2F0aW9uIiwic3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbiIsIm5vcm1hbGl6ZVN0eWxlT3B0aW9ucyIsIl9yZWYiLCJ1bmRlZmluZWQiLCJoaWRlU2Nyb2xsVG9FbmRCdXR0b24iLCJuZXdNZXNzYWdlc0J1dHRvbkZvbnRTaXplIiwib3B0aW9ucyIsImZpbGxlZE9wdGlvbnMiLCJkZWZhdWx0U3R5bGVPcHRpb25zIiwiYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQiLCJidWJibGVOdWJPZmZzZXQiLCJlbW9qaVNldCIsIm5vcm1hbGl6ZWRCdWJibGVGcm9tVXNlck51Yk9mZnNldCIsIm5vcm1hbGl6ZWRCdWJibGVOdWJPZmZzZXQiLCJub3JtYWxpemVkRW1vamlTZXQiLCJ0b1N0cmluZyIsImNvbnNvbGUiLCJ3YXJuIiwic2Nyb2xsVG9FbmRCdXR0b25CZWhhdmlvciIsInBhdGNoZWRTY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yIiwic2Nyb2xsVG9FbmRCdXR0b25Gb250U2l6ZSIsInN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmQiLCJzdWdnZXN0ZWRBY3Rpb25BY3RpdmVCYWNrZ3JvdW5kIiwic3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25BY3RpdmUiLCJzdWdnZXN0ZWRBY3Rpb25Gb2N1c0JhY2tncm91bmQiLCJzdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkZvY3VzIiwic3VnZ2VzdGVkQWN0aW9uSG92ZXJCYWNrZ3JvdW5kIiwic3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25Ib3ZlciIsInN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQmFja2dyb3VuZCIsInN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uRGlzYWJsZWQiLCJzdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJvcmRlckNvbG9yIiwic3VnZ2VzdGVkQWN0aW9uQm9yZGVyQ29sb3JPbkRpc2FibGVkIiwic3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRCb3JkZXJTdHlsZSIsInN1Z2dlc3RlZEFjdGlvbkJvcmRlclN0eWxlT25EaXNhYmxlZCIsInN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQm9yZGVyV2lkdGgiLCJzdWdnZXN0ZWRBY3Rpb25Cb3JkZXJXaWR0aE9uRGlzYWJsZWQiLCJzdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZFRleHRDb2xvciIsInN1Z2dlc3RlZEFjdGlvblRleHRDb2xvck9uRGlzYWJsZWQiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uL3NyYy9ub3JtYWxpemVTdHlsZU9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IGRlZmF1bHRTdHlsZU9wdGlvbnMgZnJvbSAnLi9kZWZhdWx0U3R5bGVPcHRpb25zJztcbmltcG9ydCBTdHlsZU9wdGlvbnMsIHsgU3RyaWN0U3R5bGVPcHRpb25zIH0gZnJvbSAnLi9TdHlsZU9wdGlvbnMnO1xuXG5jb25zdCBoaWRlU2Nyb2xsVG9FbmRCdXR0b25EZXByZWNhdGlvbiA9IHdhcm5PbmNlKFxuICAnXCJzdHlsZU9wdGlvbnMuaGlkZVNjcm9sbFRvRW5kQnV0dG9uXCIgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVG8gaGlkZSBzY3JvbGwgdG8gZW5kIGJ1dHRvbiwgc2V0IFwic2Nyb2xsVG9FbmRCZWhhdmlvclwiIHRvIGZhbHNlLiBUaGlzIGRlcHJlY2F0aW9uIG1pZ3JhdGlvbiB3aWxsIGJlIHJlbW92ZWQgb24gb3IgYWZ0ZXIgMjAyMy0wNi0wMi4nXG4pO1xuXG5jb25zdCBuZXdNZXNzYWdlc0J1dHRvbkZvbnRTaXplRGVwcmVjYXRpb24gPSB3YXJuT25jZShcbiAgJ1wic3R5bGVPcHRpb25zLm5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemVcIiBoYXMgYmVlbiByZW5hbWVkIHRvIFwic3R5bGVPcHRpb25zLnNjcm9sbFRvRW5kQnV0dG9uRm9udFNpemVcIi4gVGhpcyBkZXByZWNhdGlvbiBtaWdyYXRpb24gd2lsbCBiZSByZW1vdmVkIG9uIG9yIGFmdGVyIDIwMjMtMDYtMDIuJ1xuKTtcblxuY29uc3Qgc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZERlcHJlY2F0aW9uID0gd2Fybk9uY2UoXG4gICdcInN0eWxlT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kXCIgaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBcInN0eWxlT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JcIiBpbnN0ZWFkLiBUaGlzIGRlcHJlY2F0aW9uIG1pZ3JhdGlvbiB3aWxsIGJlIHJlbW92ZWQgb24gb3IgYWZ0ZXIgMjAyMS0wOS0xNi4nXG4pO1xuXG5jb25zdCBzdWdnZXN0ZWRBY3Rpb25YWFhCYWNrZ3JvdW5kRGVwcmVjYXRpb24gPSB3YXJuT25jZShcbiAgJ1wic3R5bGVPcHRpb25zLnN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmRcIiBoYXMgYmVlbiBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFwic3R5bGVPcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uWFhYXCIgaW5zdGVhZC4gVGhpcyBkZXByZWNhdGlvbiBtaWdyYXRpb24gd2lsbCBiZSByZW1vdmVkIG9uIG9yIGFmdGVyIDIwMjEtMDktMTYuJ1xuKTtcblxuY29uc3Qgc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbiA9IHdhcm5PbmNlKFxuICAnXCJzdHlsZU9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRYWFhcIiBoYXMgYmVlbiByZW5hbWVkIHRvIFwic3R5bGVPcHRpb25zLnN1Z2dlc3RlZEFjdGlvblhYWE9uRGlzYWJsZWRcIi4gVGhpcyBkZXByZWNhdGlvbiBtaWdyYXRpb24gd2lsbCBiZSByZW1vdmVkIG9uIG9yIGFmdGVyIDIwMjEtMDktMTYuJ1xuKTtcblxuLy8gVE9ETzogW1A0XSBXZSBzaG91bGQgYWRkIGEgbm90aWNlIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gdXNlIFwic3R5bGVTZXRcIiBpbnN0ZWFkIG9mIFwic3R5bGVPcHRpb25zXCIuXG4vLyAgICAgICBcInN0eWxlU2V0XCIgaXMgYWN0dWFsbHkgQ1NTIHN0eWxlc2hlZXQgYW5kIGl0IGlzIGJhc2VkIG9uIHRoZSBET00gdHJlZS5cbi8vICAgICAgIERPTSB0cmVlIG1heSBjaGFuZ2UgZnJvbSB0aW1lIHRvIHRpbWUsIHRodXMsIG1haW50YWluaW5nIFwic3R5bGVTZXRcIiBiZWNvbWVzIGEgY29uc3RhbnQgZWZmb3J0LlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9ybWFsaXplU3R5bGVPcHRpb25zKHtcbiAgaGlkZVNjcm9sbFRvRW5kQnV0dG9uLFxuICBuZXdNZXNzYWdlc0J1dHRvbkZvbnRTaXplLFxuICAuLi5vcHRpb25zXG59OiBTdHlsZU9wdGlvbnMgPSB7fSk6IFN0cmljdFN0eWxlT3B0aW9ucyB7XG4gIGNvbnN0IGZpbGxlZE9wdGlvbnM6IFJlcXVpcmVkPFN0eWxlT3B0aW9ucz4gPSB7IC4uLmRlZmF1bHRTdHlsZU9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcblxuICAvLyBLZWVwIHRoaXMgbGlzdCBmbGF0IChubyBuZXN0ZWQgc3R5bGUpIGFuZCBzZXJpYWxpemFibGUgKG5vIGZ1bmN0aW9ucylcbiAgY29uc3QgeyBidWJibGVGcm9tVXNlck51Yk9mZnNldCwgYnViYmxlTnViT2Zmc2V0LCBlbW9qaVNldCB9ID0gZmlsbGVkT3B0aW9ucztcblxuICBsZXQgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0OiBudW1iZXI7XG4gIGxldCBub3JtYWxpemVkQnViYmxlTnViT2Zmc2V0OiBudW1iZXI7XG4gIGxldCBub3JtYWxpemVkRW1vamlTZXQ6IGZhbHNlIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBpZiAoYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQgPT09ICd0b3AnKSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID0gMDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQgIT09ICdudW1iZXInKSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID0gLTA7XG4gIH0gZWxzZSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID0gYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQ7XG4gIH1cblxuICBpZiAoYnViYmxlTnViT2Zmc2V0ID09PSAndG9wJykge1xuICAgIG5vcm1hbGl6ZWRCdWJibGVOdWJPZmZzZXQgPSAwO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBidWJibGVOdWJPZmZzZXQgIT09ICdudW1iZXInKSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZU51Yk9mZnNldCA9IC0wO1xuICB9IGVsc2Uge1xuICAgIG5vcm1hbGl6ZWRCdWJibGVOdWJPZmZzZXQgPSBidWJibGVOdWJPZmZzZXQ7XG4gIH1cblxuICBpZiAoZW1vamlTZXQgPT09IHRydWUpIHtcbiAgICBub3JtYWxpemVkRW1vamlTZXQgPSB7XG4gICAgICAnOiknOiAn8J+YiicsXG4gICAgICAnOi0pJzogJ/CfmIonLFxuICAgICAgJyg6JzogJ/CfmIonLFxuICAgICAgJygtOic6ICfwn5iKJyxcbiAgICAgICc6LXwnOiAn8J+YkCcsXG4gICAgICAnOnwnOiAn8J+YkCcsXG4gICAgICAnOi0oJzogJ+KYue+4jycsXG4gICAgICAnOignOiAn4pi577iPJyxcbiAgICAgICc6LUQnOiAn8J+YgCcsXG4gICAgICAnOkQnOiAn8J+YgCcsXG4gICAgICAnOi1wJzogJ/CfmJsnLFxuICAgICAgJzpwJzogJ/CfmJsnLFxuICAgICAgJzotUCc6ICfwn5ibJyxcbiAgICAgICc6UCc6ICfwn5ibJyxcbiAgICAgICc6LW8nOiAn8J+YsicsXG4gICAgICAnOm8nOiAn8J+YsicsXG4gICAgICAnOk8nOiAn8J+YsicsXG4gICAgICAnOi1PJzogJ/CfmLInLFxuICAgICAgJzotMCc6ICfwn5iyJyxcbiAgICAgICc6MCc6ICfwn5iyJyxcbiAgICAgICc7LSknOiAn8J+YiScsXG4gICAgICAnOyknOiAn8J+YiScsXG4gICAgICAnPDMnOiAn4p2k77iPJyxcbiAgICAgICc8LzMnOiAn8J+SlCcsXG4gICAgICAnPFxcXFwzJzogJ/CfkpQnXG4gICAgfTtcbiAgfSBlbHNlIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZW1vamlTZXQpICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIGNvbnNvbGUud2FybignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IGVtb2ppU2V0IG11c3QgYmUgYSBib29sZWFuIG9yIGFuIG9iamVjdCB3aXRoIGVtb3RpY29uOiBlbW9qaVZhbHVlcycpO1xuICAgIG5vcm1hbGl6ZWRFbW9qaVNldCA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIG5vcm1hbGl6ZWRFbW9qaVNldCA9IGVtb2ppU2V0O1xuICB9XG5cbiAgaWYgKGhpZGVTY3JvbGxUb0VuZEJ1dHRvbikge1xuICAgIGhpZGVTY3JvbGxUb0VuZEJ1dHRvbkRlcHJlY2F0aW9uKCk7XG5cbiAgICAvLyBPbmx5IHNldCBpZiB0aGUgXCJzY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yXCIgaXMgbm90IHNldC5cbiAgICAvLyBJZiBpdCBoYXMgYmVlbiBzZXQsIHRoZSBkZXZlbG9wZXIgc2hvdWxkIGtub3cgdGhlIG9sZGVyIFwiaGlkZVNjcm9sbFRvRW5kQnV0dG9uXCIgb3B0aW9uIGlzIGRlcHJlY2F0ZWQuXG4gICAgZmlsbGVkT3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yID0gb3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yIHx8IGZhbHNlO1xuICB9XG5cbiAgbGV0IHBhdGNoZWRTY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yID0gZmlsbGVkT3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yO1xuXG4gIGlmIChwYXRjaGVkU2Nyb2xsVG9FbmRCdXR0b25CZWhhdmlvciAhPT0gJ2FueScgJiYgcGF0Y2hlZFNjcm9sbFRvRW5kQnV0dG9uQmVoYXZpb3IgIT09IGZhbHNlKSB7XG4gICAgcGF0Y2hlZFNjcm9sbFRvRW5kQnV0dG9uQmVoYXZpb3IgPT09ICd1bnJlYWQnIHx8XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdXZWIgQ2hhdDogXCJzY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yXCIgbXVzdCBiZSBlaXRoZXIgXCJ1bnJlYWRcIiwgXCJhbnlcIiwgb3IgZmFsc2UsIHdpbGwgc2V0IHRvIFwidW5yZWFkXCIuJ1xuICAgICAgKTtcblxuICAgIHBhdGNoZWRTY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yID0gJ3VucmVhZCc7XG4gIH1cblxuICBpZiAobmV3TWVzc2FnZXNCdXR0b25Gb250U2l6ZSkge1xuICAgIG5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemVEZXByZWNhdGlvbigpO1xuXG4gICAgLy8gT25seSBzZXQgaWYgdGhlIFwic2Nyb2xsVG9FbmRCdXR0b25Gb250U2l6ZVwiIGlzIG5vdCBzZXQuXG4gICAgZmlsbGVkT3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkZvbnRTaXplID0gb3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkZvbnRTaXplIHx8IG5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemU7XG4gIH1cblxuICBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmQgJiYgc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZERlcHJlY2F0aW9uKCk7XG5cbiAgaWYgKG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQWN0aXZlQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkFjdGl2ZSA9XG4gICAgICBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uQWN0aXZlIHx8IG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQWN0aXZlQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkZvY3VzQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkZvY3VzID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25Gb2N1cyB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkZvY3VzQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkhvdmVyQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkhvdmVyID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25Ib3ZlciB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkhvdmVyQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkRpc2FibGVkID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25EaXNhYmxlZCB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQm9yZGVyQ29sb3IpIHtcbiAgICBzdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZERlcHJlY2F0aW9uKCk7XG5cbiAgICBmaWxsZWRPcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJvcmRlckNvbG9yT25EaXNhYmxlZCA9XG4gICAgICBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJvcmRlckNvbG9yT25EaXNhYmxlZCB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQm9yZGVyQ29sb3I7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJvcmRlclN0eWxlKSB7XG4gICAgc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25Cb3JkZXJTdHlsZU9uRGlzYWJsZWQgPVxuICAgICAgb3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25Cb3JkZXJTdHlsZU9uRGlzYWJsZWQgfHwgb3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJvcmRlclN0eWxlO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRCb3JkZXJXaWR0aCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkRGVwcmVjYXRpb24oKTtcblxuICAgIGZpbGxlZE9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQm9yZGVyV2lkdGhPbkRpc2FibGVkID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQm9yZGVyV2lkdGhPbkRpc2FibGVkIHx8IG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRCb3JkZXJXaWR0aDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkVGV4dENvbG9yKSB7XG4gICAgc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25UZXh0Q29sb3JPbkRpc2FibGVkID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uVGV4dENvbG9yT25EaXNhYmxlZCB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkVGV4dENvbG9yO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5maWxsZWRPcHRpb25zLFxuICAgIGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0OiBub3JtYWxpemVkQnViYmxlRnJvbVVzZXJOdWJPZmZzZXQsXG4gICAgYnViYmxlTnViT2Zmc2V0OiBub3JtYWxpemVkQnViYmxlTnViT2Zmc2V0LFxuICAgIGVtb2ppU2V0OiBub3JtYWxpemVkRW1vamlTZXQsXG4gICAgc2Nyb2xsVG9FbmRCdXR0b25CZWhhdmlvcjogcGF0Y2hlZFNjcm9sbFRvRW5kQnV0dG9uQmVoYXZpb3JcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsd0JBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG9CQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBd0QsSUFBQUcsU0FBQTtBQUFBLFNBQUFELHVCQUFBRSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxHQUFBQyxjQUFBLEtBQUFJLE9BQUEsR0FBQUEsT0FBQSxDQUFBQyxNQUFBLFdBQUFDLEdBQUEsV0FBQUosTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixNQUFBLEVBQUFPLEdBQUEsRUFBQUUsVUFBQSxPQUFBUCxJQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxJQUFBLEVBQUFHLE9BQUEsWUFBQUgsSUFBQTtBQUFBLFNBQUFVLGNBQUFDLE1BQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBRixDQUFBLFVBQUFHLE1BQUEsV0FBQUYsU0FBQSxDQUFBRCxDQUFBLElBQUFDLFNBQUEsQ0FB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
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdENvcmUiLCJyZXF1aXJlIiwiX2RlZmF1bHRTdHlsZU9wdGlvbnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2V4Y2x1ZGVkIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VTeW1ib2xLZXlzIiwiaW5kZXhPZiIsInByb3RvdHlwZSIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2FsbCIsInNvdXJjZUtleXMiLCJidWJibGVJbWFnZUhlaWdodERlcHJlY2F0aW9uIiwid2Fybk9uY2UiLCJoaWRlU2Nyb2xsVG9FbmRCdXR0b25EZXByZWNhdGlvbiIsIm5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemVEZXByZWNhdGlvbiIsInN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmREZXByZWNhdGlvbiIsInN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbiIsInN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkRGVwcmVjYXRpb24iLCJub3JtYWxpemVTdHlsZU9wdGlvbnMiLCJfcmVmIiwidW5kZWZpbmVkIiwiaGlkZVNjcm9sbFRvRW5kQnV0dG9uIiwibmV3TWVzc2FnZXNCdXR0b25Gb250U2l6ZSIsIm9wdGlvbnMiLCJmaWxsZWRPcHRpb25zIiwiZGVmYXVsdFN0eWxlT3B0aW9ucyIsImJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0IiwiYnViYmxlTnViT2Zmc2V0IiwiZW1vamlTZXQiLCJub3JtYWxpemVkQnViYmxlRnJvbVVzZXJOdWJPZmZzZXQiLCJub3JtYWxpemVkQnViYmxlTnViT2Zmc2V0Iiwibm9ybWFsaXplZEVtb2ppU2V0IiwidG9TdHJpbmciLCJjb25zb2xlIiwid2FybiIsInNjcm9sbFRvRW5kQnV0dG9uQmVoYXZpb3IiLCJwYXRjaGVkU2Nyb2xsVG9FbmRCdXR0b25CZWhhdmlvciIsInNjcm9sbFRvRW5kQnV0dG9uRm9udFNpemUiLCJzdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kIiwic3VnZ2VzdGVkQWN0aW9uQWN0aXZlQmFja2dyb3VuZCIsInN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uQWN0aXZlIiwic3VnZ2VzdGVkQWN0aW9uRm9jdXNCYWNrZ3JvdW5kIiwic3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25Gb2N1cyIsInN1Z2dlc3RlZEFjdGlvbkhvdmVyQmFja2dyb3VuZCIsInN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uSG92ZXIiLCJzdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJhY2tncm91bmQiLCJzdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkRpc2FibGVkIiwic3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRCb3JkZXJDb2xvciIsInN1Z2dlc3RlZEFjdGlvbkJvcmRlckNvbG9yT25EaXNhYmxlZCIsInN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQm9yZGVyU3R5bGUiLCJzdWdnZXN0ZWRBY3Rpb25Cb3JkZXJTdHlsZU9uRGlzYWJsZWQiLCJzdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJvcmRlcldpZHRoIiwic3VnZ2VzdGVkQWN0aW9uQm9yZGVyV2lkdGhPbkRpc2FibGVkIiwic3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRUZXh0Q29sb3IiLCJzdWdnZXN0ZWRBY3Rpb25UZXh0Q29sb3JPbkRpc2FibGVkIiwiYnViYmxlSW1hZ2VIZWlnaHQiLCJidWJibGVJbWFnZU1heEhlaWdodCIsImJ1YmJsZUltYWdlTWluSGVpZ2h0Il0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi9zcmMvbm9ybWFsaXplU3R5bGVPcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5cbmltcG9ydCBkZWZhdWx0U3R5bGVPcHRpb25zIGZyb20gJy4vZGVmYXVsdFN0eWxlT3B0aW9ucyc7XG5pbXBvcnQgU3R5bGVPcHRpb25zLCB7IFN0cmljdFN0eWxlT3B0aW9ucyB9IGZyb20gJy4vU3R5bGVPcHRpb25zJztcblxuY29uc3QgYnViYmxlSW1hZ2VIZWlnaHREZXByZWNhdGlvbiA9IHdhcm5PbmNlKFxuICAnXCJzdHlsZU9wdGlvbnMuYnViYmxlSW1hZ2VIZWlnaHRcIiBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgXCJzdHlsZU9wdGlvbnMuYnViYmxlSW1hZ2VNYXhIZWlnaHRcIiBhbmQgXCJzdHlsZU9wdGlvbnMuYnViYmxlSW1hZ2VNaW5IZWlnaHRcIiBpbnN0ZWFkLiBUaGlzIGRlcHJlY2F0aW9uIG1pZ3JhdGlvbiB3aWxsIGJlIHJlbW92ZWQgb24gb3IgYWZ0ZXIgMjAyNi0wNy0wNS4nXG4pO1xuXG5jb25zdCBoaWRlU2Nyb2xsVG9FbmRCdXR0b25EZXByZWNhdGlvbiA9IHdhcm5PbmNlKFxuICAnXCJzdHlsZU9wdGlvbnMuaGlkZVNjcm9sbFRvRW5kQnV0dG9uXCIgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVG8gaGlkZSBzY3JvbGwgdG8gZW5kIGJ1dHRvbiwgc2V0IFwic2Nyb2xsVG9FbmRCZWhhdmlvclwiIHRvIGZhbHNlLiBUaGlzIGRlcHJlY2F0aW9uIG1pZ3JhdGlvbiB3aWxsIGJlIHJlbW92ZWQgb24gb3IgYWZ0ZXIgMjAyMy0wNi0wMi4nXG4pO1xuXG5jb25zdCBuZXdNZXNzYWdlc0J1dHRvbkZvbnRTaXplRGVwcmVjYXRpb24gPSB3YXJuT25jZShcbiAgJ1wic3R5bGVPcHRpb25zLm5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemVcIiBoYXMgYmVlbiByZW5hbWVkIHRvIFwic3R5bGVPcHRpb25zLnNjcm9sbFRvRW5kQnV0dG9uRm9udFNpemVcIi4gVGhpcyBkZXByZWNhdGlvbiBtaWdyYXRpb24gd2lsbCBiZSByZW1vdmVkIG9uIG9yIGFmdGVyIDIwMjMtMDYtMDIuJ1xuKTtcblxuY29uc3Qgc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZERlcHJlY2F0aW9uID0gd2Fybk9uY2UoXG4gICdcInN0eWxlT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kXCIgaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBcInN0eWxlT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JcIiBpbnN0ZWFkLiBUaGlzIGRlcHJlY2F0aW9uIG1pZ3JhdGlvbiB3aWxsIGJlIHJlbW92ZWQgb24gb3IgYWZ0ZXIgMjAyMS0wOS0xNi4nXG4pO1xuXG5jb25zdCBzdWdnZXN0ZWRBY3Rpb25YWFhCYWNrZ3JvdW5kRGVwcmVjYXRpb24gPSB3YXJuT25jZShcbiAgJ1wic3R5bGVPcHRpb25zLnN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmRcIiBoYXMgYmVlbiBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFwic3R5bGVPcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uWFhYXCIgaW5zdGVhZC4gVGhpcyBkZXByZWNhdGlvbiBtaWdyYXRpb24gd2lsbCBiZSByZW1vdmVkIG9uIG9yIGFmdGVyIDIwMjEtMDktMTYuJ1xuKTtcblxuY29uc3Qgc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbiA9IHdhcm5PbmNlKFxuICAnXCJzdHlsZU9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRYWFhcIiBoYXMgYmVlbiByZW5hbWVkIHRvIFwic3R5bGVPcHRpb25zLnN1Z2dlc3RlZEFjdGlvblhYWE9uRGlzYWJsZWRcIi4gVGhpcyBkZXByZWNhdGlvbiBtaWdyYXRpb24gd2lsbCBiZSByZW1vdmVkIG9uIG9yIGFmdGVyIDIwMjEtMDktMTYuJ1xuKTtcblxuLy8gVE9ETzogW1A0XSBXZSBzaG91bGQgYWRkIGEgbm90aWNlIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gdXNlIFwic3R5bGVTZXRcIiBpbnN0ZWFkIG9mIFwic3R5bGVPcHRpb25zXCIuXG4vLyAgICAgICBcInN0eWxlU2V0XCIgaXMgYWN0dWFsbHkgQ1NTIHN0eWxlc2hlZXQgYW5kIGl0IGlzIGJhc2VkIG9uIHRoZSBET00gdHJlZS5cbi8vICAgICAgIERPTSB0cmVlIG1heSBjaGFuZ2UgZnJvbSB0aW1lIHRvIHRpbWUsIHRodXMsIG1haW50YWluaW5nIFwic3R5bGVTZXRcIiBiZWNvbWVzIGEgY29uc3RhbnQgZWZmb3J0LlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9ybWFsaXplU3R5bGVPcHRpb25zKHtcbiAgaGlkZVNjcm9sbFRvRW5kQnV0dG9uLFxuICBuZXdNZXNzYWdlc0J1dHRvbkZvbnRTaXplLFxuICAuLi5vcHRpb25zXG59OiBTdHlsZU9wdGlvbnMgPSB7fSk6IFN0cmljdFN0eWxlT3B0aW9ucyB7XG4gIGNvbnN0IGZpbGxlZE9wdGlvbnM6IFJlcXVpcmVkPFN0eWxlT3B0aW9ucz4gPSB7IC4uLmRlZmF1bHRTdHlsZU9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcblxuICAvLyBLZWVwIHRoaXMgbGlzdCBmbGF0IChubyBuZXN0ZWQgc3R5bGUpIGFuZCBzZXJpYWxpemFibGUgKG5vIGZ1bmN0aW9ucylcbiAgY29uc3QgeyBidWJibGVGcm9tVXNlck51Yk9mZnNldCwgYnViYmxlTnViT2Zmc2V0LCBlbW9qaVNldCB9ID0gZmlsbGVkT3B0aW9ucztcblxuICBsZXQgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0OiBudW1iZXI7XG4gIGxldCBub3JtYWxpemVkQnViYmxlTnViT2Zmc2V0OiBudW1iZXI7XG4gIGxldCBub3JtYWxpemVkRW1vamlTZXQ6IGZhbHNlIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBpZiAoYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQgPT09ICd0b3AnKSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID0gMDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQgIT09ICdudW1iZXInKSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID0gLTA7XG4gIH0gZWxzZSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID0gYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQ7XG4gIH1cblxuICBpZiAoYnViYmxlTnViT2Zmc2V0ID09PSAndG9wJykge1xuICAgIG5vcm1hbGl6ZWRCdWJibGVOdWJPZmZzZXQgPSAwO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBidWJibGVOdWJPZmZzZXQgIT09ICdudW1iZXInKSB7XG4gICAgbm9ybWFsaXplZEJ1YmJsZU51Yk9mZnNldCA9IC0wO1xuICB9IGVsc2Uge1xuICAgIG5vcm1hbGl6ZWRCdWJibGVOdWJPZmZzZXQgPSBidWJibGVOdWJPZmZzZXQ7XG4gIH1cblxuICBpZiAoZW1vamlTZXQgPT09IHRydWUpIHtcbiAgICBub3JtYWxpemVkRW1vamlTZXQgPSB7XG4gICAgICAnOiknOiAn8J+YiicsXG4gICAgICAnOi0pJzogJ/CfmIonLFxuICAgICAgJyg6JzogJ/CfmIonLFxuICAgICAgJygtOic6ICfwn5iKJyxcbiAgICAgICc6LXwnOiAn8J+YkCcsXG4gICAgICAnOnwnOiAn8J+YkCcsXG4gICAgICAnOi0oJzogJ+KYue+4jycsXG4gICAgICAnOignOiAn4pi577iPJyxcbiAgICAgICc6LUQnOiAn8J+YgCcsXG4gICAgICAnOkQnOiAn8J+YgCcsXG4gICAgICAnOi1wJzogJ/CfmJsnLFxuICAgICAgJzpwJzogJ/CfmJsnLFxuICAgICAgJzotUCc6ICfwn5ibJyxcbiAgICAgICc6UCc6ICfwn5ibJyxcbiAgICAgICc6LW8nOiAn8J+YsicsXG4gICAgICAnOm8nOiAn8J+YsicsXG4gICAgICAnOk8nOiAn8J+YsicsXG4gICAgICAnOi1PJzogJ/CfmLInLFxuICAgICAgJzotMCc6ICfwn5iyJyxcbiAgICAgICc6MCc6ICfwn5iyJyxcbiAgICAgICc7LSknOiAn8J+YiScsXG4gICAgICAnOyknOiAn8J+YiScsXG4gICAgICAnPDMnOiAn4p2k77iPJyxcbiAgICAgICc8LzMnOiAn8J+SlCcsXG4gICAgICAnPFxcXFwzJzogJ/CfkpQnXG4gICAgfTtcbiAgfSBlbHNlIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZW1vamlTZXQpICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIGNvbnNvbGUud2FybignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IGVtb2ppU2V0IG11c3QgYmUgYSBib29sZWFuIG9yIGFuIG9iamVjdCB3aXRoIGVtb3RpY29uOiBlbW9qaVZhbHVlcycpO1xuICAgIG5vcm1hbGl6ZWRFbW9qaVNldCA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIG5vcm1hbGl6ZWRFbW9qaVNldCA9IGVtb2ppU2V0O1xuICB9XG5cbiAgaWYgKGhpZGVTY3JvbGxUb0VuZEJ1dHRvbikge1xuICAgIGhpZGVTY3JvbGxUb0VuZEJ1dHRvbkRlcHJlY2F0aW9uKCk7XG5cbiAgICAvLyBPbmx5IHNldCBpZiB0aGUgXCJzY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yXCIgaXMgbm90IHNldC5cbiAgICAvLyBJZiBpdCBoYXMgYmVlbiBzZXQsIHRoZSBkZXZlbG9wZXIgc2hvdWxkIGtub3cgdGhlIG9sZGVyIFwiaGlkZVNjcm9sbFRvRW5kQnV0dG9uXCIgb3B0aW9uIGlzIGRlcHJlY2F0ZWQuXG4gICAgZmlsbGVkT3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yID0gb3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yIHx8IGZhbHNlO1xuICB9XG5cbiAgbGV0IHBhdGNoZWRTY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yID0gZmlsbGVkT3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yO1xuXG4gIGlmIChwYXRjaGVkU2Nyb2xsVG9FbmRCdXR0b25CZWhhdmlvciAhPT0gJ2FueScgJiYgcGF0Y2hlZFNjcm9sbFRvRW5kQnV0dG9uQmVoYXZpb3IgIT09IGZhbHNlKSB7XG4gICAgcGF0Y2hlZFNjcm9sbFRvRW5kQnV0dG9uQmVoYXZpb3IgPT09ICd1bnJlYWQnIHx8XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdXZWIgQ2hhdDogXCJzY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yXCIgbXVzdCBiZSBlaXRoZXIgXCJ1bnJlYWRcIiwgXCJhbnlcIiwgb3IgZmFsc2UsIHdpbGwgc2V0IHRvIFwidW5yZWFkXCIuJ1xuICAgICAgKTtcblxuICAgIHBhdGNoZWRTY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yID0gJ3VucmVhZCc7XG4gIH1cblxuICBpZiAobmV3TWVzc2FnZXNCdXR0b25Gb250U2l6ZSkge1xuICAgIG5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemVEZXByZWNhdGlvbigpO1xuXG4gICAgLy8gT25seSBzZXQgaWYgdGhlIFwic2Nyb2xsVG9FbmRCdXR0b25Gb250U2l6ZVwiIGlzIG5vdCBzZXQuXG4gICAgZmlsbGVkT3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkZvbnRTaXplID0gb3B0aW9ucy5zY3JvbGxUb0VuZEJ1dHRvbkZvbnRTaXplIHx8IG5ld01lc3NhZ2VzQnV0dG9uRm9udFNpemU7XG4gIH1cblxuICBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmQgJiYgc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZERlcHJlY2F0aW9uKCk7XG5cbiAgaWYgKG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQWN0aXZlQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkFjdGl2ZSA9XG4gICAgICBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJhY2tncm91bmRDb2xvck9uQWN0aXZlIHx8IG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQWN0aXZlQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkZvY3VzQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkZvY3VzID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25Gb2N1cyB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkZvY3VzQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkhvdmVyQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkhvdmVyID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25Ib3ZlciB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkhvdmVyQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQmFja2dyb3VuZCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvblhYWEJhY2tncm91bmREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29sb3JPbkRpc2FibGVkID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQmFja2dyb3VuZENvbG9yT25EaXNhYmxlZCB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQmFja2dyb3VuZDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQm9yZGVyQ29sb3IpIHtcbiAgICBzdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZERlcHJlY2F0aW9uKCk7XG5cbiAgICBmaWxsZWRPcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJvcmRlckNvbG9yT25EaXNhYmxlZCA9XG4gICAgICBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkJvcmRlckNvbG9yT25EaXNhYmxlZCB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkQm9yZGVyQ29sb3I7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJvcmRlclN0eWxlKSB7XG4gICAgc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25Cb3JkZXJTdHlsZU9uRGlzYWJsZWQgPVxuICAgICAgb3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25Cb3JkZXJTdHlsZU9uRGlzYWJsZWQgfHwgb3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25EaXNhYmxlZEJvcmRlclN0eWxlO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRCb3JkZXJXaWR0aCkge1xuICAgIHN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkRGVwcmVjYXRpb24oKTtcblxuICAgIGZpbGxlZE9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQm9yZGVyV2lkdGhPbkRpc2FibGVkID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uQm9yZGVyV2lkdGhPbkRpc2FibGVkIHx8IG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWRCb3JkZXJXaWR0aDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkVGV4dENvbG9yKSB7XG4gICAgc3VnZ2VzdGVkQWN0aW9uRGlzYWJsZWREZXByZWNhdGlvbigpO1xuXG4gICAgZmlsbGVkT3B0aW9ucy5zdWdnZXN0ZWRBY3Rpb25UZXh0Q29sb3JPbkRpc2FibGVkID1cbiAgICAgIG9wdGlvbnMuc3VnZ2VzdGVkQWN0aW9uVGV4dENvbG9yT25EaXNhYmxlZCB8fCBvcHRpb25zLnN1Z2dlc3RlZEFjdGlvbkRpc2FibGVkVGV4dENvbG9yO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuYnViYmxlSW1hZ2VIZWlnaHQpIHtcbiAgICBidWJibGVJbWFnZUhlaWdodERlcHJlY2F0aW9uKCk7XG5cbiAgICBmaWxsZWRPcHRpb25zLmJ1YmJsZUltYWdlTWF4SGVpZ2h0ID0gb3B0aW9ucy5idWJibGVJbWFnZUhlaWdodDtcbiAgICBmaWxsZWRPcHRpb25zLmJ1YmJsZUltYWdlTWluSGVpZ2h0ID0gb3B0aW9ucy5idWJibGVJbWFnZUhlaWdodDtcblxuICAgIGZpbGxlZE9wdGlvbnMuYnViYmxlSW1hZ2VIZWlnaHQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmZpbGxlZE9wdGlvbnMsXG4gICAgYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQ6IG5vcm1hbGl6ZWRCdWJibGVGcm9tVXNlck51Yk9mZnNldCxcbiAgICBidWJibGVOdWJPZmZzZXQ6IG5vcm1hbGl6ZWRCdWJibGVOdWJPZmZzZXQsXG4gICAgZW1vamlTZXQ6IG5vcm1hbGl6ZWRFbW9qaVNldCxcbiAgICBzY3JvbGxUb0VuZEJ1dHRvbkJlaGF2aW9yOiBwYXRjaGVkU2Nyb2xsVG9FbmRCdXR0b25CZWhhdmlvclxuICB9O1xu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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "botframework-webchat-api",
3
- "version": "4.18.0",
3
+ "version": "4.18.1-main.20240807.dfe788c",
4
4
  "description": "React DOM component of botframework-webchat",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -92,7 +92,7 @@
92
92
  "@types/react": "^16.14.60",
93
93
  "babel-plugin-istanbul": "^6.1.1",
94
94
  "babel-plugin-transform-inline-environment-variables": "^0.4.4",
95
- "cldr-data": "4.18.0",
95
+ "cldr-data": "4.18.1-main.20240807.dfe788c",
96
96
  "concurrently": "^8.2.2",
97
97
  "core-js": "^3.37.0",
98
98
  "cross-env": "^7.0.3",
@@ -103,7 +103,7 @@
103
103
  "typescript": "^5.4.5"
104
104
  },
105
105
  "dependencies": {
106
- "botframework-webchat-core": "4.18.0",
106
+ "botframework-webchat-core": "4.18.1-main.20240807.dfe788c",
107
107
  "globalize": "1.7.0",
108
108
  "math-random": "2.0.1",
109
109
  "prop-types": "15.8.1",
@@ -150,7 +150,32 @@ type StyleOptions = {
150
150
  bubbleFromUserNubSize?: number;
151
151
 
152
152
  bubbleFromUserTextColor?: string;
153
- bubbleImageHeight?: number;
153
+
154
+ /**
155
+ * Specifies the fixed height of the bubble for image, default to unset.
156
+ *
157
+ * @deprecated Use `bubbleImageMaxHeight` and `bubbleImageMinHeight` instead. To mimick behavior before deprecation, set both options to 240px.
158
+ */
159
+ bubbleImageHeight?: number | undefined;
160
+
161
+ /**
162
+ * Specifies the maximum height of the bubble for image, default to 240px.
163
+ *
164
+ * CSS variable: `--webchat__max-height--image-bubble`.
165
+ *
166
+ * New in 4.18.0.
167
+ */
168
+ bubbleImageMaxHeight?: number | undefined;
169
+
170
+ /**
171
+ * Specifies the minimum height of the bubble for image, default to 240px.
172
+ *
173
+ * CSS variable: `--webchat__min-height--image-bubble`.
174
+ *
175
+ * New in 4.18.0.
176
+ */
177
+ bubbleImageMinHeight?: number | undefined;
178
+
154
179
  bubbleMaxWidth?: number;
155
180
  bubbleMinHeight?: number;
156
181
  bubbleMinWidth?: number;
@@ -853,7 +878,9 @@ type StyleOptions = {
853
878
  // 1. Allow developers to set the "bubbleNubOffset" option as "top" (string), but when we normalize them, we will convert it to 0 (number);
854
879
  // 2. Renamed/deprecated options, only the newer option will be kept, the older option will be dropped.
855
880
  // Internally, no code should use the deprecated value except the migration code.
856
- type StrictStyleOptions = Required<Omit<StyleOptions, 'hideScrollToEndButton' | 'newMessagesButtonFontSize'>> & {
881
+ type StrictStyleOptions = Required<
882
+ Omit<StyleOptions, 'bubbleImageHeight' | 'hideScrollToEndButton' | 'newMessagesButtonFontSize'>
883
+ > & {
857
884
  bubbleFromUserNubOffset: number;
858
885
  bubbleNubOffset: number;
859
886
  emojiSet: false | Record<string, string>;
@@ -53,7 +53,9 @@ const DEFAULT_OPTIONS: Required<StyleOptions> = {
53
53
  bubbleFromUserNubOffset: 0,
54
54
  bubbleFromUserNubSize: undefined,
55
55
  bubbleFromUserTextColor: 'Black',
56
- bubbleImageHeight: 240,
56
+ bubbleImageHeight: undefined,
57
+ bubbleImageMaxHeight: 240, // Based on previously default `bubbleImageHeight` of 240px.
58
+ bubbleImageMinHeight: 240, // TODO: Should change to 180px. Based on 320px bubble width showing a 16:9 image, or `320 / (16 / 9)`. 320px bubble width is based on 360px wide of the chat canvas.
57
59
  bubbleMaxWidth: 480, // Based off screen width = 600px
58
60
  bubbleMinHeight: 40,
59
61
  bubbleMinWidth: 250, // min screen width = 300px; Microsoft Edge requires 372px (https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13621468/)
@@ -1,11 +1,23 @@
1
+ import type { DirectLineCardAction, WebChatActivity } from 'botframework-webchat-core';
1
2
  import { useCallback } from 'react';
2
- import type { DirectLineCardAction } from 'botframework-webchat-core';
3
3
 
4
4
  import { useSelector } from './internal/WebChatReduxContext';
5
5
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
6
6
 
7
- export default function useSuggestedActions(): [DirectLineCardAction[], (suggestedActions: never[]) => void] {
8
- const value = useSelector(({ suggestedActions }) => suggestedActions);
7
+ export default function useSuggestedActions(): [
8
+ DirectLineCardAction[],
9
+ (suggestedActions: never[]) => void,
10
+ extras: { activity: WebChatActivity }
11
+ ] {
12
+ const [value, activity] = useSelector(
13
+ ({
14
+ suggestedActions,
15
+ suggestedActionsOriginActivity: { activity }
16
+ }: {
17
+ suggestedActions: readonly DirectLineCardAction[];
18
+ suggestedActionsOriginActivity: { activity: undefined | WebChatActivity };
19
+ }) => [suggestedActions, activity]
20
+ );
9
21
  const { clearSuggestedActions } = useWebChatAPIContext();
10
22
 
11
23
  return [
@@ -19,6 +31,7 @@ export default function useSuggestedActions(): [DirectLineCardAction[], (suggest
19
31
  clearSuggestedActions();
20
32
  },
21
33
  [clearSuggestedActions]
22
- )
34
+ ),
35
+ { activity }
23
36
  ];
24
37
  }
@@ -3,6 +3,10 @@ import { warnOnce } from 'botframework-webchat-core';
3
3
  import defaultStyleOptions from './defaultStyleOptions';
4
4
  import StyleOptions, { StrictStyleOptions } from './StyleOptions';
5
5
 
6
+ const bubbleImageHeightDeprecation = warnOnce(
7
+ '"styleOptions.bubbleImageHeight" has been deprecated. Use "styleOptions.bubbleImageMaxHeight" and "styleOptions.bubbleImageMinHeight" instead. This deprecation migration will be removed on or after 2026-07-05.'
8
+ );
9
+
6
10
  const hideScrollToEndButtonDeprecation = warnOnce(
7
11
  '"styleOptions.hideScrollToEndButton" has been deprecated. To hide scroll to end button, set "scrollToEndBehavior" to false. This deprecation migration will be removed on or after 2023-06-02.'
8
12
  );
@@ -177,6 +181,15 @@ export default function normalizeStyleOptions({
177
181
  options.suggestedActionTextColorOnDisabled || options.suggestedActionDisabledTextColor;
178
182
  }
179
183
 
184
+ if (options.bubbleImageHeight) {
185
+ bubbleImageHeightDeprecation();
186
+
187
+ filledOptions.bubbleImageMaxHeight = options.bubbleImageHeight;
188
+ filledOptions.bubbleImageMinHeight = options.bubbleImageHeight;
189
+
190
+ filledOptions.bubbleImageHeight = undefined;
191
+ }
192
+
180
193
  return {
181
194
  ...filledOptions,
182
195
  bubbleFromUserNubOffset: normalizedBubbleFromUserNubOffset,