UNPKG

@kre-form/ant

Version:

241 lines 19.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from "@angular/core"; import { NzModalService } from "ng-zorro-antd"; import * as i0 from "@angular/core"; import * as i1 from "ng-zorro-antd/modal"; /** * @record */ export function ModalOptions() { } if (false) { /** @type {?} */ ModalOptions.prototype.nzContent; /** @type {?} */ ModalOptions.prototype.size; /** @type {?|undefined} */ ModalOptions.prototype.nzTitle; /** @type {?|undefined} */ ModalOptions.prototype.primaryLabel; /** @type {?|undefined} */ ModalOptions.prototype.vertical; /** @type {?|undefined} */ ModalOptions.prototype.hideBtn; /** @type {?|undefined} */ ModalOptions.prototype.showResetBtn; } export class KreDialogService { /** * @param {?} modalService */ constructor(modalService) { this.modalService = modalService; } /** * @param {?} size * @return {?} */ switchSize(size) { /** @type {?} */ const obj = { width: 700, height: 500, }; switch (size) { case "small": obj.width = 530; obj.height = 400; break; case "medium": obj.width = 700; obj.height = 500; break; case "large": obj.width = 950; obj.height = 600; break; default: obj.width = 700; obj.height = 500; break; } return obj; } /** * @param {?} modalOptions * @param {?} params * @param {?} callback * @return {?} */ CreateModelDialog(modalOptions, params, callback) { /** @type {?} */ const width = this.switchSize(modalOptions.size).width; /** @type {?} */ const height = this.switchSize(modalOptions.size).height; /** @type {?} */ const modal = this.modalService.create({ nzTitle: modalOptions.nzTitle ? modalOptions.nzTitle : "提示", nzWidth: width + "px", nzClosable: true, nzMaskClosable: false, nzWrapClassName: modalOptions["vertical"] ? "vertical-center-modal" : "", nzBodyStyle: { padding: "0", height: !modalOptions["hideBtn"] ? height - 107 + "px" : height - 54 + "px", }, nzContent: modalOptions.nzContent, nzFooter: !modalOptions["hideBtn"] ? [ { show: true, label: "取消", type: "default", onClick: (/** * @param {?} componentInstance * @return {?} */ (componentInstance) => { modal.destroy(); }), }, { show: modalOptions["showResetBtn"], label: "重置", type: "default", onClick: (/** * @param {?} componentInstance * @return {?} */ (componentInstance) => callback(componentInstance, modal)), }, { show: true, label: modalOptions["primaryLabel"] ? modalOptions["primaryLabel"] : "确定", type: "primary", onClick: (/** * @param {?} componentInstance * @return {?} */ (componentInstance) => callback(componentInstance, modal)), }, ] : null, nzOnOk: (/** * @param {?} data * @return {?} */ (data) => { }), nzOnCancel: (/** * @param {?} data * @return {?} */ (data) => { }), nzComponentParams: params, }); modal.afterClose.subscribe((/** * @param {?} result * @return {?} */ (result) => { if (result) { callback(result); } })); } /** * @param {?} modalOptions * @param {?} params * @param {?} callback * @return {?} */ CreateModelDialogField(modalOptions, params, callback) { /** @type {?} */ const width = this.switchSize(modalOptions.size).width; /** @type {?} */ const height = this.switchSize(modalOptions.size).height; /** @type {?} */ const modal = this.modalService.create({ nzTitle: modalOptions.nzTitle ? modalOptions.nzTitle : "提示", nzWidth: width + "px", nzClosable: true, nzMaskClosable: false, nzWrapClassName: modalOptions["vertical"] ? "vertical-center-modal" : "", nzBodyStyle: { padding: "0", height: !modalOptions["hideBtn"] ? height - 107 + "px" : height - 54 + "px", }, nzContent: modalOptions.nzContent, nzFooter: !modalOptions["hideBtn"] ? [ { show: true, label: "取消", type: "default", onClick: (/** * @param {?} componentInstance * @return {?} */ (componentInstance) => { modal.destroy(); }), }, { show: true, label: modalOptions["primaryLabel"] ? modalOptions["primaryLabel"] : "确定", type: "primary", onClick: (/** * @param {?} componentInstance * @return {?} */ (componentInstance) => callback("save", componentInstance, modal)), }, ] : null, nzOnOk: (/** * @param {?} data * @return {?} */ (data) => { }), nzOnCancel: (/** * @param {?} data * @return {?} */ (data) => { }), nzComponentParams: params, }); modal.afterClose.subscribe((/** * @param {?} result * @return {?} */ (result) => { if (result) { callback(result); } })); } } KreDialogService.decorators = [ { type: Injectable, args: [{ providedIn: "root", },] } ]; /** @nocollapse */ KreDialogService.ctorParameters = () => [ { type: NzModalService } ]; /** @nocollapse */ KreDialogService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function KreDialogService_Factory() { return new KreDialogService(i0.ɵɵinject(i1.NzModalService)); }, token: KreDialogService, providedIn: "root" }); if (false) { /** @type {?} */ KreDialogService.prototype.modalService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3JlLWZvcm0vYW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBRzNELGtDQVFDOzs7SUFQQyxpQ0FBZTs7SUFDZiw0QkFBb0I7O0lBQ3BCLCtCQUFpQjs7SUFDakIsb0NBQXNCOztJQUN0QixnQ0FBbUI7O0lBQ25CLCtCQUFrQjs7SUFDbEIsb0NBQXVCOztBQUt6QixNQUFNLE9BQU8sZ0JBQWdCOzs7O0lBQzNCLFlBQW1CLFlBQTRCO1FBQTVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtJQUFHLENBQUM7Ozs7O0lBQ25ELFVBQVUsQ0FBQyxJQUFTOztjQUNaLEdBQUcsR0FBRztZQUNWLEtBQUssRUFBRSxHQUFHO1lBQ1YsTUFBTSxFQUFFLEdBQUc7U0FDWjtRQUNELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxPQUFPO2dCQUNWLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUNoQixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDaEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixNQUFNO1lBQ1I7Z0JBQ0UsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FB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QUFPOzs7O3dCQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUM3QixRQUFRLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFBO3FCQUM3QztpQkFDRjtnQkFDSCxDQUFDLENBQUMsSUFBSTtZQUNSLE1BQU07Ozs7WUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFBO1lBQ3BCLFVBQVU7Ozs7WUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFBO1lBQ3hCLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQztRQUVGLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUzs7OztRQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDekMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE3SUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBZFEsY0FBYzs7Ozs7SUFnQlQsd0NBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOek1vZGFsU2VydmljZSwgVXBsb2FkRmlsZSB9IGZyb20gXCJuZy16b3Jyby1hbnRkXCI7XG5cbnR5cGUgTW9kYWxTaXplVHlwZSA9IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCI7XG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsT3B0aW9ucyB7XG4gIG56Q29udGVudDogYW55OyAvL+e7hOS7tlxuICBzaXplOiBNb2RhbFNpemVUeXBlOyAvL+Wwjy/kuK0v5aSnXG4gIG56VGl0bGU/OiBzdHJpbmc7IC8v5qCH6aKYXG4gIHByaW1hcnlMYWJlbD86IHN0cmluZzsgLy/mjInpkq7igJhsYWJlbOKAmSzkuI3kvKDpu5jorqTkuLrigJjnoa7lrprigJlcbiAgdmVydGljYWw/OiBib29sZWFuOyAvL+W8ueahhuaYr+WQpuS4uuWeguebtOWxheS4re+8jOm7mOiupOS4jeWeguebtOWxheS4rVxuICBoaWRlQnRuPzogYm9vbGVhbjsgLy/mmK/lkKbpmpDol49mb290ZXLmjInpkq5cbiAgc2hvd1Jlc2V0QnRuPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrph43nva7mjInpkq5cbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIEtyZURpYWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOek1vZGFsU2VydmljZSkge31cbiAgc3dpdGNoU2l6ZShzaXplOiBhbnkpIHtcbiAgICBjb25zdCBvYmogPSB7XG4gICAgICB3aWR0aDogNzAwLFxuICAgICAgaGVpZ2h0OiA1MDAsXG4gICAgfTtcbiAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgIGNhc2UgXCJzbWFsbFwiOlxuICAgICAgICBvYmoud2lkdGggPSA1MzA7XG4gICAgICAgIG9iai5oZWlnaHQgPSA0MDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1lZGl1bVwiOlxuICAgICAgICBvYmoud2lkdGggPSA3MDA7XG4gICAgICAgIG9iai5oZWlnaHQgPSA1MDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImxhcmdlXCI6XG4gICAgICAgIG9iai53aWR0aCA9IDk1MDtcbiAgICAgICAgb2JqLmhlaWdodCA9IDYwMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBvYmoud2lkdGggPSA3MDA7XG4gICAgICAgIG9iai5oZWlnaHQgPSA1MDA7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIHB1YmxpYyBDcmVhdGVNb2RlbERpYWxvZyhcbiAgICBtb2RhbE9wdGlvbnM6IE1vZGFsT3B0aW9ucyxcbiAgICBwYXJhbXM6IGFueSxcbiAgICBjYWxsYmFjazogYW55XG4gICkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5zd2l0Y2hTaXplKG1vZGFsT3B0aW9ucy5zaXplKS53aWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLnN3aXRjaFNpemUobW9kYWxPcHRpb25zLnNpemUpLmhlaWdodDtcbiAgICBjb25zdCBtb2RhbDogYW55ID0gdGhpcy5tb2RhbFNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIG56VGl0bGU6IG1vZGFsT3B0aW9ucy5uelRpdGxlID8gbW9kYWxPcHRpb25zLm56VGl0bGUgOiBcIuaPkOekulwiLFxuICAgICAgbnpXaWR0aDogd2lkdGggKyBcInB4XCIsXG4gICAgICBuekNsb3NhYmxlOiB0cnVlLFxuICAgICAgbnpNYXNrQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgbnpXcmFwQ2xhc3NOYW1lOiBtb2RhbE9wdGlvbnNbXCJ2ZXJ0aWNhbFwiXSA/IFwidmVydGljYWwtY2VudGVyLW1vZGFsXCIgOiBcIlwiLFxuICAgICAgbnpCb2R5U3R5bGU6IHtcbiAgICAgICAgcGFkZGluZzogXCIwXCIsXG4gICAgICAgIGhlaWdodDogIW1vZGFsT3B0aW9uc1tcImhpZGVCdG5cIl1cbiAgICAgICAgICA/IGhlaWdodCAtIDEwNyArIFwicHhcIlxuICAgICAgICAgIDogaGVpZ2h0IC0gNTQgKyBcInB4XCIsXG4gICAgICB9LFxuICAgICAgbnpDb250ZW50OiBtb2RhbE9wdGlvbnMubnpDb250ZW50LFxuICAgICAgbnpGb290ZXI6ICFtb2RhbE9wdGlvbnNbXCJoaWRlQnRuXCJdXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICBsYWJlbDogXCLlj5bmtohcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIG9uQ2xpY2s6IChjb21wb25lbnRJbnN0YW5jZSkgPT4ge1xuICAgICAgICAgICAgICAgIG1vZGFsLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNob3c6IG1vZGFsT3B0aW9uc1tcInNob3dSZXNldEJ0blwiXSxcbiAgICAgICAgICAgICAgbGFiZWw6IFwi6YeN572uXCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBvbkNsaWNrOiAoY29tcG9uZW50SW5zdGFuY2UpID0+XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soY29tcG9uZW50SW5zdGFuY2UsIG1vZGFsKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNob3c6IHRydWUsXG4gICAgICAgICAgICAgIGxhYmVsOiBtb2RhbE9wdGlvbnNbXCJwcmltYXJ5TGFiZWxcIl1cbiAgICAgICAgICAgICAgICA/IG1vZGFsT3B0aW9uc1tcInByaW1hcnlMYWJlbFwiXVxuICAgICAgICAgICAgICAgIDogXCLnoa7lrppcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJwcmltYXJ5XCIsXG4gICAgICAgICAgICAgIG9uQ2xpY2s6IChjb21wb25lbnRJbnN0YW5jZSkgPT5cbiAgICAgICAgICAgICAgICBjYWxsYmFjayhjb21wb25lbnRJbnN0YW5jZSwgbW9kYWwpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogbnVsbCxcbiAgICAgIG56T25PazogKGRhdGEpID0+IHt9LFxuICAgICAgbnpPbkNhbmNlbDogKGRhdGEpID0+IHt9LFxuICAgICAgbnpDb21wb25lbnRQYXJhbXM6IHBhcmFtcyxcbiAgICB9KTtcblxuICAgIG1vZGFsLmFmdGVyQ2xvc2Uuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjYWxsYmFjayhyZXN1bHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIENyZWF0ZU1vZGVsRGlhbG9nRmllbGQoXG4gICAgbW9kYWxPcHRpb25zOiBNb2RhbE9wdGlvbnMsXG4gICAgcGFyYW1zOiBhbnksXG4gICAgY2FsbGJhY2s6IGFueVxuICApIHtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3dpdGNoU2l6ZShtb2RhbE9wdGlvbnMuc2l6ZSkud2lkdGg7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5zd2l0Y2hTaXplKG1vZGFsT3B0aW9ucy5zaXplKS5oZWlnaHQ7XG4gICAgY29uc3QgbW9kYWw6IGFueSA9IHRoaXMubW9kYWxTZXJ2aWNlLmNyZWF0ZSh7XG4gICAgICBuelRpdGxlOiBtb2RhbE9wdGlvbnMubnpUaXRsZSA/IG1vZGFsT3B0aW9ucy5uelRpdGxlIDogXCLmj5DnpLpcIixcbiAgICAgIG56V2lkdGg6IHdpZHRoICsgXCJweFwiLFxuICAgICAgbnpDbG9zYWJsZTogdHJ1ZSxcbiAgICAgIG56TWFza0Nsb3NhYmxlOiBmYWxzZSxcbiAgICAgIG56V3JhcENsYXNzTmFtZTogbW9kYWxPcHRpb25zW1widmVydGljYWxcIl0gPyBcInZlcnRpY2FsLWNlbnRlci1tb2RhbFwiIDogXCJcIixcbiAgICAgIG56Qm9keVN0eWxlOiB7XG4gICAgICAgIHBhZGRpbmc6IFwiMFwiLFxuICAgICAgICBoZWlnaHQ6ICFtb2RhbE9wdGlvbnNbXCJoaWRlQnRuXCJdXG4gICAgICAgICAgPyBoZWlnaHQgLSAxMDcgKyBcInB4XCJcbiAgICAgICAgICA6IGhlaWdodCAtIDU0ICsgXCJweFwiLFxuICAgICAgfSxcbiAgICAgIG56Q29udGVudDogbW9kYWxPcHRpb25zLm56Q29udGVudCxcbiAgICAgIG56Rm9vdGVyOiAhbW9kYWxPcHRpb25zW1wiaGlkZUJ0blwiXVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgbGFiZWw6IFwi5Y+W5raIXCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBvbkNsaWNrOiAoY29tcG9uZW50SW5zdGFuY2UpID0+IHtcbiAgICAgICAgICAgICAgICBtb2RhbC5kZXN0cm95KCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICBsYWJlbDogbW9kYWxPcHRpb25zW1wicHJpbWFyeUxhYmVsXCJdXG4gICAgICAgICAgICAgICAgPyBtb2RhbE9wdGlvbnNbXCJwcmltYXJ5TGFiZWxcIl1cbiAgICAgICAgICAgICAgICA6IFwi56Gu5a6aXCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgICBvbkNsaWNrOiAoY29tcG9uZW50SW5zdGFuY2UpID0+XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soXCJzYXZlXCIsIGNvbXBvbmVudEluc3RhbmNlLCBtb2RhbCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBudWxsLFxuICAgICAgbnpPbk9rOiAoZGF0YSkgPT4ge30sXG4gICAgICBuek9uQ2FuY2VsOiAoZGF0YSkgPT4ge30sXG4gICAgICBuekNvbXBvbmVudFBhcmFtczogcGFyYW1zLFxuICAgIH0pO1xuXG4gICAgbW9kYWwuYWZ0ZXJDbG9zZS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==