lightweight-charts-react-components 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -139,7 +139,81 @@ Standalone version of the library is also available for use in the browser witho
139
139
 
140
140
  ## Usage
141
141
 
142
- tbd
142
+ The library provides a set of components that you can use in your React application. Here is a simple example of how to use the `Chart` and `LineSeries` components:
143
+
144
+ ```tsx
145
+ import React from "react";
146
+ import { Chart, LineSeries } from "lightweight-charts-react-components";
147
+
148
+ const data = [
149
+ { time: "2023-01-01", value: 100 },
150
+ { time: "2023-01-02", value: 101 },
151
+ { time: "2023-01-03", value: 102 },
152
+ ];
153
+
154
+ const Example = () => {
155
+ return (
156
+ <Chart>
157
+ <LineSeries data={data} />
158
+ </Chart>
159
+ );
160
+ };
161
+
162
+ export { Example };
163
+ ```
164
+
165
+ The following is an advanced example that demonstrates how to use custom scales, panes and multiple series in a single chart:
166
+
167
+ ```tsx
168
+ import React from "react";
169
+ import {
170
+ Chart,
171
+ LineSeries,
172
+ BarSeries,
173
+ PriceScale,
174
+ TimeScale,
175
+ TimeScaleFitContentTrigger,
176
+ Pane,
177
+ } from "lightweight-charts-react-components";
178
+
179
+ const data = [
180
+ { time: "2023-01-01", value: 100 },
181
+ { time: "2023-01-02", value: 101 },
182
+ { time: "2023-01-03", value: 102 },
183
+ ];
184
+ const volumeData = [
185
+ { time: "2023-01-01", value: 1000 },
186
+ { time: "2023-01-02", value: 1100 },
187
+ { time: "2023-01-03", value: 1200 },
188
+ ];
189
+
190
+ const chartOptions = {
191
+ // Chart options can be customized here
192
+ };
193
+
194
+ const priceScaleOptions = {
195
+ // Price scale options can be customized here
196
+ };
197
+
198
+ const AdvancedExample = () => {
199
+ return (
200
+ <Chart options={chartOptions}>
201
+ <Pane stretchFactor={2}>
202
+ <LineSeries data={data} />
203
+ <PriceScale id="left" options={priceScaleOptions} />
204
+ </Pane>
205
+ <Pane>
206
+ <BarSeries data={volumeData} />
207
+ </Pane>
208
+ <TimeScale>
209
+ <TimeScaleFitContentTrigger deps={[]} />
210
+ </TimeScale>
211
+ </Chart>
212
+ );
213
+ };
214
+
215
+ export { AdvancedExample };
216
+ ```
143
217
 
144
218
  ## Examples
145
219
 
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /**!
3
- * lightweight-charts-react-components v1.0.0
3
+ * lightweight-charts-react-components v1.0.1
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE.md file in the root directory of this source tree.
@@ -1,6 +1,6 @@
1
1
 
2
2
  /**!
3
- * lightweight-charts-react-components v1.0.0
3
+ * lightweight-charts-react-components v1.0.1
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE.md file in the root directory of this source tree.
@@ -8,7 +8,7 @@
8
8
  * @license MIT
9
9
  */
10
10
 
