UNPKG

design-angular-kit

Version:

Un toolkit Angular conforme alle linee guida di design per i servizi web della PA

116 lines 13.9 kB
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { ItAbstractComponent } from '../../../abstracts/abstract.component'; import { Collapse } from 'bootstrap-italia'; import { inputToBoolean } from '../../../utils/coercion'; import * as i0 from "@angular/core"; export class ItCollapseComponent extends ItAbstractComponent { constructor() { super(...arguments); /** * Custom class */ this.class = ''; /** * This event fires immediately when the show method is called. */ this.showEvent = new EventEmitter(); /** * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete). */ this.shownEvent = new EventEmitter(); /** * This event fires immediately when the hide method is called. */ this.hideEvent = new EventEmitter(); /** * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete). */ this.hiddenEvent = new EventEmitter(); this.open = false; } ngAfterViewInit() { super.ngAfterViewInit(); this._renderer.removeAttribute(this._elementRef.nativeElement, 'class'); if (this.collapseDiv) { const element = this.collapseDiv.nativeElement; this.collapse = Collapse.getOrCreateInstance(element, { toggle: this.opened, }); element.addEventListener('show.bs.collapse', event => { this.open = true; this.showEvent.emit(event); }); element.addEventListener('shown.bs.collapse', event => { this.open = true; this.shownEvent.emit(event); }); element.addEventListener('hide.bs.collapse', event => { this.open = false; this.hideEvent.emit(event); }); element.addEventListener('hidden.bs.collapse', event => { this.open = false; this.hiddenEvent.emit(event); }); } } /** * Shows if collapse is open or not */ isOpen() { return this.open; } /** * Shows a resealable item * NOTE: Returns to the caller before the collapsable element has actually been shown (onShown event). */ show() { this.collapse?.show(); } /** * Hides a resealable item * NOTE: Returns to the caller before the collapsable element has actually been hidden (onHidden Event) */ hide() { this.collapse?.hide(); } /** * Toggle a collapsible item to show or hide it. * NOTE: Returns to the caller before the collapsable element has actually been shown or hidden (onShown and onHidden events) */ toggle() { this.collapse?.toggle(); } /** * Eliminates the possibility of an item being resealable */ dispose() { this.collapse?.dispose(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItCollapseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.6", type: ItCollapseComponent, isStandalone: true, selector: "it-collapse", inputs: { multi: ["multi", "multi", inputToBoolean], opened: ["opened", "opened", inputToBoolean], class: "class" }, outputs: { showEvent: "showEvent", shownEvent: "shownEvent", hideEvent: "hideEvent", hiddenEvent: "hiddenEvent" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itCollapse"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"collapse {{ class }}\" [class.multi-collapse]=\"multi\" #collapse>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItCollapseComponent, decorators: [{ type: Component, args: [{ standalone: true, selector: 'it-collapse', exportAs: 'itCollapse', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<div [id]=\"id\" class=\"collapse {{ class }}\" [class.multi-collapse]=\"multi\" #collapse>\n <ng-content></ng-content>\n</div>\n" }] }], propDecorators: { multi: [{ type: Input, args: [{ transform: inputToBoolean }] }], opened: [{ type: Input, args: [{ transform: inputToBoolean }] }], class: [{ type: Input }], showEvent: [{ type: Output }], shownEvent: [{ type: Output }], hideEvent: [{ type: Output }], hiddenEvent: [{ type: Output }], collapseDiv: [{ type: ViewChild, args: ['collapse'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2NvbGxhcHNlL2NvbGxhcHNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9jb2xsYXBzZS9jb2xsYXBzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFVekQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUFtQjtJQVI1RDs7UUFxQkU7O1dBRUc7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ08sY0FBUyxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlEOztXQUVHO1FBQ08sZUFBVSxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9EOztXQUVHO1FBQ08sY0FBUyxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlEOztXQUVHO1FBQ08sZ0JBQVcsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl4RCxTQUFJLEdBQVksS0FBSyxDQUFDO0tBc0UvQjtJQWxFVSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4RSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQixDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU07UUFDWCxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBN0dVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG1GQUtWLGNBQWMsZ0NBTWQsY0FBYywwVEN4QnBDLG9JQUdBOzsyRkRVYSxtQkFBbUI7a0JBUi9CLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsWUFFYixZQUFZLG1CQUNMLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsRUFBRTs4QkFPMkIsS0FBSztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7Z0JBTUUsTUFBTTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7Z0JBSzNCLEtBQUs7c0JBQWIsS0FBSztnQkFLSSxTQUFTO3NCQUFsQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQU0wQixXQUFXO3NCQUEzQyxTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGFwc2UgfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcbmltcG9ydCB7IGlucHV0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1jb2xsYXBzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xsYXBzZS5jb21wb25lbnQuaHRtbCcsXG4gIGV4cG9ydEFzOiAnaXRDb2xsYXBzZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRDb2xsYXBzZUNvbXBvbmVudCBleHRlbmRzIEl0QWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIEVuYWJsZSBtdWx0aXBsZSBjb2xsYXBzZVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBtdWx0aT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGNvbGxhcHNpYmxlIGVsZW1lbnQgb24gaW52b2NhdGlvblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBvcGVuZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY2xhc3NcbiAgICovXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhpcyBldmVudCBmaXJlcyBpbW1lZGlhdGVseSB3aGVuIHRoZSBzaG93IG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgc2hvd0V2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB0b29sdGlwIGhhcyBiZWVuIG1hZGUgdmlzaWJsZSB0byB0aGUgdXNlciAoaXQgd2lsbCB3YWl0IGZvciB0aGUgQ1NTIHRyYW5zaXRpb25zIHRvIGNvbXBsZXRlKS5cbiAgICovXG4gIEBPdXRwdXQoKSBzaG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGZpcmVzIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGhpZGUgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBoaWRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgcmFpc2VkIHdoZW4gdGhlIHRvb2x0aXAgaGFzIGZpbmlzaGVkIGJlaW5nIGhpZGRlbiBmcm9tIHRoZSB1c2VyIChpdCB3aWxsIHdhaXQgZm9yIHRoZSBDU1MgdHJhbnNpdGlvbnMgdG8gY29tcGxldGUpLlxuICAgKi9cbiAgQE91dHB1dCgpIGhpZGRlbkV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgY29sbGFwc2U/OiBDb2xsYXBzZTtcblxuICBwcml2YXRlIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb2xsYXBzZScpIHByb3RlY3RlZCBjb2xsYXBzZURpdj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xhc3MnKTtcblxuICAgIGlmICh0aGlzLmNvbGxhcHNlRGl2KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jb2xsYXBzZURpdi5uYXRpdmVFbGVtZW50O1xuICAgICAgdGhpcy5jb2xsYXBzZSA9IENvbGxhcHNlLmdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCwge1xuICAgICAgICB0b2dnbGU6IHRoaXMub3BlbmVkLFxuICAgICAgfSk7XG5cbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2hvdy5icy5jb2xsYXBzZScsIGV2ZW50ID0+IHtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93RXZlbnQuZW1pdChldmVudCk7XG4gICAgICB9KTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2hvd24uYnMuY29sbGFwc2UnLCBldmVudCA9PiB7XG4gICAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd25FdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgIH0pO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdoaWRlLmJzLmNvbGxhcHNlJywgZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oaWRlRXZlbnQuZW1pdChldmVudCk7XG4gICAgICB9KTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaGlkZGVuLmJzLmNvbGxhcHNlJywgZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oaWRkZW5FdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyBpZiBjb2xsYXBzZSBpcyBvcGVuIG9yIG5vdFxuICAgKi9cbiAgcHVibGljIGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIGEgcmVzZWFsYWJsZSBpdGVtXG4gICAqIE5PVEU6IFJldHVybnMgdG8gdGhlIGNhbGxlciBiZWZvcmUgdGhlIGNvbGxhcHNhYmxlIGVsZW1lbnQgaGFzIGFjdHVhbGx5IGJlZW4gc2hvd24gKG9uU2hvd24gZXZlbnQpLlxuICAgKi9cbiAgcHVibGljIHNob3coKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsYXBzZT8uc2hvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIGEgcmVzZWFsYWJsZSBpdGVtXG4gICAqIE5PVEU6IFJldHVybnMgdG8gdGhlIGNhbGxlciBiZWZvcmUgdGhlIGNvbGxhcHNhYmxlIGVsZW1lbnQgaGFzIGFjdHVhbGx5IGJlZW4gaGlkZGVuIChvbkhpZGRlbiBFdmVudClcbiAgICovXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2U/LmhpZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgYSBjb2xsYXBzaWJsZSBpdGVtIHRvIHNob3cgb3IgaGlkZSBpdC5cbiAgICogTk9URTogUmV0dXJucyB0byB0aGUgY2FsbGVyIGJlZm9yZSB0aGUgY29sbGFwc2FibGUgZWxlbWVudCBoYXMgYWN0dWFsbHkgYmVlbiBzaG93biBvciBoaWRkZW4gKG9uU2hvd24gYW5kIG9uSGlkZGVuIGV2ZW50cylcbiAgICovXG4gIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsYXBzZT8udG9nZ2xlKCk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYXRlcyB0aGUgcG9zc2liaWxpdHkgb2YgYW4gaXRlbSBiZWluZyByZXNlYWxhYmxlXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXYgW2lkXT1cImlkXCIgY2xhc3M9XCJjb2xsYXBzZSB7eyBjbGFzcyB9fVwiIFtjbGFzcy5tdWx0aS1jb2xsYXBzZV09XCJtdWx0aVwiICNjb2xsYXBzZT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=