{"version":3,"file":"ngx-ruler.mjs","sources":["../../../projects/ngx-ruler/src/lib/ngx-ruler.service.ts","../../../projects/ngx-ruler/src/lib/ngx-ruler.interface.ts","../../../projects/ngx-ruler/src/lib/consts.ts","../../../projects/ngx-ruler/src/lib/ngx-ruler.component.ts","../../../projects/ngx-ruler/src/lib/ngx-ruler.module.ts","../../../projects/ngx-ruler/src/public-api.ts","../../../projects/ngx-ruler/src/ngx-ruler.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxRulerService {\n\n  constructor() { }\n}\n","import VanillaRuler, { METHODS, RulerInterface } from '@scena/ruler';\nimport { withMethods } from 'framework-utils';\nimport { RulerProps } from '@scena/ruler';\n\nexport class NgxRulerInterface {\n  @withMethods(METHODS as any)\n  protected ruler!: VanillaRuler;\n}\n// tslint:disable-next-line: no-empty-interface\nexport interface NgxRulerInterface extends RulerInterface, Required<RulerProps> {}\n","// auto\n// eslint-disable-next-line max-len\nexport const ANGULAR_RULER_INPUTS: [\"type\",\"width\",\"height\",\"unit\",\"zoom\",\"direction\",\"textAlign\",\"font\",\"segment\",\"mainLineSize\",\"longLineSize\",\"shortLineSize\",\"lineOffset\",\"textOffset\",\"negativeRuler\",\"range\",\"scrollPos\",\"defaultScrollPos\",\"style\",\"backgroundColor\",\"rangeBackgroundColor\",\"lineColor\",\"textColor\",\"textBackgroundColor\",\"textFormat\",\"warpSelf\",\"selectedBackgroundColor\",\"selectedRanges\",\"defaultPixelScale\",\"useResizeObserver\",\"selectedRangesText\",\"selectedRangesTextColor\",\"selectedRangesTextOffset\",\"marks\",\"markColor\"] = [\"type\",\"width\",\"height\",\"unit\",\"zoom\",\"direction\",\"textAlign\",\"font\",\"segment\",\"mainLineSize\",\"longLineSize\",\"shortLineSize\",\"lineOffset\",\"textOffset\",\"negativeRuler\",\"range\",\"scrollPos\",\"defaultScrollPos\",\"style\",\"backgroundColor\",\"rangeBackgroundColor\",\"lineColor\",\"textColor\",\"textBackgroundColor\",\"textFormat\",\"warpSelf\",\"selectedBackgroundColor\",\"selectedRanges\",\"defaultPixelScale\",\"useResizeObserver\",\"selectedRangesText\",\"selectedRangesTextColor\",\"selectedRangesTextOffset\",\"marks\",\"markColor\"];\n","import { Component, Input, AfterViewInit, ViewChild, ElementRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport Ruler, { PROPERTIES } from '@scena/ruler';\nimport { NgxRulerInterface } from './ngx-ruler.interface';\nimport { ANGULAR_RULER_INPUTS } from './consts';\n\n@Component({\n  selector: 'ngx-ruler',\n  template: `\n    <canvas #rulerRef></canvas>\n  `,\n  styles: [],\n  inputs: ANGULAR_RULER_INPUTS,\n})\nexport class NgxRulerComponent extends NgxRulerInterface implements AfterViewInit, OnChanges, OnDestroy {\n\n  @ViewChild('rulerRef', { static: false }) private rulerRef!: ElementRef;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const ruler = this.ruler;\n\n    if (!ruler) {\n      return;\n    }\n    for (const name in changes) {\n      const { previousValue, currentValue } = changes[name];\n\n      if (previousValue === currentValue) {\n        continue;\n      }\n      if (name === 'style') {\n        this.setStyle();\n      } else {\n        (ruler as any)[name] = currentValue;\n      }\n    }\n  }\n  ngAfterViewInit() {\n    const el = this.rulerRef.nativeElement;\n    const options: Record<string, any> = {};\n\n    PROPERTIES.forEach(name => {\n      if (name === 'style') {\n        return;\n      }\n      (options as any)[name] = (this as any)[name];\n    });\n\n    options['warpSelf'] = true;\n    this.ruler = new Ruler(el, options);\n    this.setStyle();\n  }\n  ngOnDestroy() {\n    this.ruler.destroy();\n  }\n  setStyle() {\n    const el = this.rulerRef.nativeElement;\n    const elStyle = el.style;\n    const style = this.style;\n\n    for (const name in style) {\n      if (elStyle[name] === style[name]) {\n        continue;\n      }\n      elStyle[name] = style[name];\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxRulerComponent } from './ngx-ruler.component';\n\n\n\n@NgModule({\n  declarations: [NgxRulerComponent],\n  imports: [\n  ],\n  exports: [NgxRulerComponent]\n})\nexport class NgxRulerModule { }\n","/*\n * Public API Surface of ngx-ruler\n */\n\nexport * from './lib/ngx-ruler.service';\nexport * from './lib/ngx-ruler.component';\nexport * from './lib/ngx-ruler.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}