{"version":3,"file":"angular-tradingview-widget.mjs","sources":["../../../projects/angular-tradingview-widget/src/lib/tradingview-widget.model.ts","../../../projects/angular-tradingview-widget/src/lib/tradingview-widget.component.ts","../../../projects/angular-tradingview-widget/src/lib/tradingview-widget.module.ts","../../../projects/angular-tradingview-widget/src/public-api.ts","../../../projects/angular-tradingview-widget/src/angular-tradingview-widget.ts"],"sourcesContent":["export enum BarStyles {\r\n    BARS= '0',\r\n    CANDLES= '1',\r\n    HOLLOW_CANDLES= '9',\r\n    HEIKIN_ASHI= '8',\r\n    LINE= '2',\r\n    AREA= '3',\r\n    RENKO= '4',\r\n    LINE_BREAK= '7',\r\n    KAGI= '5',\r\n    POINT_AND_FIGURE= '6'\r\n}\r\n\r\nexport enum IntervalTypes {\r\n    D= 'D',\r\n    W= 'W'\r\n};\r\n  \r\nexport enum RangeTypes {\r\n    YTD= 'ytd',\r\n    ALL= 'all'\r\n};\r\n\r\nexport enum Themes {\r\n    LIGHT= 'Light',\r\n    DARK= 'Dark'\r\n};\r\n\r\n\r\n\r\nexport const SCRIPT_ID = 'tradingview-widget-script';\r\nexport const CONTAINER_ID = `tradingview-widget-${Math.random()}`;\r\n\r\nexport interface ITradingViewWidget {\r\n    allow_symbol_change?: boolean;\r\n    autosize?: boolean;\r\n    calendar?: boolean;\r\n    details?: boolean;\r\n    enable_publishing?: boolean;\r\n    height?: number;\r\n    hideideas?: boolean;\r\n    hide_legend?: boolean;\r\n    hide_side_toolbar?: boolean;\r\n    hide_top_toolbar?: boolean;\r\n    hotlist?: boolean;\r\n    interval?: \r\n        '1' |\r\n        '3' |\r\n        '5' |\r\n        '15' |\r\n        '30' |\r\n        '60' |\r\n        '120' |\r\n        '180' |\r\n        IntervalTypes.D |\r\n        IntervalTypes.W;\r\n    locale?: string;\r\n    news?: string[];\r\n    no_referral_id?: boolean;\r\n    popup_height?: number | string;\r\n    popup_width?: number | string;\r\n    referral_id?: string;\r\n    range?: \r\n        '1d' |\r\n        '5d' |\r\n        '1m' |\r\n        '3m' |\r\n        '6m' |\r\n        RangeTypes.YTD |\r\n        '12m' |\r\n        '60m' |\r\n        RangeTypes.ALL;\r\n    save_image?: boolean;\r\n    show_popup_button?: boolean;\r\n    studies?: string[];\r\n    style?:  BarStyles.BARS |\r\n        BarStyles.CANDLES |\r\n        BarStyles.HOLLOW_CANDLES |\r\n        BarStyles.HEIKIN_ASHI |\r\n        BarStyles.LINE |\r\n        BarStyles.AREA |\r\n        BarStyles.RENKO |\r\n        BarStyles.LINE_BREAK |\r\n        BarStyles.KAGI |\r\n        BarStyles.POINT_AND_FIGURE;\r\n    symbol: string;\r\n    theme?: Themes.LIGHT | Themes.DARK;\r\n    timezone?: string;\r\n    toolbar_bg?: string;\r\n    watchlist?: string[];\r\n    widgetType: string;\r\n    width?: number;\r\n    withdateranges?: boolean;\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BarStyles, CONTAINER_ID, IntervalTypes, ITradingViewWidget, SCRIPT_ID, Themes } from './tradingview-widget.model';\r\n\r\ndeclare const TradingView: any;\r\n\r\n@Component({\r\n  selector: 'tradingview-widget',\r\n  template: `\r\n    <section [id]=\"containerId\"> </section>\r\n  `,\r\n  styles: []\r\n})\r\nexport class TradingviewWidgetComponent implements OnInit {\r\n\r\n  private _widgetConfig!: ITradingViewWidget;\r\n  private _defaultConfig: ITradingViewWidget = {\r\n    symbol: 'NASDAQ:AAPL',\r\n    allow_symbol_change: true,\r\n    autosize: false,\r\n    enable_publishing: false,\r\n    height: 610,\r\n    hideideas: true,\r\n    hide_legend: false,\r\n    hide_side_toolbar: true,\r\n    hide_top_toolbar: false,\r\n    interval: IntervalTypes.D,\r\n    locale: 'en',\r\n    save_image: true,\r\n    show_popup_button: false,\r\n    style: BarStyles.CANDLES,\r\n    theme: Themes.LIGHT,\r\n    timezone: 'Etc/UTC',\r\n    toolbar_bg: '#F1F3F6',\r\n    widgetType: 'widget',\r\n    width: 980,\r\n    withdateranges: false\r\n  };\r\n\r\n  style: {} = {};\r\n  containerId = CONTAINER_ID;\r\n\r\n  @Input('widgetConfig') set widgetConfig (value: ITradingViewWidget) {\r\n      this._widgetConfig = value;\r\n      this.cleanWidget();\r\n      this.initWidget();\r\n   }\r\n\r\n   get widgetConfig (): ITradingViewWidget {\r\n    return this._widgetConfig || this._defaultConfig;\r\n  }\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    this.appendScript(this.initWidget.bind(this));\r\n  }\r\n\r\n  initWidget () {\r\n    /* global TradingView */\r\n    if (typeof TradingView === 'undefined' || !this.getContainer()) return;\r\n    \r\n    const { widgetType, ...widgetConfig } = this.widgetConfig;\r\n    const config = { ...widgetConfig, container_id: this.containerId };\r\n\r\n    if (config.autosize) {\r\n      delete config.width;\r\n      delete config.height;\r\n    }\r\n\r\n\r\n    if (config.popup_width && typeof config.popup_width === 'number') {\r\n      config.popup_width = config.popup_width.toString();\r\n    }\r\n\r\n    if (config.popup_height && typeof config.popup_height === 'number') {\r\n      config.popup_height = config.popup_height.toString();\r\n    }\r\n\r\n    if(config.autosize) {\r\n      this.style = {\r\n        width: '100%',\r\n        height: '100%'\r\n      };\r\n    }\r\n    /* global TradingView */\r\n    if(!!widgetType)\r\n      new TradingView[widgetType](config);\r\n    else \r\n      console.error(`Can not create \"TradingView\", because \"widgetType\" is missing`)\r\n  };\r\n\r\n  appendScript (onload : (() => any)) {\r\n    if (!this.canUseDOM()) {\r\n      onload();\r\n      return;\r\n    }\r\n\r\n    if (this.scriptExists()) {\r\n      /* global TradingView */\r\n      if (typeof TradingView === 'undefined') {\r\n        this.updateOnloadListener(onload);\r\n        return;\r\n      }\r\n      onload();\r\n      return;\r\n    }\r\n    const script = document.createElement('script');\r\n    script.id = SCRIPT_ID;\r\n    script.type = 'text/javascript';\r\n    script.async = true;\r\n    script.src = 'https://s3.tradingview.com/tv.js';\r\n    script.onload = onload;\r\n    document.getElementsByTagName('head')[0].appendChild(script);\r\n  };\r\n  \r\n  canUseDOM () {\r\n    return typeof window !== 'undefined' &&\r\n    window.document &&\r\n    window.document.createElement\r\n  }\r\n\r\n  scriptExists () {\r\n    return this.getScriptElement() !== null;\r\n  }\r\n\r\n  updateOnloadListener (onload: (() => any)) {\r\n    const script = this.getScriptElement() || {} as any;\r\n    const oldOnload = script.onload.bind(this);\r\n    return script.onload = () => {\r\n      oldOnload();\r\n      onload();\r\n    };\r\n  };\r\n\r\n  getScriptElement () {\r\n    return document.getElementById(SCRIPT_ID);\r\n  }\r\n\r\n  cleanWidget () {\r\n    if (!this.canUseDOM()) return;\r\n    const container = this.getContainer();\r\n    if(container) {\r\n      container.innerHTML = '';\r\n    }\r\n  };\r\n\r\n  getContainer () {\r\n    return document.getElementById(this.containerId);\r\n  }\r\n\r\n    \r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TradingviewWidgetComponent } from './tradingview-widget.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [TradingviewWidgetComponent],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [TradingviewWidgetComponent],\r\n  providers: []\r\n})\r\nexport class TradingviewWidgetModule {}\r\n","/*\r\n * Public API Surface of angular-tradingview-widget\r\n */\r\n\r\nexport * from './lib/tradingview-widget.component';\r\nexport * from './lib/tradingview-widget.module';\r\nexport * from './lib/tradingview-widget.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}