UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

651 lines (637 loc) 25.9 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs'), require('@angular/cdk/overlay'), require('@angular/common'), require('ng-zorro-antd/icon'), require('@angular/core'), require('ng-zorro-antd/core')) : typeof define === 'function' && define.amd ? define('ng-zorro-antd/message', ['exports', 'rxjs', '@angular/cdk/overlay', '@angular/common', 'ng-zorro-antd/icon', '@angular/core', 'ng-zorro-antd/core'], factory) : (factory((global['ng-zorro-antd'] = global['ng-zorro-antd'] || {}, global['ng-zorro-antd'].message = {}),global.rxjs,global.ng.cdk.overlay,global.ng.common,global['ng-zorro-antd'].icon,global.ng.core,global['ng-zorro-antd'].core)); }(this, (function (exports,rxjs,i1,common,icon,i0,core) { 'use strict'; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function () { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var NZ_MESSAGE_DEFAULT_CONFIG = new i0.InjectionToken('NZ_MESSAGE_DEFAULT_CONFIG'); /** @type {?} */ var NZ_MESSAGE_CONFIG = new i0.InjectionToken('NZ_MESSAGE_CONFIG'); /** @type {?} */ var NZ_MESSAGE_DEFAULT_CONFIG_PROVIDER = { provide: NZ_MESSAGE_DEFAULT_CONFIG, useValue: { nzAnimate: true, nzDuration: 3000, nzMaxStack: 7, nzPauseOnHover: true, nzTop: 24 } }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var NzMessageContainerComponent = /** @class */ (function () { function NzMessageContainerComponent(cdr, defaultConfig, config) { this.cdr = cdr; this.messages = []; this.setConfig(__assign({}, defaultConfig, config)); } /** * @param {?} config * @return {?} */ NzMessageContainerComponent.prototype.setConfig = /** * @param {?} config * @return {?} */ function (config) { this.config = __assign({}, this.config, config); this.top = core.toCssPixel(this.config.nzTop); this.cdr.markForCheck(); }; /** * Create a new message. * @param message Parsed message configuration. */ /** * Create a new message. * @param {?} message Parsed message configuration. * @return {?} */ NzMessageContainerComponent.prototype.createMessage = /** * Create a new message. * @param {?} message Parsed message configuration. * @return {?} */ function (message) { if (this.messages.length >= this.config.nzMaxStack) { this.messages.splice(0, 1); } message.options = this._mergeMessageOptions(message.options); message.onClose = new rxjs.Subject(); this.messages.push(message); this.cdr.detectChanges(); }; /** * Remove a message by `messageId`. * @param messageId Id of the message to be removed. * @param userAction Whether this is closed by user interaction. */ /** * Remove a message by `messageId`. * @param {?} messageId Id of the message to be removed. * @param {?=} userAction Whether this is closed by user interaction. * @return {?} */ NzMessageContainerComponent.prototype.removeMessage = /** * Remove a message by `messageId`. * @param {?} messageId Id of the message to be removed. * @param {?=} userAction Whether this is closed by user interaction. * @return {?} */ function (messageId, userAction) { var _this = this; if (userAction === void 0) { userAction = false; } this.messages.some(( /** * @param {?} message * @param {?} index * @return {?} */function (message, index) { if (message.messageId === messageId) { _this.messages.splice(index, 1); _this.cdr.detectChanges(); ( /** @type {?} */(message.onClose)).next(userAction); ( /** @type {?} */(message.onClose)).complete(); return true; } return false; })); }; /** * Remove all messages. */ /** * Remove all messages. * @return {?} */ NzMessageContainerComponent.prototype.removeMessageAll = /** * Remove all messages. * @return {?} */ function () { this.messages = []; this.cdr.detectChanges(); }; /** * Merge default options and custom message options * @param options */ /** * Merge default options and custom message options * @protected * @param {?=} options * @return {?} */ NzMessageContainerComponent.prototype._mergeMessageOptions = /** * Merge default options and custom message options * @protected * @param {?=} options * @return {?} */ function (options) { /** @type {?} */ var defaultOptions = { nzDuration: this.config.nzDuration, nzAnimate: this.config.nzAnimate, nzPauseOnHover: this.config.nzPauseOnHover }; return __assign({}, defaultOptions, options); }; NzMessageContainerComponent.decorators = [ { type: i0.Component, args: [{ changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, selector: 'nz-message-container', exportAs: 'nzMessageContainer', preserveWhitespaces: false, template: "<div class=\"ant-message\" [style.top]=\"top\">\n <nz-message *ngFor=\"let message of messages; let i = index\" [nzMessage]=\"message\" [nzIndex]=\"i\"></nz-message>\n</div>" }] } ]; /** @nocollapse */ NzMessageContainerComponent.ctorParameters = function () { return [ { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [NZ_MESSAGE_DEFAULT_CONFIG,] }] }, { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [NZ_MESSAGE_CONFIG,] }] } ]; }; return NzMessageContainerComponent; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var globalCounter = 0; /** * @template ContainerClass, MessageData, MessageConfig */ var /** * @template ContainerClass, MessageData, MessageConfig */ NzMessageBaseService = /** @class */ (function () { function NzMessageBaseService(overlay, containerClass, injector, cfr, appRef, _idPrefix) { if (_idPrefix === void 0) { _idPrefix = ''; } this.overlay = overlay; this.containerClass = containerClass; this.injector = injector; this.cfr = cfr; this.appRef = appRef; this._idPrefix = _idPrefix; this._container = this.createContainer(); } /** * @param {?=} messageId * @return {?} */ NzMessageBaseService.prototype.remove = /** * @param {?=} messageId * @return {?} */ function (messageId) { if (messageId) { this._container.removeMessage(messageId); } else { this._container.removeMessageAll(); } }; /** * @param {?} message * @param {?=} options * @return {?} */ NzMessageBaseService.prototype.createMessage = /** * @param {?} message * @param {?=} options * @return {?} */ function (message, options) { /** @type {?} */ var resultMessage = __assign({}, (( /** @type {?} */(message))), { createdAt: new Date(), messageId: this._generateMessageId(), options: options }); this._container.createMessage(resultMessage); return resultMessage; }; /** * @param {?} config * @return {?} */ NzMessageBaseService.prototype.config = /** * @param {?} config * @return {?} */ function (config) { this._container.setConfig(config); }; /** * @protected * @return {?} */ NzMessageBaseService.prototype._generateMessageId = /** * @protected * @return {?} */ function () { return this._idPrefix + globalCounter++; }; // Manually creating container for overlay to avoid multi-checking error, see: https://github.com/NG-ZORRO/ng-zorro-antd/issues/391 // NOTE: we never clean up the container component and it's overlay resources, if we should, we need to do it by our own codes. // Manually creating container for overlay to avoid multi-checking error, see: https://github.com/NG-ZORRO/ng-zorro-antd/issues/391 // NOTE: we never clean up the container component and it's overlay resources, if we should, we need to do it by our own codes. /** * @private * @return {?} */ NzMessageBaseService.prototype.createContainer = // Manually creating container for overlay to avoid multi-checking error, see: https://github.com/NG-ZORRO/ng-zorro-antd/issues/391 // NOTE: we never clean up the container component and it's overlay resources, if we should, we need to do it by our own codes. /** * @private * @return {?} */ function () { /** @type {?} */ var factory = this.cfr.resolveComponentFactory(this.containerClass); /** @type {?} */ var componentRef = factory.create(this.injector); componentRef.changeDetectorRef.detectChanges(); // Immediately change detection to avoid multi-checking error this.appRef.attachView(componentRef.hostView); // Load view into app root // Load view into app root /** @type {?} */ var overlayPane = this.overlay.create().overlayElement; overlayPane.style.zIndex = '1010'; // Patching: assign the same zIndex of ant-message to it's parent overlay panel, to the ant-message's zindex work. overlayPane.appendChild(( /** @type {?} */((( /** @type {?} */(componentRef.hostView))).rootNodes[0]))); return componentRef.instance; }; return NzMessageBaseService; }()); var NzMessageService = /** @class */ (function (_super) { __extends(NzMessageService, _super); function NzMessageService(overlay, injector, cfr, appRef) { return _super.call(this, overlay, NzMessageContainerComponent, injector, cfr, appRef, 'message-') || this; } // Shortcut methods // Shortcut methods /** * @param {?} content * @param {?=} options * @return {?} */ NzMessageService.prototype.success = // Shortcut methods /** * @param {?} content * @param {?=} options * @return {?} */ function (content, options) { return this.createMessage({ type: 'success', content: content }, options); }; /** * @param {?} content * @param {?=} options * @return {?} */ NzMessageService.prototype.error = /** * @param {?} content * @param {?=} options * @return {?} */ function (content, options) { return this.createMessage({ type: 'error', content: content }, options); }; /** * @param {?} content * @param {?=} options * @return {?} */ NzMessageService.prototype.info = /** * @param {?} content * @param {?=} options * @return {?} */ function (content, options) { return this.createMessage({ type: 'info', content: content }, options); }; /** * @param {?} content * @param {?=} options * @return {?} */ NzMessageService.prototype.warning = /** * @param {?} content * @param {?=} options * @return {?} */ function (content, options) { return this.createMessage({ type: 'warning', content: content }, options); }; /** * @param {?} content * @param {?=} options * @return {?} */ NzMessageService.prototype.loading = /** * @param {?} content * @param {?=} options * @return {?} */ function (content, options) { return this.createMessage({ type: 'loading', content: content }, options); }; /** * @param {?} type * @param {?} content * @param {?=} options * @return {?} */ NzMessageService.prototype.create = /** * @param {?} type * @param {?} content * @param {?=} options * @return {?} */ function (type, content, options) { return this.createMessage({ type: type, content: content }, options); }; NzMessageService.decorators = [ { type: i0.Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NzMessageService.ctorParameters = function () { return [ { type: i1.Overlay }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef } ]; }; /** @nocollapse */ NzMessageService.ngInjectableDef = i0.defineInjectable({ factory: function NzMessageService_Factory() { return new NzMessageService(i0.inject(i1.Overlay), i0.inject(i0.INJECTOR), i0.inject(i0.ComponentFactoryResolver), i0.inject(i0.ApplicationRef)); }, token: NzMessageService, providedIn: "root" }); return NzMessageService; }(NzMessageBaseService)); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var NzMessageComponent = /** @class */ (function () { function NzMessageComponent(_messageContainer, cdr) { this._messageContainer = _messageContainer; this.cdr = cdr; // Whether to set a timeout to destroy itself. this._eraseTimer = null; } /** * @return {?} */ NzMessageComponent.prototype.ngOnInit = /** * @return {?} */ function () { // `NzMessageContainer` does its job so all properties cannot be undefined. this._options = ( /** @type {?} */(this.nzMessage.options)); if (this._options.nzAnimate) { this.nzMessage.state = 'enter'; } this._autoErase = this._options.nzDuration > 0; if (this._autoErase) { this._initErase(); this._startEraseTimeout(); } }; /** * @return {?} */ NzMessageComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this._autoErase) { this._clearEraseTimeout(); } }; /** * @return {?} */ NzMessageComponent.prototype.onEnter = /** * @return {?} */ function () { if (this._autoErase && this._options.nzPauseOnHover) { this._clearEraseTimeout(); this._updateTTL(); } }; /** * @return {?} */ NzMessageComponent.prototype.onLeave = /** * @return {?} */ function () { if (this._autoErase && this._options.nzPauseOnHover) { this._startEraseTimeout(); } }; // Remove self // Remove self /** * @protected * @param {?=} userAction * @return {?} */ NzMessageComponent.prototype._destroy = // Remove self /** * @protected * @param {?=} userAction * @return {?} */ function (userAction) { var _this = this; if (userAction === void 0) { userAction = false; } if (this._options.nzAnimate) { this.nzMessage.state = 'leave'; this.cdr.detectChanges(); setTimeout(( /** * @return {?} */function () { return _this._messageContainer.removeMessage(_this.nzMessage.messageId, userAction); }), 200); } else { this._messageContainer.removeMessage(this.nzMessage.messageId, userAction); } }; /** * @private * @return {?} */ NzMessageComponent.prototype._initErase = /** * @private * @return {?} */ function () { this._eraseTTL = this._options.nzDuration; this._eraseTimingStart = Date.now(); }; /** * @private * @return {?} */ NzMessageComponent.prototype._updateTTL = /** * @private * @return {?} */ function () { if (this._autoErase) { this._eraseTTL -= Date.now() - this._eraseTimingStart; } }; /** * @private * @return {?} */ NzMessageComponent.prototype._startEraseTimeout = /** * @private * @return {?} */ function () { var _this = this; if (this._eraseTTL > 0) { this._clearEraseTimeout(); this._eraseTimer = setTimeout(( /** * @return {?} */function () { return _this._destroy(); }), this._eraseTTL); this._eraseTimingStart = Date.now(); } else { this._destroy(); } }; /** * @private * @return {?} */ NzMessageComponent.prototype._clearEraseTimeout = /** * @private * @return {?} */ function () { if (this._eraseTimer !== null) { clearTimeout(this._eraseTimer); this._eraseTimer = null; } }; NzMessageComponent.decorators = [ { type: i0.Component, args: [{ changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, selector: 'nz-message', exportAs: 'nzMessage', preserveWhitespaces: false, animations: [core.moveUpMotion], template: "<div class=\"ant-message-notice\"\n [@moveUpMotion]=\"nzMessage.state\"\n (mouseenter)=\"onEnter()\"\n (mouseleave)=\"onLeave()\">\n <div class=\"ant-message-notice-content\">\n <div class=\"ant-message-custom-content\" [ngClass]=\"'ant-message-' + nzMessage.type\">\n <ng-container [ngSwitch]=\"nzMessage.type\">\n <i *ngSwitchCase=\"'success'\" nz-icon type=\"check-circle\"></i>\n <i *ngSwitchCase=\"'info'\" nz-icon type=\"info-circle\"></i>\n <i *ngSwitchCase=\"'warning'\" nz-icon type=\"exclamation-circle\"></i>\n <i *ngSwitchCase=\"'error'\" nz-icon type=\"close-circle\"></i>\n <i *ngSwitchCase=\"'loading'\" nz-icon type=\"loading\"></i>\n </ng-container>\n <ng-container *nzStringTemplateOutlet=\"nzMessage.content\">\n <span [innerHTML]=\"nzMessage.content\"></span>\n </ng-container>\n </div>\n </div>\n</div>\n" }] } ]; /** @nocollapse */ NzMessageComponent.ctorParameters = function () { return [ { type: NzMessageContainerComponent }, { type: i0.ChangeDetectorRef } ]; }; NzMessageComponent.propDecorators = { nzMessage: [{ type: i0.Input }], nzIndex: [{ type: i0.Input }] }; return NzMessageComponent; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var NzMessageModule = /** @class */ (function () { function NzMessageModule() { } NzMessageModule.decorators = [ { type: i0.NgModule, args: [{ imports: [common.CommonModule, i1.OverlayModule, icon.NzIconModule, core.NzAddOnModule], declarations: [NzMessageContainerComponent, NzMessageComponent], providers: [NZ_MESSAGE_DEFAULT_CONFIG_PROVIDER, NzMessageService], entryComponents: [NzMessageContainerComponent] },] } ]; return NzMessageModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ exports.NzMessageBaseService = NzMessageBaseService; exports.NzMessageService = NzMessageService; exports.NzMessageModule = NzMessageModule; exports.NzMessageComponent = NzMessageComponent; exports.NzMessageContainerComponent = NzMessageContainerComponent; exports.NZ_MESSAGE_DEFAULT_CONFIG = NZ_MESSAGE_DEFAULT_CONFIG; exports.NZ_MESSAGE_CONFIG = NZ_MESSAGE_CONFIG; exports.NZ_MESSAGE_DEFAULT_CONFIG_PROVIDER = NZ_MESSAGE_DEFAULT_CONFIG_PROVIDER; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=ng-zorro-antd-message.umd.js.map