ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
112 lines • 15.1 kB
JavaScript
import { Component, Input, ChangeDetectorRef, Output, EventEmitter, ViewEncapsulation, HostBinding } from '@angular/core';
import { animate, state, style, transition, trigger } from '@angular/animations';
import { AccordionService } from '../accordion.service';
import { isTemplateRef } from 'ng-zorro-antd-mobile/core';
import * as i0 from "@angular/core";
import * as i1 from "../accordion.service";
import * as i2 from "@angular/common";
export class AccordionGroupComponent {
constructor(_accordionService, _cdr) {
this._accordionService = _accordionService;
this._cdr = _cdr;
this.isShowChild = true;
this.isOpened = false;
this.disabled = false;
this.onOpen = new EventEmitter();
this.onClose = new EventEmitter();
this.onChange = new EventEmitter();
this.isTemplateRef = isTemplateRef;
this.amItem = true;
this.isActive = this.isOpened;
this.addon = true;
}
checkAndToggle() {
this.toggle();
}
get slide() {
return this.isOpened ? 'down' : 'up';
}
toggle() {
if (this.disabled) {
return;
}
this.isShowChild = true;
const isOpenedBeforeWeChange = this.isOpened;
if (this._accordionService.accordion) {
this._accordionService.component.closeAll();
}
this.isOpened = !isOpenedBeforeWeChange;
if (this.isOpened) {
this.onOpen.emit();
}
else {
this.onClose.emit();
}
this.onChange.emit(this.isOpened);
}
openOnInitialization() {
setTimeout(() => {
this.isOpened = true;
this._cdr.detectChanges();
}, 0);
}
slideAnimationDoen(event) {
if (event.fromState === 'down' && event.toState === 'up') {
setTimeout(() => {
this.isShowChild = false;
}, 0);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AccordionGroupComponent, deps: [{ token: i1.AccordionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: AccordionGroupComponent, selector: "AccordionPanel, nzm-accordion-panel", inputs: { key: "key", header: "header", isOpened: "isOpened", disabled: "disabled" }, outputs: { onOpen: "onOpen", onClose: "onClose", onChange: "onChange" }, host: { properties: { "class.am-accordion-item": "this.amItem", "class.am-accordion-item-active": "this.isActive", "class.addon": "this.addon" } }, ngImport: i0, template: "<div\n role=\"tab\"\n class=\"am-accordion-header\"\n data-scale=\"true\"\n [attr.aria-expanded]=\"isOpened\"\n (click)=\"checkAndToggle()\"\n>\n <i class=\"arrow\"></i>\n <ng-container *ngIf=\"!isTemplateRef(header)\">{{ header }}</ng-container>\n <ng-template *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"header\"></ng-template>\n</div>\n<div\n role=\"tabpanel\"\n class=\"am-accordion-content\"\n [ngClass]=\"{ 'am-accordion-content-active': isOpened }\"\n [@slide]=\"slide\"\n (@slide.done)=\"slideAnimationDoen($event)\"\n>\n <div *ngIf=\"isShowChild\" class=\"am-accordion-content-box\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
trigger('slide', [
state('up', style({ height: 0 })),
state('down', style({ height: '*' })),
transition('down => up', [animate(200, style({ height: 0 }))]),
transition('up => down', [
animate(200, style({
height: '*'
}))
])
])
], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AccordionGroupComponent, decorators: [{
type: Component,
args: [{ selector: 'AccordionPanel, nzm-accordion-panel', encapsulation: ViewEncapsulation.None, animations: [
trigger('slide', [
state('up', style({ height: 0 })),
state('down', style({ height: '*' })),
transition('down => up', [animate(200, style({ height: 0 }))]),
transition('up => down', [
animate(200, style({
height: '*'
}))
])
])
], template: "<div\n role=\"tab\"\n class=\"am-accordion-header\"\n data-scale=\"true\"\n [attr.aria-expanded]=\"isOpened\"\n (click)=\"checkAndToggle()\"\n>\n <i class=\"arrow\"></i>\n <ng-container *ngIf=\"!isTemplateRef(header)\">{{ header }}</ng-container>\n <ng-template *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"header\"></ng-template>\n</div>\n<div\n role=\"tabpanel\"\n class=\"am-accordion-content\"\n [ngClass]=\"{ 'am-accordion-content-active': isOpened }\"\n [@slide]=\"slide\"\n (@slide.done)=\"slideAnimationDoen($event)\"\n>\n <div *ngIf=\"isShowChild\" class=\"am-accordion-content-box\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
}], ctorParameters: () => [{ type: i1.AccordionService }, { type: i0.ChangeDetectorRef }], propDecorators: { key: [{
type: Input
}], header: [{
type: Input
}], isOpened: [{
type: Input
}], disabled: [{
type: Input
}], onOpen: [{
type: Output
}], onClose: [{
type: Output
}], onChange: [{
type: Output
}], amItem: [{
type: HostBinding,
args: ['class.am-accordion-item']
}], isActive: [{
type: HostBinding,
args: ['class.am-accordion-item-active']
}], addon: [{
type: HostBinding,
args: ['class.addon']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1ncm91cC9hY2NvcmRpb24tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLWdyb3VwL2FjY29yZGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsV0FBVyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBc0IxRCxNQUFNLE9BQU8sdUJBQXVCO0lBdUJsQyxZQUFvQixpQkFBbUMsRUFBVSxJQUF1QjtRQUFwRSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUF0QnhGLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBTzVCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUVpQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FB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Q0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDOUQsVUFBVSxDQUFDLFlBQVksRUFBRTtnQ0FDdkIsT0FBTyxDQUNMLEdBQUcsRUFDSCxLQUFLLENBQUM7b0NBQ0osTUFBTSxFQUFFLEdBQUc7aUNBQ1osQ0FBQyxDQUNIOzZCQUNGLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDtxSEFNRCxHQUFHO3NCQURGLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxNQUFNO2dCQUdQLE9BQU87c0JBRE4sTUFBTTtnQkFHUCxRQUFRO3NCQURQLE1BQU07Z0JBSXdDLE1BQU07c0JBQXBELFdBQVc7dUJBQUMseUJBQXlCO2dCQUNnQixRQUFRO3NCQUE3RCxXQUFXO3VCQUFDLGdDQUFnQztnQkFDVixLQUFLO3NCQUF2QyxXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBIb3N0QmluZGluZyxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEFjY29yZGlvblNlcnZpY2UgfSBmcm9tICcuLi9hY2NvcmRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnbmctem9ycm8tYW50ZC1tb2JpbGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ0FjY29yZGlvblBhbmVsLCBuem0tYWNjb3JkaW9uLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZScsIFtcbiAgICAgIHN0YXRlKCd1cCcsIHN0eWxlKHsgaGVpZ2h0OiAwIH0pKSxcbiAgICAgIHN0YXRlKCdkb3duJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdkb3duID0+IHVwJywgW2FuaW1hdGUoMjAwLCBzdHlsZSh7IGhlaWdodDogMCB9KSldKSxcbiAgICAgIHRyYW5zaXRpb24oJ3VwID0+IGRvd24nLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgMjAwLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJyonXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkdyb3VwQ29tcG9uZW50IHtcbiAgaXNTaG93Q2hpbGQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGtleTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBoZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKVxuICBpc09wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KClcbiAgb25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLWFjY29yZGlvbi1pdGVtJykgcHVibGljIGFtSXRlbSA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYWNjb3JkaW9uLWl0ZW0tYWN0aXZlJykgcHVibGljIGlzQWN0aXZlID0gdGhpcy5pc09wZW5lZDtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hZGRvbicpIHB1YmxpYyBhZGRvbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYWNjb3JkaW9uU2VydmljZTogQWNjb3JkaW9uU2VydmljZSwgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBjaGVja0FuZFRvZ2dsZSgpIHtcbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgZ2V0IHNsaWRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNPcGVuZWQgPyAnZG93bicgOiAndXAnO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNTaG93Q2hpbGQgPSB0cnVlO1xuICAgIGNvbnN0IGlzT3BlbmVkQmVmb3JlV2VDaGFuZ2UgPSB0aGlzLmlzT3BlbmVkO1xuICAgIGlmICh0aGlzLl9hY2NvcmRpb25TZXJ2aWNlLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5fYWNjb3JkaW9uU2VydmljZS5jb21wb25lbnQuY2xvc2VBbGwoKTtcbiAgICB9XG4gICAgdGhpcy5pc09wZW5lZCA9ICFpc09wZW5lZEJlZm9yZVdlQ2hhbmdlO1xuICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICB0aGlzLm9uT3Blbi5lbWl0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlzT3BlbmVkKTtcbiAgfVxuXG4gIG9wZW5PbkluaXRpYWxpemF0aW9uKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc09wZW5lZCA9IHRydWU7XG4gICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgc2xpZGVBbmltYXRpb25Eb2VuKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ2Rvd24nICYmIGV2ZW50LnRvU3RhdGUgPT09ICd1cCcpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzU2hvd0NoaWxkID0gZmFsc2U7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgcm9sZT1cInRhYlwiXG4gIGNsYXNzPVwiYW0tYWNjb3JkaW9uLWhlYWRlclwiXG4gIGRhdGEtc2NhbGU9XCJ0cnVlXCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5lZFwiXG4gIChjbGljayk9XCJjaGVja0FuZFRvZ2dsZSgpXCJcbj5cbiAgPGkgY2xhc3M9XCJhcnJvd1wiPjwvaT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGhlYWRlcilcIj57eyBoZWFkZXIgfX08L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihoZWFkZXIpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdlxuICByb2xlPVwidGFicGFuZWxcIlxuICBjbGFzcz1cImFtLWFjY29yZGlvbi1jb250ZW50XCJcbiAgW25nQ2xhc3NdPVwieyAnYW0tYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlJzogaXNPcGVuZWQgfVwiXG4gIFtAc2xpZGVdPVwic2xpZGVcIlxuICAoQHNsaWRlLmRvbmUpPVwic2xpZGVBbmltYXRpb25Eb2VuKCRldmVudClcIlxuPlxuICA8ZGl2ICpuZ0lmPVwiaXNTaG93Q2hpbGRcIiBjbGFzcz1cImFtLWFjY29yZGlvbi1jb250ZW50LWJveFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==