UNPKG

matrix-react-sdk

Version:
45 lines (42 loc) 6.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseGrouper = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); /* Copyright 2024 New Vector Ltd. Copyright 2023 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /* Grouper classes determine when events can be grouped together in a summary. * Groupers should have the following methods: * - canStartGroup (static): determines if a new group should be started with the * given event * - shouldGroup: determines if the given event should be added to an existing group * - add: adds an event to an existing group (should only be called if shouldGroup * return true) * - getTiles: returns the tiles that represent the group * - getNewPrevEvent: returns the event that should be used as the new prevEvent * when determining things such as whether a date separator is necessary */ class BaseGrouper { constructor(panel, firstEventAndShouldShow, prevEvent, lastShownEvent, nextEvent, nextEventTile) { (0, _defineProperty2.default)(this, "events", []); // events that we include in the group but then eject out and place above the group. (0, _defineProperty2.default)(this, "ejectedEvents", []); (0, _defineProperty2.default)(this, "readMarker", void 0); this.panel = panel; this.firstEventAndShouldShow = firstEventAndShouldShow; this.prevEvent = prevEvent; this.lastShownEvent = lastShownEvent; this.nextEvent = nextEvent; this.nextEventTile = nextEventTile; this.readMarker = panel.readMarkerForEvent(firstEventAndShouldShow.event.getId(), firstEventAndShouldShow.event === lastShownEvent); } } exports.BaseGrouper = BaseGrouper; (0, _defineProperty2.default)(BaseGrouper, "canStartGroup", (_panel, _ev) => true); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlR3JvdXBlciIsImNvbnN0cnVjdG9yIiwicGFuZWwiLCJmaXJzdEV2ZW50QW5kU2hvdWxkU2hvdyIsInByZXZFdmVudCIsImxhc3RTaG93bkV2ZW50IiwibmV4dEV2ZW50IiwibmV4dEV2ZW50VGlsZSIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwicmVhZE1hcmtlciIsInJlYWRNYXJrZXJGb3JFdmVudCIsImV2ZW50IiwiZ2V0SWQiLCJleHBvcnRzIiwiX3BhbmVsIiwiX2V2Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RydWN0dXJlcy9ncm91cGVyL0Jhc2VHcm91cGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgTWF0cml4RXZlbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCBNZXNzYWdlUGFuZWwsIHsgV3JhcHBlZEV2ZW50IH0gZnJvbSBcIi4uL01lc3NhZ2VQYW5lbFwiO1xuXG4vKiBHcm91cGVyIGNsYXNzZXMgZGV0ZXJtaW5lIHdoZW4gZXZlbnRzIGNhbiBiZSBncm91cGVkIHRvZ2V0aGVyIGluIGEgc3VtbWFyeS5cbiAqIEdyb3VwZXJzIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczpcbiAqIC0gY2FuU3RhcnRHcm91cCAoc3RhdGljKTogZGV0ZXJtaW5lcyBpZiBhIG5ldyBncm91cCBzaG91bGQgYmUgc3RhcnRlZCB3aXRoIHRoZVxuICogICBnaXZlbiBldmVudFxuICogLSBzaG91bGRHcm91cDogZGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gZXZlbnQgc2hvdWxkIGJlIGFkZGVkIHRvIGFuIGV4aXN0aW5nIGdyb3VwXG4gKiAtIGFkZDogYWRkcyBhbiBldmVudCB0byBhbiBleGlzdGluZyBncm91cCAoc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIHNob3VsZEdyb3VwXG4gKiAgIHJldHVybiB0cnVlKVxuICogLSBnZXRUaWxlczogcmV0dXJucyB0aGUgdGlsZXMgdGhhdCByZXByZXNlbnQgdGhlIGdyb3VwXG4gKiAtIGdldE5ld1ByZXZFdmVudDogcmV0dXJucyB0aGUgZXZlbnQgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgbmV3IHByZXZFdmVudFxuICogICB3aGVuIGRldGVybWluaW5nIHRoaW5ncyBzdWNoIGFzIHdoZXRoZXIgYSBkYXRlIHNlcGFyYXRvciBpcyBuZWNlc3NhcnlcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VHcm91cGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGNhblN0YXJ0R3JvdXAgPSAoX3BhbmVsOiBNZXNzYWdlUGFuZWwsIF9ldjogV3JhcHBlZEV2ZW50KTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgcHVibGljIGV2ZW50czogV3JhcHBlZEV2ZW50W10gPSBbXTtcbiAgICAvLyBldmVudHMgdGhhdCB3ZSBpbmNsdWRlIGluIHRoZSBncm91cCBidXQgdGhlbiBlamVjdCBvdXQgYW5kIHBsYWNlIGFib3ZlIHRoZSBncm91cC5cbiAgICBwdWJsaWMgZWplY3RlZEV2ZW50czogV3JhcHBlZEV2ZW50W10gPSBbXTtcbiAgICBwdWJsaWMgcmVhZE1hcmtlcjogUmVhY3ROb2RlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcGFuZWw6IE1lc3NhZ2VQYW5lbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGZpcnN0RXZlbnRBbmRTaG91bGRTaG93OiBXcmFwcGVkRXZlbnQsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwcmV2RXZlbnQ6IE1hdHJpeEV2ZW50IHwgbnVsbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxhc3RTaG93bkV2ZW50OiBNYXRyaXhFdmVudCB8IHVuZGVmaW5lZCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG5leHRFdmVudDogV3JhcHBlZEV2ZW50IHwgbnVsbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG5leHRFdmVudFRpbGU/OiBNYXRyaXhFdmVudCB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmVhZE1hcmtlciA9IHBhbmVsLnJlYWRNYXJrZXJGb3JFdmVudChcbiAgICAgICAgICAgIGZpcnN0RXZlbnRBbmRTaG91bGRTaG93LmV2ZW50LmdldElkKCkhLFxuICAgICAgICAgICAgZmlyc3RFdmVudEFuZFNob3VsZFNob3cuZXZlbnQgPT09IGxhc3RTaG93bkV2ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG91bGRHcm91cChldjogV3JhcHBlZEV2ZW50KTogYm9vbGVhbjtcbiAgICBwdWJsaWMgYWJzdHJhY3QgYWRkKGV2OiBXcmFwcGVkRXZlbnQpOiB2b2lkO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRUaWxlcygpOiBSZWFjdE5vZGVbXTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TmV3UHJldkV2ZW50KCk6IE1hdHJpeEV2ZW50O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFlQSxXQUFXLENBQUM7RUFRdkJDLFdBQVdBLENBQ0VDLEtBQW1CLEVBQ25CQyx1QkFBcUMsRUFDckNDLFNBQTZCLEVBQzdCQyxjQUF1QyxFQUN2Q0MsU0FBOEIsRUFDOUJDLGFBQWtDLEVBQ3BEO0lBQUEsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxrQkFaOEIsRUFBRTtJQUNsQztJQUFBLElBQUFELGdCQUFBLENBQUFDLE9BQUEseUJBQ3VDLEVBQUU7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsS0FJckJQLEtBQW1CLEdBQW5CQSxLQUFtQjtJQUFBLEtBQ25CQyx1QkFBcUMsR0FBckNBLHVCQUFxQztJQUFBLEtBQ3JDQyxTQUE2QixHQUE3QkEsU0FBNkI7SUFBQSxLQUM3QkMsY0FBdUMsR0FBdkNBLGNBQXVDO0lBQUEsS0FDdkNDLFNBQThCLEdBQTlCQSxTQUE4QjtJQUFBLEtBQzlCQyxhQUFrQyxHQUFsQ0EsYUFBa0M7SUFFbEQsSUFBSSxDQUFDRyxVQUFVLEdBQUdSLEtBQUssQ0FBQ1Msa0JBQWtCLENBQ3RDUix1QkFBdUIsQ0FBQ1MsS0FBSyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxFQUNyQ1YsdUJBQXVCLENBQUNTLEtBQUssS0FBS1AsY0FDdEMsQ0FBQztFQUNMO0FBTUo7QUFBQ1MsT0FBQSxDQUFBZCxXQUFBLEdBQUFBLFdBQUE7QUFBQSxJQUFBUSxnQkFBQSxDQUFBQyxPQUFBLEVBMUJxQlQsV0FBVyxtQkFDQyxDQUFDZSxNQUFvQixFQUFFQyxHQUFpQixLQUFjLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=