ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
103 lines • 14.1 kB
JavaScript
import { Injectable } from '@angular/core';
import { ActionSheetComponent } from './action-sheet.component';
import { ActionSheetOptions, ShareActionSheetWithOptions } from './action-sheet-options.provider';
import { PopupService } from 'ng-zorro-antd-mobile/core';
import * as i0 from "@angular/core";
const NORMAL = 'NORMAL';
const SHARE = 'SHARE';
function noop() { }
export class ActionSheetService extends PopupService {
constructor() {
super(...arguments);
this.compRef = null;
this._actionSheetCompFactory = null;
this.appRef = null;
this.comRef = null;
this.instance = null;
}
_initConfig(config, options = {}) {
const props = new ActionSheetOptions();
const optionalParams = [
'prefixCls',
'maskClosable',
'cancelButtonText',
'cancelButtonIndex',
'destructiveButtonIndex',
'title',
'message',
'className',
'transitionName',
'maskTransitionName',
'options',
'locale',
'close'
];
const self = this;
config = Object.assign(options, config, {
close: () => {
if (config.maskClosable) {
self.closeWithAnimation(config.transitionName, config.maskTransitionName);
}
}
});
optionalParams.forEach(key => {
if (config[key] !== undefined) {
props[key] = config[key];
}
});
return props;
}
_open(props) {
this.comRef = this.showPopup(ActionSheetComponent);
this.comRef.instance.option = props;
return this.comRef && this.comRef.instance;
}
createActionSheet(flag, config, callback) {
const options = flag === NORMAL ? new ActionSheetOptions() : new ShareActionSheetWithOptions();
const transitionName = config.transitionName ? config.transitionName : options.transitionName;
options.transitionName = `${transitionName}-enter ${transitionName}-enter-active`;
const maskTransitionName = config.maskTransitionName ? config.maskTransitionName : options.maskTransitionName;
options.maskTransitionName = `${maskTransitionName}-enter ${maskTransitionName}-enter-active`;
const props = this._initConfig(config, options);
Object.assign(props, { onPress: cb }, { flag: flag }, { maskClose: props.maskClosable ? cb : () => { } });
const self = this;
function cb(index, rowIndex = 0, event) {
event.stopPropagation();
const res = callback(index, rowIndex);
if (res && res.then) {
res.then(() => {
self.closeWithAnimation(transitionName, maskTransitionName);
});
}
else {
self.closeWithAnimation(transitionName, maskTransitionName);
}
}
return this._open(props);
}
closeWithAnimation(transitionName, maskTransitionName) {
this.comRef.instance.option.transitionName = `${transitionName}-leave ${transitionName}-leave-active`;
this.comRef.instance.option.maskTransitionName = `${maskTransitionName}-leave ${maskTransitionName}-leave-active`;
setTimeout(() => {
this.close();
}, 200);
}
showActionSheetWithOptions(config, callback = noop) {
return this.createActionSheet(NORMAL, config, callback);
}
showShareActionSheetWithOptions(config, callback = noop) {
return this.createActionSheet(SHARE, config, callback);
}
close() {
this.hidePopup();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ActionSheetService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ActionSheetService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ActionSheetService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXNoZWV0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2FjdGlvbi1zaGVldC9hY3Rpb24tc2hlZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBRUwsa0JBQWtCLEVBRWxCLDJCQUEyQixFQUM1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFekQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ3hCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUN0QixTQUFTLElBQUksS0FBSSxDQUFDO0FBSWxCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFZO0lBSHBEOztRQUlFLFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBQ2xDLDRCQUF1QixHQUEyQyxJQUFJLENBQUM7UUFDdkUsV0FBTSxHQUFtQixJQUFJLENBQUM7UUFDOUIsV0FBTSxHQUF1QyxJQUFJLENBQUM7UUFFbEQsYUFBUSxHQUFHLElBQUksQ0FBQztLQXVGakI7SUFyRkMsV0FBVyxDQUFDLE1BQTBCLEVBQUUsVUFBa0IsRUFBRTtRQUMxRCxNQUFNLEtBQUssR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzNELE1BQU0sY0FBYyxHQUFhO1lBQy9CLFdBQVc7WUFDWCxjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsT0FBTztZQUNQLFNBQVM7WUFDVCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixTQUFTO1lBQ1QsUUFBUTtZQUNSLE9BQU87U0FDUixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxD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QUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLGNBQWMsRUFBRSxrQkFBa0I7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyxHQUFHLGNBQWMsVUFBVSxjQUFjLGVBQWUsQ0FBQztRQUN0RyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxrQkFBa0IsVUFBVSxrQkFBa0IsZUFBZSxDQUFDO1FBQ2xILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsMEJBQTBCLENBQUMsTUFBOEIsRUFBRSxXQUEyQixJQUFJO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELCtCQUErQixDQUFDLE1BQW1DLEVBQUUsV0FBMkIsSUFBSTtRQUNsRyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7OEdBNUZVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBDb21wb25lbnRSZWYsIENvbXBvbmVudEZhY3RvcnksIEFwcGxpY2F0aW9uUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLXNoZWV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25DYWxsQmFjayxcbiAgQWN0aW9uU2hlZXRPcHRpb25zLFxuICBBY3Rpb25TaGVldFdpdGhPcHRpb25zLFxuICBTaGFyZUFjdGlvblNoZWV0V2l0aE9wdGlvbnNcbn0gZnJvbSAnLi9hY3Rpb24tc2hlZXQtb3B0aW9ucy5wcm92aWRlcic7XG5pbXBvcnQgeyBQb3B1cFNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkLW1vYmlsZS9jb3JlJztcblxuY29uc3QgTk9STUFMID0gJ05PUk1BTCc7XG5jb25zdCBTSEFSRSA9ICdTSEFSRSc7XG5mdW5jdGlvbiBub29wKCkge31cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvblNoZWV0U2VydmljZSBleHRlbmRzIFBvcHVwU2VydmljZSB7XG4gIGNvbXBSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gbnVsbDtcbiAgX2FjdGlvblNoZWV0Q29tcEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8QWN0aW9uU2hlZXRDb21wb25lbnQ+ID0gbnVsbDtcbiAgYXBwUmVmOiBBcHBsaWNhdGlvblJlZiA9IG51bGw7XG4gIGNvbVJlZjogQ29tcG9uZW50UmVmPEFjdGlvblNoZWV0Q29tcG9uZW50PiA9IG51bGw7XG5cbiAgaW5zdGFuY2UgPSBudWxsO1xuXG4gIF9pbml0Q29uZmlnKGNvbmZpZzogQWN0aW9uU2hlZXRPcHRpb25zLCBvcHRpb25zOiBPYmplY3QgPSB7fSk6IEFjdGlvblNoZWV0T3B0aW9ucyB7XG4gICAgY29uc3QgcHJvcHM6IEFjdGlvblNoZWV0T3B0aW9ucyA9IG5ldyBBY3Rpb25TaGVldE9wdGlvbnMoKTtcbiAgICBjb25zdCBvcHRpb25hbFBhcmFtczogc3RyaW5nW10gPSBbXG4gICAgICAncHJlZml4Q2xzJyxcbiAgICAgICdtYXNrQ2xvc2FibGUnLFxuICAgICAgJ2NhbmNlbEJ1dHRvblRleHQnLFxuICAgICAgJ2NhbmNlbEJ1dHRvbkluZGV4JyxcbiAgICAgICdkZXN0cnVjdGl2ZUJ1dHRvbkluZGV4JyxcbiAgICAgICd0aXRsZScsXG4gICAgICAnbWVzc2FnZScsXG4gICAgICAnY2xhc3NOYW1lJyxcbiAgICAgICd0cmFuc2l0aW9uTmFtZScsXG4gICAgICAnbWFza1RyYW5zaXRpb25OYW1lJyxcbiAgICAgICdvcHRpb25zJyxcbiAgICAgICdsb2NhbGUnLFxuICAgICAgJ2Nsb3NlJ1xuICAgIF07XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uZmlnID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCBjb25maWcsIHtcbiAgICAgIGNsb3NlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChjb25maWcubWFza0Nsb3NhYmxlKSB7XG4gICAgICAgICAgc2VsZi5jbG9zZVdpdGhBbmltYXRpb24oY29uZmlnLnRyYW5zaXRpb25OYW1lLCBjb25maWcubWFza1RyYW5zaXRpb25OYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIG9wdGlvbmFsUGFyYW1zLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChjb25maWdba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BzW2tleV0gPSBjb25maWdba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvcHM7XG4gIH1cblxuICBfb3Blbihwcm9wczogQWN0aW9uU2hlZXRPcHRpb25zKSB7XG4gICAgdGhpcy5jb21SZWYgPSB0aGlzLnNob3dQb3B1cChBY3Rpb25TaGVldENvbXBvbmVudCk7XG4gICAgdGhpcy5jb21SZWYuaW5zdGFuY2Uub3B0aW9uID0gcHJvcHM7XG4gICAgcmV0dXJuIHRoaXMuY29tUmVmICYmIHRoaXMuY29tUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgY3JlYXRlQWN0aW9uU2hlZXQoXG4gICAgZmxhZzogc3RyaW5nLFxuICAgIGNvbmZpZzogQWN0aW9uU2hlZXRXaXRoT3B0aW9ucyB8IFNoYXJlQWN0aW9uU2hlZXRXaXRoT3B0aW9ucyxcbiAgICBjYWxsYmFjazogQWN0aW9uQ2FsbEJhY2tcbiAgKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGZsYWcgPT09IE5PUk1BTCA/IG5ldyBBY3Rpb25TaGVldE9wdGlvbnMoKSA6IG5ldyBTaGFyZUFjdGlvblNoZWV0V2l0aE9wdGlvbnMoKTtcbiAgICBjb25zdCB0cmFuc2l0aW9uTmFtZSA9IGNvbmZpZy50cmFuc2l0aW9uTmFtZSA/IGNvbmZpZy50cmFuc2l0aW9uTmFtZSA6IG9wdGlvbnMudHJhbnNpdGlvbk5hbWU7XG4gICAgb3B0aW9ucy50cmFuc2l0aW9uTmFtZSA9IGAke3RyYW5zaXRpb25OYW1lfS1lbnRlciAke3RyYW5zaXRpb25OYW1lfS1lbnRlci1hY3RpdmVgO1xuICAgIGNvbnN0IG1hc2tUcmFuc2l0aW9uTmFtZSA9IGNvbmZpZy5tYXNrVHJhbnNpdGlvbk5hbWUgPyBjb25maWcubWFza1RyYW5zaXRpb25OYW1lIDogb3B0aW9ucy5tYXNrVHJhbnNpdGlvbk5hbWU7XG4gICAgb3B0aW9ucy5tYXNrVHJhbnNpdGlvbk5hbWUgPSBgJHttYXNrVHJhbnNpdGlvbk5hbWV9LWVudGVyICR7bWFza1RyYW5zaXRpb25OYW1lfS1lbnRlci1hY3RpdmVgO1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5faW5pdENvbmZpZyhjb25maWcsIG9wdGlvbnMpO1xuICAgIE9iamVjdC5hc3NpZ24ocHJvcHMsIHsgb25QcmVzczogY2IgfSwgeyBmbGFnOiBmbGFnIH0sIHsgbWFza0Nsb3NlOiBwcm9wcy5tYXNrQ2xvc2FibGUgPyBjYiA6ICgpID0+IHt9IH0pO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGNiKGluZGV4OiBhbnksIHJvd0luZGV4ID0gMCwgZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgY29uc3QgcmVzID0gY2FsbGJhY2soaW5kZXgsIHJvd0luZGV4KTtcbiAgICAgIGlmIChyZXMgJiYgcmVzLnRoZW4pIHtcbiAgICAgICAgcmVzLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHNlbGYuY2xvc2VXaXRoQW5pbWF0aW9uKHRyYW5zaXRpb25OYW1lLCBtYXNrVHJhbnNpdGlvbk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYuY2xvc2VXaXRoQW5pbWF0aW9uKHRyYW5zaXRpb25OYW1lLCBtYXNrVHJhbnNpdGlvbk5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fb3Blbihwcm9wcyk7XG4gIH1cblxuICBjbG9zZVdpdGhBbmltYXRpb24odHJhbnNpdGlvbk5hbWUsIG1hc2tUcmFuc2l0aW9uTmFtZSkge1xuICAgIHRoaXMuY29tUmVmLmluc3RhbmNlLm9wdGlvbi50cmFuc2l0aW9uTmFtZSA9IGAke3RyYW5zaXRpb25OYW1lfS1sZWF2ZSAke3RyYW5zaXRpb25OYW1lfS1sZWF2ZS1hY3RpdmVgO1xuICAgIHRoaXMuY29tUmVmLmluc3RhbmNlLm9wdGlvbi5tYXNrVHJhbnNpdGlvbk5hbWUgPSBgJHttYXNrVHJhbnNpdGlvbk5hbWV9LWxlYXZlICR7bWFza1RyYW5zaXRpb25OYW1lfS1sZWF2ZS1hY3RpdmVgO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBzaG93QWN0aW9uU2hlZXRXaXRoT3B0aW9ucyhjb25maWc6IEFjdGlvblNoZWV0V2l0aE9wdGlvbnMsIGNhbGxiYWNrOiBBY3Rpb25DYWxsQmFjayA9IG5vb3ApIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBY3Rpb25TaGVldChOT1JNQUwsIGNvbmZpZywgY2FsbGJhY2spO1xuICB9XG5cbiAgc2hvd1NoYXJlQWN0aW9uU2hlZXRXaXRoT3B0aW9ucyhjb25maWc6IFNoYXJlQWN0aW9uU2hlZXRXaXRoT3B0aW9ucywgY2FsbGJhY2s6IEFjdGlvbkNhbGxCYWNrID0gbm9vcCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFjdGlvblNoZWV0KFNIQVJFLCBjb25maWcsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaGlkZVBvcHVwKCk7XG4gIH1cbn1cbiJdfQ==