{"version":3,"file":"ngx-typed-js.mjs","sources":["../../../projects/ngx-typed-js/src/lib/ngx-typed-js.component.ts","../../../projects/ngx-typed-js/src/lib/ngx-typed-js.component.html","../../../projects/ngx-typed-js/src/lib/ngx-typed-js.module.ts","../../../projects/ngx-typed-js/src/public_api.ts","../../../projects/ngx-typed-js/src/ngx-typed-js.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport Typed, { TypedOptions } from 'typed.js';\n\n@Component({\n  selector: 'ngx-typed-js',\n  templateUrl: 'ngx-typed-js.component.html',\n  styleUrls: ['ngx-typed-js.component.css']\n})\nexport class NgxTypedJsComponent implements AfterViewInit, OnChanges {\n  @Input() public cursorColor?: string;\n\n  @Input() public strings: string[];\n  @Input() public stringsElement?: string;\n  @Input() public typeSpeed = 30;\n  @Input() public startDelay?: number;\n  @Input() public backSpeed?: number;\n  @Input() public smartBackspace?: boolean;\n  @Input() public shuffle?: boolean;\n  @Input() public backDelay?: number;\n  @Input() public fadeOut?: boolean;\n  @Input() public fadeOutClass?: string;\n  @Input() public fadeOutDelay?: number;\n  @Input() public loop?: boolean;\n  @Input() public loopCount?: number;\n  @Input() public showCursor?: boolean;\n  @Input() public cursorChar?: string;\n  @Input() public autoInsertCss?: boolean;\n  @Input() public attr?: string;\n  @Input() public bindInputFocusEvents?: boolean;\n  @Input() public contentType?: string;\n\n  @Output() private completed: EventEmitter<void> = new EventEmitter<void>();\n  @Output() private preStringTyped: EventEmitter<number> = new EventEmitter<number>();\n  @Output() private stringTyped: EventEmitter<number> = new EventEmitter<number>();\n  @Output() private lastStringBackspaced: EventEmitter<void> = new EventEmitter<void>();\n  @Output() private typingPaused: EventEmitter<number> = new EventEmitter<number>();\n  @Output() private typingResumed: EventEmitter<number> = new EventEmitter<number>();\n  @Output() private reset: EventEmitter<void> = new EventEmitter<void>();\n  @Output() private stopped: EventEmitter<number> = new EventEmitter<number>();\n  @Output() private started: EventEmitter<number> = new EventEmitter<number>();\n  @Output() private destroyed: EventEmitter<void> = new EventEmitter<void>();\n\n  private typed: Typed;\n  @ViewChild('wrapper', { static: true }) private content;\n\n  ngAfterViewInit(): void {\n    this.typed = new Typed(\n      this.content.nativeElement.querySelector('.typing'),\n      this.options,\n    );\n\n    if (this.showCursor !== false) {\n      this.updateCursorStyle();\n    }\n  }\n\n  public toggle(): void {\n    this.typed.toggle();\n  }\n\n  public stop(): void {\n    this.typed.stop();\n  }\n\n  public start(): void {\n    this.typed.start();\n  }\n\n  public destroy(): void {\n    this.typed.destroy();\n  }\n\n  public doReset(restart?: boolean): void {\n    this.typed.reset(restart);\n  }\n\n  private get options(): TypedOptions {\n    const emit: (emitter: EventEmitter<void>) => (self: Typed) => void\n      = (emitter: EventEmitter<void>) => () => emitter.emit();\n\n    const emitIndex: (emitter: EventEmitter<number>) => (index: number, self: Typed) => void\n      = (emitter: EventEmitter<number>) => (index: number) => emitter.emit(index);\n\n    const opts = {\n      strings: this.strings ?? [''],\n      stringsElement: this.stringsElement,\n      typeSpeed: this.typeSpeed,\n      startDelay: this.startDelay,\n      backSpeed: this.backSpeed,\n      smartBackspace: this.smartBackspace,\n      shuffle: this.shuffle,\n      backDelay: this.backDelay,\n      fadeOut: this.fadeOut,\n      fadeOutClass: this.fadeOutClass,\n      fadeOutDelay: this.fadeOutDelay,\n      loop: this.loop,\n      loopCount: this.loopCount,\n      showCursor: this.showCursor,\n      autoInsertCss: this.autoInsertCss,\n      attr: this.attr,\n      bindInputFocusEvents: this.bindInputFocusEvents,\n      contentType: this.contentType,\n      onComplete: emit(this.completed),\n      preStringTyped: emitIndex(this.preStringTyped),\n      onStringTyped: emitIndex(this.stringTyped),\n      onLastStringBackspaced: emit(this.lastStringBackspaced),\n      onTypingPaused: emitIndex(this.typingPaused),\n      onTypingResumed: emitIndex(this.typingResumed),\n      onReset: emit(this.reset),\n      onStop: emitIndex(this.stopped),\n      onStart: emitIndex(this.started),\n      onDestroy: emit(this.destroyed),\n    } as TypedOptions;\n\n    Object.keys(opts).forEach(key => {\n      if (opts[key] === undefined) {\n        delete opts[key];\n      }\n    });\n\n    return opts;\n  }\n\n  private updateCursorStyle(): void {\n    const textElementStyle = getComputedStyle(this.content.nativeElement.querySelector('.typing'));\n    const cursorElementStyle = this.content.nativeElement.querySelector('.typed-cursor').style;\n\n    cursorElementStyle.fontSize = textElementStyle.fontSize;\n    cursorElementStyle.color = this.cursorColor || textElementStyle.color;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.typed) {\n      this.typed.destroy();\n      this.ngAfterViewInit();\n    }\n  }\n}\n","<div #wrapper>\n  <ng-content></ng-content>\n</div>\n","import {NgModule} from '@angular/core';\nimport {NgxTypedJsComponent} from './ngx-typed-js.component';\n\n@NgModule({\n  declarations: [NgxTypedJsComponent],\n  imports: [],\n  exports: [NgxTypedJsComponent]\n})\nexport class NgxTypedJsModule {\n}\n","/*\n * Public API Surface of ngx-typed-js\n */\n\nexport * from './lib/ngx-typed-js.component';\nexport * from './lib/ngx-typed-js.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}