ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
173 lines • 14.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,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';
export class NoticeBarComponent {
/**
* @param {?} _iconHandler
*/
constructor(_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();
}
/**
* @return {?}
*/
get option() {
return this._option;
}
/**
* @param {?} value
* @return {?}
*/
set option(value) {
Object.assign(this._option, value);
this.dataProcess();
if (this._option.scrolling) {
this.marqueeScroll = 'scrolling';
}
else {
this.marqueeScroll = 'scrolling-stop';
}
}
/**
* @return {?}
*/
click() {
this.onClick.emit(this._option.mode);
if (this._option.mode === 'closable') {
this.visiable = false;
}
}
/**
* @return {?}
*/
dataProcess() {
this.visiable = true;
this.style = {
width: '200%'
};
this._width = util.getTextWidth(this._option.content, this._option.fontSize);
if (util.getWidthHeight().width < this._width) {
/** @type {?} */
const count = this._option.marqueeProps.loop ? 'infinite' : 1;
/** @type {?} */
let 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 {?}
*/
insetKeyframe(animationName) {
util.insertKeyFrame(` ${animationName} {
0% { left: 0px; }
100% { left: -${this._width}px }
}`, 'notice_bar_animation_cls');
util.insertKeyFrame(`@-webkit-keyframes ${animationName} {
0% { left: 0px; }
100% { left: -${this._width}px }
}`, 'notice_bar_animation_cls');
util.insertKeyFrame(`@-moz-keyframes ${animationName} {
0% { left: 0px; }
100% { left: -${this._width}px }
}`, 'notice_bar_animation_cls');
util.insertKeyFrame(`@-o-keyframes ${animationName} {
0% { left: 0px; }
100% { left: -${this._width}px }
}`, 'notice_bar_animation_cls');
}
/**
* @return {?}
*/
ngOnInit() {
document.addEventListener('touchstart', (/**
* @return {?}
*/
() => {
this.marqueeScroll = 'scrolling-stop';
}));
document.addEventListener('touchend', (/**
* @return {?}
*/
() => {
this.marqueeScroll = 'scrolling';
}));
}
/**
* @return {?}
*/
ngOnDestroy() {
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 = () => [
{ type: IconHandler }
];
NoticeBarComponent.propDecorators = {
option: [{ type: Input }],
onClick: [{ type: Output }]
};
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWNlLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbIm5vdGljZS1iYXIvbm90aWNlLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBTS9CLE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUE4QjdCLFlBQW9CLFlBQXlCO1FBQXpCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBN0I3QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBQzVCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFSCxZQUFPLEdBQUc7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsRUFBRTtZQUNSLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsTUFBTTtZQUNoQixTQUFTLEVBQUUsSUFBSTtZQUNmLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtTQUNoRixDQUFDO1FBZUYsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7OztJQWxCRCxJQUNJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFDRCxJQUFJLE1BQU0s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WTs7O1FBQUUsR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7UUFDeEMsQ0FBQyxFQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVTs7O1FBQUUsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDO1FBQ25DLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBakhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyw0bUNBQTBDO2dCQUMxQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDekI7Ozs7WUFOUSxXQUFXOzs7cUJBcUJqQixLQUFLO3NCQWFMLE1BQU07Ozs7SUExQlAsc0NBQWlCOztJQUNqQiwyQ0FBNEI7O0lBQzVCLG1DQUFXOzs7OztJQUNYLG9DQUFlOzs7OztJQUNmLHFDQVFFOztJQWNGLHFDQUNnRDs7Ozs7SUFFcEMsMENBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uSGFuZGxlciB9IGZyb20gJy4uL2NvcmUvdXRpbC9pY29uJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ05vdGljZUJhciwgbnptLW5vdGljZS1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWNlLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW0ljb25IYW5kbGVyXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpY2VCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHZpc2lhYmxlID0gZmFsc2U7XG4gIG1hcnF1ZWVTY3JvbGwgPSAnc2Nyb2xsaW5nJztcbiAgc3R5bGUgPSB7fTtcbiAgcHJpdmF0ZSBfd2lkdGg7XG4gIHByaXZhdGUgX29wdGlvbiA9IHtcbiAgICBtb2RlOiAnJyxcbiAgICBpY29uOiAnJyxcbiAgICBhY3Rpb246ICcnLFxuICAgIGNvbnRlbnQ6ICcnLFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgc2Nyb2xsaW5nOiB0cnVlLFxuICAgIG1hcnF1ZWVQcm9wczogeyBsb29wOiB0cnVlLCBsZWFkaW5nOiA1MDAsIHRyYWlsaW5nOiA4MDAwLCBmcHM6IDIwMCwgc3R5bGU6IHt9IH1cbiAgfTtcbiAgQElucHV0KClcbiAgZ2V0IG9wdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uO1xuICB9XG4gIHNldCBvcHRpb24odmFsdWUpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuX29wdGlvbiwgdmFsdWUpO1xuICAgIHRoaXMuZGF0YVByb2Nlc3MoKTtcbiAgICBpZiAodGhpcy5fb3B0aW9uLnNjcm9sbGluZykge1xuICAgICAgdGhpcy5tYXJxdWVlU2Nyb2xsID0gJ3Njcm9sbGluZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmctc3RvcCc7XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pY29uSGFuZGxlcjogSWNvbkhhbmRsZXIpIHtcbiAgICB0aGlzLl9pY29uSGFuZGxlci5sb2FkKCk7XG4gIH1cblxuICBjbGljaygpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLl9vcHRpb24ubW9kZSk7XG4gICAgaWYgKHRoaXMuX29wdGlvbi5tb2RlID09PSAnY2xvc2FibGUnKSB7XG4gICAgICB0aGlzLnZpc2lhYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZGF0YVByb2Nlc3MoKSB7XG4gICAgdGhpcy52aXNpYWJsZSA9IHRydWU7XG4gICAgdGhpcy5zdHlsZSA9IHtcbiAgICAgIHdpZHRoOiAnMjAwJSdcbiAgICB9O1xuICAgIHRoaXMuX3dpZHRoID0gdXRpbC5nZXRUZXh0V2lkdGgodGhpcy5fb3B0aW9uLmNvbnRlbnQsIHRoaXMuX29wdGlvbi5mb250U2l6ZSk7XG4gICAgaWYgKHV0aWwuZ2V0V2lkdGhIZWlnaHQoKS53aWR0aCA8IHRoaXMuX3dpZHRoKSB7XG4gICAgICBjb25zdCBjb3VudCA9IHRoaXMuX29wdGlvbi5tYXJxdWVlUHJvcHMubG9vcCA/ICdpbmZpbml0ZScgOiAxO1xuICAgICAgbGV0IGFuaW1hdGlvbk5hbWUgPSBgbm90aWNlYmFybWFycXVlZV8ke3RoaXMuX3dpZHRofWA7XG4gICAgICB0aGlzLnN0eWxlID0ge1xuICAgICAgICB3aWR0aDogdGhpcy5fd2lkdGggKiAyICsgJ3B4JyxcbiAgICAgICAgJ2FuaW1hdGlvbi1uYW1lJzogYW5pbWF0aW9uTmFtZSxcbiAgICAgICAgJ2FuaW1hdGlvbi1kZWxheSc6IGAke3RoaXMuX29wdGlvbi5tYXJxdWVlUHJvcHMubGVhZGluZ31tc2AsXG4gICAgICAgICdhbmltYXRpb24tZHVyYXRpb24nOiBgJHsoKCgxIC8gdGhpcy5fb3B0aW9uLm1hcnF1ZWVQcm9wcy5mcHMpICogdGhpcy5fd2lkdGgpIC8gdXRpbC5nZXRXaWR0aEhlaWdodCgpLndpZHRoKSAqXG4gICAgICAgICAgMTAwMH1zYCxcbiAgICAgICAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnOiBgJHtjb3VudH1gXG4gICAgICB9O1xuICAgICAgdGhpcy5tYXJxdWVlU2Nyb2xsID0gJ3Njcm9sbGluZyc7XG4gICAgICB0aGlzLmluc2V0S2V5ZnJhbWUoYW5pbWF0aW9uTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmctc3RvcCc7XG4gICAgfVxuICB9XG5cbiAgaW5zZXRLZXlmcmFtZShhbmltYXRpb25OYW1lKSB7XG4gICAgdXRpbC5pbnNlcnRLZXlGcmFtZShcbiAgICAgIGBAa2V5ZnJhbWVzICR7YW5pbWF0aW9uTmFtZX0ge1xuICAgICAgMCUgeyBsZWZ0OiAwcHg7IH1cbiAgICAgIDEwMCUgeyBsZWZ0OiAtJHt0aGlzLl93aWR0aH1weCB9XG4gICAgfWAsXG4gICAgICAnbm90aWNlX2Jhcl9hbmltYXRpb25fY2xzJ1xuICAgICk7XG4gICAgdXRpbC5pbnNlcnRLZXlGcmFtZShcbiAgICAgIGBALXdlYmtpdC1rZXlmcmFtZXMgJHthbmltYXRpb25OYW1lfSB7XG4gICAgICAwJSB7IGxlZnQ6IDBweDsgfVxuICAgICAgMTAwJSB7IGxlZnQ6IC0ke3RoaXMuX3dpZHRofXB4IH1cbiAgICB9YCxcbiAgICAgICdub3RpY2VfYmFyX2FuaW1hdGlvbl9jbHMnXG4gICAgKTtcbiAgICB1dGlsLmluc2VydEtleUZyYW1lKFxuICAgICAgYEAtbW96LWtleWZyYW1lcyAke2FuaW1hdGlvbk5hbWV9IHtcbiAgICAgIDAlIHsgbGVmdDogMHB4OyB9XG4gICAgICAxMDAlIHsgbGVmdDogLSR7dGhpcy5fd2lkdGh9cHggfVxuICAgIH1gLFxuICAgICAgJ25vdGljZV9iYXJfYW5pbWF0aW9uX2NscydcbiAgICApO1xuICAgIHV0aWwuaW5zZXJ0S2V5RnJhbWUoXG4gICAgICBgQC1vLWtleWZyYW1lcyAke2FuaW1hdGlvbk5hbWV9IHtcbiAgICAgIDAlIHsgbGVmdDogMHB4OyB9XG4gICAgICAxMDAlIHsgbGVmdDogLSR7dGhpcy5fd2lkdGh9cHggfVxuICAgIH1gLFxuICAgICAgJ25vdGljZV9iYXJfYW5pbWF0aW9uX2NscydcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsICgpID0+IHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmctc3RvcCc7XG4gICAgfSk7XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsICgpID0+IHtcbiAgICAgIHRoaXMubWFycXVlZVNjcm9sbCA9ICdzY3JvbGxpbmcnO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdXRpbC5kZWxldGVLZXlGcmFtZSgnbm90aWNlX2Jhcl9hbmltYXRpb25fY2xzJyk7XG4gIH1cbn1cbiJdfQ==