11
- import*as e from"react";import*as t from"lightweight-charts";let i=(0,e.createContext)(null);i.displayName="ChartContext";let r={addDefaultPane:!1},a=({container:i,onClick:a,onCrosshairMove:l,onInit:n,options:s={},onDblClick:u})=>{let[c,f]=(0,e.useState)(!1),o=(0,e.useRef)({_chart:null,api(){return this._chart},init(){if(null===this._chart){let e=(0,t.createChart)(i,{...r,...s});this._chart=e,n&&n(this._chart)}return c||f(!0),this._chart},clear(){null!==this._chart&&(f(!1),this._chart.remove(),this._chart=null)}});return(0,e.useLayoutEffect)(()=>(o.current.init(),()=>{o.current.clear()}),[]),(0,e.useLayoutEffect)(()=>{if(i){if(a){var e;null===(e=o.current.api())||void 0===e||e.subscribeClick(a)}return()=>{if(a){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeClick(a)}}}},[a]),(0,e.useLayoutEffect)(()=>{if(i){if(l){var e;null===(e=o.current.api())||void 0===e||e.subscribeCrosshairMove(l)}return()=>{if(l){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeCrosshairMove(l)}}}},[l]),(0,e.useLayoutEffect)(()=>{if(i){if(u){var e;null===(e=o.current.api())||void 0===e||e.subscribeDblClick(u)}return()=>{if(u){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeDblClick(u)}}}},[u]),(0,e.useLayoutEffect)(()=>{var e;i&&(null===(e=o.current.api())||void 0===e||e.applyOptions({...r,...s}))},[s]),{chartApiRef:o,isReady:c}},l=({children:t,container:r,onClick:l,onCrosshairMove:n,onInit:s,options:u})=>{let{chartApiRef:{current:c},isReady:f}=a({container:r,onClick:l,onCrosshairMove:n,onInit:s,options:u});return e.default.createElement(i.Provider,{value:{chartApiRef:c,isReady:f}},t)},n=(0,e.forwardRef)(({children:t,containerProps:i,...r},a)=>{let[n,s]=(0,e.useState)(),u=(0,e.useCallback)(e=>{s(e),a&&("function"==typeof a?u(e):a.current=e)},[a]);return e.default.createElement("div",{ref:u,...i},!!n&&e.default.createElement(l,{container:n,...r},t))});n.displayName="ChartWrapper";let s=(0,e.createContext)(null);s.displayName="TimeScaleContext";let u="1.0.0";function c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class f extends Error{constructor(e,{isOperational:t=!0,cause:i,docsPath:r}={}){super(e),c(this,"isOperational",void 0),c(this,"cause",void 0),this.name=this.constructor.name??"InternalError",this.isOperational=t,this.cause=i,this.message=`${e??"An error occurred"}`,r&&(this.message=`${this.message}
11
+ import*as e from"react";import*as t from"lightweight-charts";let i=(0,e.createContext)(null);i.displayName="ChartContext";let r={addDefaultPane:!1},a=({container:i,onClick:a,onCrosshairMove:l,onInit:n,options:s={},onDblClick:u})=>{let[c,f]=(0,e.useState)(!1),o=(0,e.useRef)({_chart:null,api(){return this._chart},init(){if(null===this._chart){let e=(0,t.createChart)(i,{...r,...s});this._chart=e,n&&n(this._chart)}return c||f(!0),this._chart},clear(){null!==this._chart&&(f(!1),this._chart.remove(),this._chart=null)}});return(0,e.useLayoutEffect)(()=>(o.current.init(),()=>{o.current.clear()}),[]),(0,e.useLayoutEffect)(()=>{if(i){if(a){var e;null===(e=o.current.api())||void 0===e||e.subscribeClick(a)}return()=>{if(a){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeClick(a)}}}},[a]),(0,e.useLayoutEffect)(()=>{if(i){if(l){var e;null===(e=o.current.api())||void 0===e||e.subscribeCrosshairMove(l)}return()=>{if(l){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeCrosshairMove(l)}}}},[l]),(0,e.useLayoutEffect)(()=>{if(i){if(u){var e;null===(e=o.current.api())||void 0===e||e.subscribeDblClick(u)}return()=>{if(u){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeDblClick(u)}}}},[u]),(0,e.useLayoutEffect)(()=>{var e;i&&(null===(e=o.current.api())||void 0===e||e.applyOptions({...r,...s}))},[s]),{chartApiRef:o,isReady:c}},l=({children:t,container:r,onClick:l,onCrosshairMove:n,onInit:s,options:u})=>{let{chartApiRef:{current:c},isReady:f}=a({container:r,onClick:l,onCrosshairMove:n,onInit:s,options:u});return e.default.createElement(i.Provider,{value:{chartApiRef:c,isReady:f}},t)},n=(0,e.forwardRef)(({children:t,containerProps:i,...r},a)=>{let[n,s]=(0,e.useState)(),u=(0,e.useCallback)(e=>{s(e),a&&("function"==typeof a?u(e):a.current=e)},[a]);return e.default.createElement("div",{ref:u,...i},!!n&&e.default.createElement(l,{container:n,...r},t))});n.displayName="ChartWrapper";let s=(0,e.createContext)(null);s.displayName="TimeScaleContext";let u="1.0.1";function c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class f extends Error{constructor(e,{isOperational:t=!0,cause:i,docsPath:r}={}){super(e),c(this,"isOperational",void 0),c(this,"cause",void 0),this.name=this.constructor.name??"InternalError",this.isOperational=t,this.cause=i,this.message=`${e??"An error occurred"}`,r&&(this.message=`${this.message}
12
12
 
13
13
  Docs: see ${"https://ukorvl.github.io/lightweight-charts-react-components/docs/"+r}`),u&&(this.message=`${this.message}
14
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"lightweight-charts-react-components.mjs","sources":["webpack://lightweight-charts-react-components/./src/chart/ChartContext.ts","webpack://lightweight-charts-react-components/./src/chart/defaultChartOptions.ts","webpack://lightweight-charts-react-components/./src/chart/useChart.ts","webpack://lightweight-charts-react-components/./src/chart/ChartComponent.tsx","webpack://lightweight-charts-react-components/./src/chart/ChartWrapper.tsx","webpack://lightweight-charts-react-components/./src/scales/TimeScaleContext.ts","webpack://lightweight-charts-react-components/./src/version.ts","webpack://lightweight-charts-react-components/./src/_shared/InternalError.ts","webpack://lightweight-charts-react-components/./src/_shared/useSafeContext.ts","webpack://lightweight-charts-react-components/./src/scales/useTimeScale.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScale.tsx","webpack://lightweight-charts-react-components/./src/pane/PaneContext.ts","webpack://lightweight-charts-react-components/./src/pane/usePaneContext.ts","webpack://lightweight-charts-react-components/./src/scales/usePriceScale.ts","webpack://lightweight-charts-react-components/./src/scales/PriceScale.tsx","webpack://lightweight-charts-react-components/./src/scales/useTimeScaleFitContentTrigger.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScaleFitContentTrigger.tsx","webpack://lightweight-charts-react-components/./src/series/SeriesContext.ts","webpack://lightweight-charts-react-components/./src/series/useSeries.ts","webpack://lightweight-charts-react-components/./src/series/SeriesTemplate.tsx","webpack://lightweight-charts-react-components/./src/series/LineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/HistogramSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CandlestickSeries.tsx","webpack://lightweight-charts-react-components/./src/series/AreaSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BaselineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BarSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CustomSeries.tsx","webpack://lightweight-charts-react-components/./src/priceLine/usePriceLine.ts","webpack://lightweight-charts-react-components/./src/priceLine/PriceLine.tsx","webpack://lightweight-charts-react-components/./src/markers/useMarkers.ts","webpack://lightweight-charts-react-components/./src/markers/Markers.tsx","webpack://lightweight-charts-react-components/./src/watermark/useWatermark.ts","webpack://lightweight-charts-react-components/./src/watermark/Watermark.tsx","webpack://lightweight-charts-react-components/./src/primitives/useSeriesPrimitive.ts","webpack://lightweight-charts-react-components/./src/primitives/SeriesPrimitive.tsx","webpack://lightweight-charts-react-components/./src/pane/usePane.ts","webpack://lightweight-charts-react-components/./src/pane/Pane.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { type IChartContext } from \"./types\";\n\nconst ChartContext = createContext<IChartContext | null>(null);\n\nChartContext.displayName = \"ChartContext\";\nexport { ChartContext };\n","import type { ChartOptions, DeepPartial } from \"lightweight-charts\";\n\nconst defaultChartOptions: DeepPartial<ChartOptions> = {\n addDefaultPane: false,\n};\n\nexport { defaultChartOptions };\n","import { createChart } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { defaultChartOptions } from \"./defaultChartOptions\";\nimport type { ChartApiRef, UseChartOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n onDblClick,\n}: UseChartOptions) => {\n const [isReady, setIsReady] = useState(false);\n\n const chartApiRef = useRef<ChartApiRef>({\n _chart: null,\n api() {\n return this._chart;\n },\n init() {\n if (this._chart === null) {\n const chart = createChart(container, {\n ...defaultChartOptions,\n ...options,\n });\n this._chart = chart;\n\n if (onInit) {\n onInit(this._chart);\n }\n }\n\n if (!isReady) {\n setIsReady(true);\n }\n\n return this._chart;\n },\n clear() {\n if (this._chart !== null) {\n setIsReady(false);\n this._chart.remove();\n this._chart = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n chartApiRef.current.init();\n\n return () => {\n chartApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onClick) {\n chartApiRef.current.api()?.subscribeClick(onClick);\n }\n\n return () => {\n if (onClick) {\n chartApiRef.current.api()?.unsubscribeClick(onClick);\n }\n };\n }, [onClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onCrosshairMove) {\n chartApiRef.current.api()?.subscribeCrosshairMove(onCrosshairMove);\n }\n\n return () => {\n if (onCrosshairMove) {\n chartApiRef.current.api()?.unsubscribeCrosshairMove(onCrosshairMove);\n }\n };\n }, [onCrosshairMove]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onDblClick) {\n chartApiRef.current.api()?.subscribeDblClick(onDblClick);\n }\n\n return () => {\n if (onDblClick) {\n chartApiRef.current.api()?.unsubscribeDblClick(onDblClick);\n }\n };\n }, [onDblClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n chartApiRef.current.api()?.applyOptions({\n ...defaultChartOptions,\n ...options,\n });\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import React from \"react\";\nimport { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartComponentProps } from \"./types\";\n\nconst ChartComponent: React.FC<ChartComponentProps> = ({\n children,\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options,\n}) => {\n const {\n chartApiRef: { current: chartApiRef },\n isReady,\n } = useChart({ container, onClick, onCrosshairMove, onInit, options });\n\n return (\n <ChartContext.Provider\n value={{\n chartApiRef,\n isReady,\n }}\n >\n {children}\n </ChartContext.Provider>\n );\n};\n\nexport { ChartComponent };\n","import { forwardRef, useCallback, useState } from \"react\";\nimport React from \"react\";\nimport { ChartComponent } from \"./ChartComponent\";\nimport type { ChartProps } from \"./types\";\nimport type {\n ForwardRefExoticComponent,\n ForwardRefRenderFunction,\n RefAttributes,\n} from \"react\";\n\nconst ChartRenderFunction: ForwardRefRenderFunction<HTMLDivElement, ChartProps> = (\n { children, containerProps, ...rest },\n ref\n) => {\n const [container, setContainer] = useState<HTMLDivElement>();\n const containerRef = useCallback(\n (r: HTMLDivElement) => {\n setContainer(r);\n\n if (ref) {\n if (typeof ref === \"function\") {\n containerRef(r);\n } else {\n ref.current = r;\n }\n }\n },\n [ref]\n );\n\n return (\n <div ref={containerRef} {...containerProps}>\n {!!container && (\n <ChartComponent container={container} {...rest}>\n {children}\n </ChartComponent>\n )}\n </div>\n );\n};\n\nconst ChartWrapper: ForwardRefExoticComponent<\n ChartProps & RefAttributes<HTMLDivElement>\n> = forwardRef(ChartRenderFunction);\nChartWrapper.displayName = \"ChartWrapper\";\nexport { ChartWrapper };\n","import { createContext } from \"react\";\nimport { type ITimeScaleContext } from \"./types\";\n\nconst TimeScaleContext = createContext<ITimeScaleContext | null>(null);\nTimeScaleContext.displayName = \"TimeScaleContext\";\nexport { TimeScaleContext };\n","export const version = \"1.0.0\";\n","import { version } from \"../version\";\n\nconst docsBaseUrl = \"https://ukorvl.github.io/lightweight-charts-react-components/docs/\";\n\ntype IBaseErrorParameters = {\n /**\n * An operational error refers to an error that occurs during normal program operation\n * due to external factors or expected failures, not due to bugs in the code itself.\n */\n isOperational?: boolean;\n /**\n * The cause of the error, if any.\n * This can be used to provide additional context or information about the error.\n */\n cause?: Error | BaseInternalError;\n /**\n * A path to the documentation that can help resolve the error.\n * This is useful for providing users with guidance on how to fix or understand the error.\n */\n docsPath?: string;\n};\n\nclass BaseInternalError extends Error {\n public isOperational: boolean;\n public override cause?: Error | BaseInternalError;\n\n constructor(\n message?: string,\n { isOperational = true, cause, docsPath }: IBaseErrorParameters = {}\n ) {\n super(message);\n\n this.name = this.constructor.name ?? \"InternalError\";\n this.isOperational = isOperational;\n this.cause = cause;\n\n this.message = `${message ?? \"An error occurred\"}`;\n\n if (docsPath) {\n this.message = `${this.message}\\n\\nDocs: see ${docsBaseUrl + docsPath}`;\n }\n\n if (version) {\n this.message = `${this.message}\\n\\nVersion: lightweight-charts-react-components@${version}`;\n }\n\n Object.setPrototypeOf(this, BaseInternalError.prototype);\n }\n}\n\nexport { BaseInternalError };\n","import { type Context, useContext } from \"react\";\nimport { BaseInternalError } from \"./InternalError\";\n\nexport const useSafeContext = <T>(context: Context<T>, errorMessage?: string) => {\n const currentContextValue = useContext(context);\n\n if (!currentContextValue) {\n const ctxName = context.name ?? context.displayName ?? \"Context\";\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: Omit<TimeScaleProps, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (this._timeScale) {\n return this._timeScale;\n }\n\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._timeScale = chartApi.timeScale();\n\n this._timeScale.applyOptions(options);\n\n if (visibleRange) {\n this._timeScale.setVisibleRange(visibleRange);\n }\n\n if (visibleLogicalRange) {\n this._timeScale.setVisibleLogicalRange(visibleLogicalRange);\n }\n\n if (onVisibleTimeRangeChange) {\n this._timeScale.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n if (onVisibleLogicalRangeChange) {\n this._timeScale.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n if (onSizeChange) {\n this._timeScale.subscribeSizeChange(onSizeChange);\n }\n\n setIsReady(true);\n\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\n setIsReady(false);\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n timeScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n timeScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n timeScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.subscribeSizeChange(onSizeChange);\n }\n\n return () => {\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.unsubscribeSizeChange(onSizeChange);\n }\n };\n }, [onSizeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n return () => {\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n };\n }, [onVisibleLogicalRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n return () => {\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n };\n }, [onVisibleTimeRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleRange) {\n timeScaleApiRef.current?.api()?.setVisibleRange(visibleRange);\n }\n }, [visibleRange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleLogicalRange) {\n timeScaleApiRef.current?.api()?.setVisibleLogicalRange(visibleLogicalRange);\n }\n }, [visibleLogicalRange]);\n\n return { timeScaleApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst TimeScaleRenderFunction = (\n { children, ...props }: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n): JSX.Element => {\n const {\n timeScaleApiRef: { current: timeScaleApiRef },\n isReady,\n } = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef, [timeScaleApiRef]);\n\n return (\n <TimeScaleContext.Provider\n value={{\n timeScaleApiRef,\n isReady,\n }}\n >\n {children}\n </TimeScaleContext.Provider>\n );\n};\n\nconst TimeScale: ForwardRefExoticComponent<\n TimeScaleProps & RefAttributes<TimeScaleApiRef>\n> = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { createContext } from \"react\";\nimport { type IPaneContext } from \"./types\";\n\nconst PaneContext = createContext<IPaneContext | null>(null);\n\nPaneContext.displayName = \"PaneContext\";\nexport { PaneContext };\n","import { useContext } from \"react\";\nimport { PaneContext } from \"./PaneContext\";\n\nconst usePaneContext = () => {\n const paneContext = useContext(PaneContext);\n\n const isInsidePane = !!paneContext;\n const isPaneReady = !!paneContext?.isReady;\n const paneApiRef = paneContext?.paneApiRef;\n\n return { isInsidePane, isPaneReady, paneApiRef };\n};\n\nexport { usePaneContext };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { PriceScaleProps, PriceScaleApiRef } from \"./types\";\n\nexport const usePriceScale = ({ options = {}, id }: PriceScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isInsidePane, isPaneReady } = usePaneContext();\n\n const priceScaleApiRef = useRef<PriceScaleApiRef>({\n _priceScale: null,\n api() {\n return this._priceScale;\n },\n init() {\n if (!this._priceScale) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._priceScale = chartApi.priceScale(id);\n\n this._priceScale.applyOptions(options);\n }\n\n return this._priceScale;\n },\n setId(id) {\n if (this._priceScale === null || chart === null) {\n return;\n }\n\n this._priceScale = chart.api()!.priceScale(id);\n this._priceScale.applyOptions(options);\n },\n clear() {\n this._priceScale = null;\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n priceScaleApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n priceScaleApiRef.current?.setId(id);\n }, [id]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n priceScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n return priceScaleApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceScale } from \"./usePriceScale\";\nimport type { PriceScaleApiRef, PriceScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceScaleRenderFunction = (\n props: PriceScaleProps,\n ref: ForwardedRef<PriceScaleApiRef>\n): JSX.Element | null => {\n const priceScaleApiRef = usePriceScale(props);\n useImperativeHandle(ref, () => priceScaleApiRef.current, [priceScaleApiRef]);\n\n return null;\n};\n\nconst PriceScale: ForwardRefExoticComponent<\n PriceScaleProps & RefAttributes<PriceScaleApiRef>\n> = forwardRef(PriceScaleRenderFunction);\nPriceScale.displayName = \"PriceScale\";\nexport { PriceScale };\n","import { useLayoutEffect } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst useTimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n const timeScaleContext = useSafeContext(TimeScaleContext);\n const { timeScaleApiRef, isReady } = timeScaleContext;\n\n useLayoutEffect(() => {\n if (!isReady || !timeScaleApiRef) {\n return;\n }\n\n const timeScale = timeScaleApiRef.api();\n queueMicrotask(() => {\n if (timeScale) {\n timeScale.fitContent();\n }\n });\n }, [...deps, isReady]);\n};\n\nexport { useTimeScaleFitContentTrigger };\n","import { useTimeScaleFitContentTrigger } from \"./useTimeScaleFitContentTrigger\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\nimport type { JSX } from \"react\";\n\nconst TimeScaleFitContentTrigger = ({\n deps,\n}: TimeScaleFitContentTriggerProps): JSX.Element | null => {\n useTimeScaleFitContentTrigger({ deps });\n\n return null;\n};\n\nexport { TimeScaleFitContentTrigger };\n","import { createContext } from \"react\";\nimport { type ISeriesContext } from \"./types\";\n\nexport const SeriesContext = createContext<ISeriesContext>({\n seriesApiRef: null,\n isReady: false,\n});\nSeriesContext.displayName = \"SeriesContext\";\n","import {\n LineSeries,\n CandlestickSeries,\n HistogramSeries,\n AreaSeries,\n BaselineSeries,\n BarSeries,\n} from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { CustomSeriesUniqueProps, SeriesApiRef, SeriesTemplateProps } from \"./types\";\nimport type { SeriesDefinition, ISeriesApi, SeriesType } from \"lightweight-charts\";\n\ntype SeriesTypeWithoutCustom = Exclude<SeriesType, \"Custom\">;\n\nexport const useSeries = <T extends SeriesType>({\n type,\n data,\n options = {},\n reactive = true,\n ...rest\n}: Omit<SeriesTemplateProps<T>, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n const [isReady, setIsReady] = useState(false);\n\n const seriesApiRef = useRef<SeriesApiRef<T>>({\n _series: null,\n api() {\n return this._series;\n },\n init() {\n if (!this._series) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n const paneIndex = isInsidePane ? paneApiRef?.api()?.paneIndex() : undefined;\n\n if (type === \"Custom\") {\n const plugin = (rest as CustomSeriesUniqueProps).plugin;\n if (!plugin) {\n throw new BaseInternalError(\"Custom series requires a plugin to be defined\");\n }\n\n // TODO: Fix this type cast and infer the correct type\n (this._series as unknown as ISeriesApi<\"Custom\">) = chartApi.addCustomSeries(\n plugin,\n options,\n paneIndex\n );\n } else {\n this._series = chartApi.addSeries(\n seriesMap[type as SeriesTypeWithoutCustom] as SeriesDefinition<T>,\n options,\n paneIndex\n );\n }\n\n this._series?.setData(data);\n\n setIsReady(true);\n }\n\n return this._series;\n },\n clear() {\n if (this._series !== null) {\n chart?.api()?.removeSeries(this._series);\n this._series = null;\n setIsReady(false);\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (isInsidePane && !isPaneReady) {\n return;\n }\n\n seriesApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (data && reactive) {\n seriesApiRef.current.api()?.setData(data);\n }\n }, [data, reactive]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n seriesApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n return { isReady, seriesApiRef };\n};\n\nconst seriesMap: Record<\n SeriesTypeWithoutCustom,\n SeriesDefinition<SeriesTypeWithoutCustom>\n> = {\n Line: LineSeries,\n Candlestick: CandlestickSeries,\n Histogram: HistogramSeries,\n Area: AreaSeries,\n Baseline: BaselineSeries,\n Bar: BarSeries,\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { SeriesContext } from \"./SeriesContext\";\nimport { useSeries } from \"./useSeries\";\nimport type { SeriesTemplateProps, SeriesApiRef } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesComponent = (<T extends SeriesType>(\n props: SeriesTemplateProps<T> & {\n ref?: ForwardedRef<SeriesApiRef<T>>;\n }\n) => ReturnType<typeof SeriesTemplateRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesTemplateRenderFunction = <T extends SeriesType>(\n { children, ...rest }: SeriesTemplateProps<T>,\n ref: ForwardedRef<SeriesApiRef<T>>\n) => {\n const {\n seriesApiRef: { current: seriesApiRef },\n isReady,\n } = useSeries(rest);\n useImperativeHandle(ref, () => seriesApiRef, [seriesApiRef]);\n\n return (\n <SeriesContext.Provider\n value={{\n seriesApiRef,\n isReady,\n }}\n >\n {children}\n </SeriesContext.Provider>\n );\n};\n\nconst SeriesTemplate = forwardRef(SeriesTemplateRenderFunction) as GenericSeriesComponent;\nSeriesTemplate.displayName = \"SeriesTemplate\";\nexport { SeriesTemplate };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst LineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Line\">,\n ref: ForwardedRef<SeriesApiRef<\"Line\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Line\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst LineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Line\"> & RefAttributes<SeriesApiRef<\"Line\">>\n> = forwardRef(LineSeriesRenderFunction);\nLineSeries.displayName = \"LineSeries\";\nexport { LineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst HistogramSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Histogram\">,\n ref: ForwardedRef<SeriesApiRef<\"Histogram\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Histogram\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst HistogramSeries: ForwardRefExoticComponent<\n SeriesProps<\"Histogram\"> & RefAttributes<SeriesApiRef<\"Histogram\">>\n> = forwardRef(HistogramSeriesRenderFunction);\nHistogramSeries.displayName = \"HistogramSeries\";\nexport { HistogramSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CandlestickSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Candlestick\">,\n ref: ForwardedRef<SeriesApiRef<\"Candlestick\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Candlestick\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CandlestickSeries: ForwardRefExoticComponent<\n SeriesProps<\"Candlestick\"> & RefAttributes<SeriesApiRef<\"Candlestick\">>\n> = forwardRef(CandlestickSeriesRenderFunction);\nCandlestickSeries.displayName = \"CandlestickSeries\";\nexport { CandlestickSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst AreaSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Area\">,\n ref: ForwardedRef<SeriesApiRef<\"Area\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Area\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst AreaSeries: ForwardRefExoticComponent<\n SeriesProps<\"Area\"> & RefAttributes<SeriesApiRef<\"Area\">>\n> = forwardRef(AreaSeriesRenderFunction);\nAreaSeries.displayName = \"AreaSeries\";\nexport { AreaSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BaselineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Baseline\">,\n ref: ForwardedRef<SeriesApiRef<\"Baseline\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Baseline\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BaselineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Baseline\"> & RefAttributes<SeriesApiRef<\"Baseline\">>\n> = forwardRef(BaselineSeriesRenderFunction);\nBaselineSeries.displayName = \"BaselineSeries\";\nexport { BaselineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BarSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Bar\">,\n ref: ForwardedRef<SeriesApiRef<\"Bar\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Bar\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BarSeries: ForwardRefExoticComponent<\n SeriesProps<\"Bar\"> & RefAttributes<SeriesApiRef<\"Bar\">>\n> = forwardRef(BarSeriesRenderFunction);\nBarSeries.displayName = \"BarSeries\";\nexport { BarSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CustomSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Custom\">,\n ref: ForwardedRef<SeriesApiRef<\"Custom\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Custom\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CustomSeries: ForwardRefExoticComponent<\n SeriesProps<\"Custom\"> & RefAttributes<SeriesApiRef<\"Custom\">>\n> = forwardRef(CustomSeriesRenderFunction);\nCustomSeries.displayName = \"CustomSeries\";\nexport { CustomSeries };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\n\nexport const usePriceLine = ({ options, price }: PriceLineProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const priceLineApiRef = useRef<PriceLineApiRef>({\n _priceLine: null,\n api() {\n return this._priceLine;\n },\n init() {\n if (!this._priceLine) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._priceLine = seriesApi.createPriceLine({\n price,\n ...options,\n });\n }\n\n return this._priceLine;\n },\n clear() {\n if (this._priceLine !== null) {\n series?.api()?.removePriceLine(this._priceLine);\n this._priceLine = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n priceLineApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceLineApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (options) {\n priceLineApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (price) {\n priceLineApiRef.current.api()?.applyOptions({ price });\n }\n }, [price]);\n\n return priceLineApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceLine } from \"./usePriceLine\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceLineRenderFunction = (\n props: PriceLineProps,\n ref: ForwardedRef<PriceLineApiRef>\n): JSX.Element | null => {\n const priceLineApiRef = usePriceLine(props);\n useImperativeHandle(ref, () => priceLineApiRef.current, [priceLineApiRef]);\n\n return null;\n};\n\nconst PriceLine: ForwardRefExoticComponent<\n PriceLineProps & RefAttributes<PriceLineApiRef>\n> = forwardRef(PriceLineRenderFunction);\nPriceLine.displayName = \"PriceLine\";\nexport { PriceLine };\n","import { createSeriesMarkers } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\n\nexport const useMarkers = ({ reactive = true, markers }: MarkersProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const markersApiRef = useRef<MarkersApiRef>({\n _markers: null,\n api() {\n return this._markers;\n },\n init() {\n if (this._markers === null) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._markers = createSeriesMarkers(seriesApi, markers);\n }\n\n return this._markers;\n },\n clear() {\n if (this._markers !== null) {\n this._markers.detach();\n this._markers = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n markersApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n markersApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (markers && reactive) {\n markersApiRef.current.api()?.setMarkers(markers);\n }\n }, [markers, reactive]);\n\n return markersApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useMarkers } from \"./useMarkers\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst MarkersRenderFunction = (\n { ...rest }: MarkersProps,\n ref: ForwardedRef<MarkersApiRef>\n): JSX.Element | null => {\n const markersApiRef = useMarkers(rest);\n useImperativeHandle(ref, () => markersApiRef.current, [markersApiRef]);\n\n return null;\n};\n\nconst Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>> =\n forwardRef(MarkersRenderFunction);\nMarkers.displayName = \"Markers\";\nexport { Markers };\n","import { createTextWatermark, createImageWatermark } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { WatermarkApiRef, WatermarkProps, WatermarkType } from \"./types\";\n\nconst useWatermark = <T extends WatermarkType>(props: WatermarkProps<T>) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n\n const watermarkApiRef = useRef<WatermarkApiRef<T>>({\n _watermark: null,\n api() {\n return this._watermark;\n },\n init() {\n if (this._watermark === null) {\n const chartApi = chart?.api();\n\n const pane = paneApiRef?.api();\n\n if (!chartApi || !pane) return null;\n\n if (isTextWatermark(props)) {\n const { type: _, ...rest } = props;\n this._watermark = createTextWatermark(pane, rest);\n } else {\n const { type: _, src, ...rest } = props as WatermarkProps<\"image\">;\n this._watermark = createImageWatermark(pane, src, rest);\n }\n }\n\n return this._watermark;\n },\n clear() {\n if (this._watermark !== null) {\n this._watermark.detach();\n this._watermark = null;\n }\n },\n } as WatermarkApiRef<T>);\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n watermarkApiRef.current.init();\n }, [chartIsReady, isPaneReady, isInsidePane]);\n\n useLayoutEffect(() => {\n return () => {\n watermarkApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart || !props) return;\n\n const { type: _, ...rest } = props;\n watermarkApiRef.current.api()?.applyOptions(rest);\n }, [props]);\n\n return watermarkApiRef;\n};\n\nconst isTextWatermark = (\n props: WatermarkProps<WatermarkType>\n): props is WatermarkProps<\"text\"> => {\n return props.type === \"text\";\n};\n\nexport { useWatermark };\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useWatermark } from \"./useWatermark\";\nimport type {\n ImageWatermarkProps,\n TextWatermarkProps,\n WatermarkApiRef,\n WatermarkProps,\n WatermarkType,\n} from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst WatermarkRenderFunction = <T extends WatermarkType>(\n props: WatermarkProps<T>,\n ref: ForwardedRef<WatermarkApiRef<T>>\n) => {\n const watermarkApi = useWatermark(props);\n useImperativeHandle(ref, () => watermarkApi.current, [watermarkApi]);\n\n return null;\n};\n\nconst WatermarkText: ForwardRefExoticComponent<\n TextWatermarkProps & RefAttributes<WatermarkApiRef<\"text\">>\n> = forwardRef<WatermarkApiRef<\"text\">, TextWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"text\" }, ref);\n});\n\nconst WatermarkImage: ForwardRefExoticComponent<\n ImageWatermarkProps & RefAttributes<WatermarkApiRef<\"image\">>\n> = forwardRef<WatermarkApiRef<\"image\">, ImageWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"image\" }, ref);\n});\n\nWatermarkText.displayName = \"WatermarkText\";\nWatermarkImage.displayName = \"WatermarkImage\";\n\nexport { WatermarkText, WatermarkImage };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { ISeriesApi, SeriesType } from \"lightweight-charts\";\n\nexport const useSeriesPrimitive = <T extends SeriesType>({\n render,\n plugin,\n}: SeriesPrimitiveProps<T>) => {\n const { isReady: isChartReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const seriesPrimitiveApiRef = useRef<SeriesPrimitiveApiRef>({\n _primitive: null,\n api() {\n return this._primitive;\n },\n init() {\n if (!this._primitive) {\n const seriesApi = series?.api();\n const chartApi = chart?.api();\n\n if (!chartApi || !seriesApi) {\n return null;\n }\n\n const primitive = plugin\n ? plugin\n : render({\n chart: chartApi,\n series: seriesApi as ISeriesApi<T>,\n });\n\n seriesApi.attachPrimitive(primitive);\n this._primitive = primitive;\n }\n\n return this._primitive;\n },\n clear() {\n if (this._primitive !== null) {\n series?.api()?.detachPrimitive(this._primitive);\n this._primitive = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!isChartReady || !seriesIsReady) return;\n\n seriesPrimitiveApiRef.current.init();\n }, [seriesIsReady, isChartReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesPrimitiveApiRef.current.clear();\n };\n }, []);\n\n return seriesPrimitiveApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useSeriesPrimitive } from \"./useSeriesPrimitive\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef, JSX } from \"react\";\n\ntype GenericSeriesPrimitiveComponent = (<T extends SeriesType>(\n props: SeriesPrimitiveProps<T> & {\n ref?: ForwardedRef<SeriesPrimitiveApiRef>;\n }\n) => ReturnType<typeof SeriesPrimitiveRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesPrimitiveRenderFunction = <T extends SeriesType>(\n props: SeriesPrimitiveProps<T>,\n ref: ForwardedRef<SeriesPrimitiveApiRef>\n): JSX.Element | null => {\n const seriesPrimitiveApiRef = useSeriesPrimitive(props);\n useImperativeHandle(ref, () => seriesPrimitiveApiRef.current, [seriesPrimitiveApiRef]);\n\n return null;\n};\n\nconst SeriesPrimitive = forwardRef(\n SeriesPrimitiveRenderFunction\n) as GenericSeriesPrimitiveComponent;\nSeriesPrimitive.displayName = \"SeriesPrimitive\";\nexport { SeriesPrimitive };\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { PaneApiRef, PaneProps } from \"./types\";\n\nexport const usePane = ({ stretchFactor }: Omit<PaneProps, \"children\"> = {}) => {\n const { chartApiRef: chart, isReady: chartIsReady } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const paneApiRef = useRef<PaneApiRef>({\n _pane: null,\n api() {\n return this._pane;\n },\n init() {\n const chartApi = chart?.api();\n if (!chartApi) return null;\n\n const pane = chartApi.addPane(true);\n this._pane = pane;\n\n setIsReady(true);\n\n if (stretchFactor !== undefined) {\n this._pane.setStretchFactor(stretchFactor);\n }\n\n return this._pane;\n },\n clear() {\n if (this._pane !== null) {\n chart?.api()?.removePane(this._pane.paneIndex());\n setIsReady(false);\n\n this._pane = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n paneApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n paneApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (stretchFactor === undefined) return;\n\n const pane = paneApiRef.current.api();\n if (pane) {\n pane.setStretchFactor(stretchFactor);\n }\n }, [stretchFactor]);\n\n return { paneApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { PaneContext } from \"./PaneContext\";\nimport { usePane } from \"./usePane\";\nimport type { PaneProps, PaneApiRef } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst PaneRenderFunction = (\n { children, stretchFactor }: PaneProps,\n ref: ForwardedRef<PaneApiRef>\n) => {\n const {\n paneApiRef: { current: paneApiRef },\n isReady,\n } = usePane({ stretchFactor });\n useImperativeHandle(ref, () => paneApiRef, [paneApiRef]);\n\n return (\n <PaneContext.Provider\n value={{\n paneApiRef,\n isReady,\n }}\n >\n {children}\n </PaneContext.Provider>\n );\n};\n\nconst Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>> =\n forwardRef(PaneRenderFunction);\nPane.displayName = \"Pane\";\nexport { Pane };\n"],"names":["ChartContext","createContext","defaultChartOptions","useChart","container","onClick","onCrosshairMove","onInit","options","onDblClick","isReady","setIsReady","useState","chartApiRef","useRef","chart","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","ChartWrapper","forwardRef","containerProps","rest","ref","setContainer","containerRef","useCallback","r","TimeScaleContext","version","BaseInternalError","Error","message","isOperational","cause","docsPath","docsBaseUrl","Object","useSafeContext","context","errorMessage","currentContextValue","useContext","ctxName","useTimeScale","onVisibleTimeRangeChange","onVisibleLogicalRangeChange","onSizeChange","visibleRange","visibleLogicalRange","chartIsReady","timeScaleApiRef","chartApi","_timeScaleApiRef_current_api","TimeScale","props","useImperativeHandle","PaneContext","usePaneContext","paneContext","isInsidePane","isPaneReady","paneApiRef","usePriceScale","id","priceScaleApiRef","_priceScaleApiRef_current","_priceScaleApiRef_current_api","PriceScale","useTimeScaleFitContentTrigger","deps","timeScale","queueMicrotask","TimeScaleFitContentTrigger","SeriesContext","useSeries","type","data","reactive","seriesApiRef","_paneApiRef_api","_this__series","paneIndex","undefined","plugin","seriesMap","_chart_api","_seriesApiRef_current_api","LineSeries","CandlestickSeries","HistogramSeries","AreaSeries","BaselineSeries","BarSeries","SeriesTemplate","CustomSeries","usePriceLine","price","seriesIsReady","series","priceLineApiRef","seriesApi","_series_api","_priceLineApiRef_current_api","PriceLine","useMarkers","markers","markersApiRef","createSeriesMarkers","_markersApiRef_current_api","Markers","useWatermark","watermarkApiRef","pane","isTextWatermark","_","createTextWatermark","src","createImageWatermark","_watermarkApiRef_current_api","WatermarkRenderFunction","watermarkApi","WatermarkText","WatermarkImage","useSeriesPrimitive","render","isChartReady","seriesPrimitiveApiRef","primitive","SeriesPrimitive","usePane","stretchFactor","Pane"],"mappings":"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"}
1
+ {"version":3,"file":"lightweight-charts-react-components.mjs","sources":["webpack://lightweight-charts-react-components/./src/chart/ChartContext.ts","webpack://lightweight-charts-react-components/./src/chart/defaultChartOptions.ts","webpack://lightweight-charts-react-components/./src/chart/useChart.ts","webpack://lightweight-charts-react-components/./src/chart/ChartComponent.tsx","webpack://lightweight-charts-react-components/./src/chart/ChartWrapper.tsx","webpack://lightweight-charts-react-components/./src/scales/TimeScaleContext.ts","webpack://lightweight-charts-react-components/./src/version.ts","webpack://lightweight-charts-react-components/./src/_shared/InternalError.ts","webpack://lightweight-charts-react-components/./src/_shared/useSafeContext.ts","webpack://lightweight-charts-react-components/./src/scales/useTimeScale.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScale.tsx","webpack://lightweight-charts-react-components/./src/pane/PaneContext.ts","webpack://lightweight-charts-react-components/./src/pane/usePaneContext.ts","webpack://lightweight-charts-react-components/./src/scales/usePriceScale.ts","webpack://lightweight-charts-react-components/./src/scales/PriceScale.tsx","webpack://lightweight-charts-react-components/./src/scales/useTimeScaleFitContentTrigger.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScaleFitContentTrigger.tsx","webpack://lightweight-charts-react-components/./src/series/SeriesContext.ts","webpack://lightweight-charts-react-components/./src/series/useSeries.ts","webpack://lightweight-charts-react-components/./src/series/SeriesTemplate.tsx","webpack://lightweight-charts-react-components/./src/series/LineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/HistogramSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CandlestickSeries.tsx","webpack://lightweight-charts-react-components/./src/series/AreaSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BaselineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BarSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CustomSeries.tsx","webpack://lightweight-charts-react-components/./src/priceLine/usePriceLine.ts","webpack://lightweight-charts-react-components/./src/priceLine/PriceLine.tsx","webpack://lightweight-charts-react-components/./src/markers/useMarkers.ts","webpack://lightweight-charts-react-components/./src/markers/Markers.tsx","webpack://lightweight-charts-react-components/./src/watermark/useWatermark.ts","webpack://lightweight-charts-react-components/./src/watermark/Watermark.tsx","webpack://lightweight-charts-react-components/./src/primitives/useSeriesPrimitive.ts","webpack://lightweight-charts-react-components/./src/primitives/SeriesPrimitive.tsx","webpack://lightweight-charts-react-components/./src/pane/usePane.ts","webpack://lightweight-charts-react-components/./src/pane/Pane.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { type IChartContext } from \"./types\";\n\nconst ChartContext = createContext<IChartContext | null>(null);\n\nChartContext.displayName = \"ChartContext\";\nexport { ChartContext };\n","import type { ChartOptions, DeepPartial } from \"lightweight-charts\";\n\nconst defaultChartOptions: DeepPartial<ChartOptions> = {\n addDefaultPane: false,\n};\n\nexport { defaultChartOptions };\n","import { createChart } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { defaultChartOptions } from \"./defaultChartOptions\";\nimport type { ChartApiRef, UseChartOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n onDblClick,\n}: UseChartOptions) => {\n const [isReady, setIsReady] = useState(false);\n\n const chartApiRef = useRef<ChartApiRef>({\n _chart: null,\n api() {\n return this._chart;\n },\n init() {\n if (this._chart === null) {\n const chart = createChart(container, {\n ...defaultChartOptions,\n ...options,\n });\n this._chart = chart;\n\n if (onInit) {\n onInit(this._chart);\n }\n }\n\n if (!isReady) {\n setIsReady(true);\n }\n\n return this._chart;\n },\n clear() {\n if (this._chart !== null) {\n setIsReady(false);\n this._chart.remove();\n this._chart = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n chartApiRef.current.init();\n\n return () => {\n chartApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onClick) {\n chartApiRef.current.api()?.subscribeClick(onClick);\n }\n\n return () => {\n if (onClick) {\n chartApiRef.current.api()?.unsubscribeClick(onClick);\n }\n };\n }, [onClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onCrosshairMove) {\n chartApiRef.current.api()?.subscribeCrosshairMove(onCrosshairMove);\n }\n\n return () => {\n if (onCrosshairMove) {\n chartApiRef.current.api()?.unsubscribeCrosshairMove(onCrosshairMove);\n }\n };\n }, [onCrosshairMove]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onDblClick) {\n chartApiRef.current.api()?.subscribeDblClick(onDblClick);\n }\n\n return () => {\n if (onDblClick) {\n chartApiRef.current.api()?.unsubscribeDblClick(onDblClick);\n }\n };\n }, [onDblClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n chartApiRef.current.api()?.applyOptions({\n ...defaultChartOptions,\n ...options,\n });\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import React from \"react\";\nimport { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartComponentProps } from \"./types\";\n\nconst ChartComponent: React.FC<ChartComponentProps> = ({\n children,\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options,\n}) => {\n const {\n chartApiRef: { current: chartApiRef },\n isReady,\n } = useChart({ container, onClick, onCrosshairMove, onInit, options });\n\n return (\n <ChartContext.Provider\n value={{\n chartApiRef,\n isReady,\n }}\n >\n {children}\n </ChartContext.Provider>\n );\n};\n\nexport { ChartComponent };\n","import { forwardRef, useCallback, useState } from \"react\";\nimport React from \"react\";\nimport { ChartComponent } from \"./ChartComponent\";\nimport type { ChartProps } from \"./types\";\nimport type {\n ForwardRefExoticComponent,\n ForwardRefRenderFunction,\n RefAttributes,\n} from \"react\";\n\nconst ChartRenderFunction: ForwardRefRenderFunction<HTMLDivElement, ChartProps> = (\n { children, containerProps, ...rest },\n ref\n) => {\n const [container, setContainer] = useState<HTMLDivElement>();\n const containerRef = useCallback(\n (r: HTMLDivElement) => {\n setContainer(r);\n\n if (ref) {\n if (typeof ref === \"function\") {\n containerRef(r);\n } else {\n ref.current = r;\n }\n }\n },\n [ref]\n );\n\n return (\n <div ref={containerRef} {...containerProps}>\n {!!container && (\n <ChartComponent container={container} {...rest}>\n {children}\n </ChartComponent>\n )}\n </div>\n );\n};\n\nconst ChartWrapper: ForwardRefExoticComponent<\n ChartProps & RefAttributes<HTMLDivElement>\n> = forwardRef(ChartRenderFunction);\nChartWrapper.displayName = \"ChartWrapper\";\nexport { ChartWrapper };\n","import { createContext } from \"react\";\nimport { type ITimeScaleContext } from \"./types\";\n\nconst TimeScaleContext = createContext<ITimeScaleContext | null>(null);\nTimeScaleContext.displayName = \"TimeScaleContext\";\nexport { TimeScaleContext };\n","export const version = \"1.0.1\";\n","import { version } from \"../version\";\n\nconst docsBaseUrl = \"https://ukorvl.github.io/lightweight-charts-react-components/docs/\";\n\ntype IBaseErrorParameters = {\n /**\n * An operational error refers to an error that occurs during normal program operation\n * due to external factors or expected failures, not due to bugs in the code itself.\n */\n isOperational?: boolean;\n /**\n * The cause of the error, if any.\n * This can be used to provide additional context or information about the error.\n */\n cause?: Error | BaseInternalError;\n /**\n * A path to the documentation that can help resolve the error.\n * This is useful for providing users with guidance on how to fix or understand the error.\n */\n docsPath?: string;\n};\n\nclass BaseInternalError extends Error {\n public isOperational: boolean;\n public override cause?: Error | BaseInternalError;\n\n constructor(\n message?: string,\n { isOperational = true, cause, docsPath }: IBaseErrorParameters = {}\n ) {\n super(message);\n\n this.name = this.constructor.name ?? \"InternalError\";\n this.isOperational = isOperational;\n this.cause = cause;\n\n this.message = `${message ?? \"An error occurred\"}`;\n\n if (docsPath) {\n this.message = `${this.message}\\n\\nDocs: see ${docsBaseUrl + docsPath}`;\n }\n\n if (version) {\n this.message = `${this.message}\\n\\nVersion: lightweight-charts-react-components@${version}`;\n }\n\n Object.setPrototypeOf(this, BaseInternalError.prototype);\n }\n}\n\nexport { BaseInternalError };\n","import { type Context, useContext } from \"react\";\nimport { BaseInternalError } from \"./InternalError\";\n\nexport const useSafeContext = <T>(context: Context<T>, errorMessage?: string) => {\n const currentContextValue = useContext(context);\n\n if (!currentContextValue) {\n const ctxName = context.name ?? context.displayName ?? \"Context\";\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: Omit<TimeScaleProps, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (this._timeScale) {\n return this._timeScale;\n }\n\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._timeScale = chartApi.timeScale();\n\n this._timeScale.applyOptions(options);\n\n if (visibleRange) {\n this._timeScale.setVisibleRange(visibleRange);\n }\n\n if (visibleLogicalRange) {\n this._timeScale.setVisibleLogicalRange(visibleLogicalRange);\n }\n\n if (onVisibleTimeRangeChange) {\n this._timeScale.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n if (onVisibleLogicalRangeChange) {\n this._timeScale.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n if (onSizeChange) {\n this._timeScale.subscribeSizeChange(onSizeChange);\n }\n\n setIsReady(true);\n\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\n setIsReady(false);\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n timeScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n timeScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n timeScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.subscribeSizeChange(onSizeChange);\n }\n\n return () => {\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.unsubscribeSizeChange(onSizeChange);\n }\n };\n }, [onSizeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n return () => {\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n };\n }, [onVisibleLogicalRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n return () => {\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n };\n }, [onVisibleTimeRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleRange) {\n timeScaleApiRef.current?.api()?.setVisibleRange(visibleRange);\n }\n }, [visibleRange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleLogicalRange) {\n timeScaleApiRef.current?.api()?.setVisibleLogicalRange(visibleLogicalRange);\n }\n }, [visibleLogicalRange]);\n\n return { timeScaleApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst TimeScaleRenderFunction = (\n { children, ...props }: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n): JSX.Element => {\n const {\n timeScaleApiRef: { current: timeScaleApiRef },\n isReady,\n } = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef, [timeScaleApiRef]);\n\n return (\n <TimeScaleContext.Provider\n value={{\n timeScaleApiRef,\n isReady,\n }}\n >\n {children}\n </TimeScaleContext.Provider>\n );\n};\n\nconst TimeScale: ForwardRefExoticComponent<\n TimeScaleProps & RefAttributes<TimeScaleApiRef>\n> = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { createContext } from \"react\";\nimport { type IPaneContext } from \"./types\";\n\nconst PaneContext = createContext<IPaneContext | null>(null);\n\nPaneContext.displayName = \"PaneContext\";\nexport { PaneContext };\n","import { useContext } from \"react\";\nimport { PaneContext } from \"./PaneContext\";\n\nconst usePaneContext = () => {\n const paneContext = useContext(PaneContext);\n\n const isInsidePane = !!paneContext;\n const isPaneReady = !!paneContext?.isReady;\n const paneApiRef = paneContext?.paneApiRef;\n\n return { isInsidePane, isPaneReady, paneApiRef };\n};\n\nexport { usePaneContext };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { PriceScaleProps, PriceScaleApiRef } from \"./types\";\n\nexport const usePriceScale = ({ options = {}, id }: PriceScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isInsidePane, isPaneReady } = usePaneContext();\n\n const priceScaleApiRef = useRef<PriceScaleApiRef>({\n _priceScale: null,\n api() {\n return this._priceScale;\n },\n init() {\n if (!this._priceScale) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._priceScale = chartApi.priceScale(id);\n\n this._priceScale.applyOptions(options);\n }\n\n return this._priceScale;\n },\n setId(id) {\n if (this._priceScale === null || chart === null) {\n return;\n }\n\n this._priceScale = chart.api()!.priceScale(id);\n this._priceScale.applyOptions(options);\n },\n clear() {\n this._priceScale = null;\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n priceScaleApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n priceScaleApiRef.current?.setId(id);\n }, [id]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n priceScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n return priceScaleApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceScale } from \"./usePriceScale\";\nimport type { PriceScaleApiRef, PriceScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceScaleRenderFunction = (\n props: PriceScaleProps,\n ref: ForwardedRef<PriceScaleApiRef>\n): JSX.Element | null => {\n const priceScaleApiRef = usePriceScale(props);\n useImperativeHandle(ref, () => priceScaleApiRef.current, [priceScaleApiRef]);\n\n return null;\n};\n\nconst PriceScale: ForwardRefExoticComponent<\n PriceScaleProps & RefAttributes<PriceScaleApiRef>\n> = forwardRef(PriceScaleRenderFunction);\nPriceScale.displayName = \"PriceScale\";\nexport { PriceScale };\n","import { useLayoutEffect } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst useTimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n const timeScaleContext = useSafeContext(TimeScaleContext);\n const { timeScaleApiRef, isReady } = timeScaleContext;\n\n useLayoutEffect(() => {\n if (!isReady || !timeScaleApiRef) {\n return;\n }\n\n const timeScale = timeScaleApiRef.api();\n queueMicrotask(() => {\n if (timeScale) {\n timeScale.fitContent();\n }\n });\n }, [...deps, isReady]);\n};\n\nexport { useTimeScaleFitContentTrigger };\n","import { useTimeScaleFitContentTrigger } from \"./useTimeScaleFitContentTrigger\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\nimport type { JSX } from \"react\";\n\nconst TimeScaleFitContentTrigger = ({\n deps,\n}: TimeScaleFitContentTriggerProps): JSX.Element | null => {\n useTimeScaleFitContentTrigger({ deps });\n\n return null;\n};\n\nexport { TimeScaleFitContentTrigger };\n","import { createContext } from \"react\";\nimport { type ISeriesContext } from \"./types\";\n\nexport const SeriesContext = createContext<ISeriesContext>({\n seriesApiRef: null,\n isReady: false,\n});\nSeriesContext.displayName = \"SeriesContext\";\n","import {\n LineSeries,\n CandlestickSeries,\n HistogramSeries,\n AreaSeries,\n BaselineSeries,\n BarSeries,\n} from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { CustomSeriesUniqueProps, SeriesApiRef, SeriesTemplateProps } from \"./types\";\nimport type { SeriesDefinition, ISeriesApi, SeriesType } from \"lightweight-charts\";\n\ntype SeriesTypeWithoutCustom = Exclude<SeriesType, \"Custom\">;\n\nexport const useSeries = <T extends SeriesType>({\n type,\n data,\n options = {},\n reactive = true,\n ...rest\n}: Omit<SeriesTemplateProps<T>, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n const [isReady, setIsReady] = useState(false);\n\n const seriesApiRef = useRef<SeriesApiRef<T>>({\n _series: null,\n api() {\n return this._series;\n },\n init() {\n if (!this._series) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n const paneIndex = isInsidePane ? paneApiRef?.api()?.paneIndex() : undefined;\n\n if (type === \"Custom\") {\n const plugin = (rest as CustomSeriesUniqueProps).plugin;\n if (!plugin) {\n throw new BaseInternalError(\"Custom series requires a plugin to be defined\");\n }\n\n // TODO: Fix this type cast and infer the correct type\n (this._series as unknown as ISeriesApi<\"Custom\">) = chartApi.addCustomSeries(\n plugin,\n options,\n paneIndex\n );\n } else {\n this._series = chartApi.addSeries(\n seriesMap[type as SeriesTypeWithoutCustom] as SeriesDefinition<T>,\n options,\n paneIndex\n );\n }\n\n this._series?.setData(data);\n\n setIsReady(true);\n }\n\n return this._series;\n },\n clear() {\n if (this._series !== null) {\n chart?.api()?.removeSeries(this._series);\n this._series = null;\n setIsReady(false);\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (isInsidePane && !isPaneReady) {\n return;\n }\n\n seriesApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (data && reactive) {\n seriesApiRef.current.api()?.setData(data);\n }\n }, [data, reactive]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n seriesApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n return { isReady, seriesApiRef };\n};\n\nconst seriesMap: Record<\n SeriesTypeWithoutCustom,\n SeriesDefinition<SeriesTypeWithoutCustom>\n> = {\n Line: LineSeries,\n Candlestick: CandlestickSeries,\n Histogram: HistogramSeries,\n Area: AreaSeries,\n Baseline: BaselineSeries,\n Bar: BarSeries,\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { SeriesContext } from \"./SeriesContext\";\nimport { useSeries } from \"./useSeries\";\nimport type { SeriesTemplateProps, SeriesApiRef } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesComponent = (<T extends SeriesType>(\n props: SeriesTemplateProps<T> & {\n ref?: ForwardedRef<SeriesApiRef<T>>;\n }\n) => ReturnType<typeof SeriesTemplateRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesTemplateRenderFunction = <T extends SeriesType>(\n { children, ...rest }: SeriesTemplateProps<T>,\n ref: ForwardedRef<SeriesApiRef<T>>\n) => {\n const {\n seriesApiRef: { current: seriesApiRef },\n isReady,\n } = useSeries(rest);\n useImperativeHandle(ref, () => seriesApiRef, [seriesApiRef]);\n\n return (\n <SeriesContext.Provider\n value={{\n seriesApiRef,\n isReady,\n }}\n >\n {children}\n </SeriesContext.Provider>\n );\n};\n\nconst SeriesTemplate = forwardRef(SeriesTemplateRenderFunction) as GenericSeriesComponent;\nSeriesTemplate.displayName = \"SeriesTemplate\";\nexport { SeriesTemplate };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst LineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Line\">,\n ref: ForwardedRef<SeriesApiRef<\"Line\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Line\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst LineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Line\"> & RefAttributes<SeriesApiRef<\"Line\">>\n> = forwardRef(LineSeriesRenderFunction);\nLineSeries.displayName = \"LineSeries\";\nexport { LineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst HistogramSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Histogram\">,\n ref: ForwardedRef<SeriesApiRef<\"Histogram\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Histogram\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst HistogramSeries: ForwardRefExoticComponent<\n SeriesProps<\"Histogram\"> & RefAttributes<SeriesApiRef<\"Histogram\">>\n> = forwardRef(HistogramSeriesRenderFunction);\nHistogramSeries.displayName = \"HistogramSeries\";\nexport { HistogramSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CandlestickSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Candlestick\">,\n ref: ForwardedRef<SeriesApiRef<\"Candlestick\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Candlestick\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CandlestickSeries: ForwardRefExoticComponent<\n SeriesProps<\"Candlestick\"> & RefAttributes<SeriesApiRef<\"Candlestick\">>\n> = forwardRef(CandlestickSeriesRenderFunction);\nCandlestickSeries.displayName = \"CandlestickSeries\";\nexport { CandlestickSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst AreaSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Area\">,\n ref: ForwardedRef<SeriesApiRef<\"Area\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Area\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst AreaSeries: ForwardRefExoticComponent<\n SeriesProps<\"Area\"> & RefAttributes<SeriesApiRef<\"Area\">>\n> = forwardRef(AreaSeriesRenderFunction);\nAreaSeries.displayName = \"AreaSeries\";\nexport { AreaSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BaselineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Baseline\">,\n ref: ForwardedRef<SeriesApiRef<\"Baseline\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Baseline\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BaselineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Baseline\"> & RefAttributes<SeriesApiRef<\"Baseline\">>\n> = forwardRef(BaselineSeriesRenderFunction);\nBaselineSeries.displayName = \"BaselineSeries\";\nexport { BaselineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BarSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Bar\">,\n ref: ForwardedRef<SeriesApiRef<\"Bar\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Bar\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BarSeries: ForwardRefExoticComponent<\n SeriesProps<\"Bar\"> & RefAttributes<SeriesApiRef<\"Bar\">>\n> = forwardRef(BarSeriesRenderFunction);\nBarSeries.displayName = \"BarSeries\";\nexport { BarSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CustomSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Custom\">,\n ref: ForwardedRef<SeriesApiRef<\"Custom\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Custom\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CustomSeries: ForwardRefExoticComponent<\n SeriesProps<\"Custom\"> & RefAttributes<SeriesApiRef<\"Custom\">>\n> = forwardRef(CustomSeriesRenderFunction);\nCustomSeries.displayName = \"CustomSeries\";\nexport { CustomSeries };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\n\nexport const usePriceLine = ({ options, price }: PriceLineProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const priceLineApiRef = useRef<PriceLineApiRef>({\n _priceLine: null,\n api() {\n return this._priceLine;\n },\n init() {\n if (!this._priceLine) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._priceLine = seriesApi.createPriceLine({\n price,\n ...options,\n });\n }\n\n return this._priceLine;\n },\n clear() {\n if (this._priceLine !== null) {\n series?.api()?.removePriceLine(this._priceLine);\n this._priceLine = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n priceLineApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceLineApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (options) {\n priceLineApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (price) {\n priceLineApiRef.current.api()?.applyOptions({ price });\n }\n }, [price]);\n\n return priceLineApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceLine } from \"./usePriceLine\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceLineRenderFunction = (\n props: PriceLineProps,\n ref: ForwardedRef<PriceLineApiRef>\n): JSX.Element | null => {\n const priceLineApiRef = usePriceLine(props);\n useImperativeHandle(ref, () => priceLineApiRef.current, [priceLineApiRef]);\n\n return null;\n};\n\nconst PriceLine: ForwardRefExoticComponent<\n PriceLineProps & RefAttributes<PriceLineApiRef>\n> = forwardRef(PriceLineRenderFunction);\nPriceLine.displayName = \"PriceLine\";\nexport { PriceLine };\n","import { createSeriesMarkers } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\n\nexport const useMarkers = ({ reactive = true, markers }: MarkersProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const markersApiRef = useRef<MarkersApiRef>({\n _markers: null,\n api() {\n return this._markers;\n },\n init() {\n if (this._markers === null) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._markers = createSeriesMarkers(seriesApi, markers);\n }\n\n return this._markers;\n },\n clear() {\n if (this._markers !== null) {\n this._markers.detach();\n this._markers = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n markersApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n markersApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (markers && reactive) {\n markersApiRef.current.api()?.setMarkers(markers);\n }\n }, [markers, reactive]);\n\n return markersApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useMarkers } from \"./useMarkers\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst MarkersRenderFunction = (\n { ...rest }: MarkersProps,\n ref: ForwardedRef<MarkersApiRef>\n): JSX.Element | null => {\n const markersApiRef = useMarkers(rest);\n useImperativeHandle(ref, () => markersApiRef.current, [markersApiRef]);\n\n return null;\n};\n\nconst Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>> =\n forwardRef(MarkersRenderFunction);\nMarkers.displayName = \"Markers\";\nexport { Markers };\n","import { createTextWatermark, createImageWatermark } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { WatermarkApiRef, WatermarkProps, WatermarkType } from \"./types\";\n\nconst useWatermark = <T extends WatermarkType>(props: WatermarkProps<T>) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n\n const watermarkApiRef = useRef<WatermarkApiRef<T>>({\n _watermark: null,\n api() {\n return this._watermark;\n },\n init() {\n if (this._watermark === null) {\n const chartApi = chart?.api();\n\n const pane = paneApiRef?.api();\n\n if (!chartApi || !pane) return null;\n\n if (isTextWatermark(props)) {\n const { type: _, ...rest } = props;\n this._watermark = createTextWatermark(pane, rest);\n } else {\n const { type: _, src, ...rest } = props as WatermarkProps<\"image\">;\n this._watermark = createImageWatermark(pane, src, rest);\n }\n }\n\n return this._watermark;\n },\n clear() {\n if (this._watermark !== null) {\n this._watermark.detach();\n this._watermark = null;\n }\n },\n } as WatermarkApiRef<T>);\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n watermarkApiRef.current.init();\n }, [chartIsReady, isPaneReady, isInsidePane]);\n\n useLayoutEffect(() => {\n return () => {\n watermarkApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart || !props) return;\n\n const { type: _, ...rest } = props;\n watermarkApiRef.current.api()?.applyOptions(rest);\n }, [props]);\n\n return watermarkApiRef;\n};\n\nconst isTextWatermark = (\n props: WatermarkProps<WatermarkType>\n): props is WatermarkProps<\"text\"> => {\n return props.type === \"text\";\n};\n\nexport { useWatermark };\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useWatermark } from \"./useWatermark\";\nimport type {\n ImageWatermarkProps,\n TextWatermarkProps,\n WatermarkApiRef,\n WatermarkProps,\n WatermarkType,\n} from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst WatermarkRenderFunction = <T extends WatermarkType>(\n props: WatermarkProps<T>,\n ref: ForwardedRef<WatermarkApiRef<T>>\n) => {\n const watermarkApi = useWatermark(props);\n useImperativeHandle(ref, () => watermarkApi.current, [watermarkApi]);\n\n return null;\n};\n\nconst WatermarkText: ForwardRefExoticComponent<\n TextWatermarkProps & RefAttributes<WatermarkApiRef<\"text\">>\n> = forwardRef<WatermarkApiRef<\"text\">, TextWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"text\" }, ref);\n});\n\nconst WatermarkImage: ForwardRefExoticComponent<\n ImageWatermarkProps & RefAttributes<WatermarkApiRef<\"image\">>\n> = forwardRef<WatermarkApiRef<\"image\">, ImageWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"image\" }, ref);\n});\n\nWatermarkText.displayName = \"WatermarkText\";\nWatermarkImage.displayName = \"WatermarkImage\";\n\nexport { WatermarkText, WatermarkImage };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { ISeriesApi, SeriesType } from \"lightweight-charts\";\n\nexport const useSeriesPrimitive = <T extends SeriesType>({\n render,\n plugin,\n}: SeriesPrimitiveProps<T>) => {\n const { isReady: isChartReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const seriesPrimitiveApiRef = useRef<SeriesPrimitiveApiRef>({\n _primitive: null,\n api() {\n return this._primitive;\n },\n init() {\n if (!this._primitive) {\n const seriesApi = series?.api();\n const chartApi = chart?.api();\n\n if (!chartApi || !seriesApi) {\n return null;\n }\n\n const primitive = plugin\n ? plugin\n : render({\n chart: chartApi,\n series: seriesApi as ISeriesApi<T>,\n });\n\n seriesApi.attachPrimitive(primitive);\n this._primitive = primitive;\n }\n\n return this._primitive;\n },\n clear() {\n if (this._primitive !== null) {\n series?.api()?.detachPrimitive(this._primitive);\n this._primitive = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!isChartReady || !seriesIsReady) return;\n\n seriesPrimitiveApiRef.current.init();\n }, [seriesIsReady, isChartReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesPrimitiveApiRef.current.clear();\n };\n }, []);\n\n return seriesPrimitiveApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useSeriesPrimitive } from \"./useSeriesPrimitive\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef, JSX } from \"react\";\n\ntype GenericSeriesPrimitiveComponent = (<T extends SeriesType>(\n props: SeriesPrimitiveProps<T> & {\n ref?: ForwardedRef<SeriesPrimitiveApiRef>;\n }\n) => ReturnType<typeof SeriesPrimitiveRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesPrimitiveRenderFunction = <T extends SeriesType>(\n props: SeriesPrimitiveProps<T>,\n ref: ForwardedRef<SeriesPrimitiveApiRef>\n): JSX.Element | null => {\n const seriesPrimitiveApiRef = useSeriesPrimitive(props);\n useImperativeHandle(ref, () => seriesPrimitiveApiRef.current, [seriesPrimitiveApiRef]);\n\n return null;\n};\n\nconst SeriesPrimitive = forwardRef(\n SeriesPrimitiveRenderFunction\n) as GenericSeriesPrimitiveComponent;\nSeriesPrimitive.displayName = \"SeriesPrimitive\";\nexport { SeriesPrimitive };\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { PaneApiRef, PaneProps } from \"./types\";\n\nexport const usePane = ({ stretchFactor }: Omit<PaneProps, \"children\"> = {}) => {\n const { chartApiRef: chart, isReady: chartIsReady } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const paneApiRef = useRef<PaneApiRef>({\n _pane: null,\n api() {\n return this._pane;\n },\n init() {\n const chartApi = chart?.api();\n if (!chartApi) return null;\n\n const pane = chartApi.addPane(true);\n this._pane = pane;\n\n setIsReady(true);\n\n if (stretchFactor !== undefined) {\n this._pane.setStretchFactor(stretchFactor);\n }\n\n return this._pane;\n },\n clear() {\n if (this._pane !== null) {\n chart?.api()?.removePane(this._pane.paneIndex());\n setIsReady(false);\n\n this._pane = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n paneApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n paneApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (stretchFactor === undefined) return;\n\n const pane = paneApiRef.current.api();\n if (pane) {\n pane.setStretchFactor(stretchFactor);\n }\n }, [stretchFactor]);\n\n return { paneApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { PaneContext } from \"./PaneContext\";\nimport { usePane } from \"./usePane\";\nimport type { PaneProps, PaneApiRef } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst PaneRenderFunction = (\n { children, stretchFactor }: PaneProps,\n ref: ForwardedRef<PaneApiRef>\n) => {\n const {\n paneApiRef: { current: paneApiRef },\n isReady,\n } = usePane({ stretchFactor });\n useImperativeHandle(ref, () => paneApiRef, [paneApiRef]);\n\n return (\n <PaneContext.Provider\n value={{\n paneApiRef,\n isReady,\n }}\n >\n {children}\n </PaneContext.Provider>\n );\n};\n\nconst Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>> =\n forwardRef(PaneRenderFunction);\nPane.displayName = \"Pane\";\nexport { Pane };\n"],"names":["ChartContext","createContext","defaultChartOptions","useChart","container","onClick","onCrosshairMove","onInit","options","onDblClick","isReady","setIsReady","useState","chartApiRef","useRef","chart","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","ChartWrapper","forwardRef","containerProps","rest","ref","setContainer","containerRef","useCallback","r","TimeScaleContext","version","BaseInternalError","Error","message","isOperational","cause","docsPath","docsBaseUrl","Object","useSafeContext","context","errorMessage","currentContextValue","useContext","ctxName","useTimeScale","onVisibleTimeRangeChange","onVisibleLogicalRangeChange","onSizeChange","visibleRange","visibleLogicalRange","chartIsReady","timeScaleApiRef","chartApi","_timeScaleApiRef_current_api","TimeScale","props","useImperativeHandle","PaneContext","usePaneContext","paneContext","isInsidePane","isPaneReady","paneApiRef","usePriceScale","id","priceScaleApiRef","_priceScaleApiRef_current","_priceScaleApiRef_current_api","PriceScale","useTimeScaleFitContentTrigger","deps","timeScale","queueMicrotask","TimeScaleFitContentTrigger","SeriesContext","useSeries","type","data","reactive","seriesApiRef","_paneApiRef_api","_this__series","paneIndex","undefined","plugin","seriesMap","_chart_api","_seriesApiRef_current_api","LineSeries","CandlestickSeries","HistogramSeries","AreaSeries","BaselineSeries","BarSeries","SeriesTemplate","CustomSeries","usePriceLine","price","seriesIsReady","series","priceLineApiRef","seriesApi","_series_api","_priceLineApiRef_current_api","PriceLine","useMarkers","markers","markersApiRef","createSeriesMarkers","_markersApiRef_current_api","Markers","useWatermark","watermarkApiRef","pane","isTextWatermark","_","createTextWatermark","src","createImageWatermark","_watermarkApiRef_current_api","WatermarkRenderFunction","watermarkApi","WatermarkText","WatermarkImage","useSeriesPrimitive","render","isChartReady","seriesPrimitiveApiRef","primitive","SeriesPrimitive","usePane","stretchFactor","Pane"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
 
2
2
  /**!
3
- * lightweight-charts-react-components v1.0.0
3
+ * lightweight-charts-react-components v1.0.1
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE.md file in the root directory of this source tree.
@@ -8,5 +8,5 @@
8
8
  * @license MIT
9
9
  */
10
10
 
11
- !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("LightweightCharts"),require("React")):"function"==typeof define&&define.amd?define(["LightweightCharts","React"],r):"object"==typeof exports?exports.LightweightChartsReactComponents=r(require("LightweightCharts"),require("React")):e.LightweightChartsReactComponents=r(e.LightweightCharts,e.React)}(self,function(e,r){return function(){"use strict";var t={"lightweight-charts":function(r){r.exports=e},react:function(e){e.exports=r}},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,i),o.exports}i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,{a:r}),r},i.d=function(e,r){for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return!function(){i.r(o),i.d(o,{CustomSeries:function(){return $},Chart:function(){return y},BaselineSeries:function(){return q},LineSeries:function(){return V},Pane:function(){return el},PriceLine:function(){return G},TimeScaleFitContentTrigger:function(){return I},WatermarkImage:function(){return ei},WatermarkText:function(){return en},BarSeries:function(){return U},CandlestickSeries:function(){return F},HistogramSeries:function(){return B},Markers:function(){return Q},SeriesPrimitive:function(){return ea},AreaSeries:function(){return W},TimeScale:function(){return _},PriceScale:function(){return k}});var e=i("react"),r=i.n(e),t=(0,e.createContext)(null);t.displayName="ChartContext";var n=i("lightweight-charts"),a={addDefaultPane:!1};function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}var l=function(r){var t,i=r.container,o=r.onClick,l=r.onCrosshairMove,f=r.onInit,s=r.options,p=void 0===s?{}:s,y=r.onDblClick,v=(t=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(t)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(t,2)||function(e,r){if(e){if("string"==typeof e)return u(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return u(e,r)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=v[0],d=v[1],h=(0,e.useRef)({_chart:null,api:function(){return this._chart},init:function(){if(null===this._chart){var e=(0,n.createChart)(i,c({},a,p));this._chart=e,f&&f(this._chart)}return b||d(!0),this._chart},clear:function(){null!==this._chart&&(d(!1),this._chart.remove(),this._chart=null)}});return(0,e.useLayoutEffect)(function(){return h.current.init(),function(){h.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(i){if(o){var e;null===(e=h.current.api())||void 0===e||e.subscribeClick(o)}return function(){if(o){var e;null===(e=h.current.api())||void 0===e||e.unsubscribeClick(o)}}}},[o]),(0,e.useLayoutEffect)(function(){if(i){if(l){var e;null===(e=h.current.api())||void 0===e||e.subscribeCrosshairMove(l)}return function(){if(l){var e;null===(e=h.current.api())||void 0===e||e.unsubscribeCrosshairMove(l)}}}},[l]),(0,e.useLayoutEffect)(function(){if(i){if(y){var e;null===(e=h.current.api())||void 0===e||e.subscribeDblClick(y)}return function(){if(y){var e;null===(e=h.current.api())||void 0===e||e.unsubscribeDblClick(y)}}}},[y]),(0,e.useLayoutEffect)(function(){var e;i&&(null===(e=h.current.api())||void 0===e||e.applyOptions(c({},a,p)))},[p]),{chartApiRef:h,isReady:b}},f=function(e){var n=e.children,i=l({container:e.container,onClick:e.onClick,onCrosshairMove:e.onCrosshairMove,onInit:e.onInit,options:e.options}),o=i.chartApiRef.current,a=i.isReady;return r().createElement(t.Provider,{value:{chartApiRef:o,isReady:a}},n)};function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}var y=(0,e.forwardRef)(function(t,n){var i,o=t.children,a=t.containerProps,u=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,["children","containerProps"]),c=(i=(0,e.useState)(),function(e){if(Array.isArray(e))return e}(i)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(i,2)||function(e,r){if(e){if("string"==typeof e)return s(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,r)}}(i,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],y=c[1],v=(0,e.useCallback)(function(e){y(e),n&&("function"==typeof n?v(e):n.current=e)},[n]);return r().createElement("div",p({ref:v},a),!!l&&r().createElement(f,p({container:l},u),o))});y.displayName="ChartWrapper";var v=(0,e.createContext)(null);v.displayName="TimeScaleContext";var b="1.0.0";function d(e,r,t){return(d=S()?Reflect.construct:function(e,r,t){var n=[null];n.push.apply(n,r);var i=new(Function.bind.apply(e,n));return t&&O(i,t.prototype),i}).apply(null,arguments)}function h(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e,r){return(O=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function g(e){var r="function"==typeof Map?new Map:void 0;return(g=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return d(e,arguments,m(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),O(t,e)})(e)}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(S=function(){return!!e})()}var j=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(e){var t,n,i,o,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=a.isOperational,c=a.cause,l=a.docsPath;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return t=r,n=[e],t=m(t),h(i=function(e,r){var t;if(r&&("object"==((t=r)&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)||"function"==typeof r))return r;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,S()?Reflect.construct(t,n||[],m(this).constructor):t.apply(this,n)),"isOperational",void 0),h(i,"cause",void 0),i.name=null!==(o=i.constructor.name)&&void 0!==o?o:"InternalError",i.isOperational=void 0===u||u,i.cause=c,i.message="".concat(null!=e?e:"An error occurred"),l&&(i.message="".concat(i.message,"\n\nDocs: see ").concat("https://ukorvl.github.io/lightweight-charts-react-components/docs/"+l)),b&&(i.message="".concat(i.message,"\n\nVersion: lightweight-charts-react-components@").concat(b)),Object.setPrototypeOf(i,r.prototype),i}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&O(r,e),r}(g(Error)),w=function(r,t){var n=(0,e.useContext)(r);if(!n){var i,o,a=null!==(o=null!==(i=r.name)&&void 0!==i?i:r.displayName)&&void 0!==o?o:"Context";throw new j(null!=t?t:"".concat(a," not found."),{isOperational:!0})}return n};function P(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var R=function(r){var n,i=r.onVisibleTimeRangeChange,o=r.onVisibleLogicalRangeChange,a=r.onSizeChange,u=r.visibleRange,c=r.visibleLogicalRange,l=r.options,f=void 0===l?{}:l,s=w(t),p=s.isReady,y=s.chartApiRef,v=(n=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(n)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(n,2)||function(e,r){if(e){if("string"==typeof e)return P(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return P(e,r)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=v[0],d=v[1],h=(0,e.useRef)({_timeScale:null,api:function(){return this._timeScale},init:function(){if(this._timeScale)return this._timeScale;var e=null==y?void 0:y.api();return e?(this._timeScale=e.timeScale(),this._timeScale.applyOptions(f),u&&this._timeScale.setVisibleRange(u),c&&this._timeScale.setVisibleLogicalRange(c),i&&this._timeScale.subscribeVisibleTimeRangeChange(i),o&&this._timeScale.subscribeVisibleLogicalRangeChange(o),a&&this._timeScale.subscribeSizeChange(a),d(!0),this._timeScale):null},clear:function(){this._timeScale=null,d(!1)}});return(0,e.useLayoutEffect)(function(){p&&h.current.init()},[p]),(0,e.useLayoutEffect)(function(){return function(){h.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(y&&f){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.applyOptions(f)}},[f]),(0,e.useLayoutEffect)(function(){if(y){if(a){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.subscribeSizeChange(a)}return function(){if(a){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.unsubscribeSizeChange(a)}}}},[a]),(0,e.useLayoutEffect)(function(){if(y){if(o){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.subscribeVisibleLogicalRangeChange(o)}return function(){if(o){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.unsubscribeVisibleLogicalRangeChange(o)}}}},[o]),(0,e.useLayoutEffect)(function(){if(y){if(i){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.subscribeVisibleTimeRangeChange(i)}return function(){if(i){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.unsubscribeVisibleTimeRangeChange(i)}}}},[i]),(0,e.useLayoutEffect)(function(){if(y&&u){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.setVisibleRange(u)}},[u]),(0,e.useLayoutEffect)(function(){if(y&&c){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.setVisibleLogicalRange(c)}},[c]),{timeScaleApiRef:h,isReady:b}},_=(0,e.forwardRef)(function(t,n){var i=t.children,o=R(function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,["children"])),a=o.timeScaleApiRef.current,u=o.isReady;return(0,e.useImperativeHandle)(n,function(){return a},[a]),r().createElement(v.Provider,{value:{timeScaleApiRef:a,isReady:u}},i)});_.displayName="TimeScale";var E=(0,e.createContext)(null);E.displayName="PaneContext";var A=function(){var r=(0,e.useContext)(E);return{isInsidePane:!!r,isPaneReady:!!(null==r?void 0:r.isReady),paneApiRef:null==r?void 0:r.paneApiRef}},C=function(r){var n=r.options,i=void 0===n?{}:n,o=r.id,a=w(t),u=a.isReady,c=a.chartApiRef,l=A(),f=l.isInsidePane,s=l.isPaneReady,p=(0,e.useRef)({_priceScale:null,api:function(){return this._priceScale},init:function(){if(!this._priceScale){var e=null==c?void 0:c.api();if(!e)return null;this._priceScale=e.priceScale(o),this._priceScale.applyOptions(i)}return this._priceScale},setId:function(e){null!==this._priceScale&&null!==c&&(this._priceScale=c.api().priceScale(e),this._priceScale.applyOptions(i))},clear:function(){this._priceScale=null}});return(0,e.useLayoutEffect)(function(){if(u){if(!f)throw new j("PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.",{isOperational:!0,docsPath:""});s&&p.current.init()}},[u,f,s]),(0,e.useLayoutEffect)(function(){return function(){p.current.clear()}},[]),(0,e.useLayoutEffect)(function(){var e;c&&(null===(e=p.current)||void 0===e||e.setId(o))},[o]),(0,e.useLayoutEffect)(function(){if(c&&i){var e,r;null===(r=p.current)||void 0===r||null===(e=r.api())||void 0===e||e.applyOptions(i)}},[i]),p},k=(0,e.forwardRef)(function(r,t){var n=C(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});function L(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}k.displayName="PriceScale";var x=function(r){var t=r.deps,n=w(v),i=n.timeScaleApiRef,o=n.isReady;(0,e.useLayoutEffect)(function(){if(o&&i){var e=i.api();queueMicrotask(function(){e&&e.fitContent()})}},((function(e){if(Array.isArray(e))return L(e)})(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return L(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return L(e,r)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([o]))},I=function(e){return x({deps:e.deps}),null},T=(0,e.createContext)({seriesApiRef:null,isReady:!1});function N(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}T.displayName="SeriesContext";var D=function(r){var n,i=r.type,o=r.data,a=r.options,u=void 0===a?{}:a,c=r.reactive,l=void 0===c||c,f=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(r,["type","data","options","reactive"]),s=w(t),p=s.isReady,y=s.chartApiRef,v=A(),b=v.isPaneReady,d=v.isInsidePane,h=v.paneApiRef,m=(n=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(n)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(n,2)||function(e,r){if(e){if("string"==typeof e)return N(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return N(e,r)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=m[0],g=m[1],S=(0,e.useRef)({_series:null,api:function(){return this._series},init:function(){if(!this._series){var e,r,t=null==y?void 0:y.api();if(!t)return null;var n=d?null==h||null===(e=h.api())||void 0===e?void 0:e.paneIndex():void 0;if("Custom"===i){var a=f.plugin;if(!a)throw new j("Custom series requires a plugin to be defined");this._series=t.addCustomSeries(a,u,n)}else this._series=t.addSeries(M[i],u,n);null===(r=this._series)||void 0===r||r.setData(o),g(!0)}return this._series},clear:function(){if(null!==this._series){var e;null==y||null===(e=y.api())||void 0===e||e.removeSeries(this._series),this._series=null,g(!1)}}});return(0,e.useLayoutEffect)(function(){p&&(!d||b)&&S.current.init()},[p,d,b]),(0,e.useLayoutEffect)(function(){return function(){S.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(y&&o&&l){var e;null===(e=S.current.api())||void 0===e||e.setData(o)}},[o,l]),(0,e.useLayoutEffect)(function(){if(y&&u){var e;null===(e=S.current.api())||void 0===e||e.applyOptions(u)}},[u]),{isReady:O,seriesApiRef:S}},M={Line:n.LineSeries,Candlestick:n.CandlestickSeries,Histogram:n.HistogramSeries,Area:n.AreaSeries,Baseline:n.BaselineSeries,Bar:n.BarSeries},H=(0,e.forwardRef)(function(t,n){var i=t.children,o=D(function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,["children"])),a=o.seriesApiRef.current,u=o.isReady;return(0,e.useImperativeHandle)(n,function(){return a},[a]),r().createElement(T.Provider,{value:{seriesApiRef:a,isReady:u}},i)});H.displayName="SeriesTemplate";var V=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Line",ref:t},i),n)});V.displayName="LineSeries";var B=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Histogram",ref:t},i),n)});B.displayName="HistogramSeries";var F=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Candlestick",ref:t},i),n)});F.displayName="CandlestickSeries";var W=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Area",ref:t},i),n)});W.displayName="AreaSeries";var q=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Baseline",ref:t},i),n)});q.displayName="BaselineSeries";var U=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Bar",ref:t},i),n)});U.displayName="BarSeries";var $=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Custom",ref:t},i),n)});$.displayName="CustomSeries";var z=function(r){var t=r.options,n=r.price,i=w(T),o=i.isReady,a=i.seriesApiRef,u=(0,e.useRef)({_priceLine:null,api:function(){return this._priceLine},init:function(){if(!this._priceLine){var e=null==a?void 0:a.api();if(!e)return null;this._priceLine=e.createPriceLine(function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({price:n},t))}return this._priceLine},clear:function(){if(null!==this._priceLine){var e;null==a||null===(e=a.api())||void 0===e||e.removePriceLine(this._priceLine),this._priceLine=null}}});return(0,e.useLayoutEffect)(function(){o&&u.current.init()},[o]),(0,e.useLayoutEffect)(function(){return function(){u.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(a&&t){var e;null===(e=u.current.api())||void 0===e||e.applyOptions(t)}},[t]),(0,e.useLayoutEffect)(function(){if(a&&n){var e;null===(e=u.current.api())||void 0===e||e.applyOptions({price:n})}},[n]),u},G=(0,e.forwardRef)(function(r,t){var n=z(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});G.displayName="PriceLine";var J=function(r){var t=r.reactive,i=void 0===t||t,o=r.markers,a=w(T),u=a.isReady,c=a.seriesApiRef,l=(0,e.useRef)({_markers:null,api:function(){return this._markers},init:function(){if(null===this._markers){var e=null==c?void 0:c.api();if(!e)return null;this._markers=(0,n.createSeriesMarkers)(e,o)}return this._markers},clear:function(){null!==this._markers&&(this._markers.detach(),this._markers=null)}});return(0,e.useLayoutEffect)(function(){u&&l.current.init()},[u]),(0,e.useLayoutEffect)(function(){return function(){l.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(c&&o&&i){var e;null===(e=l.current.api())||void 0===e||e.setMarkers(o)}},[o,i]),l};function K(){return(K=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}var Q=(0,e.forwardRef)(function(r,t){var n=J(K({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(r)));return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});function X(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}Q.displayName="Markers";var Y=function(r){var i=w(t),o=i.isReady,a=i.chartApiRef,u=A(),c=u.isPaneReady,l=u.isInsidePane,f=u.paneApiRef,s=(0,e.useRef)({_watermark:null,api:function(){return this._watermark},init:function(){if(null===this._watermark){var e=null==a?void 0:a.api(),t=null==f?void 0:f.api();if(!e||!t)return null;if(Z(r)){r.type;var i=X(r,["type"]);this._watermark=(0,n.createTextWatermark)(t,i)}else{r.type;var o=r.src,u=X(r,["type","src"]);this._watermark=(0,n.createImageWatermark)(t,o,u)}}return this._watermark},clear:function(){null!==this._watermark&&(this._watermark.detach(),this._watermark=null)}});return(0,e.useLayoutEffect)(function(){if(o){if(!l)throw new j("Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.",{isOperational:!0,docsPath:""});c&&s.current.init()}},[o,c,l]),(0,e.useLayoutEffect)(function(){return function(){s.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(a&&r){r.type;var e,t=X(r,["type"]);null===(e=s.current.api())||void 0===e||e.applyOptions(t)}},[r]),s},Z=function(e){return"text"===e.type};function ee(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function er(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}var et=function(r,t){var n=Y(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null},en=(0,e.forwardRef)(function(e,r){return et(er(ee({},e),{type:"text"}),r)}),ei=(0,e.forwardRef)(function(e,r){return et(er(ee({},e),{type:"image"}),r)});en.displayName="WatermarkText",ei.displayName="WatermarkImage";var eo=function(r){var n=r.render,i=r.plugin,o=w(t),a=o.isReady,u=o.chartApiRef,c=w(T),l=c.isReady,f=c.seriesApiRef,s=(0,e.useRef)({_primitive:null,api:function(){return this._primitive},init:function(){if(!this._primitive){var e=null==f?void 0:f.api(),r=null==u?void 0:u.api();if(!r||!e)return null;var t=i||n({chart:r,series:e});e.attachPrimitive(t),this._primitive=t}return this._primitive},clear:function(){if(null!==this._primitive){var e;null==f||null===(e=f.api())||void 0===e||e.detachPrimitive(this._primitive),this._primitive=null}}});return(0,e.useLayoutEffect)(function(){a&&l&&s.current.init()},[l,a]),(0,e.useLayoutEffect)(function(){return function(){s.current.clear()}},[]),s},ea=(0,e.forwardRef)(function(r,t){var n=eo(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});function eu(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}ea.displayName="SeriesPrimitive";var ec=function(){var r,n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).stretchFactor,i=w(t),o=i.chartApiRef,a=i.isReady,u=(r=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(r,2)||function(e,r){if(e){if("string"==typeof e)return eu(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eu(e,r)}}(r,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=u[0],l=u[1],f=(0,e.useRef)({_pane:null,api:function(){return this._pane},init:function(){var e=null==o?void 0:o.api();if(!e)return null;var r=e.addPane(!0);return this._pane=r,l(!0),void 0!==n&&this._pane.setStretchFactor(n),this._pane},clear:function(){if(null!==this._pane){var e;null==o||null===(e=o.api())||void 0===e||e.removePane(this._pane.paneIndex()),l(!1),this._pane=null}}});return(0,e.useLayoutEffect)(function(){a&&f.current.init()},[a]),(0,e.useLayoutEffect)(function(){return function(){f.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(void 0!==n){var e=f.current.api();e&&e.setStretchFactor(n)}},[n]),{paneApiRef:f,isReady:c}},el=(0,e.forwardRef)(function(t,n){var i=t.children,o=ec({stretchFactor:t.stretchFactor}),a=o.paneApiRef.current,u=o.isReady;return(0,e.useImperativeHandle)(n,function(){return a},[a]),r().createElement(E.Provider,{value:{paneApiRef:a,isReady:u}},i)});el.displayName="Pane"}(),o}()});
11
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("LightweightCharts"),require("React")):"function"==typeof define&&define.amd?define(["LightweightCharts","React"],r):"object"==typeof exports?exports.LightweightChartsReactComponents=r(require("LightweightCharts"),require("React")):e.LightweightChartsReactComponents=r(e.LightweightCharts,e.React)}(self,function(e,r){return function(){"use strict";var t={"lightweight-charts":function(r){r.exports=e},react:function(e){e.exports=r}},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,i),o.exports}i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,{a:r}),r},i.d=function(e,r){for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return!function(){i.r(o),i.d(o,{CustomSeries:function(){return $},Chart:function(){return y},BaselineSeries:function(){return q},LineSeries:function(){return V},Pane:function(){return el},PriceLine:function(){return G},TimeScaleFitContentTrigger:function(){return I},WatermarkImage:function(){return ei},WatermarkText:function(){return en},BarSeries:function(){return U},CandlestickSeries:function(){return F},HistogramSeries:function(){return B},Markers:function(){return Q},SeriesPrimitive:function(){return ea},AreaSeries:function(){return W},TimeScale:function(){return _},PriceScale:function(){return k}});var e=i("react"),r=i.n(e),t=(0,e.createContext)(null);t.displayName="ChartContext";var n=i("lightweight-charts"),a={addDefaultPane:!1};function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}var l=function(r){var t,i=r.container,o=r.onClick,l=r.onCrosshairMove,f=r.onInit,s=r.options,p=void 0===s?{}:s,y=r.onDblClick,v=(t=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(t)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(t,2)||function(e,r){if(e){if("string"==typeof e)return u(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return u(e,r)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=v[0],d=v[1],h=(0,e.useRef)({_chart:null,api:function(){return this._chart},init:function(){if(null===this._chart){var e=(0,n.createChart)(i,c({},a,p));this._chart=e,f&&f(this._chart)}return b||d(!0),this._chart},clear:function(){null!==this._chart&&(d(!1),this._chart.remove(),this._chart=null)}});return(0,e.useLayoutEffect)(function(){return h.current.init(),function(){h.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(i){if(o){var e;null===(e=h.current.api())||void 0===e||e.subscribeClick(o)}return function(){if(o){var e;null===(e=h.current.api())||void 0===e||e.unsubscribeClick(o)}}}},[o]),(0,e.useLayoutEffect)(function(){if(i){if(l){var e;null===(e=h.current.api())||void 0===e||e.subscribeCrosshairMove(l)}return function(){if(l){var e;null===(e=h.current.api())||void 0===e||e.unsubscribeCrosshairMove(l)}}}},[l]),(0,e.useLayoutEffect)(function(){if(i){if(y){var e;null===(e=h.current.api())||void 0===e||e.subscribeDblClick(y)}return function(){if(y){var e;null===(e=h.current.api())||void 0===e||e.unsubscribeDblClick(y)}}}},[y]),(0,e.useLayoutEffect)(function(){var e;i&&(null===(e=h.current.api())||void 0===e||e.applyOptions(c({},a,p)))},[p]),{chartApiRef:h,isReady:b}},f=function(e){var n=e.children,i=l({container:e.container,onClick:e.onClick,onCrosshairMove:e.onCrosshairMove,onInit:e.onInit,options:e.options}),o=i.chartApiRef.current,a=i.isReady;return r().createElement(t.Provider,{value:{chartApiRef:o,isReady:a}},n)};function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}var y=(0,e.forwardRef)(function(t,n){var i,o=t.children,a=t.containerProps,u=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,["children","containerProps"]),c=(i=(0,e.useState)(),function(e){if(Array.isArray(e))return e}(i)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(i,2)||function(e,r){if(e){if("string"==typeof e)return s(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,r)}}(i,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],y=c[1],v=(0,e.useCallback)(function(e){y(e),n&&("function"==typeof n?v(e):n.current=e)},[n]);return r().createElement("div",p({ref:v},a),!!l&&r().createElement(f,p({container:l},u),o))});y.displayName="ChartWrapper";var v=(0,e.createContext)(null);v.displayName="TimeScaleContext";var b="1.0.1";function d(e,r,t){return(d=S()?Reflect.construct:function(e,r,t){var n=[null];n.push.apply(n,r);var i=new(Function.bind.apply(e,n));return t&&O(i,t.prototype),i}).apply(null,arguments)}function h(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e,r){return(O=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function g(e){var r="function"==typeof Map?new Map:void 0;return(g=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return d(e,arguments,m(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),O(t,e)})(e)}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(S=function(){return!!e})()}var j=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(e){var t,n,i,o,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=a.isOperational,c=a.cause,l=a.docsPath;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return t=r,n=[e],t=m(t),h(i=function(e,r){var t;if(r&&("object"==((t=r)&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)||"function"==typeof r))return r;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,S()?Reflect.construct(t,n||[],m(this).constructor):t.apply(this,n)),"isOperational",void 0),h(i,"cause",void 0),i.name=null!==(o=i.constructor.name)&&void 0!==o?o:"InternalError",i.isOperational=void 0===u||u,i.cause=c,i.message="".concat(null!=e?e:"An error occurred"),l&&(i.message="".concat(i.message,"\n\nDocs: see ").concat("https://ukorvl.github.io/lightweight-charts-react-components/docs/"+l)),b&&(i.message="".concat(i.message,"\n\nVersion: lightweight-charts-react-components@").concat(b)),Object.setPrototypeOf(i,r.prototype),i}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&O(r,e),r}(g(Error)),w=function(r,t){var n=(0,e.useContext)(r);if(!n){var i,o,a=null!==(o=null!==(i=r.name)&&void 0!==i?i:r.displayName)&&void 0!==o?o:"Context";throw new j(null!=t?t:"".concat(a," not found."),{isOperational:!0})}return n};function P(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var R=function(r){var n,i=r.onVisibleTimeRangeChange,o=r.onVisibleLogicalRangeChange,a=r.onSizeChange,u=r.visibleRange,c=r.visibleLogicalRange,l=r.options,f=void 0===l?{}:l,s=w(t),p=s.isReady,y=s.chartApiRef,v=(n=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(n)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(n,2)||function(e,r){if(e){if("string"==typeof e)return P(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return P(e,r)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=v[0],d=v[1],h=(0,e.useRef)({_timeScale:null,api:function(){return this._timeScale},init:function(){if(this._timeScale)return this._timeScale;var e=null==y?void 0:y.api();return e?(this._timeScale=e.timeScale(),this._timeScale.applyOptions(f),u&&this._timeScale.setVisibleRange(u),c&&this._timeScale.setVisibleLogicalRange(c),i&&this._timeScale.subscribeVisibleTimeRangeChange(i),o&&this._timeScale.subscribeVisibleLogicalRangeChange(o),a&&this._timeScale.subscribeSizeChange(a),d(!0),this._timeScale):null},clear:function(){this._timeScale=null,d(!1)}});return(0,e.useLayoutEffect)(function(){p&&h.current.init()},[p]),(0,e.useLayoutEffect)(function(){return function(){h.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(y&&f){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.applyOptions(f)}},[f]),(0,e.useLayoutEffect)(function(){if(y){if(a){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.subscribeSizeChange(a)}return function(){if(a){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.unsubscribeSizeChange(a)}}}},[a]),(0,e.useLayoutEffect)(function(){if(y){if(o){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.subscribeVisibleLogicalRangeChange(o)}return function(){if(o){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.unsubscribeVisibleLogicalRangeChange(o)}}}},[o]),(0,e.useLayoutEffect)(function(){if(y){if(i){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.subscribeVisibleTimeRangeChange(i)}return function(){if(i){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.unsubscribeVisibleTimeRangeChange(i)}}}},[i]),(0,e.useLayoutEffect)(function(){if(y&&u){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.setVisibleRange(u)}},[u]),(0,e.useLayoutEffect)(function(){if(y&&c){var e,r;null===(r=h.current)||void 0===r||null===(e=r.api())||void 0===e||e.setVisibleLogicalRange(c)}},[c]),{timeScaleApiRef:h,isReady:b}},_=(0,e.forwardRef)(function(t,n){var i=t.children,o=R(function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,["children"])),a=o.timeScaleApiRef.current,u=o.isReady;return(0,e.useImperativeHandle)(n,function(){return a},[a]),r().createElement(v.Provider,{value:{timeScaleApiRef:a,isReady:u}},i)});_.displayName="TimeScale";var E=(0,e.createContext)(null);E.displayName="PaneContext";var A=function(){var r=(0,e.useContext)(E);return{isInsidePane:!!r,isPaneReady:!!(null==r?void 0:r.isReady),paneApiRef:null==r?void 0:r.paneApiRef}},C=function(r){var n=r.options,i=void 0===n?{}:n,o=r.id,a=w(t),u=a.isReady,c=a.chartApiRef,l=A(),f=l.isInsidePane,s=l.isPaneReady,p=(0,e.useRef)({_priceScale:null,api:function(){return this._priceScale},init:function(){if(!this._priceScale){var e=null==c?void 0:c.api();if(!e)return null;this._priceScale=e.priceScale(o),this._priceScale.applyOptions(i)}return this._priceScale},setId:function(e){null!==this._priceScale&&null!==c&&(this._priceScale=c.api().priceScale(e),this._priceScale.applyOptions(i))},clear:function(){this._priceScale=null}});return(0,e.useLayoutEffect)(function(){if(u){if(!f)throw new j("PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.",{isOperational:!0,docsPath:""});s&&p.current.init()}},[u,f,s]),(0,e.useLayoutEffect)(function(){return function(){p.current.clear()}},[]),(0,e.useLayoutEffect)(function(){var e;c&&(null===(e=p.current)||void 0===e||e.setId(o))},[o]),(0,e.useLayoutEffect)(function(){if(c&&i){var e,r;null===(r=p.current)||void 0===r||null===(e=r.api())||void 0===e||e.applyOptions(i)}},[i]),p},k=(0,e.forwardRef)(function(r,t){var n=C(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});function L(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}k.displayName="PriceScale";var x=function(r){var t=r.deps,n=w(v),i=n.timeScaleApiRef,o=n.isReady;(0,e.useLayoutEffect)(function(){if(o&&i){var e=i.api();queueMicrotask(function(){e&&e.fitContent()})}},((function(e){if(Array.isArray(e))return L(e)})(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return L(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return L(e,r)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([o]))},I=function(e){return x({deps:e.deps}),null},T=(0,e.createContext)({seriesApiRef:null,isReady:!1});function N(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}T.displayName="SeriesContext";var D=function(r){var n,i=r.type,o=r.data,a=r.options,u=void 0===a?{}:a,c=r.reactive,l=void 0===c||c,f=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(r,["type","data","options","reactive"]),s=w(t),p=s.isReady,y=s.chartApiRef,v=A(),b=v.isPaneReady,d=v.isInsidePane,h=v.paneApiRef,m=(n=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(n)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(n,2)||function(e,r){if(e){if("string"==typeof e)return N(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return N(e,r)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=m[0],g=m[1],S=(0,e.useRef)({_series:null,api:function(){return this._series},init:function(){if(!this._series){var e,r,t=null==y?void 0:y.api();if(!t)return null;var n=d?null==h||null===(e=h.api())||void 0===e?void 0:e.paneIndex():void 0;if("Custom"===i){var a=f.plugin;if(!a)throw new j("Custom series requires a plugin to be defined");this._series=t.addCustomSeries(a,u,n)}else this._series=t.addSeries(M[i],u,n);null===(r=this._series)||void 0===r||r.setData(o),g(!0)}return this._series},clear:function(){if(null!==this._series){var e;null==y||null===(e=y.api())||void 0===e||e.removeSeries(this._series),this._series=null,g(!1)}}});return(0,e.useLayoutEffect)(function(){p&&(!d||b)&&S.current.init()},[p,d,b]),(0,e.useLayoutEffect)(function(){return function(){S.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(y&&o&&l){var e;null===(e=S.current.api())||void 0===e||e.setData(o)}},[o,l]),(0,e.useLayoutEffect)(function(){if(y&&u){var e;null===(e=S.current.api())||void 0===e||e.applyOptions(u)}},[u]),{isReady:O,seriesApiRef:S}},M={Line:n.LineSeries,Candlestick:n.CandlestickSeries,Histogram:n.HistogramSeries,Area:n.AreaSeries,Baseline:n.BaselineSeries,Bar:n.BarSeries},H=(0,e.forwardRef)(function(t,n){var i=t.children,o=D(function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,["children"])),a=o.seriesApiRef.current,u=o.isReady;return(0,e.useImperativeHandle)(n,function(){return a},[a]),r().createElement(T.Provider,{value:{seriesApiRef:a,isReady:u}},i)});H.displayName="SeriesTemplate";var V=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Line",ref:t},i),n)});V.displayName="LineSeries";var B=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Histogram",ref:t},i),n)});B.displayName="HistogramSeries";var F=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Candlestick",ref:t},i),n)});F.displayName="CandlestickSeries";var W=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Area",ref:t},i),n)});W.displayName="AreaSeries";var q=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Baseline",ref:t},i),n)});q.displayName="BaselineSeries";var U=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Bar",ref:t},i),n)});U.displayName="BarSeries";var $=(0,e.forwardRef)(function(e,t){var n=e.children,i=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);return r().createElement(H,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({type:"Custom",ref:t},i),n)});$.displayName="CustomSeries";var z=function(r){var t=r.options,n=r.price,i=w(T),o=i.isReady,a=i.seriesApiRef,u=(0,e.useRef)({_priceLine:null,api:function(){return this._priceLine},init:function(){if(!this._priceLine){var e=null==a?void 0:a.api();if(!e)return null;this._priceLine=e.createPriceLine(function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({price:n},t))}return this._priceLine},clear:function(){if(null!==this._priceLine){var e;null==a||null===(e=a.api())||void 0===e||e.removePriceLine(this._priceLine),this._priceLine=null}}});return(0,e.useLayoutEffect)(function(){o&&u.current.init()},[o]),(0,e.useLayoutEffect)(function(){return function(){u.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(a&&t){var e;null===(e=u.current.api())||void 0===e||e.applyOptions(t)}},[t]),(0,e.useLayoutEffect)(function(){if(a&&n){var e;null===(e=u.current.api())||void 0===e||e.applyOptions({price:n})}},[n]),u},G=(0,e.forwardRef)(function(r,t){var n=z(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});G.displayName="PriceLine";var J=function(r){var t=r.reactive,i=void 0===t||t,o=r.markers,a=w(T),u=a.isReady,c=a.seriesApiRef,l=(0,e.useRef)({_markers:null,api:function(){return this._markers},init:function(){if(null===this._markers){var e=null==c?void 0:c.api();if(!e)return null;this._markers=(0,n.createSeriesMarkers)(e,o)}return this._markers},clear:function(){null!==this._markers&&(this._markers.detach(),this._markers=null)}});return(0,e.useLayoutEffect)(function(){u&&l.current.init()},[u]),(0,e.useLayoutEffect)(function(){return function(){l.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(c&&o&&i){var e;null===(e=l.current.api())||void 0===e||e.setMarkers(o)}},[o,i]),l};function K(){return(K=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}var Q=(0,e.forwardRef)(function(r,t){var n=J(K({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(r)));return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});function X(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}Q.displayName="Markers";var Y=function(r){var i=w(t),o=i.isReady,a=i.chartApiRef,u=A(),c=u.isPaneReady,l=u.isInsidePane,f=u.paneApiRef,s=(0,e.useRef)({_watermark:null,api:function(){return this._watermark},init:function(){if(null===this._watermark){var e=null==a?void 0:a.api(),t=null==f?void 0:f.api();if(!e||!t)return null;if(Z(r)){r.type;var i=X(r,["type"]);this._watermark=(0,n.createTextWatermark)(t,i)}else{r.type;var o=r.src,u=X(r,["type","src"]);this._watermark=(0,n.createImageWatermark)(t,o,u)}}return this._watermark},clear:function(){null!==this._watermark&&(this._watermark.detach(),this._watermark=null)}});return(0,e.useLayoutEffect)(function(){if(o){if(!l)throw new j("Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.",{isOperational:!0,docsPath:""});c&&s.current.init()}},[o,c,l]),(0,e.useLayoutEffect)(function(){return function(){s.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(a&&r){r.type;var e,t=X(r,["type"]);null===(e=s.current.api())||void 0===e||e.applyOptions(t)}},[r]),s},Z=function(e){return"text"===e.type};function ee(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function er(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}var et=function(r,t){var n=Y(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null},en=(0,e.forwardRef)(function(e,r){return et(er(ee({},e),{type:"text"}),r)}),ei=(0,e.forwardRef)(function(e,r){return et(er(ee({},e),{type:"image"}),r)});en.displayName="WatermarkText",ei.displayName="WatermarkImage";var eo=function(r){var n=r.render,i=r.plugin,o=w(t),a=o.isReady,u=o.chartApiRef,c=w(T),l=c.isReady,f=c.seriesApiRef,s=(0,e.useRef)({_primitive:null,api:function(){return this._primitive},init:function(){if(!this._primitive){var e=null==f?void 0:f.api(),r=null==u?void 0:u.api();if(!r||!e)return null;var t=i||n({chart:r,series:e});e.attachPrimitive(t),this._primitive=t}return this._primitive},clear:function(){if(null!==this._primitive){var e;null==f||null===(e=f.api())||void 0===e||e.detachPrimitive(this._primitive),this._primitive=null}}});return(0,e.useLayoutEffect)(function(){a&&l&&s.current.init()},[l,a]),(0,e.useLayoutEffect)(function(){return function(){s.current.clear()}},[]),s},ea=(0,e.forwardRef)(function(r,t){var n=eo(r);return(0,e.useImperativeHandle)(t,function(){return n.current},[n]),null});function eu(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}ea.displayName="SeriesPrimitive";var ec=function(){var r,n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).stretchFactor,i=w(t),o=i.chartApiRef,a=i.isReady,u=(r=(0,e.useState)(!1),function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t,n,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,u=!1;try{for(i=i.call(e);!(a=(t=i.next()).done)&&(o.push(t.value),o.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==i.return||i.return()}finally{if(u)throw n}}return o}}(r,2)||function(e,r){if(e){if("string"==typeof e)return eu(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eu(e,r)}}(r,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=u[0],l=u[1],f=(0,e.useRef)({_pane:null,api:function(){return this._pane},init:function(){var e=null==o?void 0:o.api();if(!e)return null;var r=e.addPane(!0);return this._pane=r,l(!0),void 0!==n&&this._pane.setStretchFactor(n),this._pane},clear:function(){if(null!==this._pane){var e;null==o||null===(e=o.api())||void 0===e||e.removePane(this._pane.paneIndex()),l(!1),this._pane=null}}});return(0,e.useLayoutEffect)(function(){a&&f.current.init()},[a]),(0,e.useLayoutEffect)(function(){return function(){f.current.clear()}},[]),(0,e.useLayoutEffect)(function(){if(void 0!==n){var e=f.current.api();e&&e.setStretchFactor(n)}},[n]),{paneApiRef:f,isReady:c}},el=(0,e.forwardRef)(function(t,n){var i=t.children,o=ec({stretchFactor:t.stretchFactor}),a=o.paneApiRef.current,u=o.isReady;return(0,e.useImperativeHandle)(n,function(){return a},[a]),r().createElement(E.Provider,{value:{paneApiRef:a,isReady:u}},i)});el.displayName="Pane"}(),o}()});
12
12
  //# sourceMappingURL=lightweight-charts-react-components.standalone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightweight-charts-react-components.standalone.js","sources":["webpack://LightweightChartsReactComponents/./src/chart/ChartContext.ts","webpack://LightweightChartsReactComponents/./src/chart/defaultChartOptions.ts","webpack://LightweightChartsReactComponents/./src/chart/useChart.ts","webpack://LightweightChartsReactComponents/./src/chart/ChartComponent.tsx","webpack://LightweightChartsReactComponents/./src/chart/ChartWrapper.tsx","webpack://LightweightChartsReactComponents/./src/scales/TimeScaleContext.ts","webpack://LightweightChartsReactComponents/./src/version.ts","webpack://LightweightChartsReactComponents/./src/_shared/InternalError.ts","webpack://LightweightChartsReactComponents/./src/_shared/useSafeContext.ts","webpack://LightweightChartsReactComponents/./src/scales/useTimeScale.ts","webpack://LightweightChartsReactComponents/./src/scales/TimeScale.tsx","webpack://LightweightChartsReactComponents/./src/pane/PaneContext.ts","webpack://LightweightChartsReactComponents/./src/pane/usePaneContext.ts","webpack://LightweightChartsReactComponents/./src/scales/usePriceScale.ts","webpack://LightweightChartsReactComponents/./src/scales/PriceScale.tsx","webpack://LightweightChartsReactComponents/./src/scales/useTimeScaleFitContentTrigger.ts","webpack://LightweightChartsReactComponents/./src/scales/TimeScaleFitContentTrigger.tsx","webpack://LightweightChartsReactComponents/./src/series/SeriesContext.ts","webpack://LightweightChartsReactComponents/./src/series/useSeries.ts","webpack://LightweightChartsReactComponents/./src/series/SeriesTemplate.tsx","webpack://LightweightChartsReactComponents/./src/series/LineSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/HistogramSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/CandlestickSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/AreaSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/BaselineSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/BarSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/CustomSeries.tsx","webpack://LightweightChartsReactComponents/./src/priceLine/usePriceLine.ts","webpack://LightweightChartsReactComponents/./src/priceLine/PriceLine.tsx","webpack://LightweightChartsReactComponents/./src/markers/useMarkers.ts","webpack://LightweightChartsReactComponents/./src/markers/Markers.tsx","webpack://LightweightChartsReactComponents/./src/watermark/useWatermark.ts","webpack://LightweightChartsReactComponents/./src/watermark/Watermark.tsx","webpack://LightweightChartsReactComponents/./src/primitives/useSeriesPrimitive.ts","webpack://LightweightChartsReactComponents/./src/primitives/SeriesPrimitive.tsx","webpack://LightweightChartsReactComponents/./src/pane/usePane.ts","webpack://LightweightChartsReactComponents/./src/pane/Pane.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { type IChartContext } from \"./types\";\n\nconst ChartContext = createContext<IChartContext | null>(null);\n\nChartContext.displayName = \"ChartContext\";\nexport { ChartContext };\n","import type { ChartOptions, DeepPartial } from \"lightweight-charts\";\n\nconst defaultChartOptions: DeepPartial<ChartOptions> = {\n addDefaultPane: false,\n};\n\nexport { defaultChartOptions };\n","import { createChart } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { defaultChartOptions } from \"./defaultChartOptions\";\nimport type { ChartApiRef, UseChartOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n onDblClick,\n}: UseChartOptions) => {\n const [isReady, setIsReady] = useState(false);\n\n const chartApiRef = useRef<ChartApiRef>({\n _chart: null,\n api() {\n return this._chart;\n },\n init() {\n if (this._chart === null) {\n const chart = createChart(container, {\n ...defaultChartOptions,\n ...options,\n });\n this._chart = chart;\n\n if (onInit) {\n onInit(this._chart);\n }\n }\n\n if (!isReady) {\n setIsReady(true);\n }\n\n return this._chart;\n },\n clear() {\n if (this._chart !== null) {\n setIsReady(false);\n this._chart.remove();\n this._chart = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n chartApiRef.current.init();\n\n return () => {\n chartApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onClick) {\n chartApiRef.current.api()?.subscribeClick(onClick);\n }\n\n return () => {\n if (onClick) {\n chartApiRef.current.api()?.unsubscribeClick(onClick);\n }\n };\n }, [onClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onCrosshairMove) {\n chartApiRef.current.api()?.subscribeCrosshairMove(onCrosshairMove);\n }\n\n return () => {\n if (onCrosshairMove) {\n chartApiRef.current.api()?.unsubscribeCrosshairMove(onCrosshairMove);\n }\n };\n }, [onCrosshairMove]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onDblClick) {\n chartApiRef.current.api()?.subscribeDblClick(onDblClick);\n }\n\n return () => {\n if (onDblClick) {\n chartApiRef.current.api()?.unsubscribeDblClick(onDblClick);\n }\n };\n }, [onDblClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n chartApiRef.current.api()?.applyOptions({\n ...defaultChartOptions,\n ...options,\n });\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import React from \"react\";\nimport { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartComponentProps } from \"./types\";\n\nconst ChartComponent: React.FC<ChartComponentProps> = ({\n children,\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options,\n}) => {\n const {\n chartApiRef: { current: chartApiRef },\n isReady,\n } = useChart({ container, onClick, onCrosshairMove, onInit, options });\n\n return (\n <ChartContext.Provider\n value={{\n chartApiRef,\n isReady,\n }}\n >\n {children}\n </ChartContext.Provider>\n );\n};\n\nexport { ChartComponent };\n","import { forwardRef, useCallback, useState } from \"react\";\nimport React from \"react\";\nimport { ChartComponent } from \"./ChartComponent\";\nimport type { ChartProps } from \"./types\";\nimport type {\n ForwardRefExoticComponent,\n ForwardRefRenderFunction,\n RefAttributes,\n} from \"react\";\n\nconst ChartRenderFunction: ForwardRefRenderFunction<HTMLDivElement, ChartProps> = (\n { children, containerProps, ...rest },\n ref\n) => {\n const [container, setContainer] = useState<HTMLDivElement>();\n const containerRef = useCallback(\n (r: HTMLDivElement) => {\n setContainer(r);\n\n if (ref) {\n if (typeof ref === \"function\") {\n containerRef(r);\n } else {\n ref.current = r;\n }\n }\n },\n [ref]\n );\n\n return (\n <div ref={containerRef} {...containerProps}>\n {!!container && (\n <ChartComponent container={container} {...rest}>\n {children}\n </ChartComponent>\n )}\n </div>\n );\n};\n\nconst ChartWrapper: ForwardRefExoticComponent<\n ChartProps & RefAttributes<HTMLDivElement>\n> = forwardRef(ChartRenderFunction);\nChartWrapper.displayName = \"ChartWrapper\";\nexport { ChartWrapper };\n","import { createContext } from \"react\";\nimport { type ITimeScaleContext } from \"./types\";\n\nconst TimeScaleContext = createContext<ITimeScaleContext | null>(null);\nTimeScaleContext.displayName = \"TimeScaleContext\";\nexport { TimeScaleContext };\n","export const version = \"1.0.0\";\n","import { version } from \"../version\";\n\nconst docsBaseUrl = \"https://ukorvl.github.io/lightweight-charts-react-components/docs/\";\n\ntype IBaseErrorParameters = {\n /**\n * An operational error refers to an error that occurs during normal program operation\n * due to external factors or expected failures, not due to bugs in the code itself.\n */\n isOperational?: boolean;\n /**\n * The cause of the error, if any.\n * This can be used to provide additional context or information about the error.\n */\n cause?: Error | BaseInternalError;\n /**\n * A path to the documentation that can help resolve the error.\n * This is useful for providing users with guidance on how to fix or understand the error.\n */\n docsPath?: string;\n};\n\nclass BaseInternalError extends Error {\n public isOperational: boolean;\n public override cause?: Error | BaseInternalError;\n\n constructor(\n message?: string,\n { isOperational = true, cause, docsPath }: IBaseErrorParameters = {}\n ) {\n super(message);\n\n this.name = this.constructor.name ?? \"InternalError\";\n this.isOperational = isOperational;\n this.cause = cause;\n\n this.message = `${message ?? \"An error occurred\"}`;\n\n if (docsPath) {\n this.message = `${this.message}\\n\\nDocs: see ${docsBaseUrl + docsPath}`;\n }\n\n if (version) {\n this.message = `${this.message}\\n\\nVersion: lightweight-charts-react-components@${version}`;\n }\n\n Object.setPrototypeOf(this, BaseInternalError.prototype);\n }\n}\n\nexport { BaseInternalError };\n","import { type Context, useContext } from \"react\";\nimport { BaseInternalError } from \"./InternalError\";\n\nexport const useSafeContext = <T>(context: Context<T>, errorMessage?: string) => {\n const currentContextValue = useContext(context);\n\n if (!currentContextValue) {\n const ctxName = context.name ?? context.displayName ?? \"Context\";\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: Omit<TimeScaleProps, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (this._timeScale) {\n return this._timeScale;\n }\n\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._timeScale = chartApi.timeScale();\n\n this._timeScale.applyOptions(options);\n\n if (visibleRange) {\n this._timeScale.setVisibleRange(visibleRange);\n }\n\n if (visibleLogicalRange) {\n this._timeScale.setVisibleLogicalRange(visibleLogicalRange);\n }\n\n if (onVisibleTimeRangeChange) {\n this._timeScale.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n if (onVisibleLogicalRangeChange) {\n this._timeScale.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n if (onSizeChange) {\n this._timeScale.subscribeSizeChange(onSizeChange);\n }\n\n setIsReady(true);\n\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\n setIsReady(false);\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n timeScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n timeScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n timeScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.subscribeSizeChange(onSizeChange);\n }\n\n return () => {\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.unsubscribeSizeChange(onSizeChange);\n }\n };\n }, [onSizeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n return () => {\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n };\n }, [onVisibleLogicalRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n return () => {\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n };\n }, [onVisibleTimeRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleRange) {\n timeScaleApiRef.current?.api()?.setVisibleRange(visibleRange);\n }\n }, [visibleRange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleLogicalRange) {\n timeScaleApiRef.current?.api()?.setVisibleLogicalRange(visibleLogicalRange);\n }\n }, [visibleLogicalRange]);\n\n return { timeScaleApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst TimeScaleRenderFunction = (\n { children, ...props }: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n): JSX.Element => {\n const {\n timeScaleApiRef: { current: timeScaleApiRef },\n isReady,\n } = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef, [timeScaleApiRef]);\n\n return (\n <TimeScaleContext.Provider\n value={{\n timeScaleApiRef,\n isReady,\n }}\n >\n {children}\n </TimeScaleContext.Provider>\n );\n};\n\nconst TimeScale: ForwardRefExoticComponent<\n TimeScaleProps & RefAttributes<TimeScaleApiRef>\n> = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { createContext } from \"react\";\nimport { type IPaneContext } from \"./types\";\n\nconst PaneContext = createContext<IPaneContext | null>(null);\n\nPaneContext.displayName = \"PaneContext\";\nexport { PaneContext };\n","import { useContext } from \"react\";\nimport { PaneContext } from \"./PaneContext\";\n\nconst usePaneContext = () => {\n const paneContext = useContext(PaneContext);\n\n const isInsidePane = !!paneContext;\n const isPaneReady = !!paneContext?.isReady;\n const paneApiRef = paneContext?.paneApiRef;\n\n return { isInsidePane, isPaneReady, paneApiRef };\n};\n\nexport { usePaneContext };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { PriceScaleProps, PriceScaleApiRef } from \"./types\";\n\nexport const usePriceScale = ({ options = {}, id }: PriceScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isInsidePane, isPaneReady } = usePaneContext();\n\n const priceScaleApiRef = useRef<PriceScaleApiRef>({\n _priceScale: null,\n api() {\n return this._priceScale;\n },\n init() {\n if (!this._priceScale) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._priceScale = chartApi.priceScale(id);\n\n this._priceScale.applyOptions(options);\n }\n\n return this._priceScale;\n },\n setId(id) {\n if (this._priceScale === null || chart === null) {\n return;\n }\n\n this._priceScale = chart.api()!.priceScale(id);\n this._priceScale.applyOptions(options);\n },\n clear() {\n this._priceScale = null;\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n priceScaleApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n priceScaleApiRef.current?.setId(id);\n }, [id]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n priceScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n return priceScaleApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceScale } from \"./usePriceScale\";\nimport type { PriceScaleApiRef, PriceScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceScaleRenderFunction = (\n props: PriceScaleProps,\n ref: ForwardedRef<PriceScaleApiRef>\n): JSX.Element | null => {\n const priceScaleApiRef = usePriceScale(props);\n useImperativeHandle(ref, () => priceScaleApiRef.current, [priceScaleApiRef]);\n\n return null;\n};\n\nconst PriceScale: ForwardRefExoticComponent<\n PriceScaleProps & RefAttributes<PriceScaleApiRef>\n> = forwardRef(PriceScaleRenderFunction);\nPriceScale.displayName = \"PriceScale\";\nexport { PriceScale };\n","import { useLayoutEffect } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst useTimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n const timeScaleContext = useSafeContext(TimeScaleContext);\n const { timeScaleApiRef, isReady } = timeScaleContext;\n\n useLayoutEffect(() => {\n if (!isReady || !timeScaleApiRef) {\n return;\n }\n\n const timeScale = timeScaleApiRef.api();\n queueMicrotask(() => {\n if (timeScale) {\n timeScale.fitContent();\n }\n });\n }, [...deps, isReady]);\n};\n\nexport { useTimeScaleFitContentTrigger };\n","import { useTimeScaleFitContentTrigger } from \"./useTimeScaleFitContentTrigger\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\nimport type { JSX } from \"react\";\n\nconst TimeScaleFitContentTrigger = ({\n deps,\n}: TimeScaleFitContentTriggerProps): JSX.Element | null => {\n useTimeScaleFitContentTrigger({ deps });\n\n return null;\n};\n\nexport { TimeScaleFitContentTrigger };\n","import { createContext } from \"react\";\nimport { type ISeriesContext } from \"./types\";\n\nexport const SeriesContext = createContext<ISeriesContext>({\n seriesApiRef: null,\n isReady: false,\n});\nSeriesContext.displayName = \"SeriesContext\";\n","import {\n LineSeries,\n CandlestickSeries,\n HistogramSeries,\n AreaSeries,\n BaselineSeries,\n BarSeries,\n} from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { CustomSeriesUniqueProps, SeriesApiRef, SeriesTemplateProps } from \"./types\";\nimport type { SeriesDefinition, ISeriesApi, SeriesType } from \"lightweight-charts\";\n\ntype SeriesTypeWithoutCustom = Exclude<SeriesType, \"Custom\">;\n\nexport const useSeries = <T extends SeriesType>({\n type,\n data,\n options = {},\n reactive = true,\n ...rest\n}: Omit<SeriesTemplateProps<T>, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n const [isReady, setIsReady] = useState(false);\n\n const seriesApiRef = useRef<SeriesApiRef<T>>({\n _series: null,\n api() {\n return this._series;\n },\n init() {\n if (!this._series) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n const paneIndex = isInsidePane ? paneApiRef?.api()?.paneIndex() : undefined;\n\n if (type === \"Custom\") {\n const plugin = (rest as CustomSeriesUniqueProps).plugin;\n if (!plugin) {\n throw new BaseInternalError(\"Custom series requires a plugin to be defined\");\n }\n\n // TODO: Fix this type cast and infer the correct type\n (this._series as unknown as ISeriesApi<\"Custom\">) = chartApi.addCustomSeries(\n plugin,\n options,\n paneIndex\n );\n } else {\n this._series = chartApi.addSeries(\n seriesMap[type as SeriesTypeWithoutCustom] as SeriesDefinition<T>,\n options,\n paneIndex\n );\n }\n\n this._series?.setData(data);\n\n setIsReady(true);\n }\n\n return this._series;\n },\n clear() {\n if (this._series !== null) {\n chart?.api()?.removeSeries(this._series);\n this._series = null;\n setIsReady(false);\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (isInsidePane && !isPaneReady) {\n return;\n }\n\n seriesApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (data && reactive) {\n seriesApiRef.current.api()?.setData(data);\n }\n }, [data, reactive]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n seriesApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n return { isReady, seriesApiRef };\n};\n\nconst seriesMap: Record<\n SeriesTypeWithoutCustom,\n SeriesDefinition<SeriesTypeWithoutCustom>\n> = {\n Line: LineSeries,\n Candlestick: CandlestickSeries,\n Histogram: HistogramSeries,\n Area: AreaSeries,\n Baseline: BaselineSeries,\n Bar: BarSeries,\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { SeriesContext } from \"./SeriesContext\";\nimport { useSeries } from \"./useSeries\";\nimport type { SeriesTemplateProps, SeriesApiRef } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesComponent = (<T extends SeriesType>(\n props: SeriesTemplateProps<T> & {\n ref?: ForwardedRef<SeriesApiRef<T>>;\n }\n) => ReturnType<typeof SeriesTemplateRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesTemplateRenderFunction = <T extends SeriesType>(\n { children, ...rest }: SeriesTemplateProps<T>,\n ref: ForwardedRef<SeriesApiRef<T>>\n) => {\n const {\n seriesApiRef: { current: seriesApiRef },\n isReady,\n } = useSeries(rest);\n useImperativeHandle(ref, () => seriesApiRef, [seriesApiRef]);\n\n return (\n <SeriesContext.Provider\n value={{\n seriesApiRef,\n isReady,\n }}\n >\n {children}\n </SeriesContext.Provider>\n );\n};\n\nconst SeriesTemplate = forwardRef(SeriesTemplateRenderFunction) as GenericSeriesComponent;\nSeriesTemplate.displayName = \"SeriesTemplate\";\nexport { SeriesTemplate };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst LineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Line\">,\n ref: ForwardedRef<SeriesApiRef<\"Line\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Line\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst LineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Line\"> & RefAttributes<SeriesApiRef<\"Line\">>\n> = forwardRef(LineSeriesRenderFunction);\nLineSeries.displayName = \"LineSeries\";\nexport { LineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst HistogramSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Histogram\">,\n ref: ForwardedRef<SeriesApiRef<\"Histogram\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Histogram\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst HistogramSeries: ForwardRefExoticComponent<\n SeriesProps<\"Histogram\"> & RefAttributes<SeriesApiRef<\"Histogram\">>\n> = forwardRef(HistogramSeriesRenderFunction);\nHistogramSeries.displayName = \"HistogramSeries\";\nexport { HistogramSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CandlestickSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Candlestick\">,\n ref: ForwardedRef<SeriesApiRef<\"Candlestick\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Candlestick\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CandlestickSeries: ForwardRefExoticComponent<\n SeriesProps<\"Candlestick\"> & RefAttributes<SeriesApiRef<\"Candlestick\">>\n> = forwardRef(CandlestickSeriesRenderFunction);\nCandlestickSeries.displayName = \"CandlestickSeries\";\nexport { CandlestickSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst AreaSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Area\">,\n ref: ForwardedRef<SeriesApiRef<\"Area\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Area\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst AreaSeries: ForwardRefExoticComponent<\n SeriesProps<\"Area\"> & RefAttributes<SeriesApiRef<\"Area\">>\n> = forwardRef(AreaSeriesRenderFunction);\nAreaSeries.displayName = \"AreaSeries\";\nexport { AreaSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BaselineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Baseline\">,\n ref: ForwardedRef<SeriesApiRef<\"Baseline\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Baseline\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BaselineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Baseline\"> & RefAttributes<SeriesApiRef<\"Baseline\">>\n> = forwardRef(BaselineSeriesRenderFunction);\nBaselineSeries.displayName = \"BaselineSeries\";\nexport { BaselineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BarSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Bar\">,\n ref: ForwardedRef<SeriesApiRef<\"Bar\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Bar\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BarSeries: ForwardRefExoticComponent<\n SeriesProps<\"Bar\"> & RefAttributes<SeriesApiRef<\"Bar\">>\n> = forwardRef(BarSeriesRenderFunction);\nBarSeries.displayName = \"BarSeries\";\nexport { BarSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CustomSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Custom\">,\n ref: ForwardedRef<SeriesApiRef<\"Custom\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Custom\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CustomSeries: ForwardRefExoticComponent<\n SeriesProps<\"Custom\"> & RefAttributes<SeriesApiRef<\"Custom\">>\n> = forwardRef(CustomSeriesRenderFunction);\nCustomSeries.displayName = \"CustomSeries\";\nexport { CustomSeries };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\n\nexport const usePriceLine = ({ options, price }: PriceLineProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const priceLineApiRef = useRef<PriceLineApiRef>({\n _priceLine: null,\n api() {\n return this._priceLine;\n },\n init() {\n if (!this._priceLine) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._priceLine = seriesApi.createPriceLine({\n price,\n ...options,\n });\n }\n\n return this._priceLine;\n },\n clear() {\n if (this._priceLine !== null) {\n series?.api()?.removePriceLine(this._priceLine);\n this._priceLine = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n priceLineApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceLineApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (options) {\n priceLineApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (price) {\n priceLineApiRef.current.api()?.applyOptions({ price });\n }\n }, [price]);\n\n return priceLineApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceLine } from \"./usePriceLine\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceLineRenderFunction = (\n props: PriceLineProps,\n ref: ForwardedRef<PriceLineApiRef>\n): JSX.Element | null => {\n const priceLineApiRef = usePriceLine(props);\n useImperativeHandle(ref, () => priceLineApiRef.current, [priceLineApiRef]);\n\n return null;\n};\n\nconst PriceLine: ForwardRefExoticComponent<\n PriceLineProps & RefAttributes<PriceLineApiRef>\n> = forwardRef(PriceLineRenderFunction);\nPriceLine.displayName = \"PriceLine\";\nexport { PriceLine };\n","import { createSeriesMarkers } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\n\nexport const useMarkers = ({ reactive = true, markers }: MarkersProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const markersApiRef = useRef<MarkersApiRef>({\n _markers: null,\n api() {\n return this._markers;\n },\n init() {\n if (this._markers === null) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._markers = createSeriesMarkers(seriesApi, markers);\n }\n\n return this._markers;\n },\n clear() {\n if (this._markers !== null) {\n this._markers.detach();\n this._markers = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n markersApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n markersApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (markers && reactive) {\n markersApiRef.current.api()?.setMarkers(markers);\n }\n }, [markers, reactive]);\n\n return markersApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useMarkers } from \"./useMarkers\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst MarkersRenderFunction = (\n { ...rest }: MarkersProps,\n ref: ForwardedRef<MarkersApiRef>\n): JSX.Element | null => {\n const markersApiRef = useMarkers(rest);\n useImperativeHandle(ref, () => markersApiRef.current, [markersApiRef]);\n\n return null;\n};\n\nconst Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>> =\n forwardRef(MarkersRenderFunction);\nMarkers.displayName = \"Markers\";\nexport { Markers };\n","import { createTextWatermark, createImageWatermark } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { WatermarkApiRef, WatermarkProps, WatermarkType } from \"./types\";\n\nconst useWatermark = <T extends WatermarkType>(props: WatermarkProps<T>) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n\n const watermarkApiRef = useRef<WatermarkApiRef<T>>({\n _watermark: null,\n api() {\n return this._watermark;\n },\n init() {\n if (this._watermark === null) {\n const chartApi = chart?.api();\n\n const pane = paneApiRef?.api();\n\n if (!chartApi || !pane) return null;\n\n if (isTextWatermark(props)) {\n const { type: _, ...rest } = props;\n this._watermark = createTextWatermark(pane, rest);\n } else {\n const { type: _, src, ...rest } = props as WatermarkProps<\"image\">;\n this._watermark = createImageWatermark(pane, src, rest);\n }\n }\n\n return this._watermark;\n },\n clear() {\n if (this._watermark !== null) {\n this._watermark.detach();\n this._watermark = null;\n }\n },\n } as WatermarkApiRef<T>);\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n watermarkApiRef.current.init();\n }, [chartIsReady, isPaneReady, isInsidePane]);\n\n useLayoutEffect(() => {\n return () => {\n watermarkApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart || !props) return;\n\n const { type: _, ...rest } = props;\n watermarkApiRef.current.api()?.applyOptions(rest);\n }, [props]);\n\n return watermarkApiRef;\n};\n\nconst isTextWatermark = (\n props: WatermarkProps<WatermarkType>\n): props is WatermarkProps<\"text\"> => {\n return props.type === \"text\";\n};\n\nexport { useWatermark };\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useWatermark } from \"./useWatermark\";\nimport type {\n ImageWatermarkProps,\n TextWatermarkProps,\n WatermarkApiRef,\n WatermarkProps,\n WatermarkType,\n} from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst WatermarkRenderFunction = <T extends WatermarkType>(\n props: WatermarkProps<T>,\n ref: ForwardedRef<WatermarkApiRef<T>>\n) => {\n const watermarkApi = useWatermark(props);\n useImperativeHandle(ref, () => watermarkApi.current, [watermarkApi]);\n\n return null;\n};\n\nconst WatermarkText: ForwardRefExoticComponent<\n TextWatermarkProps & RefAttributes<WatermarkApiRef<\"text\">>\n> = forwardRef<WatermarkApiRef<\"text\">, TextWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"text\" }, ref);\n});\n\nconst WatermarkImage: ForwardRefExoticComponent<\n ImageWatermarkProps & RefAttributes<WatermarkApiRef<\"image\">>\n> = forwardRef<WatermarkApiRef<\"image\">, ImageWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"image\" }, ref);\n});\n\nWatermarkText.displayName = \"WatermarkText\";\nWatermarkImage.displayName = \"WatermarkImage\";\n\nexport { WatermarkText, WatermarkImage };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { ISeriesApi, SeriesType } from \"lightweight-charts\";\n\nexport const useSeriesPrimitive = <T extends SeriesType>({\n render,\n plugin,\n}: SeriesPrimitiveProps<T>) => {\n const { isReady: isChartReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const seriesPrimitiveApiRef = useRef<SeriesPrimitiveApiRef>({\n _primitive: null,\n api() {\n return this._primitive;\n },\n init() {\n if (!this._primitive) {\n const seriesApi = series?.api();\n const chartApi = chart?.api();\n\n if (!chartApi || !seriesApi) {\n return null;\n }\n\n const primitive = plugin\n ? plugin\n : render({\n chart: chartApi,\n series: seriesApi as ISeriesApi<T>,\n });\n\n seriesApi.attachPrimitive(primitive);\n this._primitive = primitive;\n }\n\n return this._primitive;\n },\n clear() {\n if (this._primitive !== null) {\n series?.api()?.detachPrimitive(this._primitive);\n this._primitive = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!isChartReady || !seriesIsReady) return;\n\n seriesPrimitiveApiRef.current.init();\n }, [seriesIsReady, isChartReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesPrimitiveApiRef.current.clear();\n };\n }, []);\n\n return seriesPrimitiveApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useSeriesPrimitive } from \"./useSeriesPrimitive\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef, JSX } from \"react\";\n\ntype GenericSeriesPrimitiveComponent = (<T extends SeriesType>(\n props: SeriesPrimitiveProps<T> & {\n ref?: ForwardedRef<SeriesPrimitiveApiRef>;\n }\n) => ReturnType<typeof SeriesPrimitiveRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesPrimitiveRenderFunction = <T extends SeriesType>(\n props: SeriesPrimitiveProps<T>,\n ref: ForwardedRef<SeriesPrimitiveApiRef>\n): JSX.Element | null => {\n const seriesPrimitiveApiRef = useSeriesPrimitive(props);\n useImperativeHandle(ref, () => seriesPrimitiveApiRef.current, [seriesPrimitiveApiRef]);\n\n return null;\n};\n\nconst SeriesPrimitive = forwardRef(\n SeriesPrimitiveRenderFunction\n) as GenericSeriesPrimitiveComponent;\nSeriesPrimitive.displayName = \"SeriesPrimitive\";\nexport { SeriesPrimitive };\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { PaneApiRef, PaneProps } from \"./types\";\n\nexport const usePane = ({ stretchFactor }: Omit<PaneProps, \"children\"> = {}) => {\n const { chartApiRef: chart, isReady: chartIsReady } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const paneApiRef = useRef<PaneApiRef>({\n _pane: null,\n api() {\n return this._pane;\n },\n init() {\n const chartApi = chart?.api();\n if (!chartApi) return null;\n\n const pane = chartApi.addPane(true);\n this._pane = pane;\n\n setIsReady(true);\n\n if (stretchFactor !== undefined) {\n this._pane.setStretchFactor(stretchFactor);\n }\n\n return this._pane;\n },\n clear() {\n if (this._pane !== null) {\n chart?.api()?.removePane(this._pane.paneIndex());\n setIsReady(false);\n\n this._pane = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n paneApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n paneApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (stretchFactor === undefined) return;\n\n const pane = paneApiRef.current.api();\n if (pane) {\n pane.setStretchFactor(stretchFactor);\n }\n }, [stretchFactor]);\n\n return { paneApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { PaneContext } from \"./PaneContext\";\nimport { usePane } from \"./usePane\";\nimport type { PaneProps, PaneApiRef } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst PaneRenderFunction = (\n { children, stretchFactor }: PaneProps,\n ref: ForwardedRef<PaneApiRef>\n) => {\n const {\n paneApiRef: { current: paneApiRef },\n isReady,\n } = usePane({ stretchFactor });\n useImperativeHandle(ref, () => paneApiRef, [paneApiRef]);\n\n return (\n <PaneContext.Provider\n value={{\n paneApiRef,\n isReady,\n }}\n >\n {children}\n </PaneContext.Provider>\n );\n};\n\nconst Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>> =\n forwardRef(PaneRenderFunction);\nPane.displayName = \"Pane\";\nexport { Pane };\n"],"names":["ChartContext","createContext","defaultChartOptions","useChart","container","onClick","onCrosshairMove","onInit","options","onDblClick","_useState","isReady","setIsReady","chartApiRef","useRef","chart","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","_useChart","ChartWrapper","forwardRef","ref","containerProps","rest","setContainer","containerRef","useCallback","r","TimeScaleContext","version","BaseInternalError","message","_this_constructor_name","_ref","isOperational","cause","docsPath","docsBaseUrl","Object","Error","useSafeContext","context","errorMessage","currentContextValue","useContext","ctxName","useTimeScale","onVisibleTimeRangeChange","onVisibleLogicalRangeChange","onSizeChange","visibleRange","visibleLogicalRange","_useSafeContext","chartIsReady","timeScaleApiRef","chartApi","_timeScaleApiRef_current_api","TimeScale","_useTimeScale","props","useImperativeHandle","PaneContext","usePaneContext","paneContext","isInsidePane","isPaneReady","paneApiRef","usePriceScale","id","_usePaneContext","priceScaleApiRef","_priceScaleApiRef_current","_priceScaleApiRef_current_api","PriceScale","useTimeScaleFitContentTrigger","deps","timeScaleContext","timeScale","queueMicrotask","TimeScaleFitContentTrigger","SeriesContext","useSeries","type","data","reactive","seriesApiRef","_paneApiRef_api","_this__series","paneIndex","undefined","plugin","seriesMap","_chart_api","_seriesApiRef_current_api","LineSeries","CandlestickSeries","HistogramSeries","AreaSeries","BaselineSeries","BarSeries","SeriesTemplate","_useSeries","CustomSeries","usePriceLine","price","seriesIsReady","series","priceLineApiRef","seriesApi","_series_api","_priceLineApiRef_current_api","PriceLine","useMarkers","markers","markersApiRef","createSeriesMarkers","_markersApiRef_current_api","Markers","useWatermark","watermarkApiRef","pane","isTextWatermark","createTextWatermark","src","rest1","createImageWatermark","_watermarkApiRef_current_api","WatermarkRenderFunction","watermarkApi","WatermarkText","WatermarkImage","useSeriesPrimitive","render","isChartReady","_useSafeContext1","seriesPrimitiveApiRef","primitive","SeriesPrimitive","usePane","stretchFactor","Pane","_usePane"],"mappings":"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"}
1
+ {"version":3,"file":"lightweight-charts-react-components.standalone.js","sources":["webpack://LightweightChartsReactComponents/./src/chart/ChartContext.ts","webpack://LightweightChartsReactComponents/./src/chart/defaultChartOptions.ts","webpack://LightweightChartsReactComponents/./src/chart/useChart.ts","webpack://LightweightChartsReactComponents/./src/chart/ChartComponent.tsx","webpack://LightweightChartsReactComponents/./src/chart/ChartWrapper.tsx","webpack://LightweightChartsReactComponents/./src/scales/TimeScaleContext.ts","webpack://LightweightChartsReactComponents/./src/version.ts","webpack://LightweightChartsReactComponents/./src/_shared/InternalError.ts","webpack://LightweightChartsReactComponents/./src/_shared/useSafeContext.ts","webpack://LightweightChartsReactComponents/./src/scales/useTimeScale.ts","webpack://LightweightChartsReactComponents/./src/scales/TimeScale.tsx","webpack://LightweightChartsReactComponents/./src/pane/PaneContext.ts","webpack://LightweightChartsReactComponents/./src/pane/usePaneContext.ts","webpack://LightweightChartsReactComponents/./src/scales/usePriceScale.ts","webpack://LightweightChartsReactComponents/./src/scales/PriceScale.tsx","webpack://LightweightChartsReactComponents/./src/scales/useTimeScaleFitContentTrigger.ts","webpack://LightweightChartsReactComponents/./src/scales/TimeScaleFitContentTrigger.tsx","webpack://LightweightChartsReactComponents/./src/series/SeriesContext.ts","webpack://LightweightChartsReactComponents/./src/series/useSeries.ts","webpack://LightweightChartsReactComponents/./src/series/SeriesTemplate.tsx","webpack://LightweightChartsReactComponents/./src/series/LineSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/HistogramSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/CandlestickSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/AreaSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/BaselineSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/BarSeries.tsx","webpack://LightweightChartsReactComponents/./src/series/CustomSeries.tsx","webpack://LightweightChartsReactComponents/./src/priceLine/usePriceLine.ts","webpack://LightweightChartsReactComponents/./src/priceLine/PriceLine.tsx","webpack://LightweightChartsReactComponents/./src/markers/useMarkers.ts","webpack://LightweightChartsReactComponents/./src/markers/Markers.tsx","webpack://LightweightChartsReactComponents/./src/watermark/useWatermark.ts","webpack://LightweightChartsReactComponents/./src/watermark/Watermark.tsx","webpack://LightweightChartsReactComponents/./src/primitives/useSeriesPrimitive.ts","webpack://LightweightChartsReactComponents/./src/primitives/SeriesPrimitive.tsx","webpack://LightweightChartsReactComponents/./src/pane/usePane.ts","webpack://LightweightChartsReactComponents/./src/pane/Pane.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { type IChartContext } from \"./types\";\n\nconst ChartContext = createContext<IChartContext | null>(null);\n\nChartContext.displayName = \"ChartContext\";\nexport { ChartContext };\n","import type { ChartOptions, DeepPartial } from \"lightweight-charts\";\n\nconst defaultChartOptions: DeepPartial<ChartOptions> = {\n addDefaultPane: false,\n};\n\nexport { defaultChartOptions };\n","import { createChart } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { defaultChartOptions } from \"./defaultChartOptions\";\nimport type { ChartApiRef, UseChartOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n onDblClick,\n}: UseChartOptions) => {\n const [isReady, setIsReady] = useState(false);\n\n const chartApiRef = useRef<ChartApiRef>({\n _chart: null,\n api() {\n return this._chart;\n },\n init() {\n if (this._chart === null) {\n const chart = createChart(container, {\n ...defaultChartOptions,\n ...options,\n });\n this._chart = chart;\n\n if (onInit) {\n onInit(this._chart);\n }\n }\n\n if (!isReady) {\n setIsReady(true);\n }\n\n return this._chart;\n },\n clear() {\n if (this._chart !== null) {\n setIsReady(false);\n this._chart.remove();\n this._chart = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n chartApiRef.current.init();\n\n return () => {\n chartApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onClick) {\n chartApiRef.current.api()?.subscribeClick(onClick);\n }\n\n return () => {\n if (onClick) {\n chartApiRef.current.api()?.unsubscribeClick(onClick);\n }\n };\n }, [onClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onCrosshairMove) {\n chartApiRef.current.api()?.subscribeCrosshairMove(onCrosshairMove);\n }\n\n return () => {\n if (onCrosshairMove) {\n chartApiRef.current.api()?.unsubscribeCrosshairMove(onCrosshairMove);\n }\n };\n }, [onCrosshairMove]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onDblClick) {\n chartApiRef.current.api()?.subscribeDblClick(onDblClick);\n }\n\n return () => {\n if (onDblClick) {\n chartApiRef.current.api()?.unsubscribeDblClick(onDblClick);\n }\n };\n }, [onDblClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n chartApiRef.current.api()?.applyOptions({\n ...defaultChartOptions,\n ...options,\n });\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import React from \"react\";\nimport { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartComponentProps } from \"./types\";\n\nconst ChartComponent: React.FC<ChartComponentProps> = ({\n children,\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options,\n}) => {\n const {\n chartApiRef: { current: chartApiRef },\n isReady,\n } = useChart({ container, onClick, onCrosshairMove, onInit, options });\n\n return (\n <ChartContext.Provider\n value={{\n chartApiRef,\n isReady,\n }}\n >\n {children}\n </ChartContext.Provider>\n );\n};\n\nexport { ChartComponent };\n","import { forwardRef, useCallback, useState } from \"react\";\nimport React from \"react\";\nimport { ChartComponent } from \"./ChartComponent\";\nimport type { ChartProps } from \"./types\";\nimport type {\n ForwardRefExoticComponent,\n ForwardRefRenderFunction,\n RefAttributes,\n} from \"react\";\n\nconst ChartRenderFunction: ForwardRefRenderFunction<HTMLDivElement, ChartProps> = (\n { children, containerProps, ...rest },\n ref\n) => {\n const [container, setContainer] = useState<HTMLDivElement>();\n const containerRef = useCallback(\n (r: HTMLDivElement) => {\n setContainer(r);\n\n if (ref) {\n if (typeof ref === \"function\") {\n containerRef(r);\n } else {\n ref.current = r;\n }\n }\n },\n [ref]\n );\n\n return (\n <div ref={containerRef} {...containerProps}>\n {!!container && (\n <ChartComponent container={container} {...rest}>\n {children}\n </ChartComponent>\n )}\n </div>\n );\n};\n\nconst ChartWrapper: ForwardRefExoticComponent<\n ChartProps & RefAttributes<HTMLDivElement>\n> = forwardRef(ChartRenderFunction);\nChartWrapper.displayName = \"ChartWrapper\";\nexport { ChartWrapper };\n","import { createContext } from \"react\";\nimport { type ITimeScaleContext } from \"./types\";\n\nconst TimeScaleContext = createContext<ITimeScaleContext | null>(null);\nTimeScaleContext.displayName = \"TimeScaleContext\";\nexport { TimeScaleContext };\n","export const version = \"1.0.1\";\n","import { version } from \"../version\";\n\nconst docsBaseUrl = \"https://ukorvl.github.io/lightweight-charts-react-components/docs/\";\n\ntype IBaseErrorParameters = {\n /**\n * An operational error refers to an error that occurs during normal program operation\n * due to external factors or expected failures, not due to bugs in the code itself.\n */\n isOperational?: boolean;\n /**\n * The cause of the error, if any.\n * This can be used to provide additional context or information about the error.\n */\n cause?: Error | BaseInternalError;\n /**\n * A path to the documentation that can help resolve the error.\n * This is useful for providing users with guidance on how to fix or understand the error.\n */\n docsPath?: string;\n};\n\nclass BaseInternalError extends Error {\n public isOperational: boolean;\n public override cause?: Error | BaseInternalError;\n\n constructor(\n message?: string,\n { isOperational = true, cause, docsPath }: IBaseErrorParameters = {}\n ) {\n super(message);\n\n this.name = this.constructor.name ?? \"InternalError\";\n this.isOperational = isOperational;\n this.cause = cause;\n\n this.message = `${message ?? \"An error occurred\"}`;\n\n if (docsPath) {\n this.message = `${this.message}\\n\\nDocs: see ${docsBaseUrl + docsPath}`;\n }\n\n if (version) {\n this.message = `${this.message}\\n\\nVersion: lightweight-charts-react-components@${version}`;\n }\n\n Object.setPrototypeOf(this, BaseInternalError.prototype);\n }\n}\n\nexport { BaseInternalError };\n","import { type Context, useContext } from \"react\";\nimport { BaseInternalError } from \"./InternalError\";\n\nexport const useSafeContext = <T>(context: Context<T>, errorMessage?: string) => {\n const currentContextValue = useContext(context);\n\n if (!currentContextValue) {\n const ctxName = context.name ?? context.displayName ?? \"Context\";\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: Omit<TimeScaleProps, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (this._timeScale) {\n return this._timeScale;\n }\n\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._timeScale = chartApi.timeScale();\n\n this._timeScale.applyOptions(options);\n\n if (visibleRange) {\n this._timeScale.setVisibleRange(visibleRange);\n }\n\n if (visibleLogicalRange) {\n this._timeScale.setVisibleLogicalRange(visibleLogicalRange);\n }\n\n if (onVisibleTimeRangeChange) {\n this._timeScale.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n if (onVisibleLogicalRangeChange) {\n this._timeScale.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n if (onSizeChange) {\n this._timeScale.subscribeSizeChange(onSizeChange);\n }\n\n setIsReady(true);\n\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\n setIsReady(false);\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n timeScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n timeScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n timeScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.subscribeSizeChange(onSizeChange);\n }\n\n return () => {\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.unsubscribeSizeChange(onSizeChange);\n }\n };\n }, [onSizeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n return () => {\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n };\n }, [onVisibleLogicalRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n return () => {\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n };\n }, [onVisibleTimeRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleRange) {\n timeScaleApiRef.current?.api()?.setVisibleRange(visibleRange);\n }\n }, [visibleRange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleLogicalRange) {\n timeScaleApiRef.current?.api()?.setVisibleLogicalRange(visibleLogicalRange);\n }\n }, [visibleLogicalRange]);\n\n return { timeScaleApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst TimeScaleRenderFunction = (\n { children, ...props }: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n): JSX.Element => {\n const {\n timeScaleApiRef: { current: timeScaleApiRef },\n isReady,\n } = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef, [timeScaleApiRef]);\n\n return (\n <TimeScaleContext.Provider\n value={{\n timeScaleApiRef,\n isReady,\n }}\n >\n {children}\n </TimeScaleContext.Provider>\n );\n};\n\nconst TimeScale: ForwardRefExoticComponent<\n TimeScaleProps & RefAttributes<TimeScaleApiRef>\n> = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { createContext } from \"react\";\nimport { type IPaneContext } from \"./types\";\n\nconst PaneContext = createContext<IPaneContext | null>(null);\n\nPaneContext.displayName = \"PaneContext\";\nexport { PaneContext };\n","import { useContext } from \"react\";\nimport { PaneContext } from \"./PaneContext\";\n\nconst usePaneContext = () => {\n const paneContext = useContext(PaneContext);\n\n const isInsidePane = !!paneContext;\n const isPaneReady = !!paneContext?.isReady;\n const paneApiRef = paneContext?.paneApiRef;\n\n return { isInsidePane, isPaneReady, paneApiRef };\n};\n\nexport { usePaneContext };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { PriceScaleProps, PriceScaleApiRef } from \"./types\";\n\nexport const usePriceScale = ({ options = {}, id }: PriceScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isInsidePane, isPaneReady } = usePaneContext();\n\n const priceScaleApiRef = useRef<PriceScaleApiRef>({\n _priceScale: null,\n api() {\n return this._priceScale;\n },\n init() {\n if (!this._priceScale) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._priceScale = chartApi.priceScale(id);\n\n this._priceScale.applyOptions(options);\n }\n\n return this._priceScale;\n },\n setId(id) {\n if (this._priceScale === null || chart === null) {\n return;\n }\n\n this._priceScale = chart.api()!.priceScale(id);\n this._priceScale.applyOptions(options);\n },\n clear() {\n this._priceScale = null;\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n priceScaleApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n priceScaleApiRef.current?.setId(id);\n }, [id]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n priceScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n return priceScaleApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceScale } from \"./usePriceScale\";\nimport type { PriceScaleApiRef, PriceScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceScaleRenderFunction = (\n props: PriceScaleProps,\n ref: ForwardedRef<PriceScaleApiRef>\n): JSX.Element | null => {\n const priceScaleApiRef = usePriceScale(props);\n useImperativeHandle(ref, () => priceScaleApiRef.current, [priceScaleApiRef]);\n\n return null;\n};\n\nconst PriceScale: ForwardRefExoticComponent<\n PriceScaleProps & RefAttributes<PriceScaleApiRef>\n> = forwardRef(PriceScaleRenderFunction);\nPriceScale.displayName = \"PriceScale\";\nexport { PriceScale };\n","import { useLayoutEffect } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst useTimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n const timeScaleContext = useSafeContext(TimeScaleContext);\n const { timeScaleApiRef, isReady } = timeScaleContext;\n\n useLayoutEffect(() => {\n if (!isReady || !timeScaleApiRef) {\n return;\n }\n\n const timeScale = timeScaleApiRef.api();\n queueMicrotask(() => {\n if (timeScale) {\n timeScale.fitContent();\n }\n });\n }, [...deps, isReady]);\n};\n\nexport { useTimeScaleFitContentTrigger };\n","import { useTimeScaleFitContentTrigger } from \"./useTimeScaleFitContentTrigger\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\nimport type { JSX } from \"react\";\n\nconst TimeScaleFitContentTrigger = ({\n deps,\n}: TimeScaleFitContentTriggerProps): JSX.Element | null => {\n useTimeScaleFitContentTrigger({ deps });\n\n return null;\n};\n\nexport { TimeScaleFitContentTrigger };\n","import { createContext } from \"react\";\nimport { type ISeriesContext } from \"./types\";\n\nexport const SeriesContext = createContext<ISeriesContext>({\n seriesApiRef: null,\n isReady: false,\n});\nSeriesContext.displayName = \"SeriesContext\";\n","import {\n LineSeries,\n CandlestickSeries,\n HistogramSeries,\n AreaSeries,\n BaselineSeries,\n BarSeries,\n} from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { CustomSeriesUniqueProps, SeriesApiRef, SeriesTemplateProps } from \"./types\";\nimport type { SeriesDefinition, ISeriesApi, SeriesType } from \"lightweight-charts\";\n\ntype SeriesTypeWithoutCustom = Exclude<SeriesType, \"Custom\">;\n\nexport const useSeries = <T extends SeriesType>({\n type,\n data,\n options = {},\n reactive = true,\n ...rest\n}: Omit<SeriesTemplateProps<T>, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n const [isReady, setIsReady] = useState(false);\n\n const seriesApiRef = useRef<SeriesApiRef<T>>({\n _series: null,\n api() {\n return this._series;\n },\n init() {\n if (!this._series) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n const paneIndex = isInsidePane ? paneApiRef?.api()?.paneIndex() : undefined;\n\n if (type === \"Custom\") {\n const plugin = (rest as CustomSeriesUniqueProps).plugin;\n if (!plugin) {\n throw new BaseInternalError(\"Custom series requires a plugin to be defined\");\n }\n\n // TODO: Fix this type cast and infer the correct type\n (this._series as unknown as ISeriesApi<\"Custom\">) = chartApi.addCustomSeries(\n plugin,\n options,\n paneIndex\n );\n } else {\n this._series = chartApi.addSeries(\n seriesMap[type as SeriesTypeWithoutCustom] as SeriesDefinition<T>,\n options,\n paneIndex\n );\n }\n\n this._series?.setData(data);\n\n setIsReady(true);\n }\n\n return this._series;\n },\n clear() {\n if (this._series !== null) {\n chart?.api()?.removeSeries(this._series);\n this._series = null;\n setIsReady(false);\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (isInsidePane && !isPaneReady) {\n return;\n }\n\n seriesApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (data && reactive) {\n seriesApiRef.current.api()?.setData(data);\n }\n }, [data, reactive]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n seriesApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n return { isReady, seriesApiRef };\n};\n\nconst seriesMap: Record<\n SeriesTypeWithoutCustom,\n SeriesDefinition<SeriesTypeWithoutCustom>\n> = {\n Line: LineSeries,\n Candlestick: CandlestickSeries,\n Histogram: HistogramSeries,\n Area: AreaSeries,\n Baseline: BaselineSeries,\n Bar: BarSeries,\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { SeriesContext } from \"./SeriesContext\";\nimport { useSeries } from \"./useSeries\";\nimport type { SeriesTemplateProps, SeriesApiRef } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesComponent = (<T extends SeriesType>(\n props: SeriesTemplateProps<T> & {\n ref?: ForwardedRef<SeriesApiRef<T>>;\n }\n) => ReturnType<typeof SeriesTemplateRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesTemplateRenderFunction = <T extends SeriesType>(\n { children, ...rest }: SeriesTemplateProps<T>,\n ref: ForwardedRef<SeriesApiRef<T>>\n) => {\n const {\n seriesApiRef: { current: seriesApiRef },\n isReady,\n } = useSeries(rest);\n useImperativeHandle(ref, () => seriesApiRef, [seriesApiRef]);\n\n return (\n <SeriesContext.Provider\n value={{\n seriesApiRef,\n isReady,\n }}\n >\n {children}\n </SeriesContext.Provider>\n );\n};\n\nconst SeriesTemplate = forwardRef(SeriesTemplateRenderFunction) as GenericSeriesComponent;\nSeriesTemplate.displayName = \"SeriesTemplate\";\nexport { SeriesTemplate };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst LineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Line\">,\n ref: ForwardedRef<SeriesApiRef<\"Line\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Line\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst LineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Line\"> & RefAttributes<SeriesApiRef<\"Line\">>\n> = forwardRef(LineSeriesRenderFunction);\nLineSeries.displayName = \"LineSeries\";\nexport { LineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst HistogramSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Histogram\">,\n ref: ForwardedRef<SeriesApiRef<\"Histogram\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Histogram\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst HistogramSeries: ForwardRefExoticComponent<\n SeriesProps<\"Histogram\"> & RefAttributes<SeriesApiRef<\"Histogram\">>\n> = forwardRef(HistogramSeriesRenderFunction);\nHistogramSeries.displayName = \"HistogramSeries\";\nexport { HistogramSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CandlestickSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Candlestick\">,\n ref: ForwardedRef<SeriesApiRef<\"Candlestick\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Candlestick\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CandlestickSeries: ForwardRefExoticComponent<\n SeriesProps<\"Candlestick\"> & RefAttributes<SeriesApiRef<\"Candlestick\">>\n> = forwardRef(CandlestickSeriesRenderFunction);\nCandlestickSeries.displayName = \"CandlestickSeries\";\nexport { CandlestickSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst AreaSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Area\">,\n ref: ForwardedRef<SeriesApiRef<\"Area\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Area\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst AreaSeries: ForwardRefExoticComponent<\n SeriesProps<\"Area\"> & RefAttributes<SeriesApiRef<\"Area\">>\n> = forwardRef(AreaSeriesRenderFunction);\nAreaSeries.displayName = \"AreaSeries\";\nexport { AreaSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BaselineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Baseline\">,\n ref: ForwardedRef<SeriesApiRef<\"Baseline\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Baseline\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BaselineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Baseline\"> & RefAttributes<SeriesApiRef<\"Baseline\">>\n> = forwardRef(BaselineSeriesRenderFunction);\nBaselineSeries.displayName = \"BaselineSeries\";\nexport { BaselineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BarSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Bar\">,\n ref: ForwardedRef<SeriesApiRef<\"Bar\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Bar\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BarSeries: ForwardRefExoticComponent<\n SeriesProps<\"Bar\"> & RefAttributes<SeriesApiRef<\"Bar\">>\n> = forwardRef(BarSeriesRenderFunction);\nBarSeries.displayName = \"BarSeries\";\nexport { BarSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CustomSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Custom\">,\n ref: ForwardedRef<SeriesApiRef<\"Custom\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Custom\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CustomSeries: ForwardRefExoticComponent<\n SeriesProps<\"Custom\"> & RefAttributes<SeriesApiRef<\"Custom\">>\n> = forwardRef(CustomSeriesRenderFunction);\nCustomSeries.displayName = \"CustomSeries\";\nexport { CustomSeries };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\n\nexport const usePriceLine = ({ options, price }: PriceLineProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const priceLineApiRef = useRef<PriceLineApiRef>({\n _priceLine: null,\n api() {\n return this._priceLine;\n },\n init() {\n if (!this._priceLine) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._priceLine = seriesApi.createPriceLine({\n price,\n ...options,\n });\n }\n\n return this._priceLine;\n },\n clear() {\n if (this._priceLine !== null) {\n series?.api()?.removePriceLine(this._priceLine);\n this._priceLine = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n priceLineApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceLineApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (options) {\n priceLineApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (price) {\n priceLineApiRef.current.api()?.applyOptions({ price });\n }\n }, [price]);\n\n return priceLineApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceLine } from \"./usePriceLine\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceLineRenderFunction = (\n props: PriceLineProps,\n ref: ForwardedRef<PriceLineApiRef>\n): JSX.Element | null => {\n const priceLineApiRef = usePriceLine(props);\n useImperativeHandle(ref, () => priceLineApiRef.current, [priceLineApiRef]);\n\n return null;\n};\n\nconst PriceLine: ForwardRefExoticComponent<\n PriceLineProps & RefAttributes<PriceLineApiRef>\n> = forwardRef(PriceLineRenderFunction);\nPriceLine.displayName = \"PriceLine\";\nexport { PriceLine };\n","import { createSeriesMarkers } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\n\nexport const useMarkers = ({ reactive = true, markers }: MarkersProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const markersApiRef = useRef<MarkersApiRef>({\n _markers: null,\n api() {\n return this._markers;\n },\n init() {\n if (this._markers === null) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._markers = createSeriesMarkers(seriesApi, markers);\n }\n\n return this._markers;\n },\n clear() {\n if (this._markers !== null) {\n this._markers.detach();\n this._markers = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n markersApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n markersApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (markers && reactive) {\n markersApiRef.current.api()?.setMarkers(markers);\n }\n }, [markers, reactive]);\n\n return markersApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useMarkers } from \"./useMarkers\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst MarkersRenderFunction = (\n { ...rest }: MarkersProps,\n ref: ForwardedRef<MarkersApiRef>\n): JSX.Element | null => {\n const markersApiRef = useMarkers(rest);\n useImperativeHandle(ref, () => markersApiRef.current, [markersApiRef]);\n\n return null;\n};\n\nconst Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>> =\n forwardRef(MarkersRenderFunction);\nMarkers.displayName = \"Markers\";\nexport { Markers };\n","import { createTextWatermark, createImageWatermark } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { WatermarkApiRef, WatermarkProps, WatermarkType } from \"./types\";\n\nconst useWatermark = <T extends WatermarkType>(props: WatermarkProps<T>) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n\n const watermarkApiRef = useRef<WatermarkApiRef<T>>({\n _watermark: null,\n api() {\n return this._watermark;\n },\n init() {\n if (this._watermark === null) {\n const chartApi = chart?.api();\n\n const pane = paneApiRef?.api();\n\n if (!chartApi || !pane) return null;\n\n if (isTextWatermark(props)) {\n const { type: _, ...rest } = props;\n this._watermark = createTextWatermark(pane, rest);\n } else {\n const { type: _, src, ...rest } = props as WatermarkProps<\"image\">;\n this._watermark = createImageWatermark(pane, src, rest);\n }\n }\n\n return this._watermark;\n },\n clear() {\n if (this._watermark !== null) {\n this._watermark.detach();\n this._watermark = null;\n }\n },\n } as WatermarkApiRef<T>);\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n watermarkApiRef.current.init();\n }, [chartIsReady, isPaneReady, isInsidePane]);\n\n useLayoutEffect(() => {\n return () => {\n watermarkApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart || !props) return;\n\n const { type: _, ...rest } = props;\n watermarkApiRef.current.api()?.applyOptions(rest);\n }, [props]);\n\n return watermarkApiRef;\n};\n\nconst isTextWatermark = (\n props: WatermarkProps<WatermarkType>\n): props is WatermarkProps<\"text\"> => {\n return props.type === \"text\";\n};\n\nexport { useWatermark };\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useWatermark } from \"./useWatermark\";\nimport type {\n ImageWatermarkProps,\n TextWatermarkProps,\n WatermarkApiRef,\n WatermarkProps,\n WatermarkType,\n} from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst WatermarkRenderFunction = <T extends WatermarkType>(\n props: WatermarkProps<T>,\n ref: ForwardedRef<WatermarkApiRef<T>>\n) => {\n const watermarkApi = useWatermark(props);\n useImperativeHandle(ref, () => watermarkApi.current, [watermarkApi]);\n\n return null;\n};\n\nconst WatermarkText: ForwardRefExoticComponent<\n TextWatermarkProps & RefAttributes<WatermarkApiRef<\"text\">>\n> = forwardRef<WatermarkApiRef<\"text\">, TextWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"text\" }, ref);\n});\n\nconst WatermarkImage: ForwardRefExoticComponent<\n ImageWatermarkProps & RefAttributes<WatermarkApiRef<\"image\">>\n> = forwardRef<WatermarkApiRef<\"image\">, ImageWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"image\" }, ref);\n});\n\nWatermarkText.displayName = \"WatermarkText\";\nWatermarkImage.displayName = \"WatermarkImage\";\n\nexport { WatermarkText, WatermarkImage };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { ISeriesApi, SeriesType } from \"lightweight-charts\";\n\nexport const useSeriesPrimitive = <T extends SeriesType>({\n render,\n plugin,\n}: SeriesPrimitiveProps<T>) => {\n const { isReady: isChartReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const seriesPrimitiveApiRef = useRef<SeriesPrimitiveApiRef>({\n _primitive: null,\n api() {\n return this._primitive;\n },\n init() {\n if (!this._primitive) {\n const seriesApi = series?.api();\n const chartApi = chart?.api();\n\n if (!chartApi || !seriesApi) {\n return null;\n }\n\n const primitive = plugin\n ? plugin\n : render({\n chart: chartApi,\n series: seriesApi as ISeriesApi<T>,\n });\n\n seriesApi.attachPrimitive(primitive);\n this._primitive = primitive;\n }\n\n return this._primitive;\n },\n clear() {\n if (this._primitive !== null) {\n series?.api()?.detachPrimitive(this._primitive);\n this._primitive = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!isChartReady || !seriesIsReady) return;\n\n seriesPrimitiveApiRef.current.init();\n }, [seriesIsReady, isChartReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesPrimitiveApiRef.current.clear();\n };\n }, []);\n\n return seriesPrimitiveApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useSeriesPrimitive } from \"./useSeriesPrimitive\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef, JSX } from \"react\";\n\ntype GenericSeriesPrimitiveComponent = (<T extends SeriesType>(\n props: SeriesPrimitiveProps<T> & {\n ref?: ForwardedRef<SeriesPrimitiveApiRef>;\n }\n) => ReturnType<typeof SeriesPrimitiveRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesPrimitiveRenderFunction = <T extends SeriesType>(\n props: SeriesPrimitiveProps<T>,\n ref: ForwardedRef<SeriesPrimitiveApiRef>\n): JSX.Element | null => {\n const seriesPrimitiveApiRef = useSeriesPrimitive(props);\n useImperativeHandle(ref, () => seriesPrimitiveApiRef.current, [seriesPrimitiveApiRef]);\n\n return null;\n};\n\nconst SeriesPrimitive = forwardRef(\n SeriesPrimitiveRenderFunction\n) as GenericSeriesPrimitiveComponent;\nSeriesPrimitive.displayName = \"SeriesPrimitive\";\nexport { SeriesPrimitive };\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { PaneApiRef, PaneProps } from \"./types\";\n\nexport const usePane = ({ stretchFactor }: Omit<PaneProps, \"children\"> = {}) => {\n const { chartApiRef: chart, isReady: chartIsReady } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const paneApiRef = useRef<PaneApiRef>({\n _pane: null,\n api() {\n return this._pane;\n },\n init() {\n const chartApi = chart?.api();\n if (!chartApi) return null;\n\n const pane = chartApi.addPane(true);\n this._pane = pane;\n\n setIsReady(true);\n\n if (stretchFactor !== undefined) {\n this._pane.setStretchFactor(stretchFactor);\n }\n\n return this._pane;\n },\n clear() {\n if (this._pane !== null) {\n chart?.api()?.removePane(this._pane.paneIndex());\n setIsReady(false);\n\n this._pane = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n paneApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n paneApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (stretchFactor === undefined) return;\n\n const pane = paneApiRef.current.api();\n if (pane) {\n pane.setStretchFactor(stretchFactor);\n }\n }, [stretchFactor]);\n\n return { paneApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { PaneContext } from \"./PaneContext\";\nimport { usePane } from \"./usePane\";\nimport type { PaneProps, PaneApiRef } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst PaneRenderFunction = (\n { children, stretchFactor }: PaneProps,\n ref: ForwardedRef<PaneApiRef>\n) => {\n const {\n paneApiRef: { current: paneApiRef },\n isReady,\n } = usePane({ stretchFactor });\n useImperativeHandle(ref, () => paneApiRef, [paneApiRef]);\n\n return (\n <PaneContext.Provider\n value={{\n paneApiRef,\n isReady,\n }}\n >\n {children}\n </PaneContext.Provider>\n );\n};\n\nconst Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>> =\n forwardRef(PaneRenderFunction);\nPane.displayName = \"Pane\";\nexport { Pane };\n"],"names":["ChartContext","createContext","defaultChartOptions","useChart","container","onClick","onCrosshairMove","onInit","options","onDblClick","_useState","isReady","setIsReady","chartApiRef","useRef","chart","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","_useChart","ChartWrapper","forwardRef","ref","containerProps","rest","setContainer","containerRef","useCallback","r","TimeScaleContext","version","BaseInternalError","message","_this_constructor_name","_ref","isOperational","cause","docsPath","docsBaseUrl","Object","Error","useSafeContext","context","errorMessage","currentContextValue","useContext","ctxName","useTimeScale","onVisibleTimeRangeChange","onVisibleLogicalRangeChange","onSizeChange","visibleRange","visibleLogicalRange","_useSafeContext","chartIsReady","timeScaleApiRef","chartApi","_timeScaleApiRef_current_api","TimeScale","_useTimeScale","props","useImperativeHandle","PaneContext","usePaneContext","paneContext","isInsidePane","isPaneReady","paneApiRef","usePriceScale","id","_usePaneContext","priceScaleApiRef","_priceScaleApiRef_current","_priceScaleApiRef_current_api","PriceScale","useTimeScaleFitContentTrigger","deps","timeScaleContext","timeScale","queueMicrotask","TimeScaleFitContentTrigger","SeriesContext","useSeries","type","data","reactive","seriesApiRef","_paneApiRef_api","_this__series","paneIndex","undefined","plugin","seriesMap","_chart_api","_seriesApiRef_current_api","LineSeries","CandlestickSeries","HistogramSeries","AreaSeries","BaselineSeries","BarSeries","SeriesTemplate","_useSeries","CustomSeries","usePriceLine","price","seriesIsReady","series","priceLineApiRef","seriesApi","_series_api","_priceLineApiRef_current_api","PriceLine","useMarkers","markers","markersApiRef","createSeriesMarkers","_markersApiRef_current_api","Markers","useWatermark","watermarkApiRef","pane","isTextWatermark","createTextWatermark","src","rest1","createImageWatermark","_watermarkApiRef_current_api","WatermarkRenderFunction","watermarkApi","WatermarkText","WatermarkImage","useSeriesPrimitive","render","isChartReady","_useSafeContext1","seriesPrimitiveApiRef","primitive","SeriesPrimitive","usePane","stretchFactor","Pane","_usePane"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lightweight-charts-react-components",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "scripts": {
5
5
  "build": "rslib build",
6
6
  "dev": "rslib build --watch",
@@ -62,8 +62,8 @@
62
62
  "@microsoft/api-extractor": "^7.52.8",
63
63
  "@rsbuild/plugin-react": "^1.3.0",
64
64
  "@rslib/core": "^0.6.1",
65
- "@types/react": "^19.1.6",
66
- "@types/react-dom": "^19.1.5",
65
+ "@types/react": "^19.1.8",
66
+ "@types/react-dom": "^19.1.6",
67
67
  "@vitest/coverage-v8": "^3.1.3",
68
68
  "jsr": "^0.13.4",
69
69
  "rsbuild-plugin-dts": "^0.5.5"