@ -1100,7 +1100,7 @@ var require_react_development = __commonJS({
var dispatcher = resolveDispatcher ( ) ;
var dispatcher = resolveDispatcher ( ) ;
return dispatcher . useRef ( initialValue ) ;
return dispatcher . useRef ( initialValue ) ;
}
}
function useEffect 5 ( create , deps ) {
function useEffect 6 ( create , deps ) {
var dispatcher = resolveDispatcher ( ) ;
var dispatcher = resolveDispatcher ( ) ;
return dispatcher . useEffect ( create , deps ) ;
return dispatcher . useEffect ( create , deps ) ;
}
}
@ -1116,7 +1116,7 @@ var require_react_development = __commonJS({
var dispatcher = resolveDispatcher ( ) ;
var dispatcher = resolveDispatcher ( ) ;
return dispatcher . useCallback ( callback2 , deps ) ;
return dispatcher . useCallback ( callback2 , deps ) ;
}
}
function useMemo 2 ( create , deps ) {
function useMemo 3 ( create , deps ) {
var dispatcher = resolveDispatcher ( ) ;
var dispatcher = resolveDispatcher ( ) ;
return dispatcher . useMemo ( create , deps ) ;
return dispatcher . useMemo ( create , deps ) ;
}
}
@ -1882,12 +1882,12 @@ var require_react_development = __commonJS({
exports . useContext = useContext2 ;
exports . useContext = useContext2 ;
exports . useDebugValue = useDebugValue2 ;
exports . useDebugValue = useDebugValue2 ;
exports . useDeferredValue = useDeferredValue ;
exports . useDeferredValue = useDeferredValue ;
exports . useEffect = useEffect 5 ;
exports . useEffect = useEffect 6 ;
exports . useId = useId ;
exports . useId = useId ;
exports . useImperativeHandle = useImperativeHandle ;
exports . useImperativeHandle = useImperativeHandle ;
exports . useInsertionEffect = useInsertionEffect ;
exports . useInsertionEffect = useInsertionEffect ;
exports . useLayoutEffect = useLayoutEffect ;
exports . useLayoutEffect = useLayoutEffect ;
exports . useMemo = useMemo 2 ;
exports . useMemo = useMemo 3 ;
exports . useReducer = useReducer2 ;
exports . useReducer = useReducer2 ;
exports . useRef = useRef3 ;
exports . useRef = useRef3 ;
exports . useState = useState ;
exports . useState = useState ;
@ -24379,10 +24379,10 @@ var require_react_jsx_runtime_development = __commonJS({
return jsxWithValidation ( type , props , key , false ) ;
return jsxWithValidation ( type , props , key , false ) ;
}
}
}
}
var jsx 6 = jsxWithValidationDynamic ;
var jsx 7 = jsxWithValidationDynamic ;
var jsxs4 = jsxWithValidationStatic ;
var jsxs4 = jsxWithValidationStatic ;
exports . Fragment = REACT _FRAGMENT _TYPE ;
exports . Fragment = REACT _FRAGMENT _TYPE ;
exports . jsx = jsx 6 ;
exports . jsx = jsx 7 ;
exports . jsxs = jsxs4 ;
exports . jsxs = jsxs4 ;
} ) ( ) ;
} ) ( ) ;
}
}
@ -24417,7 +24417,7 @@ function Header() {
var Header _default = Header ;
var Header _default = Header ;
// src/Picker.tsx
// src/Picker.tsx
var import _react 2 = _ _toESM ( require _react ( ) , 1 ) ;
var import _react 3 = _ _toESM ( require _react ( ) , 1 ) ;
// node_modules/jotai/esm/vanilla.mjs
// node_modules/jotai/esm/vanilla.mjs
var keyCount = 0 ;
var keyCount = 0 ;
@ -25064,31 +25064,40 @@ function useAtom(atom2, options) {
] ;
] ;
}
}
// src/util.ts
var import _react2 = _ _toESM ( require _react ( ) , 1 ) ;
function useLocalAtom ( initialValue , deps ) {
return ( 0 , import _react2 . useMemo ) ( ( ) => atom ( initialValue ) , deps ) ;
}
function useCommand ( fn , deps ) {
return useSetAtom ( ( 0 , import _react2 . useMemo ) ( ( ) => atom ( null , fn ) , deps ) ) ;
}
// src/Picker.tsx
// src/Picker.tsx
var import _jsx _runtime2 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
var import _jsx _runtime2 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
function Picker ( {
function Picker ( {
$url ,
$url ,
$options = ( 0 , import _react2 . useMemo ) ( ( ) => atom ( [ ] ) , [ ] ) ,
$options = ( 0 , import _react 3 . useMemo ) ( ( ) => atom ( [ ] ) , [ ] ) ,
$isLoading = ( 0 , import _react2 . useMemo ) ( ( ) => atom ( true ) , [ ] ) ,
$isLoading = ( 0 , import _react 3 . useMemo ) ( ( ) => atom ( true ) , [ ] ) ,
$isEnabled = ( 0 , import _react2 . useMemo ) ( ( ) => atom ( true ) , [ ] ) ,
$isEnabled = ( 0 , import _react 3 . useMemo ) ( ( ) => atom ( true ) , [ ] ) ,
$selectedOption = ( 0 , import _react2 . useMemo ) ( ( ) => atom ( "" ) , [ ] )
$selectedOption Value = ( 0 , import _react 3 . useMemo ) ( ( ) => atom ( "" ) , [ ] )
} ) {
} ) {
const url = useAtomValue ( $url ) ;
const url = useAtomValue ( $url ) ;
const options = useAtomValue ( $options ) ;
const options = useAtomValue ( $options ) ;
const isLoading = useAtomValue ( $isLoading ) ;
const isLoading = useAtomValue ( $isLoading ) ;
const [ selectedOption , setSelectedOption ] = useAtom ( $selectedOption ) ;
const [ selectedOption Value , setSelectedOption Value ] = useAtom ( $selectedOption Value ) ;
const isEnabled = useAtomValue ( $isEnabled ) ;
const isEnabled = useAtomValue ( $isEnabled ) ;
const optionsFetched = useSetAtom ( ( 0 , import _react2 . useMemo ) ( ( ) => atom ( null , ( get , set2 , options2 ) => {
const handleFetchedOptions = useCommand ( ( get , set2 , options2 ) => {
set2 ( $options , options2 ) ;
set2 ( $options , options2 ) ;
set2 ( $isLoading , false ) ;
set2 ( $isLoading , false ) ;
} ) , [ $options , $isLoading ] ) ) ;
} , [ $options , $isLoading ] ) ;
( 0 , import _react 2 . useEffect ) ( ( ) => {
( 0 , import _react 3 . useEffect ) ( ( ) => {
if ( isEnabled ) {
if ( isEnabled ) {
fetch ( url ) . then ( ( x ) => x . json ( ) ) . catch ( ( err ) => [ "AAPL" , "MSFT" , "GOOG" ] ) . then ( optionsFetched ) ;
fetch ( url ) . then ( ( x ) => x . json ( ) ) . catch ( ( err ) => [ "AAPL" , "MSFT" , "GOOG" ] ) . then ( handleFetchedOptions ) ;
}
}
} , [ url , isEnabled ] ) ;
} , [ url , isEnabled ] ) ;
return /* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsx ) ( "div" , { children : isLoading ? /* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsx ) ( "span" , { children : "Loading..." } ) : /* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsxs ) ( "select" , { value : selectedOption , onChange : ( e ) => {
return /* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsx ) ( "div" , { children : isLoading ? /* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsx ) ( "span" , { children : "Loading..." } ) : /* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsxs ) ( "select" , { value : selectedOption Value , onChange : ( e ) => {
setSelectedOption ( e . target . value ) ;
setSelectedOption Value ( e . target . value ) ;
} , children : [
} , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsx ) ( "option" , { value : "" } , "" ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime2 . jsx ) ( "option" , { value : "" } , "" ) ,
options . map (
options . map (
@ -25100,7 +25109,9 @@ function Picker({
// src/App.module.css
// src/App.module.css
var App _module _default = {
var App _module _default = {
"app" : "App-module__app_gPMrEW__001" ,
"app" : "App-module__app_gPMrEW__001" ,
"picker" : "App-module__picker_gPMrEW__001"
"form" : "App-module__form_gPMrEW__001" ,
"picker" : "App-module__picker_gPMrEW__001" ,
"underlyingPrice" : "App-module__underlyingPrice_gPMrEW__001"
} ;
} ;
// node_modules/@kurkle/color/dist/color.esm.js
// node_modules/@kurkle/color/dist/color.esm.js
@ -36540,7 +36551,7 @@ __publicField(TimeSeriesScale, "id", "timeseries");
_ _publicField ( TimeSeriesScale , "defaults" , TimeScale . defaults ) ;
_ _publicField ( TimeSeriesScale , "defaults" , TimeScale . defaults ) ;
// node_modules/react-chartjs-2/dist/index.js
// node_modules/react-chartjs-2/dist/index.js
var import _react 3 = _ _toESM ( require _react ( ) , 1 ) ;
var import _react 4 = _ _toESM ( require _react ( ) , 1 ) ;
var defaultDatasetIdKey = "label" ;
var defaultDatasetIdKey = "label" ;
function reforwardRef ( ref , value ) {
function reforwardRef ( ref , value ) {
if ( typeof ref === "function" ) {
if ( typeof ref === "function" ) {
@ -36585,8 +36596,8 @@ function cloneData(data) {
}
}
function ChartComponent ( props , ref ) {
function ChartComponent ( props , ref ) {
const { height = 150 , width = 300 , redraw = false , datasetIdKey , type , data , options , plugins = [ ] , fallbackContent , updateMode , ... canvasProps } = props ;
const { height = 150 , width = 300 , redraw = false , datasetIdKey , type , data , options , plugins = [ ] , fallbackContent , updateMode , ... canvasProps } = props ;
const canvasRef = ( 0 , import _react 3 . useRef ) ( null ) ;
const canvasRef = ( 0 , import _react 4 . useRef ) ( null ) ;
const chartRef = ( 0 , import _react 3 . useRef ) ( ) ;
const chartRef = ( 0 , import _react 4 . useRef ) ( ) ;
const renderChart = ( ) => {
const renderChart = ( ) => {
if ( ! canvasRef . current )
if ( ! canvasRef . current )
return ;
return ;
@ -36607,7 +36618,7 @@ function ChartComponent(props, ref) {
chartRef . current = null ;
chartRef . current = null ;
}
}
} ;
} ;
( 0 , import _react 3 . useEffect ) ( ( ) => {
( 0 , import _react 4 . useEffect ) ( ( ) => {
if ( ! redraw && chartRef . current && options ) {
if ( ! redraw && chartRef . current && options ) {
setOptions ( chartRef . current , options ) ;
setOptions ( chartRef . current , options ) ;
}
}
@ -36615,7 +36626,7 @@ function ChartComponent(props, ref) {
redraw ,
redraw ,
options
options
] ) ;
] ) ;
( 0 , import _react 3 . useEffect ) ( ( ) => {
( 0 , import _react 4 . useEffect ) ( ( ) => {
if ( ! redraw && chartRef . current ) {
if ( ! redraw && chartRef . current ) {
setLabels ( chartRef . current . config . data , data . labels ) ;
setLabels ( chartRef . current . config . data , data . labels ) ;
}
}
@ -36623,7 +36634,7 @@ function ChartComponent(props, ref) {
redraw ,
redraw ,
data . labels
data . labels
] ) ;
] ) ;
( 0 , import _react 3 . useEffect ) ( ( ) => {
( 0 , import _react 4 . useEffect ) ( ( ) => {
if ( ! redraw && chartRef . current && data . datasets ) {
if ( ! redraw && chartRef . current && data . datasets ) {
setDatasets ( chartRef . current . config . data , data . datasets , datasetIdKey ) ;
setDatasets ( chartRef . current . config . data , data . datasets , datasetIdKey ) ;
}
}
@ -36631,7 +36642,7 @@ function ChartComponent(props, ref) {
redraw ,
redraw ,
data . datasets
data . datasets
] ) ;
] ) ;
( 0 , import _react 3 . useEffect ) ( ( ) => {
( 0 , import _react 4 . useEffect ) ( ( ) => {
if ( ! chartRef . current )
if ( ! chartRef . current )
return ;
return ;
if ( redraw ) {
if ( redraw ) {
@ -36647,7 +36658,7 @@ function ChartComponent(props, ref) {
data . datasets ,
data . datasets ,
updateMode
updateMode
] ) ;
] ) ;
( 0 , import _react 3 . useEffect ) ( ( ) => {
( 0 , import _react 4 . useEffect ) ( ( ) => {
if ( ! chartRef . current )
if ( ! chartRef . current )
return ;
return ;
destroyChart ( ) ;
destroyChart ( ) ;
@ -36655,21 +36666,21 @@ function ChartComponent(props, ref) {
} , [
} , [
type
type
] ) ;
] ) ;
( 0 , import _react 3 . useEffect ) ( ( ) => {
( 0 , import _react 4 . useEffect ) ( ( ) => {
renderChart ( ) ;
renderChart ( ) ;
return ( ) => destroyChart ( ) ;
return ( ) => destroyChart ( ) ;
} , [ ] ) ;
} , [ ] ) ;
return /* @__PURE__ */ import _react 3 . default . createElement ( "canvas" , Object . assign ( {
return /* @__PURE__ */ import _react 4 . default . createElement ( "canvas" , Object . assign ( {
ref : canvasRef ,
ref : canvasRef ,
role : "img" ,
role : "img" ,
height ,
height ,
width
width
} , canvasProps ) , fallbackContent ) ;
} , canvasProps ) , fallbackContent ) ;
}
}
var Chart2 = /* @__PURE__ */ ( 0 , import _react 3 . forwardRef ) ( ChartComponent ) ;
var Chart2 = /* @__PURE__ */ ( 0 , import _react 4 . forwardRef ) ( ChartComponent ) ;
function createTypedChart ( type , registerables ) {
function createTypedChart ( type , registerables ) {
Chart . register ( registerables ) ;
Chart . register ( registerables ) ;
return /* @__PURE__ */ ( 0 , import _react 3 . forwardRef ) ( ( props , ref ) => /* @__PURE__ */ import _react 3 . default . createElement ( Chart2 , Object . assign ( { } , props , {
return /* @__PURE__ */ ( 0 , import _react 4 . forwardRef ) ( ( props , ref ) => /* @__PURE__ */ import _react 4 . default . createElement ( Chart2 , Object . assign ( { } , props , {
ref ,
ref ,
type
type
} ) ) ) ;
} ) ) ) ;
@ -36784,7 +36795,7 @@ function loadable(anAtom) {
}
}
// src/CalendarPricesChart.tsx
// src/CalendarPricesChart.tsx
var import _react 4 = _ _toESM ( require _react ( ) , 1 ) ;
var import _react 5 = _ _toESM ( require _react ( ) , 1 ) ;
var import _jsx _runtime3 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
var import _jsx _runtime3 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
Chart . register ( LineElement , plugin _tooltip , plugin _legend , CategoryScale , LinearScale , PointElement ) ;
Chart . register ( LineElement , plugin _tooltip , plugin _legend , CategoryScale , LinearScale , PointElement ) ;
var $prices = loadable ( atom ( async ( get ) => {
var $prices = loadable ( atom ( async ( get ) => {
@ -36800,7 +36811,7 @@ var $prices = loadable(atom(async (get) => {
} ) ) ;
} ) ) ;
function CalendarPricesChart ( ) {
function CalendarPricesChart ( ) {
const prices = useAtomValue ( $prices ) ;
const prices = useAtomValue ( $prices ) ;
( 0 , import _react 4 . useEffect ) ( ( ) => {
( 0 , import _react 5 . useEffect ) ( ( ) => {
console . log ( prices ) ;
console . log ( prices ) ;
} , [ prices ] ) ;
} , [ prices ] ) ;
if ( prices . state === "hasData" ) {
if ( prices . state === "hasData" ) {
@ -36826,8 +36837,25 @@ function CalendarPricesChart() {
}
}
}
}
// src/App.tsx
// src/UnderlyingPrice.tsx
var import _react6 = _ _toESM ( require _react ( ) , 1 ) ;
var import _jsx _runtime4 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
var import _jsx _runtime4 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
function UnderlyingPrice ( { $underlying , $quoteDate } ) {
const underlying = useAtomValue ( $underlying ) ;
const quoteDate = useAtomValue ( $quoteDate ) ;
const $underlyingPrice = useLocalAtom ( "" , [ $underlying , $quoteDate ] ) ;
const [ underlyingPrice , setUnderlyingPrice ] = useAtom ( $underlyingPrice ) ;
const handleInit = useCommand ( ( ) => {
fetch ( ` ${ baseUrl } /underlying_quotes/ ${ underlying } / ${ quoteDate . substring ( 0 , 10 ) } ` ) . then ( ( x ) => x . json ( ) ) . then ( ( rows ) => {
setUnderlyingPrice ( rows [ 0 ] . close . toString ( ) ) ;
} ) ;
} , [ underlying , quoteDate ] ) ;
( 0 , import _react6 . useEffect ) ( handleInit , [ underlying , quoteDate ] ) ;
return /* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( "span" , { children : underlyingPrice } ) ;
}
// src/App.tsx
var import _jsx _runtime5 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
var baseUrl = "http://127.0.0.1:8234" ;
var baseUrl = "http://127.0.0.1:8234" ;
var $underlyingsUrl = atom ( ` ${ baseUrl } /option_quotes/underlyings ` ) ;
var $underlyingsUrl = atom ( ` ${ baseUrl } /option_quotes/underlyings ` ) ;
var $selectedUnderlying = atom ( "" ) ;
var $selectedUnderlying = atom ( "" ) ;
@ -36844,38 +36872,46 @@ var $backMonthExpirationPickerUrl = atom((get) => `${baseUrl}/option_quotes/${ge
var $isBackMonthExpirationPickerEnabled = atom ( ( get ) => get ( $selectedQuoteDate ) !== "" && get ( $selectedUnderlying ) !== "" ) ;
var $isBackMonthExpirationPickerEnabled = atom ( ( get ) => get ( $selectedQuoteDate ) !== "" && get ( $selectedUnderlying ) !== "" ) ;
var $selectedBackExpiration = atom ( "" ) ;
var $selectedBackExpiration = atom ( "" ) ;
function App ( ) {
function App ( ) {
return /* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsxs ) ( "div" , { className : App _module _default . app , children : [
const selectedUnderlying = useAtomValue ( $selectedUnderlying ) ;
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( Header _default , { } ) ,
return /* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . app , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( Header _default , { } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( "label" , { children : "Underlying" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . form , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( Picker , { $url : $underlyingsUrl , $selectedOption : $selectedUnderlying } )
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . underlyingPrice , children : [
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "span" , { children : "Underlying: " } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "span" , { children : selectedUnderlying } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( "label" , { children : "Quote Date" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( UnderlyingPrice , { $underlying : $selectedUnderlying , $quoteDate : $selectedQuoteDate } )
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( Picker , { $url : $quoteDatePickerUrl , $isEnabled : $isQuoteDatePickerEnabled , $selectedOption : $selectedQuoteDate } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "label" , { children : "Underlying" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( Picker , { $url : $underlyingsUrl , $selectedOptionValue : $selectedUnderlying } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "label" , { children : "Quote Date" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( Picker , { $url : $quoteDatePickerUrl , $isEnabled : $isQuoteDatePickerEnabled , $selectedOptionValue : $selectedQuoteDate } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "label" , { children : "Strike" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( Picker , { $url : $strikePickerUrl , $isEnabled : $isStrikePickerEnabled , $selectedOptionValue : $selectedStrike } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "label" , { children : "Front Expiration" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( Picker , { $url : $frontMonthExpirationPickerUrl , $isEnabled : $isFrontMonthExpirationPickerEnabled , $selectedOptionValue : $selectedFrontExpiration } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( "label" , { children : "Back Expiration" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( Picker , { $url : $backMonthExpirationPickerUrl , $isEnabled : $isBackMonthExpirationPickerEnabled , $selectedOptionValue : $selectedBackExpiration } )
] } )
] } ) ,
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime5 . jsx ) ( CalendarPricesChart , { } )
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( "label" , { children : "Strike" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( Picker , { $url : $strikePickerUrl , $isEnabled : $isStrikePickerEnabled , $selectedOption : $selectedStrike } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( "label" , { children : "Front Expiration" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( Picker , { $url : $frontMonthExpirationPickerUrl , $isEnabled : $isFrontMonthExpirationPickerEnabled , $selectedOption : $selectedFrontExpiration } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsxs ) ( "div" , { className : App _module _default . picker , children : [
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( "label" , { children : "Back Expiration" } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( Picker , { $url : $backMonthExpirationPickerUrl , $isEnabled : $isBackMonthExpirationPickerEnabled , $selectedOption : $selectedBackExpiration } )
] } ) ,
/* @__PURE__ */ ( 0 , import _jsx _runtime4 . jsx ) ( CalendarPricesChart , { } )
] } ) ;
] } ) ;
}
}
var App _default = App ;
var App _default = App ;
// src/index.tsx
// src/index.tsx
var import _jsx _runtime5 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
var import _jsx _runtime6 = _ _toESM ( require _jsx _runtime ( ) , 1 ) ;
var rootEl = document . getElementById ( "app" ) ;
var rootEl = document . getElementById ( "app" ) ;
var Root = ( 0 , import _client . createRoot ) ( rootEl ) ;
var Root = ( 0 , import _client . createRoot ) ( rootEl ) ;
Root . render ( /* @__PURE__ */ ( 0 , import _jsx _runtime 5 . jsx ) ( App _default , { } ) ) ;
Root . render ( /* @__PURE__ */ ( 0 , import _jsx _runtime6 . jsx ) ( App _default , { } ) ) ;
/ * ! B u n d l e d l i c e n s e i n f o r m a t i o n :
/ * ! B u n d l e d l i c e n s e i n f o r m a t i o n :
react / cjs / react . development . js :
react / cjs / react . development . js :