ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
1 lines • 12.7 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-mobile-notice-bar.mjs","sources":["../../components/notice-bar/util.ts","../../components/notice-bar/notice-bar.component.ts","../../components/notice-bar/notice-bar.component.html","../../components/notice-bar/notice-bar.module.ts","../../components/notice-bar/ng-zorro-antd-mobile-notice-bar.ts"],"sourcesContent":["export function insertKeyFrame(rule, className) {\n const style = document.createElement('style');\n style.setAttribute('class', className);\n style.innerHTML = rule;\n document.body.appendChild(style);\n}\n\nexport function deleteKeyFrame(className) {\n const styleDom = document.getElementsByClassName(className);\n while (styleDom.length > 0) {\n styleDom[0].remove();\n }\n}\n\nexport function getWidthHeight() {\n const w = window;\n const d = document;\n const e = d.documentElement;\n const g = d.getElementsByTagName('body')[0];\n return {\n width: w.innerWidth || e.clientWidth || g.clientWidth,\n height: w.innerHeight || e.clientHeight || g.clientHeight\n };\n}\n\nexport function getTextWidth(text, font) {\n const _dom = document.createElement('div');\n _dom.innerHTML = text;\n _dom.style.position = 'absolute';\n _dom.style.left = '-9999';\n _dom.style.whiteSpace = 'nowrap';\n _dom.style.fontSize = font;\n document.body.appendChild(_dom);\n const _w = _dom.clientWidth + 10;\n document.body.removeChild(_dom);\n return _w;\n}\n\n ","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { IconHandler } from 'ng-zorro-antd-mobile/core';\nimport { deleteKeyFrame, getTextWidth, getWidthHeight, insertKeyFrame } from './util';\n\n@Component({\n selector: 'NoticeBar, nzm-notice-bar',\n templateUrl: './notice-bar.component.html',\n providers: [IconHandler]\n})\nexport class NoticeBarComponent implements OnInit, OnDestroy {\n visiable = false;\n marqueeScroll = 'scrolling';\n style = {};\n private _width;\n private _option = {\n mode: '',\n icon: '',\n action: '',\n content: '',\n fontSize: '14px',\n scrolling: true,\n marqueeProps: { loop: true, leading: 500, trailing: 8000, fps: 200, style: {} }\n };\n @Input()\n get option() {\n return this._option;\n }\n set option(value) {\n Object.assign(this._option, value);\n this.dataProcess();\n if (this._option.scrolling) {\n this.marqueeScroll = 'scrolling';\n } else {\n this.marqueeScroll = 'scrolling-stop';\n }\n }\n @Output()\n onClick: EventEmitter<any> = new EventEmitter();\n\n constructor(private _iconHandler: IconHandler) {\n this._iconHandler.load();\n }\n\n click() {\n this.onClick.emit(this._option.mode);\n if (this._option.mode === 'closable') {\n this.visiable = false;\n }\n }\n\n dataProcess() {\n this.visiable = true;\n this.style = {\n width: '200%'\n };\n this._width = getTextWidth(this._option.content, this._option.fontSize);\n if (getWidthHeight().width < this._width) {\n const count = this._option.marqueeProps.loop ? 'infinite' : 1;\n let animationName = `noticebarmarquee_${this._width}`;\n this.style = {\n width: this._width * 2 + 'px',\n 'animation-name': animationName,\n 'animation-delay': `${this._option.marqueeProps.leading}ms`,\n 'animation-duration': `${(((1 / this._option.marqueeProps.fps) * this._width) / getWidthHeight().width) *\n 1000}s`,\n 'animation-iteration-count': `${count}`\n };\n this.marqueeScroll = 'scrolling';\n this.insetKeyframe(animationName);\n } else {\n this.marqueeScroll = 'scrolling-stop';\n }\n }\n\n insetKeyframe(animationName) {\n insertKeyFrame(\n `@keyframes ${animationName} {\n 0% { left: 0px; }\n 100% { left: -${this._width}px }\n }`,\n 'notice_bar_animation_cls'\n );\n insertKeyFrame(\n `@-webkit-keyframes ${animationName} {\n 0% { left: 0px; }\n 100% { left: -${this._width}px }\n }`,\n 'notice_bar_animation_cls'\n );\n insertKeyFrame(\n `@-moz-keyframes ${animationName} {\n 0% { left: 0px; }\n 100% { left: -${this._width}px }\n }`,\n 'notice_bar_animation_cls'\n );\n insertKeyFrame(\n `@-o-keyframes ${animationName} {\n 0% { left: 0px; }\n 100% { left: -${this._width}px }\n }`,\n 'notice_bar_animation_cls'\n );\n }\n\n ngOnInit() {\n document.addEventListener('touchstart', () => {\n this.marqueeScroll = 'scrolling-stop';\n });\n\n document.addEventListener('touchend', () => {\n this.marqueeScroll = 'scrolling';\n });\n }\n\n ngOnDestroy() {\n deleteKeyFrame('notice_bar_animation_cls');\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NoticeBarComponent } from './notice-bar.component';\nimport { IconModule } from 'ng-zorro-antd-mobile/icon';\n\n@NgModule({\n imports: [IconModule, CommonModule, FormsModule],\n declarations: [NoticeBarComponent],\n exports: [NoticeBarComponent],\n providers: []\n})\nexport class NoticeBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}