UNPKG

carbon-components-angular

Version:
45 lines 4.54 kB
import { Injectable } from "@angular/core"; import { ReplaySubject } from "rxjs"; import * as i0 from "@angular/core"; export class TreeViewService { constructor() { /** * Variable used across all nodes and wrapper to determine if we should allow content projection * or generate the tree * * Value is updated by passing a value to `tree` input in wrapper component. */ this.contentProjected = true; /** * **Experimental** */ this.isMultiSelect = false; this.selectionSubject = new ReplaySubject(1); /** * Hold's list of selected nodes and preserves order */ this.value = new Map(); this.selectionObservable = this.selectionSubject.asObservable(); } /** * Store selected node in map * @param node: Node */ selectNode(node) { if (!node) { return; } // Since multiselect is not enabled, we clear existing map if (!this.isMultiSelect) { this.value.clear(); } this.value.set(node.id, node); this.selectionSubject.next(this.value); } } TreeViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); TreeViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewService, decorators: [{ type: Injectable }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmVldmlldy90cmVldmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJakQsTUFBTSxPQUFPLGVBQWU7SUFxQjNCO1FBbkJBOzs7OztXQUtHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFZCxxQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBb0IsQ0FBQyxDQUFDLENBQUM7UUFFbkU7O1dBRUc7UUFDSyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUd6QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1YsT0FBTztTQUNQO1FBRUQsMERBQTBEO1FBQzFELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OzRHQXhDVyxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSBcIi4vdHJlZS1ub2RlLnR5cGVzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlVmlld1NlcnZpY2Uge1xuXHRzZWxlY3Rpb25PYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueSB8IGFueVtdPjtcblx0LyoqXG5cdCAqIFZhcmlhYmxlIHVzZWQgYWNyb3NzIGFsbCBub2RlcyBhbmQgd3JhcHBlciB0byBkZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIGFsbG93IGNvbnRlbnQgcHJvamVjdGlvblxuXHQgKiBvciBnZW5lcmF0ZSB0aGUgdHJlZVxuXHQgKlxuXHQgKiBWYWx1ZSBpcyB1cGRhdGVkIGJ5IHBhc3NpbmcgYSB2YWx1ZSB0byBgdHJlZWAgaW5wdXQgaW4gd3JhcHBlciBjb21wb25lbnQuXG5cdCAqL1xuXHRjb250ZW50UHJvamVjdGVkID0gdHJ1ZTtcblx0LyoqXG5cdCAqICoqRXhwZXJpbWVudGFsKipcblx0ICovXG5cdGlzTXVsdGlTZWxlY3QgPSBmYWxzZTtcblxuXHRwcml2YXRlIHNlbGVjdGlvblN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxNYXA8c3RyaW5nLCBOb2RlPj4oMSk7XG5cblx0LyoqXG5cdCAqIEhvbGQncyBsaXN0IG9mIHNlbGVjdGVkIG5vZGVzIGFuZCBwcmVzZXJ2ZXMgb3JkZXJcblx0ICovXG5cdHByaXZhdGUgdmFsdWUgPSBuZXcgTWFwKCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5zZWxlY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5zZWxlY3Rpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFN0b3JlIHNlbGVjdGVkIG5vZGUgaW4gbWFwXG5cdCAqIEBwYXJhbSBub2RlOiBOb2RlXG5cdCAqL1xuXHRzZWxlY3ROb2RlKG5vZGU6IE5vZGUpIHtcblx0XHRpZiAoIW5vZGUpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBTaW5jZSBtdWx0aXNlbGVjdCBpcyBub3QgZW5hYmxlZCwgd2UgY2xlYXIgZXhpc3RpbmcgbWFwXG5cdFx0aWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QpIHtcblx0XHRcdHRoaXMudmFsdWUuY2xlYXIoKTtcblx0XHR9XG5cdFx0dGhpcy52YWx1ZS5zZXQobm9kZS5pZCwgbm9kZSk7XG5cdFx0dGhpcy5zZWxlY3Rpb25TdWJqZWN0Lm5leHQodGhpcy52YWx1ZSk7XG5cdH1cbn1cbiJdfQ==