ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
68 lines • 11 kB
JavaScript
import { Component, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "ng-zorro-antd-mobile/list";
import * as i3 from "ng-zorro-antd-mobile/radio";
import * as i4 from "ng-zorro-antd-mobile/checkbox";
export class SubMenuComponent {
get subMenuPrefixCls() {
return this._subMenuPrefixCls;
}
set subMenuPrefixCls(v) {
this._subMenuPrefixCls = v;
}
get subMenuData() {
return this._subMenuData;
}
set subMenuData(v) {
this._subMenuData = v;
}
get multiSelect() {
return this._multiSelect;
}
set multiSelect(v) {
this._multiSelect = v;
}
constructor() {
this.prefixCls = 'am-sub-menu';
this.onSel = new EventEmitter();
}
onClick(dataItem) {
this.onSel.emit(dataItem);
}
selected(dataItem) {
return this.showSelect && (this.selItem.length > 0 && this.selItem.indexOf(dataItem.value) !== -1);
}
getClass(dataItem) {
let name = this.radioPrefixCls + '-item ';
name += this.selected(dataItem) ? this._subMenuPrefixCls + '-item-selected' : '';
name += dataItem.disabled ? this._subMenuPrefixCls + '-item-disabled' : '';
return name;
}
ngOnChanges(changes) {
this._subMenuData.map(item => {
item.checked = this.selected(item);
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SubMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SubMenuComponent, selector: "SubMenu, nzm-sub-menu", inputs: { radioPrefixCls: "radioPrefixCls", showSelect: "showSelect", selItem: "selItem", subMenuPrefixCls: "subMenuPrefixCls", subMenuData: "subMenuData", multiSelect: "multiSelect" }, outputs: { onSel: "onSel" }, usesOnChanges: true, ngImport: i0, template: "<List class=\"{{ subMenuPrefixCls }}\" style=\"padding: 0\">\n <ListItem\n *ngFor=\"let dataItem of subMenuData; let i = index\"\n key=\"i\"\n [className]=\"getClass(dataItem)\"\n [extra]=\"extra\"\n >\n {{ dataItem.label }}\n\n <ng-template #extra>\n <label\n Radio\n *ngIf=\"!multiSelect\"\n [checked]=\"dataItem.checked\"\n [disabled]=\"dataItem.disabled\"\n (onChange)=\"onClick(dataItem)\"\n >\n </label>\n <label\n Checkbox\n *ngIf=\"multiSelect\"\n [checked]=\"dataItem.checked\"\n [disabled]=\"dataItem.disabled\"\n (onChange)=\"onClick(dataItem)\"\n >\n </label>\n </ng-template>\n </ListItem>\n</List>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListComponent, selector: "List, nzm-list", inputs: ["className", "renderHeader", "renderFooter"] }, { kind: "component", type: i2.ListItemComponent, selector: "ListItem, nzm-list-item", inputs: ["extra", "className", "arrow", "multipleLine", "error", "wrap", "align", "platform", "disabled", "thumb"], outputs: ["onClick"] }, { kind: "component", type: i3.RadioComponent, selector: "[Radio], [nzm-radio]", inputs: ["name", "value", "checked", "disabled"], outputs: ["onChange"] }, { kind: "component", type: i4.CheckboxComponent, selector: "[Checkbox], [nzm-checkbox]", inputs: ["name", "value", "checked", "disabled"], outputs: ["onChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SubMenuComponent, decorators: [{
type: Component,
args: [{ selector: 'SubMenu, nzm-sub-menu', encapsulation: ViewEncapsulation.None, template: "<List class=\"{{ subMenuPrefixCls }}\" style=\"padding: 0\">\n <ListItem\n *ngFor=\"let dataItem of subMenuData; let i = index\"\n key=\"i\"\n [className]=\"getClass(dataItem)\"\n [extra]=\"extra\"\n >\n {{ dataItem.label }}\n\n <ng-template #extra>\n <label\n Radio\n *ngIf=\"!multiSelect\"\n [checked]=\"dataItem.checked\"\n [disabled]=\"dataItem.disabled\"\n (onChange)=\"onClick(dataItem)\"\n >\n </label>\n <label\n Checkbox\n *ngIf=\"multiSelect\"\n [checked]=\"dataItem.checked\"\n [disabled]=\"dataItem.disabled\"\n (onChange)=\"onClick(dataItem)\"\n >\n </label>\n </ng-template>\n </ListItem>\n</List>\n" }]
}], ctorParameters: () => [], propDecorators: { onSel: [{
type: Output
}], radioPrefixCls: [{
type: Input
}], showSelect: [{
type: Input
}], selItem: [{
type: Input
}], subMenuPrefixCls: [{
type: Input
}], subMenuData: [{
type: Input
}], multiSelect: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9tZW51L3N1Yi1tZW51L3N1Yi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvbWVudS9zdWItbWVudS9zdWItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBT3BILE1BQU0sT0FBTyxnQkFBZ0I7SUFnQjNCLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLENBQVM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxDQUFNO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLENBQVU7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEO1FBckNBLGNBQVMsR0FBRyxhQUFhLENBQUM7UUFPMUIsVUFBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBOEJwQyxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxRQUFRO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBUTtRQUNmLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQzFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixJQUFJLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBM0RVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlTQ1A3QixtdUJBNkJBOzsyRkR0QmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLHVCQUF1QixpQkFFbEIsaUJBQWlCLENBQUMsSUFBSTt3REFVckMsS0FBSztzQkFESixNQUFNO2dCQUlQLGNBQWM7c0JBRGIsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFRRixXQUFXO3NCQURkLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnU3ViTWVudSwgbnptLXN1Yi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdWJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJlZml4Q2xzID0gJ2FtLXN1Yi1tZW51JztcblxuICBwcml2YXRlIF9zdWJNZW51UHJlZml4Q2xzOiBzdHJpbmc7XG4gIHByaXZhdGUgX3N1Yk1lbnVEYXRhO1xuICBwcml2YXRlIF9tdWx0aVNlbGVjdD86IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpXG4gIHJhZGlvUHJlZml4Q2xzOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNob3dTZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNlbEl0ZW07XG4gIEBJbnB1dCgpXG4gIGdldCBzdWJNZW51UHJlZml4Q2xzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N1Yk1lbnVQcmVmaXhDbHM7XG4gIH1cbiAgc2V0IHN1Yk1lbnVQcmVmaXhDbHModjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3ViTWVudVByZWZpeENscyA9IHY7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHN1Yk1lbnVEYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1Yk1lbnVEYXRhO1xuICB9XG4gIHNldCBzdWJNZW51RGF0YSh2OiBhbnkpIHtcbiAgICB0aGlzLl9zdWJNZW51RGF0YSA9IHY7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IG11bHRpU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aVNlbGVjdDtcbiAgfVxuICBzZXQgbXVsdGlTZWxlY3QodjogYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpU2VsZWN0ID0gdjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbkNsaWNrKGRhdGFJdGVtKSB7XG4gICAgdGhpcy5vblNlbC5lbWl0KGRhdGFJdGVtKTtcbiAgfVxuXG4gIHNlbGVjdGVkKGRhdGFJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1NlbGVjdCAmJiAodGhpcy5zZWxJdGVtLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxJdGVtLmluZGV4T2YoZGF0YUl0ZW0udmFsdWUpICE9PSAtMSk7XG4gIH1cblxuICBnZXRDbGFzcyhkYXRhSXRlbSkge1xuICAgIGxldCBuYW1lID0gdGhpcy5yYWRpb1ByZWZpeENscyArICctaXRlbSAnO1xuICAgIG5hbWUgKz0gdGhpcy5zZWxlY3RlZChkYXRhSXRlbSkgPyB0aGlzLl9zdWJNZW51UHJlZml4Q2xzICsgJy1pdGVtLXNlbGVjdGVkJyA6ICcnO1xuICAgIG5hbWUgKz0gZGF0YUl0ZW0uZGlzYWJsZWQgPyB0aGlzLl9zdWJNZW51UHJlZml4Q2xzICsgJy1pdGVtLWRpc2FibGVkJyA6ICcnO1xuICAgIHJldHVybiBuYW1lO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuX3N1Yk1lbnVEYXRhLm1hcChpdGVtID0+IHtcbiAgICAgIGl0ZW0uY2hlY2tlZCA9IHRoaXMuc2VsZWN0ZWQoaXRlbSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxMaXN0IGNsYXNzPVwie3sgc3ViTWVudVByZWZpeENscyB9fVwiIHN0eWxlPVwicGFkZGluZzogMFwiPlxuICA8TGlzdEl0ZW1cbiAgICAqbmdGb3I9XCJsZXQgZGF0YUl0ZW0gb2Ygc3ViTWVudURhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgIGtleT1cImlcIlxuICAgIFtjbGFzc05hbWVdPVwiZ2V0Q2xhc3MoZGF0YUl0ZW0pXCJcbiAgICBbZXh0cmFdPVwiZXh0cmFcIlxuICA+XG4gICAge3sgZGF0YUl0ZW0ubGFiZWwgfX1cblxuICAgIDxuZy10ZW1wbGF0ZSAjZXh0cmE+XG4gICAgICA8bGFiZWxcbiAgICAgICAgUmFkaW9cbiAgICAgICAgKm5nSWY9XCIhbXVsdGlTZWxlY3RcIlxuICAgICAgICBbY2hlY2tlZF09XCJkYXRhSXRlbS5jaGVja2VkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRhdGFJdGVtLmRpc2FibGVkXCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cIm9uQ2xpY2soZGF0YUl0ZW0pXCJcbiAgICAgID5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8bGFiZWxcbiAgICAgICAgQ2hlY2tib3hcbiAgICAgICAgKm5nSWY9XCJtdWx0aVNlbGVjdFwiXG4gICAgICAgIFtjaGVja2VkXT1cImRhdGFJdGVtLmNoZWNrZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF0YUl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAob25DaGFuZ2UpPVwib25DbGljayhkYXRhSXRlbSlcIlxuICAgICAgPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L0xpc3RJdGVtPlxuPC9MaXN0PlxuIl19