ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
157 lines • 15.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, TemplateRef, ViewEncapsulation } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { LocaleProviderService } from '../locale-provider/locale-provider.service';
import { ActionSheetRef } from './action-sheet-ref.class';
/**
* @template T, R
*/
export class ActionSheetComponent extends ActionSheetRef {
/**
* @param {?} localeProviderService
* @param {?} elementRef
*/
constructor(localeProviderService, elementRef) {
super();
this.localeProviderService = localeProviderService;
this.elementRef = elementRef;
this.unsubscribe$ = new Subject();
}
/**
* @return {?}
*/
ngOnInit() {
this.localeProvider();
}
/**
* @return {?}
*/
localeProvider() {
/** @type {?} */
const self = this;
if (self.option.locale || self.option.locale !== undefined) {
self.localeProviderService.setLocale(self.option.locale);
}
self.localeProviderService.localeChange.pipe(takeUntil(self.unsubscribe$)).subscribe((/**
* @param {?} _
* @return {?}
*/
_ => {
if (self.option.cancelButtonText) {
self.option.cancelButtonText = self.localeProviderService.getLocaleSubObj('ActionSheet')['dismissText'];
}
}));
}
/**
* @param {?} index
* @param {?=} rowIndex
* @param {?=} event
* @return {?}
*/
onPress(index, rowIndex = 0, event) { }
/**
* @param {?} option
* @return {?}
*/
showShare(option) {
/** @type {?} */
const cls = { [`${option.prefixCls}-share`]: option.flag === 'SHARE' };
return cls;
}
/**
* @param {?} option
* @param {?} suffix
* @return {?}
*/
setActiveClassName(option, suffix) {
return [`${option.prefixCls}-${suffix}-active`];
}
/**
* @param {?} value
* @return {?}
*/
isNoTitle(value) {
return value === '' || value === null || value === undefined;
}
/**
* @param {?} value
* @return {?}
*/
isTemplateRef(value) {
return value instanceof TemplateRef;
}
/**
* @param {?} options
* @param {?} value
* @return {?}
*/
isArray(options, value) {
if (options.length > 0 && value) {
return value instanceof Array;
}
return false;
}
/**
* @return {?}
*/
getInstance() {
return this;
}
/**
* @return {?}
*/
getElement() {
return this.elementRef && this.elementRef.nativeElement;
}
/**
* @return {?}
*/
close() {
if (this.option.close) {
this.option.close();
}
}
/**
* @return {?}
*/
destroy() {
this.close();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
}
ActionSheetComponent.decorators = [
{ type: Component, args: [{
selector: 'ActionSheet',
template: "<div class=\"{{ option.prefixCls }}-mask {{ option.maskTransitionName }}\"></div>\n<div\n role=\"dialog\"\n class=\"{{ option.prefixCls }}-wrap {{ option.transitionName }}\"\n (click)=\"option.maskClose(-1, 0, $event)\"\n>\n <div role=\"document\" class=\"{{ option.prefixCls }}\" [ngClass]=\"showShare(option)\">\n <div class=\"{{ option.prefixCls }}-content\">\n <button aria-label=\"Close\" class=\"{{ option.prefixCls }}-close\">\n <span class=\"{{ option.prefixCls }}-close-x\"></span>\n </button>\n <div class=\"{{ option.prefixCls }}-body\">\n <div>\n <ng-container *ngIf=\"!isNoTitle(option.title)\">\n <ng-template *ngIf=\"isTemplateRef(option.title)\" [ngTemplateOutlet]=\"option.title\"></ng-template>\n <h3 *ngIf=\"!isTemplateRef(option.title)\" class=\"{{ option.prefixCls }}-title\">{{ option.title }}</h3>\n </ng-container>\n <ng-container *ngIf=\"!isNoTitle(option.message)\">\n <ng-template *ngIf=\"isTemplateRef(option.message)\" [ngTemplateOutlet]=\"option.message\"></ng-template>\n <div *ngIf=\"!isTemplateRef(option.message)\" class=\"{{ option.prefixCls }}-message\">\n {{ option.message }}\n </div>\n </ng-container>\n <ng-container [ngSwitch]=\"option.flag\">\n <div *ngSwitchCase=\"'NORMAL'\" class=\"{{ option.prefixCls }}-button-list\" role=\"group\">\n <ng-container *ngFor=\"let item of option.options; let i = index\">\n <div\n TouchFeedbackDirective\n class=\"{{ option.prefixCls }}-button-list-item\"\n [className]=\"setActiveClassName(option, 'button-list-item')\"\n >\n <div\n *ngIf=\"option.destructiveButtonIndex !== i && option.cancelButtonIndex !== i\"\n class=\"{{ option.prefixCls }}-button-list-item\"\n (click)=\"option.onPress(i, 0, $event)\"\n >\n {{ item }}\n </div>\n <div\n *ngIf=\"option.destructiveButtonIndex === i\"\n class=\"{{ option.prefixCls }}-button-list-item {{ option.prefixCls }}-destructive-button\"\n (click)=\"option.onPress(i, 0, $event)\"\n >\n {{ item }}\n </div>\n <div\n *ngIf=\"option.cancelButtonIndex === i\"\n class=\"{{ option.prefixCls }}-button-list-item {{ option.prefixCls }}-cancel-button\"\n (click)=\"option.onPress(i, 0, $event)\"\n >\n {{ item }}\n <span class=\"{{ option.prefixCls }}-cancel-button-mask\"></span>\n </div>\n </div>\n </ng-container>\n </div>\n <div *ngSwitchCase=\"'SHARE'\" class=\"{{ option.prefixCls }}-share {{ option.prefixCls }}-share-content\">\n <div *ngIf=\"!isArray(option.options, option.options[0])\" class=\"{{ option.prefixCls }}-share-list\">\n <ng-container *ngFor=\"let item of option.options; let i = index\">\n <div class=\"{{ option.prefixCls }}-share-list-item\" (click)=\"option.onPress(i, 0, $event)\">\n <div class=\"{{ option.prefixCls }}-share-list-item-icon\">\n <ng-template *ngIf=\"isTemplateRef(item.icon)\" [ngTemplateOutlet]=\"item.icon\"></ng-template>\n <div *ngIf=\"!isTemplateRef(item.icon)\" [innerHTML]=\"item.icon | safeHTML\"></div>\n </div>\n <div class=\"{{ option.prefixCls }}-share-list-item-title\">{{ item.title }}</div>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"isArray(option.options, option.options[0])\">\n <div\n *ngFor=\"let items of option.options; let rowIndex = index\"\n class=\"{{ option.prefixCls }}-share-list\"\n >\n <ng-container *ngFor=\"let item of items; let i = index\">\n <div class=\"{{ option.prefixCls }}-share-list-item\" (click)=\"option.onPress(i, rowIndex, $event)\">\n <div class=\"{{ option.prefixCls }}-share-list-item-icon\">\n <ng-template *ngIf=\"isTemplateRef(item.icon)\" [ngTemplateOutlet]=\"item.icon\"></ng-template>\n <div *ngIf=\"!isTemplateRef(item.icon)\" [innerHTML]=\"item.icon | safeHTML\"></div>\n </div>\n <div class=\"{{ option.prefixCls }}-share-list-item-title\">{{ item.title }}</div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div\n TouchFeedbackDirective\n [className]=\"setActiveClassName(option, 'share-cancel-button')\"\n class=\"{{ option.prefixCls }}-share-cancel-button\"\n >\n {{ option.cancelButtonText }}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n",
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
ActionSheetComponent.ctorParameters = () => [
{ type: LocaleProviderService },
{ type: ElementRef }
];
if (false) {
/** @type {?} */
ActionSheetComponent.prototype.unsubscribe$;
/** @type {?} */
ActionSheetComponent.prototype.option;
/**
* @type {?}
* @private
*/
ActionSheetComponent.prototype.localeProviderService;
/** @type {?} */
ActionSheetComponent.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsiYWN0aW9uLXNoZWV0L2FjdGlvbi1zaGVldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFNMUQsTUFBTSxPQUFPLG9CQUF1QyxTQUFRLGNBQW9COzs7OztJQUc5RSxZQUFvQixxQkFBNEMsRUFBUyxVQUFzQjtRQUM3RixLQUFLLEVBQUUsQ0FBQztRQURVLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRi9GLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUluQyxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7O0lBRUQsY0FBYzs7Y0FDTixJQUFJLEdBQUcsSUFBSTtRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUMxRCxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3pHO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFDLEtBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBRyxDQUFDOzs7OztJQUMzQyxTQUFTLENBQUMsTUFBTTs7Y0FDUixHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7UUFDdEUsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzs7Ozs7SUFFRCxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTTtRQUMvQixPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7Ozs7SUFFRCxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUMvRCxDQUFDOzs7OztJQUVELGFBQWEsQ0FBQyxLQUFLO1FBQ2pCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7SUFFRCxPQUFPLENBQUMsT0FBWSxFQUFFLEtBQVU7UUFDOUIsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLEVBQUU7WUFDL0IsT0FBTyxLQUFLLFlBQVksS0FBSyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7O0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDMUQsQ0FBQzs7OztJQUVELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDOzs7O0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7OztZQTFFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLHl1S0FBNEM7Z0JBQzVDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7O1lBTlEscUJBQXFCO1lBSFMsVUFBVTs7OztJQVcvQyw0Q0FBbUM7O0lBQ25DLHNDQUFZOzs7OztJQUNBLHFEQUFvRDs7SUFBRSwwQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uL2xvY2FsZS1wcm92aWRlci9sb2NhbGUtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25TaGVldFJlZiB9IGZyb20gJy4vYWN0aW9uLXNoZWV0LXJlZi5jbGFzcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdBY3Rpb25TaGVldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tc2hlZXQuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvblNoZWV0Q29tcG9uZW50PFQgPSBhbnksIFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uU2hlZXRSZWY8VCwgUj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIG9wdGlvbjogYW55O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsZVByb3ZpZGVyU2VydmljZTogTG9jYWxlUHJvdmlkZXJTZXJ2aWNlLCBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvY2FsZVByb3ZpZGVyKCk7XG4gIH1cblxuICBsb2NhbGVQcm92aWRlcigpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBpZiAoc2VsZi5vcHRpb24ubG9jYWxlIHx8IHNlbGYub3B0aW9uLmxvY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZWxmLmxvY2FsZVByb3ZpZGVyU2VydmljZS5zZXRMb2NhbGUoc2VsZi5vcHRpb24ubG9jYWxlKTtcbiAgICB9XG4gICAgc2VsZi5sb2NhbGVQcm92aWRlclNlcnZpY2UubG9jYWxlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHNlbGYudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgaWYgKHNlbGYub3B0aW9uLmNhbmNlbEJ1dHRvblRleHQpIHtcbiAgICAgICAgc2VsZi5vcHRpb24uY2FuY2VsQnV0dG9uVGV4dCA9IHNlbGYubG9jYWxlUHJvdmlkZXJTZXJ2aWNlLmdldExvY2FsZVN1Yk9iaignQWN0aW9uU2hlZXQnKVsnZGlzbWlzc1RleHQnXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uUHJlc3MoaW5kZXg6IGFueSwgcm93SW5kZXggPSAwLCBldmVudCkge31cbiAgc2hvd1NoYXJlKG9wdGlvbikge1xuICAgIGNvbnN0IGNscyA9IHsgW2Ake29wdGlvbi5wcmVmaXhDbHN9LXNoYXJlYF06IG9wdGlvbi5mbGFnID09PSAnU0hBUkUnIH07XG4gICAgcmV0dXJuIGNscztcbiAgfVxuXG4gIHNldEFjdGl2ZUNsYXNzTmFtZShvcHRpb24sIHN1ZmZpeCkge1xuICAgIHJldHVybiBbYCR7b3B0aW9uLnByZWZpeENsc30tJHtzdWZmaXh9LWFjdGl2ZWBdO1xuICB9XG5cbiAgaXNOb1RpdGxlKHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNUZW1wbGF0ZVJlZih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG5cbiAgaXNBcnJheShvcHRpb25zOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAob3B0aW9ucy5sZW5ndGggPiAwICYmIHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBBcnJheTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0SW5zdGFuY2UoKTogQWN0aW9uU2hlZXRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZiAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbi5jbG9zZSkge1xuICAgICAgdGhpcy5vcHRpb24uY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=