UNPKG

sb-element

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.1. It is a component library constructed around the SCSS library [Sb-Theming](https://github.com/SeverinBuchser/SbTheming) and supports [Angular Schematics]

67 lines 5.53 kB
/** * A queue class with basic queue operations. * * The queue class handles dequeuing and enqueuing of elements, as well as * length management. The [dequeue]{@link #dequeue} method checks for an empty * queue, but does not produce an error if the queue is empty. Instead it * returns `undefinded`. */ export class Queue { constructor() { /** * The actual queue, which holds the elements. */ this.queue = new Array(); } /** * Enqueues an element into the `Queue`. * * It appends an element to the [queue]{@link #queue} `Array`. * * @param{T} value The element to add to the `Queue` */ enqueue(value) { this.queue.push(value); } /** * Removes (dequeues) the next element in the `Queue`. * * The next element is the first element of the [queue]{@link #queue} `Array`. * The method therefore gets the first element of this `Array` and shifts the * `Array` by one to the left. * * If the `Queue` is empty (the [queue]{@link #queue} `Array` is empty), the * method will return `undefined` instead of throwing an error. * * @returns{T | undefined} The first element in the queue or `undefined` if the * `Queue` is empty */ dequeue() { if (!this.isEmpty()) { return this.queue.shift(); } else return undefined; } /** * Gets the current length of the `Queue`. * * The method returns the length of the [queue]{@link #queue} `Array`. * * @returns{number} The length of the `Queue` */ get length() { return this.queue.length; } /** * Checks if the `Queue` is empty or not. * * The `Queue` if the [queue]{@link #queue} `Array` is empty. * * @returns{boolean} `true` if the queue is empty or `false` otherwise */ isEmpty() { return this.queue.length == 0; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zYi1lbGVtZW50L3NyYy9saWIvbW9kZWxzL3F1ZXVlL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sS0FBSztJQUFsQjtRQUNFOztXQUVHO1FBQ0ssVUFBSyxHQUFhLElBQUksS0FBSyxFQUFLLENBQUM7SUFzRDNDLENBQUM7SUFwREM7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFDLEtBQVE7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMzQjs7WUFBTSxPQUFPLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBxdWV1ZSBjbGFzcyB3aXRoIGJhc2ljIHF1ZXVlIG9wZXJhdGlvbnMuXG4gKlxuICogVGhlIHF1ZXVlIGNsYXNzIGhhbmRsZXMgZGVxdWV1aW5nIGFuZCBlbnF1ZXVpbmcgb2YgZWxlbWVudHMsIGFzIHdlbGwgYXNcbiAqIGxlbmd0aCBtYW5hZ2VtZW50LiBUaGUgW2RlcXVldWVde0BsaW5rICNkZXF1ZXVlfSBtZXRob2QgY2hlY2tzIGZvciBhbiBlbXB0eVxuICogcXVldWUsIGJ1dCBkb2VzIG5vdCBwcm9kdWNlIGFuIGVycm9yIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS4gSW5zdGVhZCBpdFxuICogcmV0dXJucyBgdW5kZWZpbmRlZGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZTxUPiB7XG4gIC8qKlxuICAgKiBUaGUgYWN0dWFsIHF1ZXVlLCB3aGljaCBob2xkcyB0aGUgZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIHF1ZXVlOiBBcnJheTxUPiA9IG5ldyBBcnJheTxUPigpO1xuXG4gIC8qKlxuICAgKiBFbnF1ZXVlcyBhbiBlbGVtZW50IGludG8gdGhlIGBRdWV1ZWAuXG4gICAqXG4gICAqIEl0IGFwcGVuZHMgYW4gZWxlbWVudCB0byB0aGUgW3F1ZXVlXXtAbGluayAjcXVldWV9IGBBcnJheWAuXG4gICAqXG4gICAqICBAcGFyYW17VH0gdmFsdWUgVGhlIGVsZW1lbnQgdG8gYWRkIHRvIHRoZSBgUXVldWVgXG4gICAqL1xuICBwdWJsaWMgZW5xdWV1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMucXVldWUucHVzaCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyAoZGVxdWV1ZXMpIHRoZSBuZXh0IGVsZW1lbnQgaW4gdGhlIGBRdWV1ZWAuXG4gICAqXG4gICAqIFRoZSBuZXh0IGVsZW1lbnQgaXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIFtxdWV1ZV17QGxpbmsgI3F1ZXVlfSBgQXJyYXlgLlxuICAgKiBUaGUgbWV0aG9kIHRoZXJlZm9yZSBnZXRzIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoaXMgYEFycmF5YCBhbmQgc2hpZnRzIHRoZVxuICAgKiBgQXJyYXlgIGJ5IG9uZSB0byB0aGUgbGVmdC5cbiAgICpcbiAgICogSWYgdGhlIGBRdWV1ZWAgaXMgZW1wdHkgKHRoZSBbcXVldWVde0BsaW5rICNxdWV1ZX0gYEFycmF5YCBpcyBlbXB0eSksIHRoZVxuICAgKiBtZXRob2Qgd2lsbCByZXR1cm4gYHVuZGVmaW5lZGAgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnN7VCB8IHVuZGVmaW5lZH0gVGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIHF1ZXVlIG9yIGB1bmRlZmluZWRgIGlmIHRoZVxuICAgKiBgUXVldWVgIGlzIGVtcHR5XG4gICAqL1xuICBwdWJsaWMgZGVxdWV1ZSgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuaXNFbXB0eSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5xdWV1ZS5zaGlmdCgpO1xuICAgIH0gZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgbGVuZ3RoIG9mIHRoZSBgUXVldWVgLlxuICAgKlxuICAgKiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgW3F1ZXVlXXtAbGluayAjcXVldWV9IGBBcnJheWAuXG4gICAqXG4gICAqIEByZXR1cm5ze251bWJlcn0gVGhlIGxlbmd0aCBvZiB0aGUgYFF1ZXVlYFxuICAgKi9cbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGBRdWV1ZWAgaXMgZW1wdHkgb3Igbm90LlxuICAgKlxuICAgKiBUaGUgYFF1ZXVlYCBpZiB0aGUgW3F1ZXVlXXtAbGluayAjcXVldWV9IGBBcnJheWAgaXMgZW1wdHkuXG4gICAqXG4gICAqIEByZXR1cm5ze2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgcXVldWUgaXMgZW1wdHkgb3IgYGZhbHNlYCBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmxlbmd0aCA9PSAwO1xuICB9XG5cbn1cbiJdfQ==