botframework-webchat-component
Version:
React component of botframework-webchat
153 lines (152 loc) • 23.1 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createBubbleStyle;
var _mirrorStyle = _interopRequireDefault(require("../mirrorStyle"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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; } /* eslint no-magic-numbers: ["error", { "ignore": [0, 1, 2] }] */
function createBubbleStyle(_ref) {
var bubbleBackground = _ref.bubbleBackground,
bubbleBorderColor = _ref.bubbleBorderColor,
bubbleBorderRadius = _ref.bubbleBorderRadius,
bubbleBorderStyle = _ref.bubbleBorderStyle,
bubbleBorderWidth = _ref.bubbleBorderWidth,
bubbleFromUserBackground = _ref.bubbleFromUserBackground,
bubbleFromUserBorderColor = _ref.bubbleFromUserBorderColor,
bubbleFromUserBorderRadius = _ref.bubbleFromUserBorderRadius,
bubbleFromUserBorderStyle = _ref.bubbleFromUserBorderStyle,
bubbleFromUserBorderWidth = _ref.bubbleFromUserBorderWidth,
bubbleFromUserNubOffset = _ref.bubbleFromUserNubOffset,
bubbleFromUserNubSize = _ref.bubbleFromUserNubSize,
bubbleFromUserTextColor = _ref.bubbleFromUserTextColor,
bubbleMinHeight = _ref.bubbleMinHeight,
bubbleNubOffset = _ref.bubbleNubOffset,
bubbleNubSize = _ref.bubbleNubSize,
bubbleTextColor = _ref.bubbleTextColor,
messageActivityWordBreak = _ref.messageActivityWordBreak,
paddingRegular = _ref.paddingRegular,
transitionDuration = _ref.transitionDuration;
var botNubCornerRadius = typeof bubbleNubOffset === 'number' ? Math.min(bubbleBorderRadius, Math.abs(bubbleNubOffset)) : bubbleBorderRadius;
var userNubCornerRadius = typeof bubbleFromUserNubOffset === 'number' ? Math.min(bubbleFromUserBorderRadius, Math.abs(bubbleFromUserNubOffset)) : bubbleFromUserBorderRadius;
return {
'&.webchat__bubble': _objectSpread({
'& .webchat__bubble__content': {
marginLeft: 0,
marginRight: 0,
transitionDuration: transitionDuration,
transitionProperty: 'margin-left, margin-right',
wordBreak: messageActivityWordBreak
},
'& .webchat__bubble__nub': {
overflow: 'hidden',
// This style is for IE11 because it doesn't respect SVG viewport
position: 'absolute'
},
'& .webchat__bubble__nub-pad': {
transitionDuration: transitionDuration,
transitionProperty: 'width',
width: 0
},
'&.webchat__bubble--hide-nub, &.webchat__bubble--show-nub': {
'& .webchat__bubble__nub-pad': {
width: paddingRegular
}
},
'&.webchat__bubble--rtl .webchat__bubble__nub': {
transform: 'scale(-1, 1)'
},
'&:not(.webchat__bubble--from-user)': _objectSpread(_objectSpread({
'& .webchat__bubble__content': {
background: bubbleBackground,
borderColor: bubbleBorderColor,
borderRadius: bubbleBorderRadius,
borderStyle: bubbleBorderStyle,
borderWidth: bubbleBorderWidth,
color: bubbleTextColor,
minHeight: bubbleMinHeight - bubbleBorderWidth * 2
}
}, typeof bubbleNubSize === 'number' ? {
'& .webchat__bubble__nub': {
height: bubbleNubSize,
width: bubbleNubSize
}
} : {}), {}, {
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__nub': {
bottom: -bubbleNubOffset
},
'&.webchat__bubble--nub-on-top .webchat__bubble__nub': {
top: bubbleNubOffset
},
'& .webchat__bubble__nub-outline': {
fill: bubbleBackground,
stroke: bubbleBorderColor,
strokeWidth: bubbleBorderWidth
}
}),
'&.webchat__bubble--from-user': _objectSpread(_objectSpread({
flexDirection: 'row-reverse',
'& .webchat__bubble__content': {
background: bubbleFromUserBackground,
borderColor: bubbleFromUserBorderColor,
borderRadius: bubbleFromUserBorderRadius,
borderStyle: bubbleFromUserBorderStyle,
borderWidth: bubbleFromUserBorderWidth,
color: bubbleFromUserTextColor,
minHeight: bubbleMinHeight - bubbleFromUserBorderWidth * 2
}
}, typeof bubbleFromUserNubSize === 'number' ? {
'& .webchat__bubble__nub': {
height: bubbleFromUserNubSize,
width: bubbleFromUserNubSize
}
} : {}), {}, {
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__nub': {
bottom: -bubbleFromUserNubOffset
},
'&.webchat__bubble--nub-on-top .webchat__bubble__nub': {
top: bubbleFromUserNubOffset
},
'& .webchat__bubble__nub-outline': {
fill: bubbleFromUserBackground,
stroke: bubbleFromUserBorderColor,
strokeWidth: bubbleFromUserBorderWidth
}
})
}, (0, _mirrorStyle.default)('&.webchat__bubble--rtl', {
'&:not(.webchat__bubble--from-user)': _objectSpread({
'&.webchat__bubble--show-nub': {
// Hide border radius if there is a nub on the top/bottom left corner
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__content': {
borderBottomLeftRadius: botNubCornerRadius
},
'&.webchat__bubble--nub-on-top .webchat__bubble__content': {
borderTopLeftRadius: botNubCornerRadius
}
}
}, typeof bubbleNubSize === 'number' ? {
'& .webchat__bubble__nub': {
left: bubbleBorderWidth - bubbleNubSize + paddingRegular
}
} : {}),
'&.webchat__bubble--from-user': _objectSpread({
'&.webchat__bubble--show-nub': {
// Hide border radius if there is a nub on the top/bottom right corner
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__content': {
borderBottomRightRadius: userNubCornerRadius
},
'&.webchat__bubble--nub-on-top .webchat__bubble__content': {
borderTopRightRadius: userNubCornerRadius
}
}
}, typeof bubbleFromUserNubSize === 'number' ? {
'& .webchat__bubble__nub': {
right: bubbleFromUserBorderWidth - bubbleFromUserNubSize + paddingRegular
}
} : {})
}))
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWlycm9yU3R5bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJjcmVhdGVCdWJibGVTdHlsZSIsIl9yZWYiLCJidWJibGVCYWNrZ3JvdW5kIiwiYnViYmxlQm9yZGVyQ29sb3IiLCJidWJibGVCb3JkZXJSYWRpdXMiLCJidWJibGVCb3JkZXJTdHlsZSIsImJ1YmJsZUJvcmRlcldpZHRoIiwiYnViYmxlRnJvbVVzZXJCYWNrZ3JvdW5kIiwiYnViYmxlRnJvbVVzZXJCb3JkZXJDb2xvciIsImJ1YmJsZUZyb21Vc2VyQm9yZGVyUmFkaXVzIiwiYnViYmxlRnJvbVVzZXJCb3JkZXJTdHlsZSIsImJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGgiLCJidWJibGVGcm9tVXNlck51Yk9mZnNldCIsImJ1YmJsZUZyb21Vc2VyTnViU2l6ZSIsImJ1YmJsZUZyb21Vc2VyVGV4dENvbG9yIiwiYnViYmxlTWluSGVpZ2h0IiwiYnViYmxlTnViT2Zmc2V0IiwiYnViYmxlTnViU2l6ZSIsImJ1YmJsZVRleHRDb2xvciIsIm1lc3NhZ2VBY3Rpdml0eVdvcmRCcmVhayIsInBhZGRpbmdSZWd1bGFyIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiYm90TnViQ29ybmVyUmFkaXVzIiwiTWF0aCIsIm1pbiIsImFicyIsInVzZXJOdWJDb3JuZXJSYWRpdXMiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJ0cmFuc2l0aW9uUHJvcGVydHkiLCJ3b3JkQnJlYWsiLCJvdmVyZmxvdyIsInBvc2l0aW9uIiwid2lkdGgiLCJ0cmFuc2Zvcm0iLCJiYWNrZ3JvdW5kIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTdHlsZSIsImJvcmRlcldpZHRoIiwiY29sb3IiLCJtaW5IZWlnaHQiLCJoZWlnaHQiLCJib3R0b20iLCJ0b3AiLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJmbGV4RGlyZWN0aW9uIiwibWlycm9yU3R5bGUiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIiwiYm9yZGVyVG9wTGVmdFJhZGl1cyIsImxlZnQiLCJib3JkZXJCb3R0b21SaWdodFJhZGl1cyIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwicmlnaHQiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TdHlsZXMvU3R5bGVTZXQvQnViYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAxLCAyXSB9XSAqL1xuaW1wb3J0IHsgU3RyaWN0U3R5bGVPcHRpb25zIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcblxuaW1wb3J0IG1pcnJvclN0eWxlIGZyb20gJy4uL21pcnJvclN0eWxlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnViYmxlU3R5bGUoe1xuICBidWJibGVCYWNrZ3JvdW5kLFxuICBidWJibGVCb3JkZXJDb2xvcixcbiAgYnViYmxlQm9yZGVyUmFkaXVzLFxuICBidWJibGVCb3JkZXJTdHlsZSxcbiAgYnViYmxlQm9yZGVyV2lkdGgsXG4gIGJ1YmJsZUZyb21Vc2VyQmFja2dyb3VuZCxcbiAgYnViYmxlRnJvbVVzZXJCb3JkZXJDb2xvcixcbiAgYnViYmxlRnJvbVVzZXJCb3JkZXJSYWRpdXMsXG4gIGJ1YmJsZUZyb21Vc2VyQm9yZGVyU3R5bGUsXG4gIGJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGgsXG4gIGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0LFxuICBidWJibGVGcm9tVXNlck51YlNpemUsXG4gIGJ1YmJsZUZyb21Vc2VyVGV4dENvbG9yLFxuICBidWJibGVNaW5IZWlnaHQsXG4gIGJ1YmJsZU51Yk9mZnNldCxcbiAgYnViYmxlTnViU2l6ZSxcbiAgYnViYmxlVGV4dENvbG9yLFxuICBtZXNzYWdlQWN0aXZpdHlXb3JkQnJlYWssXG4gIHBhZGRpbmdSZWd1bGFyLFxuICB0cmFuc2l0aW9uRHVyYXRpb25cbn06IFN0cmljdFN0eWxlT3B0aW9ucykge1xuICBjb25zdCBib3ROdWJDb3JuZXJSYWRpdXMgPVxuICAgIHR5cGVvZiBidWJibGVOdWJPZmZzZXQgPT09ICdudW1iZXInID8gTWF0aC5taW4oYnViYmxlQm9yZGVyUmFkaXVzLCBNYXRoLmFicyhidWJibGVOdWJPZmZzZXQpKSA6IGJ1YmJsZUJvcmRlclJhZGl1cztcbiAgY29uc3QgdXNlck51YkNvcm5lclJhZGl1cyA9XG4gICAgdHlwZW9mIGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0ID09PSAnbnVtYmVyJ1xuICAgICAgPyBNYXRoLm1pbihidWJibGVGcm9tVXNlckJvcmRlclJhZGl1cywgTWF0aC5hYnMoYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQpKVxuICAgICAgOiBidWJibGVGcm9tVXNlckJvcmRlclJhZGl1cztcblxuICByZXR1cm4ge1xuICAgICcmLndlYmNoYXRfX2J1YmJsZSc6IHtcbiAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX2NvbnRlbnQnOiB7XG4gICAgICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgICAgIG1hcmdpblJpZ2h0OiAwLFxuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb24sXG4gICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogJ21hcmdpbi1sZWZ0LCBtYXJnaW4tcmlnaHQnLFxuICAgICAgICB3b3JkQnJlYWs6IG1lc3NhZ2VBY3Rpdml0eVdvcmRCcmVha1xuICAgICAgfSxcblxuICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fbnViJzoge1xuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsIC8vIFRoaXMgc3R5bGUgaXMgZm9yIElFMTEgYmVjYXVzZSBpdCBkb2Vzbid0IHJlc3BlY3QgU1ZHIHZpZXdwb3J0XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnXG4gICAgICB9LFxuXG4gICAgICAnJiAud2ViY2hhdF9fYnViYmxlX19udWItcGFkJzoge1xuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb24sXG4gICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogJ3dpZHRoJyxcbiAgICAgICAgd2lkdGg6IDBcbiAgICAgIH0sXG5cbiAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0taGlkZS1udWIsICYud2ViY2hhdF9fYnViYmxlLS1zaG93LW51Yic6IHtcbiAgICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fbnViLXBhZCc6IHtcbiAgICAgICAgICB3aWR0aDogcGFkZGluZ1JlZ3VsYXJcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJyYud2ViY2hhdF9fYnViYmxlLS1ydGwgLndlYmNoYXRfX2J1YmJsZV9fbnViJzoge1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgtMSwgMSknXG4gICAgICB9LFxuXG4gICAgICAnJjpub3QoLndlYmNoYXRfX2J1YmJsZS0tZnJvbS11c2VyKSc6IHtcbiAgICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fY29udGVudCc6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBidWJibGVCYWNrZ3JvdW5kLFxuICAgICAgICAgIGJvcmRlckNvbG9yOiBidWJibGVCb3JkZXJDb2xvcixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IGJ1YmJsZUJvcmRlclJhZGl1cyxcbiAgICAgICAgICBib3JkZXJTdHlsZTogYnViYmxlQm9yZGVyU3R5bGUsXG4gICAgICAgICAgYm9yZGVyV2lkdGg6IGJ1YmJsZUJvcmRlcldpZHRoLFxuICAgICAgICAgIGNvbG9yOiBidWJibGVUZXh0Q29sb3IsXG4gICAgICAgICAgbWluSGVpZ2h0OiBidWJibGVNaW5IZWlnaHQgLSBidWJibGVCb3JkZXJXaWR0aCAqIDJcbiAgICAgICAgfSxcblxuICAgICAgICAuLi4odHlwZW9mIGJ1YmJsZU51YlNpemUgPT09ICdudW1iZXInXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yic6IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGJ1YmJsZU51YlNpemUsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGJ1YmJsZU51YlNpemVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuXG4gICAgICAgICcmOm5vdCgud2ViY2hhdF9fYnViYmxlLS1udWItb24tdG9wKSAud2ViY2hhdF9fYnViYmxlX19udWInOiB7XG4gICAgICAgICAgYm90dG9tOiAtYnViYmxlTnViT2Zmc2V0XG4gICAgICAgIH0sXG5cbiAgICAgICAgJyYud2ViY2hhdF9fYnViYmxlLS1udWItb24tdG9wIC53ZWJjaGF0X19idWJibGVfX251Yic6IHtcbiAgICAgICAgICB0b3A6IGJ1YmJsZU51Yk9mZnNldFxuICAgICAgICB9LFxuXG4gICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yi1vdXRsaW5lJzoge1xuICAgICAgICAgIGZpbGw6IGJ1YmJsZUJhY2tncm91bmQsXG4gICAgICAgICAgc3Ryb2tlOiBidWJibGVCb3JkZXJDb2xvcixcbiAgICAgICAgICBzdHJva2VXaWR0aDogYnViYmxlQm9yZGVyV2lkdGhcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJyYud2ViY2hhdF9fYnViYmxlLS1mcm9tLXVzZXInOiB7XG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3ctcmV2ZXJzZScsXG5cbiAgICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fY29udGVudCc6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBidWJibGVGcm9tVXNlckJhY2tncm91bmQsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6IGJ1YmJsZUZyb21Vc2VyQm9yZGVyQ29sb3IsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBidWJibGVGcm9tVXNlckJvcmRlclJhZGl1cyxcbiAgICAgICAgICBib3JkZXJTdHlsZTogYnViYmxlRnJvbVVzZXJCb3JkZXJTdHlsZSxcbiAgICAgICAgICBib3JkZXJXaWR0aDogYnViYmxlRnJvbVVzZXJCb3JkZXJXaWR0aCxcbiAgICAgICAgICBjb2xvcjogYnViYmxlRnJvbVVzZXJUZXh0Q29sb3IsXG4gICAgICAgICAgbWluSGVpZ2h0OiBidWJibGVNaW5IZWlnaHQgLSBidWJibGVGcm9tVXNlckJvcmRlcldpZHRoICogMlxuICAgICAgICB9LFxuXG4gICAgICAgIC4uLih0eXBlb2YgYnViYmxlRnJvbVVzZXJOdWJTaXplID09PSAnbnVtYmVyJ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAnJiAud2ViY2hhdF9fYnViYmxlX19udWInOiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBidWJibGVGcm9tVXNlck51YlNpemUsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGJ1YmJsZUZyb21Vc2VyTnViU2l6ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG5cbiAgICAgICAgJyY6bm90KC53ZWJjaGF0X19idWJibGUtLW51Yi1vbi10b3ApIC53ZWJjaGF0X19idWJibGVfX251Yic6IHtcbiAgICAgICAgICBib3R0b206IC1idWJibGVGcm9tVXNlck51Yk9mZnNldFxuICAgICAgICB9LFxuXG4gICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCAud2ViY2hhdF9fYnViYmxlX19udWInOiB7XG4gICAgICAgICAgdG9wOiBidWJibGVGcm9tVXNlck51Yk9mZnNldFxuICAgICAgICB9LFxuXG4gICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yi1vdXRsaW5lJzoge1xuICAgICAgICAgIGZpbGw6IGJ1YmJsZUZyb21Vc2VyQmFja2dyb3VuZCxcbiAgICAgICAgICBzdHJva2U6IGJ1YmJsZUZyb21Vc2VyQm9yZGVyQ29sb3IsXG4gICAgICAgICAgc3Ryb2tlV2lkdGg6IGJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGhcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgLi4ubWlycm9yU3R5bGUoJyYud2ViY2hhdF9fYnViYmxlLS1ydGwnLCB7XG4gICAgICAgICcmOm5vdCgud2ViY2hhdF9fYnViYmxlLS1mcm9tLXVzZXIpJzoge1xuICAgICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tc2hvdy1udWInOiB7XG4gICAgICAgICAgICAvLyBIaWRlIGJvcmRlciByYWRpdXMgaWYgdGhlcmUgaXMgYSBudWIgb24gdGhlIHRvcC9ib3R0b20gbGVmdCBjb3JuZXJcbiAgICAgICAgICAgICcmOm5vdCgud2ViY2hhdF9fYnViYmxlLS1udWItb24tdG9wKSAud2ViY2hhdF9fYnViYmxlX19jb250ZW50Jzoge1xuICAgICAgICAgICAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiBib3ROdWJDb3JuZXJSYWRpdXNcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCAud2ViY2hhdF9fYnViYmxlX19jb250ZW50Jzoge1xuICAgICAgICAgICAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiBib3ROdWJDb3JuZXJSYWRpdXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgLi4uKHR5cGVvZiBidWJibGVOdWJTaXplID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fbnViJzogeyBsZWZ0OiBidWJibGVCb3JkZXJXaWR0aCAtIGJ1YmJsZU51YlNpemUgKyBwYWRkaW5nUmVndWxhciB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge30pXG4gICAgICAgIH0sXG5cbiAgICAgICAgJyYud2ViY2hhdF9fYnViYmxlLS1mcm9tLXVzZXInOiB7XG4gICAgICAgICAgJyYud2ViY2hhdF9fYnViYmxlLS1zaG93LW51Yic6IHtcbiAgICAgICAgICAgIC8vIEhpZGUgYm9yZGVyIHJhZGl1cyBpZiB0aGVyZSBpcyBhIG51YiBvbiB0aGUgdG9wL2JvdHRvbSByaWdodCBjb3JuZXJcbiAgICAgICAgICAgICcmOm5vdCgud2ViY2hhdF9fYnViYmxlLS1udWItb24tdG9wKSAud2ViY2hhdF9fYnViYmxlX19jb250ZW50Jzoge1xuICAgICAgICAgICAgICBib3JkZXJCb3R0b21SaWdodFJhZGl1czogdXNlck51YkNvcm5lclJhZGl1c1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgJyYud2ViY2hhdF9fYnViYmxlLS1udWItb24tdG9wIC53ZWJjaGF0X19idWJibGVfX2NvbnRlbnQnOiB7XG4gICAgICAgICAgICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiB1c2VyTnViQ29ybmVyUmFkaXVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIC4uLih0eXBlb2YgYnViYmxlRnJvbVVzZXJOdWJTaXplID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fbnViJzogeyByaWdodDogYnViYmxlRnJvbVVzZXJCb3JkZXJXaWR0aCAtIGJ1YmJsZUZyb21Vc2VyTnViU2l6ZSArIHBhZGRpbmdSZWd1bGFyIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7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
;