ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
181 lines • 15.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { IconHandler } from '../core/util/icon';
import * as util from './util';
var NoticeBarComponent = /** @class */ (function () {
function NoticeBarComponent(_iconHandler) {
this._iconHandler = _iconHandler;
this.visiable = false;
this.marqueeScroll = 'scrolling';
this.style = {};
this._option = {
mode: '',
icon: '',
action: '',
content: '',
fontSize: '14px',
scrolling: true,
marqueeProps: { loop: true, leading: 500, trailing: 8000, fps: 200, style: {} }
};
this.onClick = new EventEmitter();
this._iconHandler.load();
}
Object.defineProperty(NoticeBarComponent.prototype, "option", {
get: /**
* @return {?}
*/
function () {
return this._option;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
Object.assign(this._option, value);
this.dataProcess();
if (this._option.scrolling) {
this.marqueeScroll = 'scrolling';
}
else {
this.marqueeScroll = 'scrolling-stop';
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NoticeBarComponent.prototype.click = /**
* @return {?}
*/
function () {
this.onClick.emit(this._option.mode);
if (this._option.mode === 'closable') {
this.visiable = false;
}
};
/**
* @return {?}
*/
NoticeBarComponent.prototype.dataProcess = /**
* @return {?}
*/
function () {
this.visiable = true;
this.style = {
width: '200%'
};
this._width = util.getTextWidth(this._option.content, this._option.fontSize);
if (util.getWidthHeight().width < this._width) {
/** @type {?} */
var count = this._option.marqueeProps.loop ? 'infinite' : 1;
/** @type {?} */
var animationName = "noticebarmarquee_" + this._width;
this.style = {
width: this._width * 2 + 'px',
'animation-name': animationName,
'animation-delay': this._option.marqueeProps.leading + "ms",
'animation-duration': (((1 / this._option.marqueeProps.fps) * this._width) / util.getWidthHeight().width) *
1000 + "s",
'animation-iteration-count': "" + count
};
this.marqueeScroll = 'scrolling';
this.insetKeyframe(animationName);
}
else {
this.marqueeScroll = 'scrolling-stop';
}
};
/**
* @param {?} animationName
* @return {?}
*/
NoticeBarComponent.prototype.insetKeyframe = /**
* @param {?} animationName
* @return {?}
*/
function (animationName) {
util.insertKeyFrame("@keyframes " + animationName + " {\n 0% { left: 0px; }\n 100% { left: -" + this._width + "px }\n }", 'notice_bar_animation_cls');
util.insertKeyFrame("@-webkit-keyframes " + animationName + " {\n 0% { left: 0px; }\n 100% { left: -" + this._width + "px }\n }", 'notice_bar_animation_cls');
util.insertKeyFrame("@-moz-keyframes " + animationName + " {\n 0% { left: 0px; }\n 100% { left: -" + this._width + "px }\n }", 'notice_bar_animation_cls');
util.insertKeyFrame("@-o-keyframes " + animationName + " {\n 0% { left: 0px; }\n 100% { left: -" + this._width + "px }\n }", 'notice_bar_animation_cls');
};
/**
* @return {?}
*/
NoticeBarComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
document.addEventListener('touchstart', (/**
* @return {?}
*/
function () {
_this.marqueeScroll = 'scrolling-stop';
}));
document.addEventListener('touchend', (/**
* @return {?}
*/
function () {
_this.marqueeScroll = 'scrolling';
}));
};
/**
* @return {?}
*/
NoticeBarComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
util.deleteKeyFrame('notice_bar_animation_cls');
};
NoticeBarComponent.decorators = [
{ type: Component, args: [{
selector: 'NoticeBar, nzm-notice-bar',
template: "<div role=\"alert\" *ngIf=\"visiable\" class=\"am-notice-bar\" (click)=\"click()\">\n <div *ngIf=\"option.icon !== null\" class=\"am-notice-bar-icon\">\n <ng-template [ngTemplateOutlet]=\"option.icon || voice\"></ng-template>\n </div>\n <div class=\"am-notice-bar-content\">\n <div class=\"marquee\">\n <div [ngClass]=\"marqueeScroll\" [ngStyle]=\"style\">\n <span>{{ option.content }}</span>\n <span>{{ option.content }}</span>\n </div>\n </div>\n </div>\n <div role=\"button\" *ngIf=\"option.mode && option.action !== null\" class=\"am-notice-bar-operation\">\n <ng-template *ngIf=\"option.mode === 'closable'\" [ngTemplateOutlet]=\"option.action || cross\"></ng-template>\n <ng-template *ngIf=\"option.mode === 'link'\" [ngTemplateOutlet]=\"option.action || right\"></ng-template>\n </div>\n</div>\n\n<ng-template #voice>\n <Icon [type]=\"'voice'\" [size]=\"'xxs'\"></Icon>\n</ng-template>\n<ng-template #cross>\n <Icon [type]=\"'cross'\" [size]=\"'md'\"></Icon>\n</ng-template>\n<ng-template #right>\n <Icon [type]=\"'right'\" [size]=\"'md'\"></Icon>\n</ng-template>\n",
providers: [IconHandler]
}] }
];
/** @nocollapse */
NoticeBarComponent.ctorParameters = function () { return [
{ type: IconHandler }
]; };
NoticeBarComponent.propDecorators = {
option: [{ type: Input }],
onClick: [{ type: Output }]
};
return NoticeBarComponent;
}());
export { NoticeBarComponent };
if (false) {
/** @type {?} */
NoticeBarComponent.prototype.visiable;
/** @type {?} */
NoticeBarComponent.prototype.marqueeScroll;
/** @type {?} */
NoticeBarComponent.prototype.style;
/**
* @type {?}
* @private
*/
NoticeBarComponent.prototype._width;
/**
* @type {?}
* @private
*/
NoticeBarComponent.prototype._option;
/** @type {?} */
NoticeBarComponent.prototype.onClick;
/**
* @type {?}
* @private
*/
NoticeBarComponent.prototype._iconHandler;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWNlLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbIm5vdGljZS1iYXIvbm90aWNlLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQy9CO0lBbUNFLDRCQUFvQixZQUF5QjtRQUF6QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQTdCN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRUgsWUFBTyxHQUFHO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7U0FDaEYsQ0FBQztRQWVGLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFsQkQsc0JBQ0ksc0NBQU07Ozs7UUFEVjtZQUVFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0QixDQUFDOzs7OztRQUNELFVBQVcsS0FBSztZQUNkLE1BQU0sQ0FB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QUFnQixDQUFDLFlBQVk7OztRQUFFO1lBQ3RDLEtBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7UUFDeEMsQ0FBQyxFQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVTs7O1FBQUU7WUFDcEMsS0FBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7UUFDbkMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsd0NBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7O2dCQWpIRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsNG1DQUEwQztvQkFDMUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN6Qjs7OztnQkFOUSxXQUFXOzs7eUJBcUJqQixLQUFLOzBCQWFMLE1BQU07O0lBa0ZULHlCQUFDO0NBQUEsQUFsSEQsSUFrSEM7U0E3R1ksa0JBQWtCOzs7SUFDN0Isc0NBQWlCOztJQUNqQiwyQ0FBNEI7O0lBQzVCLG1DQUFXOzs7OztJQUNYLG9DQUFlOzs7OztJQUNmLHFDQVFFOztJQWNGLHFDQUNnRDs7Ozs7SUFFcEMsMENBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uSGFuZGxlciB9IGZyb20gJy4uL2NvcmUvdXRpbC9pY29uJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ05vdGljZUJhciwgbnptLW5vdGljZS1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWNlLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW0ljb25IYW5kbGVyXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpY2VCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHZpc2lhYmxlID0gZmFsc2U7XG4gIG1hcnF1ZWVTY3JvbGwgPSAnc2Nyb2xsaW5nJztcbiAgc3R5bGUgPSB7fTtcbiAgcHJpdmF0ZSBfd2lkdGg7XG4gIHByaXZhdGUgX29wdGlvbiA9IHtcbiAgICBtb2RlOiAnJyxcbiAgICBpY29uOiAnJyxcbiAgICBhY3Rpb246ICcnLFxuICAgIGNvbnRlbnQ6ICcnLFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgc2Nyb2xsaW5nOiB0cnVlLFxuICAgIG1hcnF1ZWVQcm9wczogeyBsb29wOiB0cnVlLCBsZWFkaW5nOiA1MDAsIHRyYWlsaW5nOiA4MDAwLCBmcHM6IDIwMCwgc3R5bGU6IHt9IH1cbiAgfTtcbiAgQElucHV0KClcbiAgZ2V0IG9wdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uO1xuICB9XG4gIHNldCBvcHRpb24odmFsdWUpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuX29wdGlvbiwgdmFsdWUpO1xuICAgIHRoaXMuZGF0YVByb2Nlc3MoKTtcbiAgICBpZiAodGhpcy5fb3B0aW9uLnNjcm9sbGluZykge1xuICAgICAgdGhpcy5tYXJxdWVlU2Nyb2xsID0gJ3Njcm9sbGluZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmctc3RvcCc7XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pY29uSGFuZGxlcjogSWNvbkhhbmRsZXIpIHtcbiAgICB0aGlzLl9pY29uSGFuZGxlci5sb2FkKCk7XG4gIH1cblxuICBjbGljaygpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLl9vcHRpb24ubW9kZSk7XG4gICAgaWYgKHRoaXMuX29wdGlvbi5tb2RlID09PSAnY2xvc2FibGUnKSB7XG4gICAgICB0aGlzLnZpc2lhYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZGF0YVByb2Nlc3MoKSB7XG4gICAgdGhpcy52aXNpYWJsZSA9IHRydWU7XG4gICAgdGhpcy5zdHlsZSA9IHtcbiAgICAgIHdpZHRoOiAnMjAwJSdcbiAgICB9O1xuICAgIHRoaXMuX3dpZHRoID0gdXRpbC5nZXRUZXh0V2lkdGgodGhpcy5fb3B0aW9uLmNvbnRlbnQsIHRoaXMuX29wdGlvbi5mb250U2l6ZSk7XG4gICAgaWYgKHV0aWwuZ2V0V2lkdGhIZWlnaHQoKS53aWR0aCA8IHRoaXMuX3dpZHRoKSB7XG4gICAgICBjb25zdCBjb3VudCA9IHRoaXMuX29wdGlvbi5tYXJxdWVlUHJvcHMubG9vcCA/ICdpbmZpbml0ZScgOiAxO1xuICAgICAgbGV0IGFuaW1hdGlvbk5hbWUgPSBgbm90aWNlYmFybWFycXVlZV8ke3RoaXMuX3dpZHRofWA7XG4gICAgICB0aGlzLnN0eWxlID0ge1xuICAgICAgICB3aWR0aDogdGhpcy5fd2lkdGggKiAyICsgJ3B4JyxcbiAgICAgICAgJ2FuaW1hdGlvbi1uYW1lJzogYW5pbWF0aW9uTmFtZSxcbiAgICAgICAgJ2FuaW1hdGlvbi1kZWxheSc6IGAke3RoaXMuX29wdGlvbi5tYXJxdWVlUHJvcHMubGVhZGluZ31tc2AsXG4gICAgICAgICdhbmltYXRpb24tZHVyYXRpb24nOiBgJHsoKCgxIC8gdGhpcy5fb3B0aW9uLm1hcnF1ZWVQcm9wcy5mcHMpICogdGhpcy5fd2lkdGgpIC8gdXRpbC5nZXRXaWR0aEhlaWdodCgpLndpZHRoKSAqXG4gICAgICAgICAgMTAwMH1zYCxcbiAgICAgICAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnOiBgJHtjb3VudH1gXG4gICAgICB9O1xuICAgICAgdGhpcy5tYXJxdWVlU2Nyb2xsID0gJ3Njcm9sbGluZyc7XG4gICAgICB0aGlzLmluc2V0S2V5ZnJhbWUoYW5pbWF0aW9uTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmctc3RvcCc7XG4gICAgfVxuICB9XG5cbiAgaW5zZXRLZXlmcmFtZShhbmltYXRpb25OYW1lKSB7XG4gICAgdXRpbC5pbnNlcnRLZXlGcmFtZShcbiAgICAgIGBAa2V5ZnJhbWVzICR7YW5pbWF0aW9uTmFtZX0ge1xuICAgICAgMCUgeyBsZWZ0OiAwcHg7IH1cbiAgICAgIDEwMCUgeyBsZWZ0OiAtJHt0aGlzLl93aWR0aH1weCB9XG4gICAgfWAsXG4gICAgICAnbm90aWNlX2Jhcl9hbmltYXRpb25fY2xzJ1xuICAgICk7XG4gICAgdXRpbC5pbnNlcnRLZXlGcmFtZShcbiAgICAgIGBALXdlYmtpdC1rZXlmcmFtZXMgJHthbmltYXRpb25OYW1lfSB7XG4gICAgICAwJSB7IGxlZnQ6IDBweDsgfVxuICAgICAgMTAwJSB7IGxlZnQ6IC0ke3RoaXMuX3dpZHRofXB4IH1cbiAgICB9YCxcbiAgICAgICdub3RpY2VfYmFyX2FuaW1hdGlvbl9jbHMnXG4gICAgKTtcbiAgICB1dGlsLmluc2VydEtleUZyYW1lKFxuICAgICAgYEAtbW96LWtleWZyYW1lcyAke2FuaW1hdGlvbk5hbWV9IHtcbiAgICAgIDAlIHsgbGVmdDogMHB4OyB9XG4gICAgICAxMDAlIHsgbGVmdDogLSR7dGhpcy5fd2lkdGh9cHggfVxuICAgIH1gLFxuICAgICAgJ25vdGljZV9iYXJfYW5pbWF0aW9uX2NscydcbiAgICApO1xuICAgIHV0aWwuaW5zZXJ0S2V5RnJhbWUoXG4gICAgICBgQC1vLWtleWZyYW1lcyAke2FuaW1hdGlvbk5hbWV9IHtcbiAgICAgIDAlIHsgbGVmdDogMHB4OyB9XG4gICAgICAxMDAlIHsgbGVmdDogLSR7dGhpcy5fd2lkdGh9cHggfVxuICAgIH1gLFxuICAgICAgJ25vdGljZV9iYXJfYW5pbWF0aW9uX2NscydcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsICgpID0+IHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmctc3RvcCc7XG4gICAgfSk7XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsICgpID0+IHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmcnO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdXRpbC5kZWxldGVLZXlGcmFtZSgnbm90aWNlX2Jhcl9hbmltYXRpb25fY2xzJyk7XG4gIH1cbn1cbiJdfQ==