botframework-webchat-component
Version:
React component of botframework-webchat
69 lines (59 loc) • 6.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createDefaultGroupActivityMiddleware;
var _botframeworkWebchatCore = require("botframework-webchat-core");
var SENT = _botframeworkWebchatCore.Constants.ActivityClientState.SENT;
function bin(items, grouping) {
var lastBin;
var bins = [];
var lastItem;
items.forEach(function (item) {
if (lastItem && grouping(lastItem, item)) {
lastBin.push(item);
} else {
lastBin = [item];
bins.push(lastBin);
}
lastItem = item;
});
return bins;
}
function sending(activity) {
return activity.from.role === 'user' && activity.channelData && activity.channelData.state !== SENT;
}
function shouldGroupTimestamp(activityX, activityY, groupTimestamp) {
if (groupTimestamp === false) {
// Hide timestamp for all activities.
return true;
} else if (activityX && activityY) {
if (sending(activityX) !== sending(activityY)) {
return false;
}
groupTimestamp = typeof groupTimestamp === 'number' ? groupTimestamp : Infinity;
var timeX = new Date(activityX.timestamp).getTime();
var timeY = new Date(activityY.timestamp).getTime();
return Math.abs(timeX - timeY) <= groupTimestamp;
}
return false;
}
function createDefaultGroupActivityMiddleware(_ref) {
var groupTimestamp = _ref.groupTimestamp;
return function () {
return function () {
return function (_ref2) {
var activities = _ref2.activities;
return {
sender: bin(activities, function (x, y) {
return x.from.role === y.from.role;
}),
status: bin(activities, function (x, y) {
return shouldGroupTimestamp(x, y, groupTimestamp);
})
};
};
};
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9NaWRkbGV3YXJlL0dyb3VwQWN0aXZpdGllcy9jcmVhdGVDb3JlTWlkZGxld2FyZS5qcyJdLCJuYW1lcyI6WyJTRU5UIiwiQ29uc3RhbnRzIiwiQWN0aXZpdHlDbGllbnRTdGF0ZSIsImJpbiIsIml0ZW1zIiwiZ3JvdXBpbmciLCJsYXN0QmluIiwiYmlucyIsImxhc3RJdGVtIiwiZm9yRWFjaCIsIml0ZW0iLCJwdXNoIiwic2VuZGluZyIsImFjdGl2aXR5IiwiZnJvbSIsInJvbGUiLCJjaGFubmVsRGF0YSIsInN0YXRlIiwic2hvdWxkR3JvdXBUaW1lc3RhbXAiLCJhY3Rpdml0eVgiLCJhY3Rpdml0eVkiLCJncm91cFRpbWVzdGFtcCIsIkluZmluaXR5IiwidGltZVgiLCJEYXRlIiwidGltZXN0YW1wIiwiZ2V0VGltZSIsInRpbWVZIiwiTWF0aCIsImFicyIsImNyZWF0ZURlZmF1bHRHcm91cEFjdGl2aXR5TWlkZGxld2FyZSIsImFjdGl2aXRpZXMiLCJzZW5kZXIiLCJ4IiwieSIsInN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztJQUd5QkEsSSxHQUNyQkMsa0MsQ0FERkMsbUIsQ0FBdUJGLEk7O0FBR3pCLFNBQVNHLEdBQVQsQ0FBYUMsS0FBYixFQUFvQkMsUUFBcEIsRUFBOEI7QUFDNUIsTUFBSUMsT0FBSjtBQUNBLE1BQU1DLElBQUksR0FBRyxFQUFiO0FBQ0EsTUFBSUMsUUFBSjtBQUVBSixFQUFBQSxLQUFLLENBQUNLLE9BQU4sQ0FBYyxVQUFBQyxJQUFJLEVBQUk7QUFDcEIsUUFBSUYsUUFBUSxJQUFJSCxRQUFRLENBQUNHLFFBQUQsRUFBV0UsSUFBWCxDQUF4QixFQUEwQztBQUN4Q0osTUFBQUEsT0FBTyxDQUFDSyxJQUFSLENBQWFELElBQWI7QUFDRCxLQUZELE1BRU87QUFDTEosTUFBQUEsT0FBTyxHQUFHLENBQUNJLElBQUQsQ0FBVjtBQUNBSCxNQUFBQSxJQUFJLENBQUNJLElBQUwsQ0FBVUwsT0FBVjtBQUNEOztBQUVERSxJQUFBQSxRQUFRLEdBQUdFLElBQVg7QUFDRCxHQVREO0FBV0EsU0FBT0gsSUFBUDtBQUNEOztBQUVELFNBQVNLLE9BQVQsQ0FBaUJDLFFBQWpCLEVBQTJCO0FBQ3pCLFNBQU9BLFFBQVEsQ0FBQ0MsSUFBVCxDQUFjQyxJQUFkLEtBQXVCLE1BQXZCLElBQWlDRixRQUFRLENBQUNHLFdBQTFDLElBQXlESCxRQUFRLENBQUNHLFdBQVQsQ0FBcUJDLEtBQXJCLEtBQStCakIsSUFBL0Y7QUFDRDs7QUFFRCxTQUFTa0Isb0JBQVQsQ0FBOEJDLFNBQTlCLEVBQXlDQyxTQUF6QyxFQUFvREMsY0FBcEQsRUFBb0U7QUFDbEUsTUFBSUEsY0FBYyxLQUFLLEtBQXZCLEVBQThCO0FBQzVCO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FIRCxNQUdPLElBQUlGLFNBQVMsSUFBSUMsU0FBakIsRUFBNEI7QUFDakMsUUFBSVIsT0FBTyxDQUFDTyxTQUFELENBQVAsS0FBdUJQLE9BQU8sQ0FBQ1EsU0FBRCxDQUFsQyxFQUErQztBQUM3QyxhQUFPLEtBQVA7QUFDRDs7QUFFREMsSUFBQUEsY0FBYyxHQUFHLE9BQU9BLGNBQVAsS0FBMEIsUUFBMUIsR0FBcUNBLGNBQXJDLEdBQXNEQyxRQUF2RTtBQUVBLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxJQUFKLENBQVNMLFNBQVMsQ0FBQ00sU0FBbkIsRUFBOEJDLE9BQTlCLEVBQWQ7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUgsSUFBSixDQUFTSixTQUFTLENBQUNLLFNBQW5CLEVBQThCQyxPQUE5QixFQUFkO0FBRUEsV0FBT0UsSUFBSSxDQUFDQyxHQUFMLENBQVNOLEtBQUssR0FBR0ksS0FBakIsS0FBMkJOLGNBQWxDO0FBQ0Q7O0FBRUQsU0FBTyxLQUFQO0FBQ0Q7O0FBRWMsU0FBU1Msb0NBQVQsT0FBa0U7QUFBQSxNQUFsQlQsY0FBa0IsUUFBbEJBLGNBQWtCO0FBQy9FLFNBQU87QUFBQSxXQUFNO0FBQUEsYUFBTTtBQUFBLFlBQUdVLFVBQUgsU0FBR0EsVUFBSDtBQUFBLGVBQXFCO0FBQ3RDQyxVQUFBQSxNQUFNLEVBQUU3QixHQUFHLENBQUM0QixVQUFELEVBQWEsVUFBQ0UsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsbUJBQVVELENBQUMsQ0FBQ25CLElBQUYsQ0FBT0MsSUFBUCxLQUFnQm1CLENBQUMsQ0FBQ3BCLElBQUYsQ0FBT0MsSUFBakM7QUFBQSxXQUFiLENBRDJCO0FBRXRDb0IsVUFBQUEsTUFBTSxFQUFFaEMsR0FBRyxDQUFDNEIsVUFBRCxFQUFhLFVBQUNFLENBQUQsRUFBSUMsQ0FBSjtBQUFBLG1CQUFVaEIsb0JBQW9CLENBQUNlLENBQUQsRUFBSUMsQ0FBSixFQUFPYixjQUFQLENBQTlCO0FBQUEsV0FBYjtBQUYyQixTQUFyQjtBQUFBLE9BQU47QUFBQSxLQUFOO0FBQUEsR0FBUDtBQUlEIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuY29uc3Qge1xuICBBY3Rpdml0eUNsaWVudFN0YXRlOiB7IFNFTlQgfVxufSA9IENvbnN0YW50cztcblxuZnVuY3Rpb24gYmluKGl0ZW1zLCBncm91cGluZykge1xuICBsZXQgbGFzdEJpbjtcbiAgY29uc3QgYmlucyA9IFtdO1xuICBsZXQgbGFzdEl0ZW07XG5cbiAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICBpZiAobGFzdEl0ZW0gJiYgZ3JvdXBpbmcobGFzdEl0ZW0sIGl0ZW0pKSB7XG4gICAgICBsYXN0QmluLnB1c2goaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhc3RCaW4gPSBbaXRlbV07XG4gICAgICBiaW5zLnB1c2gobGFzdEJpbik7XG4gICAgfVxuXG4gICAgbGFzdEl0ZW0gPSBpdGVtO1xuICB9KTtcblxuICByZXR1cm4gYmlucztcbn1cblxuZnVuY3Rpb24gc2VuZGluZyhhY3Rpdml0eSkge1xuICByZXR1cm4gYWN0aXZpdHkuZnJvbS5yb2xlID09PSAndXNlcicgJiYgYWN0aXZpdHkuY2hhbm5lbERhdGEgJiYgYWN0aXZpdHkuY2hhbm5lbERhdGEuc3RhdGUgIT09IFNFTlQ7XG59XG5cbmZ1bmN0aW9uIHNob3VsZEdyb3VwVGltZXN0YW1wKGFjdGl2aXR5WCwgYWN0aXZpdHlZLCBncm91cFRpbWVzdGFtcCkge1xuICBpZiAoZ3JvdXBUaW1lc3RhbXAgPT09IGZhbHNlKSB7XG4gICAgLy8gSGlkZSB0aW1lc3RhbXAgZm9yIGFsbCBhY3Rpdml0aWVzLlxuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGFjdGl2aXR5WCAmJiBhY3Rpdml0eVkpIHtcbiAgICBpZiAoc2VuZGluZyhhY3Rpdml0eVgpICE9PSBzZW5kaW5nKGFjdGl2aXR5WSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBncm91cFRpbWVzdGFtcCA9IHR5cGVvZiBncm91cFRpbWVzdGFtcCA9PT0gJ251bWJlcicgPyBncm91cFRpbWVzdGFtcCA6IEluZmluaXR5O1xuXG4gICAgY29uc3QgdGltZVggPSBuZXcgRGF0ZShhY3Rpdml0eVgudGltZXN0YW1wKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgdGltZVkgPSBuZXcgRGF0ZShhY3Rpdml0eVkudGltZXN0YW1wKS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gTWF0aC5hYnModGltZVggLSB0aW1lWSkgPD0gZ3JvdXBUaW1lc3RhbXA7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRHcm91cEFjdGl2aXR5TWlkZGxld2FyZSh7IGdyb3VwVGltZXN0YW1wIH0pIHtcbiAgcmV0dXJuICgpID0+ICgpID0+ICh7IGFjdGl2aXRpZXMgfSkgPT4gKHtcbiAgICBzZW5kZXI6IGJpbihhY3Rpdml0aWVzLCAoeCwgeSkgPT4geC5mcm9tLnJvbGUgPT09IHkuZnJvbS5yb2xlKSxcbiAgICBzdGF0dXM6IGJpbihhY3Rpdml0aWVzLCAoeCwgeSkgPT4gc2hvdWxkR3JvdXBUaW1lc3RhbXAoeCwgeSwgZ3JvdXBUaW1lc3RhbXApKVxuICB9KTtcbn1cbiJdfQ==
;