UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

34 lines 3.69 kB
/** * Wrapper for a scheduled event */ export class QueuedEvent { _isRelevant; _execute; _revert; /** * @param _isRelevant a method that determines if the event is still relevant at the time of its execution. * Returns `true` if the event is still relevant (e.g. the set field is still editable). Returns `false` otherwise. * @param _execute executes the scheduled event and then performs the provided after action * @param _revert reverts the scheduled event and then performs the provided after action */ constructor(_isRelevant, _execute, _revert = (a) => { a.resolve(true); }) { this._isRelevant = _isRelevant; this._execute = _execute; this._revert = _revert; } /** * Executes the event if it is still relevant, or reverts it if it is not. * Performs the provided after action, once the event is resolved. */ resolve(afterAction) { if (this._isRelevant()) { this._execute(afterAction); } else { this._revert(afterAction); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVkLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9ldmVudC1xdWV1ZS9tb2RlbC9xdWV1ZWQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQVFFO0lBQ0E7SUFDQTtJQVJ0Qjs7Ozs7T0FLRztJQUNILFlBQXNCLFdBQTBCLEVBQzFCLFFBQTRDLEVBQzVDLFVBQThDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDMUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO1FBSlMsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0M7UUFDNUMsWUFBTyxHQUFQLE9BQU8sQ0FFaEI7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTyxDQUFDLFdBQXdCO1FBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDN0I7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQWN0aW9ufSBmcm9tICcuLi8uLi91dGlsaXR5L2NhbGwtY2hhaW4vYWZ0ZXItYWN0aW9uJztcblxuLyoqXG4gKiBXcmFwcGVyIGZvciBhIHNjaGVkdWxlZCBldmVudFxuICovXG5leHBvcnQgY2xhc3MgUXVldWVkRXZlbnQge1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIF9pc1JlbGV2YW50IGEgbWV0aG9kIHRoYXQgZGV0ZXJtaW5lcyBpZiB0aGUgZXZlbnQgaXMgc3RpbGwgcmVsZXZhbnQgYXQgdGhlIHRpbWUgb2YgaXRzIGV4ZWN1dGlvbi5cbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZXZlbnQgaXMgc3RpbGwgcmVsZXZhbnQgKGUuZy4gdGhlIHNldCBmaWVsZCBpcyBzdGlsbCBlZGl0YWJsZSkuIFJldHVybnMgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICogQHBhcmFtIF9leGVjdXRlIGV4ZWN1dGVzIHRoZSBzY2hlZHVsZWQgZXZlbnQgYW5kIHRoZW4gcGVyZm9ybXMgdGhlIHByb3ZpZGVkIGFmdGVyIGFjdGlvblxuICAgICAqIEBwYXJhbSBfcmV2ZXJ0IHJldmVydHMgdGhlIHNjaGVkdWxlZCBldmVudCBhbmQgdGhlbiBwZXJmb3JtcyB0aGUgcHJvdmlkZWQgYWZ0ZXIgYWN0aW9uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9pc1JlbGV2YW50OiAoKSA9PiBib29sZWFuLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZXhlY3V0ZTogKGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbikgPT4gdm9pZCxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3JldmVydDogKGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbikgPT4gdm9pZCA9IChhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGEucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgdGhlIGV2ZW50IGlmIGl0IGlzIHN0aWxsIHJlbGV2YW50LCBvciByZXZlcnRzIGl0IGlmIGl0IGlzIG5vdC5cbiAgICAgKiBQZXJmb3JtcyB0aGUgcHJvdmlkZWQgYWZ0ZXIgYWN0aW9uLCBvbmNlIHRoZSBldmVudCBpcyByZXNvbHZlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzb2x2ZShhZnRlckFjdGlvbjogQWZ0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzUmVsZXZhbnQoKSkge1xuICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZShhZnRlckFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZXZlcnQoYWZ0ZXJBY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19