UNPKG

botframework-webchat-component

Version:
69 lines (59 loc) 6.74 kB
"use strict"; 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==