@clr/angular
Version:
Angular components for Clarity
47 lines • 6.02 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { map } from 'rxjs/operators';
import { AccordionModel } from '../models/accordion.model';
import * as i0 from "@angular/core";
export class AccordionService {
constructor() {
this.accordion = new AccordionModel();
this._panelsChanges = new BehaviorSubject(this.accordion.panels);
}
getPanelChanges(panelId) {
return this._panelsChanges.pipe(map(panels => panels.find(s => s.id === panelId)));
}
setStrategy(strategy) {
this.accordion.setStrategy(strategy);
}
addPanel(panelId, open = false) {
this.accordion.addPanel(panelId, open);
this.emitUpdatedPanels();
}
togglePanel(panelId, open) {
this.accordion.togglePanel(panelId, open);
this.emitUpdatedPanels();
}
disablePanel(panelId, disabled) {
this.accordion.disablePanel(panelId, disabled);
this.emitUpdatedPanels();
}
updatePanelOrder(ids) {
this.accordion.updatePanelOrder(ids);
this.emitUpdatedPanels();
}
emitUpdatedPanels() {
this._panelsChanges.next(this.accordion.panels);
}
}
AccordionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AccordionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
AccordionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AccordionService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AccordionService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9hY2NvcmRpb24vcHJvdmlkZXJzL2FjY29yZGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxjQUFjLEVBQXVCLE1BQU0sMkJBQTJCLENBQUM7O0FBR2hGLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFWSxjQUFTLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN4QixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7S0FpQ2hGO0lBL0JDLGVBQWUsQ0FBQyxPQUFlO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBMkI7UUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlLEVBQUUsSUFBSSxHQUFHLEtBQUs7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZSxFQUFFLElBQWM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZSxFQUFFLFFBQWtCO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBYTtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs2R0FsQ1UsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFjY29yZGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vZW51bXMvYWNjb3JkaW9uLXN0cmF0ZWd5LmVudW0nO1xuaW1wb3J0IHsgQWNjb3JkaW9uTW9kZWwsIEFjY29yZGlvblBhbmVsTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYWNjb3JkaW9uLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvblNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgYWNjb3JkaW9uID0gbmV3IEFjY29yZGlvbk1vZGVsKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcGFuZWxzQ2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hY2NvcmRpb24ucGFuZWxzKTtcblxuICBnZXRQYW5lbENoYW5nZXMocGFuZWxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBY2NvcmRpb25QYW5lbE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsc0NoYW5nZXMucGlwZShtYXAocGFuZWxzID0+IHBhbmVscy5maW5kKHMgPT4gcy5pZCA9PT0gcGFuZWxJZCkpKTtcbiAgfVxuXG4gIHNldFN0cmF0ZWd5KHN0cmF0ZWd5OiBBY2NvcmRpb25TdHJhdGVneSkge1xuICAgIHRoaXMuYWNjb3JkaW9uLnNldFN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIGFkZFBhbmVsKHBhbmVsSWQ6IHN0cmluZywgb3BlbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5hY2NvcmRpb24uYWRkUGFuZWwocGFuZWxJZCwgb3Blbik7XG4gICAgdGhpcy5lbWl0VXBkYXRlZFBhbmVscygpO1xuICB9XG5cbiAgdG9nZ2xlUGFuZWwocGFuZWxJZDogc3RyaW5nLCBvcGVuPzogYm9vbGVhbikge1xuICAgIHRoaXMuYWNjb3JkaW9uLnRvZ2dsZVBhbmVsKHBhbmVsSWQsIG9wZW4pO1xuICAgIHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKTtcbiAgfVxuXG4gIGRpc2FibGVQYW5lbChwYW5lbElkOiBzdHJpbmcsIGRpc2FibGVkPzogYm9vbGVhbikge1xuICAgIHRoaXMuYWNjb3JkaW9uLmRpc2FibGVQYW5lbChwYW5lbElkLCBkaXNhYmxlZCk7XG4gICAgdGhpcy5lbWl0VXBkYXRlZFBhbmVscygpO1xuICB9XG5cbiAgdXBkYXRlUGFuZWxPcmRlcihpZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5hY2NvcmRpb24udXBkYXRlUGFuZWxPcmRlcihpZHMpO1xuICAgIHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbWl0VXBkYXRlZFBhbmVscygpIHtcbiAgICB0aGlzLl9wYW5lbHNDaGFuZ2VzLm5leHQodGhpcy5hY2NvcmRpb24ucGFuZWxzKTtcbiAgfVxufVxuIl19